From 97fa6b69430fee90106de5c7a4e2f8e423bec6c8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 31 Aug 2026 18:59:51 +0200 Subject: [PATCH 01/60] 21.2 lts update --- versioned_docs/version-21/Notes/updates.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/versioned_docs/version-21/Notes/updates.md b/versioned_docs/version-21/Notes/updates.md index 3c530cbe3ff597..ba480ca7f57b0e 100644 --- a/versioned_docs/version-21/Notes/updates.md +++ b/versioned_docs/version-21/Notes/updates.md @@ -9,6 +9,15 @@ Read [**What’s new in 4D 21**](https://blog.4d.com/whats-new-in-4d-21lts/), th ::: +## 4D 21.2 LTS + +#### Highlights + +- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21.2): list of all bugs that have been fixed in 4D 21.2. + + + + ## 4D 21.1 LTS #### Highlights From 5145372d753c4e1f6761dbe42ed2de28aeacad75 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 1 Sep 2026 10:19:35 +0200 Subject: [PATCH 02/60] New Crowdin updates (#3397) * updates.md Japanese * vss.md Japanese * cryptokeyclass.md Japanese * field-properties.md Japanese * cryptokeyclass.md Japanese * updates.md French * updates.md Spanish * updates.md Portuguese, Brazilian * smtptransporterclass.md French * updates.md French * smtptransporterclass.md Spanish * updates.md Spanish * smtptransporterclass.md Japanese * updates.md Japanese * smtptransporterclass.md Portuguese, Brazilian * updates.md Portuguese, Brazilian * compiler.md French * error-handling.md French * remotedatastores.md French * compiler.md French * authusers.md French * error-handling.md French * compiler.md French * error-handling.md French * compiler.md French * error-handling.md French * compiler.md French * authusers.md French * error.png French * error2.png French * error.png French * error2.png French * error-handling.md Spanish * remotedatastores.md Spanish * authusers.md Spanish * error-handling.md Spanish * error-handling.md Spanish * error-handling.md Spanish * authusers.md Spanish * error.png Spanish * error2.png Spanish * error.png Spanish * error2.png Spanish * error-handling.md Japanese * remotedatastores.md Japanese * authusers.md Japanese * processes.md Japanese * error-handling.md Japanese * error-handling.md Japanese * error-handling.md Japanese * authusers.md Japanese * processes.md Japanese * error.png Japanese * error2.png Japanese * error.png Japanese * error2.png Japanese * error-handling.md Portuguese, Brazilian * remotedatastores.md Portuguese, Brazilian * authusers.md Portuguese, Brazilian * error-handling.md Portuguese, Brazilian * error-handling.md Portuguese, Brazilian * error-handling.md Portuguese, Brazilian * authusers.md Portuguese, Brazilian * error.png Portuguese, Brazilian * error2.png Portuguese, Brazilian * error.png Portuguese, Brazilian * error2.png Portuguese, Brazilian --- .../current/API/SMTPTransporterClass.md | 14 +++++--- .../current/Concepts/error-handling.md | 20 ++++++++++-- .../current/Notes/updates.md | 2 +- .../current/ORDA/remoteDatastores.md | 16 +++------- .../current/REST/authUsers.md | 5 ++- .../current/assets/en/Concepts/error.png | Bin 0 -> 26663 bytes .../current/assets/en/Concepts/error2.png | Bin 0 -> 21324 bytes .../version-21-R3/Concepts/error-handling.md | 4 +-- .../version-21-R4/Concepts/error-handling.md | 20 ++++++++++-- .../version-21-R4/REST/authUsers.md | 5 ++- .../assets/en/Concepts/error.png | Bin 0 -> 26663 bytes .../assets/en/Concepts/error2.png | Bin 0 -> 21324 bytes .../version-21/Concepts/error-handling.md | 4 +-- .../version-21/Notes/updates.md | 8 ++++- .../current/API/SMTPTransporterClass.md | 14 +++++--- .../current/Concepts/error-handling.md | 20 ++++++++++-- .../current/Notes/updates.md | 2 +- .../current/ORDA/remoteDatastores.md | 16 +++------- .../current/Project/compiler.md | 4 +-- .../current/REST/authUsers.md | 5 ++- .../current/assets/en/Concepts/error.png | Bin 0 -> 26663 bytes .../current/assets/en/Concepts/error2.png | Bin 0 -> 21324 bytes .../version-20/Project/compiler.md | 4 +-- .../version-21-R3/Concepts/error-handling.md | 4 +-- .../version-21-R3/Project/compiler.md | 4 +-- .../version-21-R4/Concepts/error-handling.md | 20 ++++++++++-- .../version-21-R4/Project/compiler.md | 4 +-- .../version-21-R4/REST/authUsers.md | 5 ++- .../assets/en/Concepts/error.png | Bin 0 -> 26663 bytes .../assets/en/Concepts/error2.png | Bin 0 -> 21324 bytes .../version-21/Concepts/error-handling.md | 4 +-- .../version-21/Notes/updates.md | 8 ++++- .../version-21/Project/compiler.md | 4 +-- .../current/API/CryptoKeyClass.md | 2 +- .../current/API/SMTPTransporterClass.md | 30 +++++++++++------- .../current/Concepts/error-handling.md | 20 ++++++++++-- .../current/Develop/field-properties.md | 2 +- .../current/Notes/updates.md | 6 ++-- .../current/ORDA/remoteDatastores.md | 16 +++------- .../current/REST/authUsers.md | 5 ++- .../current/ServerWindow/processes.md | 4 +-- .../current/assets/en/Concepts/error.png | Bin 0 -> 26663 bytes .../current/assets/en/Concepts/error2.png | Bin 0 -> 21324 bytes .../current/server/vss.md | 16 +++++----- .../version-21-R3/Concepts/error-handling.md | 6 ++-- .../version-21-R4/API/CryptoKeyClass.md | 2 +- .../version-21-R4/Concepts/error-handling.md | 22 ++++++++++--- .../version-21-R4/REST/authUsers.md | 5 ++- .../version-21-R4/ServerWindow/processes.md | 4 +-- .../assets/en/Concepts/error.png | Bin 0 -> 26663 bytes .../assets/en/Concepts/error2.png | Bin 0 -> 21324 bytes .../version-21/Concepts/error-handling.md | 6 ++-- .../version-21/Notes/updates.md | 8 ++++- .../current/API/SMTPTransporterClass.md | 14 +++++--- .../current/Concepts/error-handling.md | 20 ++++++++++-- .../current/Notes/updates.md | 2 +- .../current/ORDA/remoteDatastores.md | 16 +++------- .../current/REST/authUsers.md | 5 ++- .../current/assets/en/Concepts/error.png | Bin 0 -> 26663 bytes .../current/assets/en/Concepts/error2.png | Bin 0 -> 21324 bytes .../version-21-R3/Concepts/error-handling.md | 4 +-- .../version-21-R4/Concepts/error-handling.md | 20 ++++++++++-- .../version-21-R4/REST/authUsers.md | 5 ++- .../assets/en/Concepts/error.png | Bin 0 -> 26663 bytes .../assets/en/Concepts/error2.png | Bin 0 -> 21324 bytes .../version-21/Concepts/error-handling.md | 4 +-- .../version-21/Notes/updates.md | 8 ++++- 67 files changed, 294 insertions(+), 174 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png 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 1fd1e5452c2ab8..0ca801972d404b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -102,7 +102,7 @@ $result:=$transporter.send($email) #### Ver también -[.certificateName](#certificatename)
+[.certificateName](#certificatename) [.certificatePassword](#certificatepassword) ## .certificateName @@ -121,11 +121,17 @@ $result:=$transporter.send($email) The `.certificateName` property contains the name of the certificate used to sign emails using S/MIME (Secure/MIME) as it is registered in the system Certificate store (*keychain*). This certificate contains the private key. -The certificate can also be provided directly as a file using the [`.certificate`](#certificate) property. Note that you cannot use both properties simultaneously, otherwise an error is returned. +The certificate can also be provided directly as a file or blob using the [`.certificate`](#certificate) property. Note that you cannot use both properties simultaneously, otherwise an error is returned. + +:::tip Entrada de blog relacionada + +[Signing emails with S/MIME and SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) + +::: #### Ver también -[.certificate](#certificate) +[.certificate](#certificate) [.certificatePassword](#certificatepassword) ## .certificatePassword @@ -146,7 +152,7 @@ The `.certificatePassword` property contains 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 f037914f8ad404..000dc244d183fe 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 @@ -193,7 +193,7 @@ function test() ``` -3. Desea gestionar tanto los errores [previsibles como los no previsibles](#predictable-vs-unpredictable-errors): +3. Desea gestionar tanto los errores [previsibles como los no previsibles>](#predictable-vs-unpredictable-errors): ```4d var $e:=ds.Employee.new() @@ -293,7 +293,21 @@ Excepciones que interrumpen la ejecución de código son devueltas por 4D pero p - un **mensaje**, que explica por qué se ha producido el error - un **código**, que es un número arbitrario devuelto por el componente -La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. +To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. -Para tener una descripción completa de un error y especialmente su origen, necesita llamar al comando [`Last errors`](../commands/last-errors). Cuando intercepta y maneja errores usando un [método de gestión de errores](#installing-an-error-handling-method) en sus aplicaciones finales, use [`Last errors`](../commands/last-errors) y asegúrese de registrar todas las propiedades del objeto *error* ya que los códigos de error dependen de los componentes. +### Error dialog box + +La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Expand the **Details** area and click on the **Save...** or **Copy** button: + +![copy-button](../assets/en/Concepts/error.png) + +Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: + +![pasted-error](../assets/en/Concepts/error2.png) + +### `Last errors` command + +You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. + +When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. 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 3550c1474663c9..658ade1c506dd4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,7 +9,7 @@ Lea [**Las novedades en 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Lo más destacado -- Support of S/MIME email signing in [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class through new properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos los bugs que se han corregido en 4D 21 R5. 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 a5992317fb2c28..c80c6243cd6f6e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -7,7 +7,7 @@ Un **datastore remoto** es una referencia, en una aplicación 4D local (4D o 4D La aplicación 4D local se conecta y hace referencia al datastore remoto a través de una llamada al comando [`Open datastore`](../commands/open-datastore). -En la máquina remota, 4D abre una [sesión](../WebServer/sessions.md) para gestionar las peticiones de la aplicación que llaman a `Open datastore`. Las solicitudes utilizan internamente la [API REST](../REST/gettingStarted.md), lo que significa que pueden requerir [licencias disponibles](../REST/authUsers.md). +En la máquina remota, 4D abre una [sesión](../WebServer/sessions.md) para gestionar las peticiones de la aplicación que llaman a `Open datastore`. Requests internally use the [REST API](../REST/gettingStarted.md), which means that they require [**authentication** and **available licenses**](../REST/authUsers.md). ## Utilizando sesiones web @@ -27,19 +27,11 @@ Estos principios se ilustran en los gráficos siguientes: ### Visualización de las sesiones -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`. - -En el siguiente ejemplo, se están ejecutando dos procesos para la misma sesión: - -![](../assets/en/ORDA/sessionAdmin.png) +Sessions for datastore access are shown in the 4D Server administration window as [**REST sessions**](../ServerWindow/sessions.md#rest-web-and-soap-sessions) with **4D** as user agent. ## Cierre de las sesiones -Como se describe en el párrafo [tiempo de vida de la sesión](../WebServer/sessions.md#session-lifetime) una sesión web es cerrada automáticamente por 4D cuando no ha habido actividad durante su periodo de tiempo de espera. El tiempo de espera por defecto es de 60 mn, pero este valor puede modificarse utilizando el parámetro *connectionInfo* del comando `Open datastore`. +Como se describe en el párrafo [tiempo de vida de la sesión](../WebServer/sessions.md#session-lifetime) una sesión web es cerrada automáticamente por 4D cuando no ha habido actividad durante su periodo de tiempo de espera. The default timeout is 60 mn, but this value can be modified using the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore) command. Si se envía una solicitud al almacén de datos remoto después de haber cerrado la sesión, ésta se vuelve a crear automáticamente si es posible (licencia disponible, servidor no detenido...). Sin embargo, hay que tener en cuenta que se pierde el contexto de la sesión en cuanto a bloqueos y transacciones (ver abajo). @@ -48,7 +40,7 @@ Si se envía una solicitud al almacén de datos remoto después de haber cerrado Las funcionalidades ORDA relacionadas con el bloqueo de entidades y transacciones se gestionan a nivel del proceso en los datastores remotos, igual que en el modo cliente/servidor ORDA: - Si un proceso bloquea una entidad de un datastores remoto, la entidad se bloquea para todos los otros procesos, incluso cuando estos procesos comparten la misma sesión (ver [Bloqueo de entidades](entities.md#entity-locking)). Si varias entidades que apuntan a un mismo registro han sido bloqueadas en un proceso, todas deben ser desbloqueadas en el proceso para eliminar el bloqueo. Si se ha puesto un bloqueo en una entidad, el bloqueo se elimina cuando ya no hay ninguna referencia a esta entidad en la memoria. -- Las transacciones pueden iniciarse, validarse o cancelarse por separado en cada almacén de datos remoto mediante las funciones `dataStore.startTransaction()`, `dataStore.cancelTransaction()` y `dataStore.validateTransaction()`. No afectan a otros almacenes de datos. +- Transactions can be started, validated or cancelled separately on each remote datastore using the [`dataStore.startTransaction()`](../API/DataStoreClass.md#starttransaction), [`dataStore.cancelTransaction()`](../API/DataStoreClass.md#canceltransaction), and [`dataStore.validateTransaction()`](../API/DataStoreClass.md#starttransaction) functions. No afectan a otros almacenes de datos. - Los comandos clásicos del lenguaje 4D ([`START TRANSACTION`](../commands/start-transaction), [`VALIDATE TRANSACTION`](../commands/validate-transaction), [`CANCEL TRANSACTION`](../commands/cancel-transaction)) sólo se aplican al datastore principal (devuelto por `ds`). Si una entidad de un datastore remoto es retenida por una transacción en un proceso, los otros procesos no pueden actualizarla, incluso si estos procesos comparten la misma sesión. - Los bloqueos en las entidades son eliminados y las transacciones son anuladas: 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 14403373880e5e..c69efa74fe2948 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -30,10 +30,9 @@ La secuencia de inicio de sesión del usuario es la siguiente: Las solicitudes REST descriptivas siempre son procesadas por el servidor, aunque no se abra ninguna sesión de usuario web que utilice una licencia. En este caso, son procesados por sesiones "invitado". 2. `authentify()` debe ser una [función datastore class](../ORDA/ordaClasses.md#datastore-class). Llama a su [función `authentify()`](#function-authentify) (creada previamente), en la que revisa las credenciales de usuario y llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) con los privilegios apropiados. + The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). -3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. Este paso sólo requiere un formulario de inicio de sesión básico que no tenga acceso a datos; puede ser una [página Qodly](https://developer.4d.com/qodly/) (llamada a través de la solicitud `/rest/$getWebForm`). - -4. Si el usuario se autentica correctamente, se consume una licencia 4D en el servidor y se aceptan todas las peticiones REST. +3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6569262f2949934e1b2af256e301b7110e20055c GIT binary patch literal 26663 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 MYI>@u+jfus1MV7mGynhq literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e79f7c74dc328507b93fe17fa8370ae866f1367 GIT binary patch literal 21324 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 C4wF6r literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md index f037914f8ad404..62870bec0caff1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md @@ -193,7 +193,7 @@ function test() ``` -3. Desea gestionar tanto los errores [previsibles como los no previsibles](#predictable-vs-unpredictable-errors): +3. Desea gestionar tanto los errores [previsibles como los no previsibles>](#predictable-vs-unpredictable-errors): ```4d var $e:=ds.Employee.new() @@ -293,7 +293,7 @@ Excepciones que interrumpen la ejecución de código son devueltas por 4D pero p - un **mensaje**, que explica por qué se ha producido el error - un **código**, que es un número arbitrario devuelto por el componente -La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. +La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Click on the **Copy** button to store detailed information related to the error in the pasteboard. Para tener una descripción completa de un error y especialmente su origen, necesita llamar al comando [`Last errors`](../commands/last-errors). Cuando intercepta y maneja errores usando un [método de gestión de errores](#installing-an-error-handling-method) en sus aplicaciones finales, use [`Last errors`](../commands/last-errors) y asegúrese de registrar todas las propiedades del objeto *error* ya que los códigos de error dependen de los componentes. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md index f037914f8ad404..000dc244d183fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md @@ -193,7 +193,7 @@ function test() ``` -3. Desea gestionar tanto los errores [previsibles como los no previsibles](#predictable-vs-unpredictable-errors): +3. Desea gestionar tanto los errores [previsibles como los no previsibles>](#predictable-vs-unpredictable-errors): ```4d var $e:=ds.Employee.new() @@ -293,7 +293,21 @@ Excepciones que interrumpen la ejecución de código son devueltas por 4D pero p - un **mensaje**, que explica por qué se ha producido el error - un **código**, que es un número arbitrario devuelto por el componente -La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. +To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. -Para tener una descripción completa de un error y especialmente su origen, necesita llamar al comando [`Last errors`](../commands/last-errors). Cuando intercepta y maneja errores usando un [método de gestión de errores](#installing-an-error-handling-method) en sus aplicaciones finales, use [`Last errors`](../commands/last-errors) y asegúrese de registrar todas las propiedades del objeto *error* ya que los códigos de error dependen de los componentes. +### Error dialog box + +La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Expand the **Details** area and click on the **Save...** or **Copy** button: + +![copy-button](../assets/en/Concepts/error.png) + +Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: + +![pasted-error](../assets/en/Concepts/error2.png) + +### `Last errors` command + +You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. + +When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md index 14403373880e5e..c69efa74fe2948 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md @@ -30,10 +30,9 @@ La secuencia de inicio de sesión del usuario es la siguiente: Las solicitudes REST descriptivas siempre son procesadas por el servidor, aunque no se abra ninguna sesión de usuario web que utilice una licencia. En este caso, son procesados por sesiones "invitado". 2. `authentify()` debe ser una [función datastore class](../ORDA/ordaClasses.md#datastore-class). Llama a su [función `authentify()`](#function-authentify) (creada previamente), en la que revisa las credenciales de usuario y llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) con los privilegios apropiados. + The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). -3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. Este paso sólo requiere un formulario de inicio de sesión básico que no tenga acceso a datos; puede ser una [página Qodly](https://developer.4d.com/qodly/) (llamada a través de la solicitud `/rest/$getWebForm`). - -4. Si el usuario se autentica correctamente, se consume una licencia 4D en el servidor y se aceptan todas las peticiones REST. +3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6569262f2949934e1b2af256e301b7110e20055c GIT binary patch literal 26663 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 MYI>@u+jfus1MV7mGynhq literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e79f7c74dc328507b93fe17fa8370ae866f1367 GIT binary patch literal 21324 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 C4wF6r literal 0 HcmV?d00001 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 325df5c38eaf06..8f42fbbb8a8ad0 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 @@ -193,7 +193,7 @@ function test() ``` -3. Desea gestionar tanto los errores [previsibles como los no previsibles](#predictable-vs-unpredictable-errors): +3. Desea gestionar tanto los errores [previsibles como los no previsibles>](#predictable-vs-unpredictable-errors): ```4d var $e:=ds.Employee.new() @@ -293,6 +293,6 @@ Excepciones que interrumpen la ejecución de código son devueltas por 4D pero p - un **mensaje**, que explica por qué se ha producido el error - un **código**, que es un número arbitrario devuelto por el componente -La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. +La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Click on the **Copy** button to store detailed information related to the error in the pasteboard. Para tener una descripción completa de un error y especialmente su origen, necesita llamar al comando [`Last errors`](../commands/last-errors.md). Cuando intercepta y maneja errores usando un [método de gestión de errores](#installing-an-error-handling-method) en sus aplicaciones finales, use [`Last errors`](../commands/last-errors.md) y asegúrese de registrar todas las propiedades del objeto *error* ya que los códigos de error dependen de los componentes. 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 d80469bffbb079..a5f3a1b44ac885 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,6 +9,12 @@ Lea [**Novedades en 4D 21**](https://blog.4d.com/whats-new-in-4d-21lts/), la ent ::: +## 4D 21.2 LTS + +#### Lo más destacado + +- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21.2): lista de todos los bugs que se han corregido en 4D 21.2. + ## 4D 21.1 LTS #### Lo más destacado @@ -312,7 +318,7 @@ Si sus aplicaciones 4D utilizan conexiones TLS, se recomienda actualizar a 4D 20 | libZip | 1.11.4 | **21** | Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet | | LZMA | 5.8.1 | **21** | | | ngtcp2 | 1.18.0 | **21** | Utilizado para QUIC | -| OpenSSL | 3.5.2 | **21** | | +| OpenSSL | 3.5.7 | **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) | | 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 | | 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 1531d9a665baa6..cff6f0985e915a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -102,7 +102,7 @@ $result:=$transporter.send($email) #### Voir également -[.certificateName](#certificatename)
+[.certificateName](#certificatename) [.certificatePassword](#certificatepassword) ## .certificateName @@ -121,11 +121,17 @@ $result:=$transporter.send($email) The `.certificateName` property contains the name of the certificate used to sign emails using S/MIME (Secure/MIME) as it is registered in the system Certificate store (*keychain*). This certificate contains the private key. -The certificate can also be provided directly as a file using the [`.certificate`](#certificate) property. Note that you cannot use both properties simultaneously, otherwise an error is returned. +The certificate can also be provided directly as a file or blob using the [`.certificate`](#certificate) property. Note that you cannot use both properties simultaneously, otherwise an error is returned. + +:::tip Article(s) de blog sur le sujet + +[Signing emails with S/MIME and SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) + +::: #### Voir également -[.certificate](#certificate) +[.certificate](#certificate) [.certificatePassword](#certificatepassword) ## .certificatePassword @@ -146,7 +152,7 @@ The `.certificatePassword` property contains 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 dae311c5bdc397..c6c377f5debb8f 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 @@ -193,7 +193,7 @@ function test() ``` -3. Vous voulez gérer à la fois les erreurs [prévisibles et non prévisibles]{#predictable-vs-unpredictable-errors} : +3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: ```4d var $e:=ds.Employee.new() @@ -293,7 +293,21 @@ Les exceptions qui interrompent l'exécution du code sont renvoyées par 4D mais - un **message**, qui explique pourquoi l'erreur s'est produite - un **code**, qui est un numéro arbitraire renvoyé par le composant -La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. +To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. -Pour obtenir une description complète d'une erreur et surtout de son origine, vous devez appeler la commande [`Last errors`](../commands/last-errors). Lorsque vous interceptez et traitez des erreurs à l'aide d'une [méthode de traitement des erreurs](#installing-an-error-handling-method) dans vos applications finales, utilisez [`Last errors`](../commands/last-errors) et veillez à enregistrer toutes les propriétés de l'objet *error*, car les codes d'erreur dépendent des composants. +### Error dialog box + +La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. Expand the **Details** area and click on the **Save...** or **Copy** button: + +![copy-button](../assets/en/Concepts/error.png) + +Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: + +![pasted-error](../assets/en/Concepts/error2.png) + +### `Last errors` command + +You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. + +When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. 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 39aa2ee6f29203..34ee30e04c7537 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,7 +9,7 @@ Read [**What’s new in 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Points forts -- Support of S/MIME email signing in [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class through new properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=21_R5) : liste de tous les bugs qui ont été corrigés dans 4D 21 R5. 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 7797c58a2a0f96..1109869da22008 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -7,7 +7,7 @@ Un **datastore distant** est une référence, dans une application 4D locale (4D L'application 4D locale se connecte et référence le datastore distant à l'aide de la commande [`Open datastore`](../commands/open-datastore). -Sur la machine distante, 4D ouvre une [session](../WebServer/sessions.md) pour gérer les requêtes de l'application qui a appelé `Open datastore`. Les requêtes utilisent en interne [l'API REST](../REST/gettingStarted.md), ce qui signifie qu'elles peuvent avoir besoin de [licences disponibles](../REST/authUsers.md). +Sur la machine distante, 4D ouvre une [session](../WebServer/sessions.md) pour gérer les requêtes de l'application qui a appelé `Open datastore`. Requests internally use the [REST API](../REST/gettingStarted.md), which means that they require [**authentication** and **available licenses**](../REST/authUsers.md). ## Utiliser des sessions web @@ -27,19 +27,11 @@ Ces principes sont illustrés dans les graphiques suivants : ### Visualiser les sessions -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`. - -Dans l'exemple suivant, deux process sont en cours d'exécution pour la même session : - -![](../assets/en/ORDA/sessionAdmin.png) +Sessions for datastore access are shown in the 4D Server administration window as [**REST sessions**](../ServerWindow/sessions.md#rest-web-and-soap-sessions) with **4D** as user agent. ## Fermeture des sessions -Comme décrit dans le paragraphe [durée de vie de la session](../WebServer/sessions.md#session-lifetime), une session web est automatiquement fermée par 4D lorsqu'il n'y a pas eu d'activité pendant une durée déterminée par son timeout. Le timeout par défaut est de 60 mn mais cette valeur peut être paramétrée à l'aide du paramètre *connectionInfo* de la commande `Open datastore`. +Comme décrit dans le paragraphe [durée de vie de la session](../WebServer/sessions.md#session-lifetime), une session web est automatiquement fermée par 4D lorsqu'il n'y a pas eu d'activité pendant une durée déterminée par son timeout. The default timeout is 60 mn, but this value can be modified using the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore) command. Si une demande est envoyée au datastore distant après la fermeture de la session, elle est automatiquement recréée si possible (licence disponible, serveur non arrêté, etc.). Cependant, gardez à l'esprit que le contexte de la session concernant les verrous et les transactions est perdu (voir ci-dessous). @@ -48,7 +40,7 @@ Si une demande est envoyée au datastore distant après la fermeture de la sessi Les fonctionnalités ORDA relatives au verrouillage d'entité et aux transactions sont gérées au niveau du process dans les datastore distants, tout comme en mode client/serveur ORDA : - Si un process verrouille une entité à partir d'un datastore distant, l'entité est verrouillée pour tous les autres process, même lorsque ces process partagent la même session (voir [Verrouillage d'entités](entities.md#entity-locking)). Si plusieurs entités pointant vers le même enregistrement ont été verrouillées dans un process, elles doivent toutes être déverrouillées dans le process pour supprimer le verrou. Si un verrou a été mis sur une entité, il est supprimé lorsqu'il n'existe plus de référence à cette entité en mémoire. -- Les transactions peuvent être lancées, validées ou annulées séparément sur chaque datastore distant à l'aide des méthodes `dataStore.startTransaction( )`, `dataStore.cancelTransaction( )`, et `dataStore.validateTransaction( )`. Elles n’ont pas d’incidences sur les autres datastore. +- Transactions can be started, validated or cancelled separately on each remote datastore using the [`dataStore.startTransaction()`](../API/DataStoreClass.md#starttransaction), [`dataStore.cancelTransaction()`](../API/DataStoreClass.md#canceltransaction), and [`dataStore.validateTransaction()`](../API/DataStoreClass.md#starttransaction) functions. Elles n’ont pas d’incidences sur les autres datastore. - Les commandes classiques du langage 4D ([`START TRANSACTION`](../commands/start-transaction), [`VALIDATE TRANSACTION`](../commands/validate-transaction), [`CANCEL TRANSACTION`](../commands/cancel-transaction)) ne s'appliquent qu'au datastore principal (renvoyé par `ds`). Si une entité d'un datastore distant est verrouillée par une transaction dans un process, les autres process ne peuvent pas la mettre à jour, même si ces process partagent la même session. - Les verrous sur les entités sont supprimés et les transactions sont annulées : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md index 19dc026c7a6a14..6ee86ff9e8c0b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -5,7 +5,7 @@ title: Compilation Vous pouvez compiler vos projets, c'est-à-dire traduire toutes vos méthodes en langage machine. La compilation d'un projet permet de vérifier la cohérence du code et d'accélérer son exécution, mais aussi de masquer le code dans son intégralité. La compilation est une étape indispensable, entre le développement de projets avec 4D et leur déploiement en tant qu'applications autonomes. -## Compilation incrémentale +## Compiler La compilation est gérée depuis votre application 4D et est entièrement automatique. @@ -39,7 +39,7 @@ Le nombre d'erreurs trouvées lors de vos premières compilations peut être dé > La compilation nécessite une licence appropriée. Sans cette licence, il n'est pas possible d'effectuer une compilation (les boutons sont désactivés). Néanmoins, il est toujours possible de vérifier la syntaxe et de générer des méthodes de typage. -## Exécuter la compilation +## Exécuter en compilé Une fois le projet compilé, il est possible de passer du [mode interprété au mode compilé](Concepts/interpreted.md), et vice versa, à tout moment et sans avoir à quitter l'application 4D (sauf si le code interprété a été supprimé). Pour ce faire, utilisez les commandes **Redémarrer en interprété** et **Redémarrer en compilé** du menu **Exécution**. La [boîte de dialogue d'ouverture de projet ](GettingStarted/creating.md#options) de 4D permet également de choisir le mode interprété ou compilé au lancement du projet. 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 34b2db5e7bd73b..e5af84c39bf08c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -28,10 +28,9 @@ La séquence de connexion d'un utilisateur est la suivante : Les requêtes REST descriptives sont toujours traitées par le serveur, même si aucune session utilisateur web utilisant une licence n'est ouverte. Lors de la première requête REST (pour un appel de page Qodly par exemple), une session utilisateur web "guest" est créée. 2. `authentify()` doit être une [fonction de datastore class](../ORDA/ordaClasses.md#datastore-class) exposée. Vous appelez votre fonction [`authentify()`](#function-authentify) (créée au préalable), dans laquelle vous vérifiez les informations d'identification de l'utilisateur et appelez [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) avec les privilèges appropriés. + The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). -3. La requête `/rest/$catalog/authentify` est envoyée au serveur avec les informations d'identification de l'utilisateur. Cette étape nécessite seulement un formulaire de connexion basique qui n'accède pas aux données ; cela peut être une [page Qodly](https://developer.4d.com/qodly/) (appelée via la requête `/rest/$getWebForm`). - -4. Si l'utilisateur est authentifié avec succès, une licence 4D est consommée sur le serveur et toutes les requêtes REST sont acceptées. +3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6569262f2949934e1b2af256e301b7110e20055c GIT binary patch literal 26663 zcmd43bySpJyD&Tof+8UT(xG&Bry?LFNJ^uWbPgRN3erk9NH-EgGeZbS=MX~)2t$L^ z0K+if?e9F#dDmI%J!_r!TkBiz_s4M0zGq*1U;B!^ui8Xvzf>V2pdkQ(Kt!r9p6h@> zw?6Ht@LRsiX1?R6RiL@QF9mp!qq310Ep^N9wNKqYumAbf%>1F}nB{q#WJTlyIQZG39V>P5mE zs-45b*~=3od}^wIMD9WXIhs9Hq@J1-_lD}A_?5jtzhs&X=KamBU*e$(ol76-IJvky z#ADUcO%<*B*m{%bo3Q!7DV{hAMnCOR``EdxL7- zUT2(zlT}ZOlCf(MwXtkE8HPnvHqSbDLS`r(;Dam{oxX4p|a-HJ7$G(MO^Yk zp0JJOLf=pYzULkKT zRI;T}(3_*Ssn(mT-LpUOA*KM{gm+hhP-Z;>gr9oe#BvgpdJT@y$h%|($R7O$@49i6 zw!O#*8focr;h)+VxlHf@ms`FHBf#5`bX^PVc}R$$%N+5aC){xCkW9`;Pf?Th)-6;#POS`J5`d{Ja0@oMQXxP(OhT3e~3qvJ0_*vZl$ga<5(vZg{?^|_I@g4CJ(irfN{YX{WYS1;gQSzn_#9+aL!%Vj+=SYv znh#S(#jKe$v1-)#VPZA9PmH?qL`}LISlW^5?R;xUb#YmU(`M}8aWfv*$}S^c!C5ot zVo0B?dZxt_spqvl$r?-R^C>_IkLOR{!2o^G#pXf6)0M)cf#dl*VU0ihI&k{t0@Evd zQuyZTt21xm+RqQuZp@9oPZ`seo0a9b)o&u&(^RS3#Xt$N-imTx|2yL4IwfVqCp2GT zS9USe0Uz}qGLL9qEWyWd%}+H=e1OCZ$xfx$9c)KaY9pj|yZ?aj-6i3M=MqkeFQR=x zhvVn^?e{!X;cspN2?<_2T{H_{%lIDlJ=BSNYGW;|T!VFV7h&FAOhzL!vpV7_*T%E& z>ou{zRl}3_;#hM)J zig~-&l&qiA=&Z*aBaRd!NZ`2;G49Is(jmmsT>td&7jM%R|IPJiv)`9N&;bt=7Dkvi zrXz&Y{T@l8&F;eO&cHfqhe?-kEw>bSlqTgjhMY)x>OD?OC47%ALg(?mx-rAjA#0-5 zpfv-CikKSz14W2&HM@6+1vY4Crulq3w~d!i_+mOf_Z8*}7G;aML8nwrBsllW`)~p4 zzB(Ni!iYVbXjWyM2wADq2NoR3y^mOMt6t!{WjDAS55Q|iA6~0@h3w2?^}S>d>grA; z_Apf9+sskz$5B=zVXO3@LcMXHFFf%!3U%|!VkiE!V_M}*FC!OJTjwv%SgN_*yEHbx z3f;%c7RnGG0uxVbJ6V+$5wznURpY;ZoaoNPp-Sn$qH7YsK{Ks7=_3|wq9QGoeZ@YBn@ zrZP{Lt;_PdF=31{(Rb$|YBnI}$7Pa$g#-1-E{D9G2o?k=g5<{1zWqiU7Q|#&7wq7R z6_%d_@cw5qfGZOg*O%G;08Xrqd%2Z$wJd+vWl?3uteSClxj=ri?@I3&WoNguXas{{ zZ(L$CPf3I9)|(RXtVabuc#pHI`qW(5E(+xm;uUP{S-~W71Te5*r0eu0KlUMJVHtJp zf%oYkHEcG!*RS7Oi&lpLo#{DWDQ}1-Gf_D{fHc~S>;!Q=M6m}m90qC1K&me*;cPDa zEis#5r#`f=2eZX4uUD|F3+Pk7K+K-dhnEp1A?2IwC^ZAn*F*sc%!Pgq5^9?5!H%htf8)ONE(%8e05@2SB*_`4S z2Bv$<9_kHFPW3nfsKlQZ*v+VS^J1yCK{sNuwP>{aI`-xyi+tf~SC&88gGzGQ`vR7K zcxGS%8NPiyD?tHffN)Jx^ML7)e@J-P(wWh@($(&LP`FAS1OhL;nhM!<8AAZloWCER zP7=n%DAXQn?H4u}Ply6{;?><~qz*K^&Tc{&CrkVs)4E8!ah3F+QdyBxaf$4zG93 zUidkCj@KLHum@Y(Cq7s|f<6RUz5}Lc2zeRq^hGVr`%f!@v|(*me&)y$ftj3-C9qZL4w*IJ)ls$?edbual;kDHd@dcPCYo!-cIelR<`JYi zO=GX+3`L1e(QbL*h)yriCJ|mO@g_F$fqoN&GAWncS`1B8qaf^aW#0&lqvE{`6dXXR z$^b{N?53&{O*>BsMYfi&pXroix)m1woD^3rO zEDc9N3im_74Cp}O&SML7_P&4Oh%27$c8E73=@gHFaoxtPKHiyMj>@Z&<&8g0I{mXv zj}9o0b>Q$PODgm|(BfTO6~HKyxZ{UEVhOvia2!$~0hI+)+F>6=${^JtBi88c9R63W z+xO~Z;!M>TH7Fk(PJNyHEGY(JR{N_17n7;b-!AwdP$$RvqUYFGQd|(|i2F9+nSgSi zJoww-{GT<-p7c<4!oUE;d(sgBLLtEW0R<~D-35Vu>Eixv$o-!+3iuy5k!0`#fQ2Gg zx4TYU|Mk7~cGr1c%s_(R{2<|N5QwR4g5qvY$P^*2yn_wiEfDC-^wvGxDyKXaP6Y$E zQiyD`Vkmyw;>gkX`7h!-&>P`TOJw2Q-|Q%wF-DM<1(g`SsN!=F}<_Fac1V^eiy90@7CdKh4YDR@l+jqsKZa=jX8yB0b`!MASFQYUZ`V55@Cr>R3zbX7Pm}DUP-MDXM<=bTQj0_W6 zyrEc2PiZJ~0FAbO9?-fJyPei$^>pQ(MQX}nY>+p7wV&e2vDXq2i;0mjT9leU*hv52 z9@Y0KbU8h$94=)n-79-v`O5_9-PXF$#;-{fxB}f^^^BWvF}8aMMDRtOo@W8qBAIgQ zrO%Hb`>HEMRrxq0MRC3$K}YcstaU+PGWJ?woSXI?t-aAxEpO$#Auets>W9(`R;h(_ zD+y$3Bh@iU*+q4_*OBvh@ftDuH<6Cgr%v5XCl}7_ws+Qs2>xui2EZn(m_wKF4}?BJ z#@zc;-RL%Jl~Yka#hTS0Z(g-Fj1~kk4uLXuvuB@_ZM+SDdBeo1ZymiwntWy_9fP#*U`S3bH@bT=ag3=HB)umaXXA?{83= zOo5#v`gzdYZ~Wr@05K?%Qk$PI!XISOoEU`p*zMO$C=R*m_1`Cr_na(BNr^NzcZUQ# z>u&kXFf@>Bf4*O34Ce(qxt>XoD9+*^j3xazD-_r#riTc56hSQ16JA`#7=Aud=0=9KQbjF|9dq_e zW|IY#&SJZiv_tpy$K|$Gh(pY~F|#+P9T{t9gB0O^7AX#j2nNe!v6fr%bb>Ei*a1I) zs)j}y+d~#Ehb8G7O{E{<-xEK*WG4(lHWy3?5QiY|Ddw)Y(#18t9+IAM9X%U#0=4TX~Iq-uU&wyXb#7$s)-e$ItxFb;;%*slO!G5PP5<|Yh5iM3m`X}e%p z)64x!d`}Z#3a+gF>toV_CkIjg5k)H=wo;&wHaQ zw3ddfk0le2px___))zCb)w}YmvcLUFSOUcsb~WFr%b@xx8NLh9yn*+YtBdC4H2HJ&oV zE^5wLQ+$<|Eb>Cgly%}jiJ5sCoA-ntG@2( z!VP(qX>fsce7e-7u(MOks|ZH7VR@`DLK0JXeqF!5;9L%7@zrcQZ~q2a0W-L!A9T3B z<>3|vde|rLc5BMda`nzIy7(KJIM~|P7ciDXH@7MjVKe0iwBR|(99INAB1@=1P=Epz z^w>MNWa(RkLm@ByjJSV*{MyyQkQ8|3$J~lhdTBPTRllBbK*h`s5rj_1HYnqxCw0Bd z*2JR@Vtgol(RPj7)DS`lW037}KHDHY{oB-M6g@4bq;HW$CGC@NcJt~w06ux%lgf&$ zE$rB|3NI#UJ?+?!YBOJ4&@nx))MrnrX{;-r=dQwd1g5vFDVL#x#&|aJ3a_#TPV2dz zmZS6^W#y`#$QNW!bs!$1Z1#P!sdt2&Z>rbRh%r(J^;!exV<&R!dc`B7wR-`s$&F2H z1KMv3spdm16KX?UnBP|Bq2G|s_TWZq>;d3Qo$a+vh@4u^5Kb ztzzzymYSgFrbpD2EsRNR3gWzRc7^NB6753_$NB~v&mFgicD@%!XklNKx4e0QmtMjJ z`5i28I;)wbaV4TlCc19xlj-cXpbEFB>F_t8upneJRVfO&VlV&xA!-q2uVD}D9t+2H z>yc{~j>$61sWYjZZF{sqm^0b~YFQ#x#w?i%E2#>7_4To-_LPhHa)!@A-f*wI7Zz%o zkE^XS-&k1l!jT%qx%&5XI%@Fx(I+bd>mA-F@QK=t)u|8-4YAjX{8^K({Wb`CsjDSg zcr9ku9@d=a7Q3h*km!`>Txfmgek6s=!6kCGP|?*veT1l7C*8qexba9H`;va!<%!FI zr8v7*mge-!ezNGC(9?#<3<{Wb5_((wWP<^{Ax?d2|B?{y9c~PWr`AM_rb$1oahuGg zU=^lXg^_$(w_1G1t^0;`>`Gr&dq2HaZH$gl;_Q=rWYEh%lrl;~k(obNzo*jHp!*LM ze|22N=gwSZ7pAl~fZ9E&`w&Kv+UqF+u*W6dHHI^twK~plMbOpS;9hh2nliZkD$YFM z%qh@FBHJ1*#=!`WA#{;&CSjPWMVEtj?Vo$#uhTZ)y@@BI<~)fqNg@AuehL!ry4T+AdjB zuWU)EmrE0SRlm5=6DWCF-1t+J+)Cp2M*ZOQpB-uU5I_h74-QR*#vtjDFR?~qZU6(4 zvS!JZv!3(_EINPU&veQgAu;N*_u2ZEQEv>HJ`sIEvG>lwCPUBf($`3DQ~GZ%L%zL-E0i_*sgpjSS%x*)-BhzQbSbK z_1(H6Y^suczOy`vwkXBwp4L|8Y+8O-zV!PS>^?!3X2=kFtQ?WJtYdZ)VCg(X@#9~c zRDCvh*ANL1osh2Z2;txn~i&nGjsWqXch^D9BduEzZ7T5ag6s& zHCTjf*V4yGgujUykFiXdS1@^McZaOcl?5I7e!86Dd&sz`SfkAtWkq6&yH3WV>ErDv zMiuKOzgQ&=`zV8(Ac!~Djf8mcns69bX!1<($ndFTzrcPAVz`se-vBs`!7^VgiSrKT zmK~OTf&H;y#uE7&2CJl=c#2^_x1aiCyjl8H&X8ua>{MkBx%xmnE8#urrwCozMbZiB z7mx6dP8uV9`{HOP<>ww?-hS^nK?)|Q&X-6g1xs%-1qTqCZHAVrgz#drQx3r?T{4>k zgyfT7!5scrG#9)U@+l>6o8$fX*}6oG-|z9xC0fzN!7I zGZd#U7c-yRvT)xpK)Vl)b03$L^Qe*B7mH{A@`vm_s#n07Bhs%+5_p0Ej!61Y z>aJV1IL>#nDR6~sZwg6RsX?8VF_j8#OjbBc*8&C)3N%t@S_UnhNg5sWn2Qy#6=om-&yxv`akA0!9y z5I+e3gC0gp9cszfhu11-@Bjq5Sp0bxS9lojQOMfcMQ-{!z>(-2BanYEtRgn9{7;A1 ztN0(NZE^6UDwzOhrK0<$Df}dzsNpLG;EBlTU0`S2a{j>s0E{OPe?S-Ilo$I?*KgfK zxDgz*@0hs(ALY7O0H^EQ@V{`# z7zaRkZ;T?XPEQM3RJ?u8? z%B#HJkIPPm`F$LZNch;ooj< zZni@94Hd%sVpNa0#KIH;%zFf;XJUT0AaCmp&?6aKhhWt?KYaP$2BRY}}?Hq(g` z*p*NC%^&%=3HeISNiy&)j9;%!(9s*%%`BGB05hsCb+H>wBfmUMkg?115TMQ{SKr%R zGB!A9^NuG6$x-wbXQ=-8`|ZbEiV-&`C1*^DoSAH~MJk`!WU^Hecg@``1UF6wSp6#$ zgS3JlQHJ-$wdJj;D_tGL^Kp6Y~ zyq?aQ2B~8DSkKH33@vgWn;p#d4q^PUJ;B)lFpKEHzAf(hA`(7xJ=dCVj9~NWG(qdz zw?Lgg1y4gQbLv8IZ16+Z`)T}lF~Lhy7ol>O?uyv$QTMA~?U&M_;S>ClgZ-HBZ|aQa zyF)fsBCF+cW~5uQ>ahK(mJ?fhs(+Y)Q25?i7n(4=vQi_cgxN`L2u9&cq29n6E9q+D zV}!kK-sWCa<)#Y8yuNIP!7PycXS=PAg}d@k0E~6V7}4N!MaP)D0A|3czf=0|1*6kX zPqFV8WR&aX>34sQC$Hc3|J~16j)n~RAJ=?(L%w^%Udd)M9kzLgns)s}0jy?%3YHL@*dCMlNp$LjW#JyMDOx)(?pIm+8O zz0-IFTb5d=5k5TK^?;qamQXmF3R>a*!wQj5%g44jM2g{s@h`V#LrmmeWhgB|Rx4YDSuGK- z7Wus3f)}$f{FA4dMfvYVY-3K((UU&8EtT2w9hLDR4KHZ1Z!2$pBZ4XLhZVjz&vgj? zB?#FZEClvvgFj?`DMxz$DYYSqCR1AMO@%mz_Az}2W`_FC?OUFm)(S#;g+cu|4rqN? z>&vs`()w2cJvTzR=BNp_+eHfSe{hEly|v0ri|WX!S1vkLIe$lGj~f*P>5 zkVCI+aqo-Ja;Vav?a$0F$F7dT>IrbyLJl@ExJQJ(CqAx!%%m9p`0PwQM8M%Gwv3mA0I-CzsAq$HT<(i=&%$2+=xnnnlRgpq%pC(;R0@P3sWoNaN3535m zUR>VC9fNV2ao!oFINIII%s85PrrCU5*=OblscyZJGPCcft}`EnW$zoB`epZNHor79 zmo*Q4qL|C?r;I(*^*oz!{D}u3^7XO274AZqEt5oosjL}hHqbn%ceVoduH72fn&`fU z^^4H=-z=2nrUMSI&9SzV{9Y%`D```GD@-Gi&8YxUI5@`S&`vr3L=VXuuH|_E8GZlZ z|11dj-v-o1f27IT8b`y zuq0F$RQ@xB`AXS-FW~<-5M;fo(OB3q|bsx?C;af zRO&-6+tLm7wqC2Rl?3|ED$`e#x`~%e6oW&-YNna$2~2EA9T)aWGurrcJ@( zZ@Xhb+`dy?HS@`4n|oi`7Q|LW)p=C0tb78&%bOEqRy$R@Shj%>2H$o0?Ux`mo>=ZM z;}G3{#;xk$I8h661Up$B;KY=VgvV`eX<8UVOc7I?E%D69o=iRbKiqG*!ENbtAZjb> zi+4beZa-Zq*BL<&XZwyU<#5-F?9M6A60ub_%GNgow$u|{TAia54J_Z_eJWYQiJeR~ zHljf5mQQv_#}BM8)7N+v#pNK(%HJuVe9OsB>Z?%A3tPT_UbC(E|Ajea;7JnCG; zA;@NHXj^LA($Mcm>445L7%6|X9Z8Ig`D4@nkpg0GW|`CYE_(CM?Tn5J%{E)yi(!d}5V0&bhajuZFr-9qd8VO=U1|GCugrJ6qE zI!%nt%O%q|j@MA%zHInorj`GK)Sa1qp|RKw#vC-8YK@<{k2m8-pOLr_eqX|l7tMS! zjr#h+>J>W0J*K%hsx#SpG%rJVZEqyM_!86o75^PBuvg{ew1UDeVtBt*9v|U7GBd4D zzw=sDv@w^nZV?1no*$_tSg-=%cP1qY>Y5GDeH<wW{M&N2v)x^`i7s zb>(!H)J8DDa3XPka$FUyyKkzkbcxMtp%tOARyM8u=~}Pb!%5|Sh?AX$x*@Re>Pd&c%4=d?G-+Kl%NsDfJ7DZuw|)*ic&lb8 zM^4%PafD;p)UFDwaemfNJ<@Kw|M=dhGwXnpe=sqNS<_{&5Tak&>XrxF>|3^69OvEJ z6OKy)FYPZG3|kO`3Wj=VNPAEHG9*#~K3E_Hsqd!gvkZZ1PQ*l65!iXk;>bN?di@~F z3U{eXsom`&Ejd<5{%1+`j<(7pFukYKIOl%l+(T~cryeO=n?=AExUFkgRFz@e`@wYCZiS?n-A^F&Uzatv|A~)yHm4Qy%9aSO?yLNVivY-(P(v z)>Lj=1EGnwcKPe2B*ZXk=ZBQFZqz|z#vjqc^{?W-R*d{e1Fbg zykc-LCfoO?gR~8Pz$U&ATls-#)6`6(NL}yzVTH%_ zzeagVBBB#gzgiB&s_r{Y6QYN9-bl|4 zT^nm)B_Cirvq*#9@rh!ARkSEFNpvTrjOwVg(t5F}8SZ>Dsu&i^NG5epEg2@cA{hC8 za0*b{;BuCZaf2>k`n==E*_OJ;VPSnfjL+7aRm__g zIL*k0+!I>k)A9SeBpt10GHL<(N9$&F%ps_b8>1?-}h%vF>=5cn6L#-vKP&ZOn>6RM=?W(2uUxK*7e$dY>@X~&+OgSKqJAV1SoV(JiL zYeAmdM~`oJeJysVf4ML7hVckb;YqB3{G;!>@ zJ;?UA;{as%h>K`wSW2eBfI?Nxx`;b|=ZHr|a?mrT(62|3@sXd-ZgF*89f9rlhxDF? z`UQ|25_jtgJ??mh86LX<;|QztL7v7$x4`o>Wg~I_`6&nR+Y}#?R()sh1Cy$T#R@uh z?#?Fl>rG8;srze>9ArvHVLGJ`+kjEGct4I*xL|Y5P+363b&`Iyr&c|qn$hJKc>Jw9 zw|R9EdR`2491yOM*nY9yk3P8-33OXD8jP0{ncT#D*R)Sgkshjec@U)jXq?5yB_O&! z$+%TVg=EabnsuMB_~ct`8KQoXPc~CWR^%auPCEf?ViSy(Fs5VYT6Yv20XC&gUH4q} zKO}{(D=jAjUl;OjBNgo79s`%(UzkKUR)VedZvD8ox6m~9y4|<7jlPq^Qa&b8wPi_t zp>>{MCDVU#XKS_?T;J0w-VSbHbkpP1tXp^8vKBDo|2(+?EG*=i|KBR%lQQ# z4Bzvp2-vrsvcBmuOMS*aw!_|F2pSq1sMJ$<+_eCQzmucUbw%zU$LNA0lnF3BwMhSZ zNf+e*e`!!qhp)Q)gQ*=A9`)aZJM6zC+zGCKv&#!QI5;fsQ{9&Lw}rIv|t<%dqw2?-CA^~AZ~YDJ4wv=%;RWo0dQiQ||wtpa}75cVbz zO)4!cG#(-CKR@~2rL7pLHn;eUGNY)3Eq{Oq(8 zY$OmoPs#(#&KkRcXmrgS+&wQVam;)hu~gZ5^|H(**Wce*^g4q6)d_Q~&Jwg+2EWV3 zVac#$^s2S{ZpJMTGhV1=D98O}Ym9~VkQi?wwM&+PkKLkEfkyhO?k;*vYrGY1Z%d}Y-HBOz}C zyEcYe^^&-{s)86N=$>E%K-x?jzyX~*ox7?$E;uuO>mqV5z-(rS%Lq}ls46 zEL+EXQ%d2W9oc~st4`PdfQ*~AUu~1EEykFBmSi+ocxbu$rWVcX(lY0*h)=@`=cK{M zOD%(x=ns8JMv#w8x1#6x?E6v9r=~_lwm$M~FY9Y=sc*2IojU2*xTPBh_&0FUWEwcU z$}X&a;Uo(bOgv?h*yDnf+2!s?(Zc8EOIasCKO9n7Dn#how$+Uhr8zka`xS}P7oVxU zUUxm!(u(&VzUTjgB8}I1@0Hf9ShBi9;15E%XGH4Lr5?_^JFm37GR>bjRP*U}G?oo5 zE8BJK$b69Z`JVD1N#8|h3@QZ{6U(r|-M?qh2F%f}>h9O99X7Zltq-kImz9;>K^Rnz zUe#TI8gz|!BvSfVZF9qE)EWvW_SEZ1Xdo;ud+R!)#=9C@ZO7YniK%7a^1T~|ibCf* zCt!3wx*X`wsOKUymbkQR#4nsqsne67T(&sTPu*(o-!eU4HFW^!1V~?!;R8Vx?mm=RFWSTW9%*#B{N6dm}*##bq69FDz`wu&0r47L`({ zT|aE07s<$+CdN$V@cBN0mX8k`C#5xrk<#~a#2k-c8?=Zf%A%L zgRqB*`EP}n;eQ{f`M>y!zBN^N8xeqLLDm~8Yajp%x{gu+LVuklcmFm5|L-@-e+m%# z&;l4LOZEu-{Kr1||Ik>``;~5&BY1;>VNnO(grSVG^(#w27URo|;eqL%%OFDjW?lZ_ zKS)gc{rVq<#Q&RG!2cpH|7sA(oD2*1U0USfKw=gNPXQS-lHhQkp_G;kYe zByH72DMv%X{TTu7;s^j{wEBh=crbDc5%w$rX3qOpqyH{7q__Ys?>GhiiMH@+vKy6E z7I+}gU;CIH7~`>IU1QAOy2h5H?)&^-{$~}AYe*{sI(bH%-zz|3>}Za_7wZDr#f-K9y_d`@*H$ALpIgGMF&AteI#A)wC z&2+uJoFp>-_M_XOmfx5k;2!TDZw&db$BLiU#s_I6vTGT>B4qi zz>k~z${JXr(RcguL~j_OGYcj2E7*=1gFwAAi)I7XbrluH^Q=R|sXq)s$WKjPUcG02 z_wX+1pMs#MgSNw+tKFJe@T{45xl6Z_l2V3@UmcrPPG!@w|B$St-4?8ix(ZYBc&{g1 zQT8hHa&|k^FHuGF0f#ELErCz zMDU+AB_Gex@sKcK1X@dRJOXWTqcG%>37DCpGkT^K7P&3IT}IQN^t|%M1<7;qjRp-A zX_He@B7+vGG2#*hEm)D~K@u54p)SCD@PNl57;&`#zWic-&B;R5xY^VUa`!Q@yWhf9 zuXJ>OAZAjhlZKK3TbVHQ4H52Gu6zwLC*UP=EZ0YCFx0~tZByePFfz-ZdH_eViE{kT z8R4DIQzf!T>TDF7%No*pi36Z9R6URG=E#Sb|Gi&!)<^5Qg*}IN?*@jGB6N<>KIMhSBwj&c*mQL-H<)L%_pK(D>Z}xMn zQZLqqG*_2AhjrcoG|(`qii?A17?|?p8blYp%iWu~T6*ON-UC^IEXSl&g)6n6lMzW~sV}qzT8{+uN z_`{wHn2N6jqy0oQ#8cl`$`Il(N$SIL(YlU^mTtaS_kJl|2YtQklQ}fvcRKMQ#Dc`0 z=^{e@`e`nD5&7_g!U90hZ(~6Ro>HEhF#$R+KYCBA=Ryar3j#BP?d@;_0^kd6s*(5F zztFJBR%$JfWbeWHWfj{kt8#Yt;n;BtVC%hh*uDOk+4J>ms^QAJ&H5Ur%)TOkvtGl; zBZ7;|d&}A)ch8~L0$eHgEdwf7?_}QkY~S1O^fz(G#e0hOk3Np0flBIwww!X6OP4`eq^9C;5dlGmQdYfh)AMvJDsF!9U9p1kOYrz?2^5-$__G$s z{pCKO0QL^$vB~=+_Q8vDGgX?K9{aRn$FH zlNgu2NqEG#QjC2?oAe=f+By3S@s&?I`r4o$oGE87OGhVl)Eq#p)rCM#w_zD%gPDM> zKSm0;wG%&*Om1+|D=J0afs^FW8|G+wzpLtPf74oDwUV&@ltBd$;51Jqmz!j1*%S^d zC9cY`wR7BbtT5M;Fw@Z0cA1HZ`i-U|hLws&&{?6?47a*OP2dk>JLzT@7HO(#uehs3 zBl1HB7c)e6B)+IuY*&ipN>pER@ z-T!RjJrcIvk53u(7$~tYDA|#x3~;lmJ+DBu7^e%G6^UUyGUNEYuSfH;p%tcu0ecZj zdKIoKWZaJ#wKHNYOCL8vdnbeO?%f{Wm6}*}Q51`-^pO*Bf8kAqxr!uSI!G6bmi2uL zMQkL4xJ`?=Iy!oiv$^z`n`(MgGV)m$=28jckB>OS)o{A<9CAHVf&$>X#DkSWE^DW1 z&O7_Day&XMoML0enwj}0`Yv^hc=yWBB|XjcUDR|P@P5gA>XRAT0(`__D0;&}YH*>{ zdmGBkTNmK!GD735$)U7dNllTSBzk`VSm_r7Ep;lAmYdId#{L1;zn(uCvp_qVXmbXGHz(jF)Y2 zo&819#5-OzMWIX}LNX-PQ^!usVn6ZrIee7S@t0Pc%_nlpmaS*}e8%CFyZMck5136mg z`Cm)K6^3a9!1vqj_`?5A`S(7yu-)hu!m$RdHA?-TmdwRa>`3yz20<-WFoE&B~21pHH1Z>X>oiG>T_e!nK6L)ba>`sD!nf2+Ne1Kt@>DE zhmLh=l+A${VCOjVgCC!h*&Y;%0H@Z!FQ85a^57z|pxWoUY!q$mtf?EiJ)tGJ z!5JZrz=-6>)OXFHfkv*-%VIfz`}W7b2e`Os=zCjlZh|||2W@}PE|=!j@b)`lHD~8# z$M|*)jcWzv*lq|HwY=0-4Iq0Nai}e6{`R7AarqoSfixQ?2`T^kKn=srUn}-()}m&& zy3J)8H#9*{Pp@zwk=+rP!ymohw3O&sys904V|xSkw_LUk+RJcH0Ls7m<1Vl%KwSzp zpuZndyk@*~ve!14I^o%S3nXwm=%@>yi<8q`Je~$Hm}h#UDVIhhPxb~#AbX9fG}7Lc zd}ggIss%eRN3Lpk%~)CpQZeUt*B2Tfj_?rWp#4+UB=nwW^Lb0F5h+R|Orr6HCqzxH z9G=yz19~4%L238;oHjHnI{HNJpw>F@m548m=J2p(tv~b+Q{1?oBE6B$4Vx*NE-c;AcKKMu+cc- zUW!P$i$%Qu-w3X$gXv_Rc4-$+m$G_$+}Xm$Vh)3IdCY>YYBIt)^3hF;!!#@!7TXNJS)UZkh=D-I8{q7%*993Z=PO0V zwNI`hT!}>9NgexCfYIONWHcx0m4liQV1}eS zbv5&@)y8k&&&e3)N0B)Y5zjlR{FJKEJOp6y)h5)|1C=SFcB3xz^Rny(Hw-UUh((%5 zl%L{$=o&2IN}cxYq-nOZyOnCd<(rtkx?8zIiX!6`*W?!uYo+&gd_FRAj>U&mLR8Fb zMM|qbQ=bBd{NQMURGV46_wx)2vqc7!VG{@6{d*vV$7$%-xi4qL>@xynOtuLi3mYSe z(x+=UZ4@)6L5>mAUO$MRzwH|Pde-Yu7MYypmE@4t4^+v5Hs~keE%gTeTVceSF=Xdd2=Vgo!9Gk zOj7TR*q>`PNH9FQ$LA=D)3Mb<59A}_LO6afaL*Z2>p(DhpJfdM+`r_V^VM$F_GA2p zaR8J#%qFUVLR9+6>t;)VjMdCWV|se_)7HYt7KqLisc@KYp%VYWMam{u=gOegUX-P9tc1FWg( zL~lf;?Uq?2bLYcM7-fzXa@fgCYpnRf$z+2~C9+9Hc9e++SWldN)zB~mFBQVZw+>;L zJSb#`|7cwAy!1k07F)rRty&^wyqj>?~yzYir(QurU8v(evES1~r9j&mid)Ws)X zwCxgz3B2>+Ch3Sj(f3A!2#6=UKi|#X_~rJRKLc9;EPcPo;EPY8l1YJZGGH4wRcs&L zywq%xeu5Onx5oZo&W4+IdGc-EDav6~#gm5dkSG*Z}EB4WM+8-UO*q zLl+3Wh)9(pB}TeHKx&W&%<^8m z=ln`xM=Wo0y=eaGR%6MxfV`jT>EM_BDa)hSXhF$N8J~w;o&ksTmG&EI?Ya*CbFVG+ z-}T*EtF#Hx;*_}Jl^+!{2RGl!8Vvg|rBLx}50Am!XrBD$HIR_5py$|H*3rZ&&B4qm%o1Lil$16 zogbyYB-!OZ4pb8T5~u2+l6IOO=&yF{XV0DmtJ@&3v%XWtfE{BrxcmF!iEMEP5Kcdw z?FRFGsz05?EpG-{*d#i05EKgKESrdPfFa5tfj_9#C++B8&2I)7U^pOo^^- zE;8(o=7#;a@b*%=|38hnovA>Ot|xRO-o(nPN-N{a(zAPBL(jR$a0EU?r1ILo9(n1oCK?O5qkbGDL}i z-l9=d|JTrF_=2)%m394*lU441jm^-h73-62mZuOfu0!4K$H_{s-J3LKN~Ax}fr?_j z%Q9yoPnvS&yiDUon7A%nSBbUn(7Q2HTpk7MS+Iwr6a*an;BB&oR2J#*a1sKDR~5yrA-!)g#{(j!7)KQ>F#_H9DQ7ih$RfTa;f zb~!ZGD`8x`MokJQ9=F}nk|L$ z@gE04>(SDVQ7=qN`r}-naCvOd>f?rbt=g8C+B>97azpY{O&_yz?d@zme}C6e6Zy@X z`uF_re0?S9q#o1Ma+u&l;DIi*I~y$4kqhq{EH;r}oz>K?5SPEMdrYM2M{T3rN<1SK z>}tGcS(NoD(RBt<;T9Z|5@TEgH0UHA753xW6=-vLjrY-frA=$q>CSg*e_NjK{lO7S zPX#zk)=L zs~DGSyLb*MXng0MZZy1y!v#6>fuI@;J;(-A?q9-_JzB`vJp(|FM8V4CS6RA(LIc=pi4x(JkSgxj&aZU_%7Sui}jX z;xQ5IVdLKlfIDJl=!J`bGbrgC)>rZry8EhgO3@Ag2wQOZb8R^qxzaOX#?q5M(QUzF z4b`X0O0KNi1F_%WXGm!1l&*z*&^6@IO~I-DBLP3YblLy$e7v~8{0~6m%W=cTtU9nN ze7y089{&5h?CBls{=P9Z|8?Wn=Air6H!&nmMOi8ddOC}2&G(n#GBnf8$m{t)8tzH&}A*&vD*v+T2hb_RwAR+cM>G+d;ObT z*{n^X#0c{}TPi)Fh5DpfUy-5P%dzPvjEJL4@^=}`9|ht7?8lc|d5}=Bg4b;D99Pe- zG{uEuLPA1-)n1Hq>T;#9tV$4o)$N|Je~8OSW!&b*s`$c;xmgYRSA>95nH8Zb93)*E zD%I8k4$#$cxu>C{;CGD)$+2_6nX~z0sMT!wQnmm+BYiPM-J7f2+owE7JaQP(al0? zysUNpc%wwcr>t_HOVDUxNP5`OBgU;-km_E?h!6&&S4KLJnNXwMCe)(rB(9O)yUQrJ zwE^!ycY7SOdlrfs`0^xf^YyXDss}k}9*#$YhwW$=iNs-%i1ky}Ek3u-30r-p{=L1u z-Rjbtqd@m)T^jv7{&r}IXJs|{i};jxWJ?@lSuH8TV!cSf+&hCD`)fDqbkzuULs)IY z_eY+9prG+SBR=nnzp}LsqC%+S>@Kt13l#Xa2ur|2&V%m9X_{=vHk1r|XjjCkYX#>lbdTaQA%Eiu{>ht`5ujFdWBya%VpMiY2| zQVi#PVv-l$R8P;$d23=&?THCKsPlnDeA#ZA@C^oS>w(>G+NmUZC)NH@U~;dRglDzx z|MYdyWVk%)#wb;ZuCmDk$HIE;{4S^J36tyK03lu_>|6>+o{km=P2b7FV{jp8CMO~& z6Z01zBjuJ*yt2$y^kp)(&2d$@TKX{n5WHt{pSRfZ+@|9+b;g_khqSxRA1QJ^Uh;R# zOE``O-7*!1Iffg-b0GsY^1ZXa2;nOX7ZPaGp8lH9&~ zhSD{KIYEKTMD`Uu?sG%#o`zlS*lkb!ls{orUALzP!y&Q=f!q3Jh3`U`+6F6$d$eK8 zOp!mMZGz{{2G&y__rEel`baORMI7lGo?7;(GT+%Z`{ZVuwMfm9Fm z)s-9NgpkYiU=uE@DrJTIH&wfq@pbh2X0z!>EJucm^YgdbXxu zYA0caQZu2XccmN#@UnMdn;`z&NF^b> zdb{kUdpX&%pcstOA%{iZ*9a8`rwWn!8uvkIOqNA5kF9E9yAxXJcYndwa}RJ4K#{0z zSuWmkCz%}an6p8ZGJ>uW|N2_nNc3*$0O`@ML?-$ZZ$-B%ZTEYoxVFKQHV8Dy@e{^G zz38je2{?KeNDk&@)|P~w4=m}d)P7|Z3S`wxf~_&Y&2dKT_uEQ9jMzI z7>je2jJA&;k`!+Uo^KNgh(0Aeybl{nRz2D;UwVnm;GQN(FEhp6{|)FB&&Qikn%Q=W zWlqUDjm>@Zb>a+ruQR>flcs+;l++C`<8DgH>AmTUWmaWfs(5l9&1@Bb5!A`Hn(7$S z4L8giU3=M9vZ$z2VO8zPk<_XkXq?oWZ6<7F5!-FaMt_BrA>b5X&ToHBy|k#ChrZ$t z3_W9cOO(A*urz{KW)Jdy;Wo7m_Uhh=7?BixoCfpojpYhAS=BCbyC$vrz22gjwwCE7 zo6(*-v1&TL-^)4zg%LPvs7i~FVR4^5HxMAq9VCCGoG=sCz4n0MK)W*vldEez4YROV zp(2Kvqm>e9+uA$!D-vDd)^v@1lz!gc+}MD!j=sD!y@)&Iv z;f|kTVYN};alLmu%f6>A4bdGXj~DE`Y@5r9_ocSI)Aq#alS|47KG(pCCr*7}*AhQ3 z$xFZIn`_U{Vs73$sXJ_%Z%-p&>Smag$E|w>$-SNE%$4y;;f$Eo$JVoL+54-ki%rZ~Y&&$#zCAN( zh1!NK$&l<{@Ceqk8>xKa%l3-A1s18%yzv~{UXrwu!)-b=S5#fbj#vp><}8KgAwNL% zD=I1)g4XX3nwy%!!OPIv++Obs>|pnDl^x`YzMm2;t|L8k;VQODgOk|DG}5D1E1m-{ z!D4&1qBIV*LPLV@Ye6pvm}?YpNlNe~I3!+56D}8W-PYHnTRHi(lDA(mMVRfSuVEf1 zLP)IJy!Gm|r1jjuwrWWTTB2y)ZSxr1+Csrt8jAi_aD{ga#$xiSN(?o^-KJi>$=*LE zvv)J*MX-JMfU&DaI@ZUaOI+~DHNgut?jtNaG9Qm^dhZ0i|IT#hV-L#>Lqy)u*HE;H z?ShQC^V60Fao5!vzwGPmLdGtV#cYPIH4C?pne{tSeMzo}y!Q=+qHsG%*nCh0rrWeM z#UWgn;TQgRRh?J#rhP$5+pRKG0OPPE2lO zd_Vom(qv&05ucrb*)_$tsOq4(9MX!@c{4)k%Z-8Ml6q%tgI%3PWXAS3jpG$C#Q`OT z*0;P57bXjvA|Q&67R5m7EE%Y4x12aDSnoMu&UQoNxx*b6#ln-8fE6UeW$VsBKd@eL zdFIcFki2Hns%1?;-=8a7JaTTQQrJ>l@q(J5^7{T=qpLTz%NVuHIxX^%CTv!vW(y$- zk;MZiSE{4F%>U%CpS(*oEmrED!;UoZvT?|4q6Pe(ap&O^V1B*G8A0hRrD6M;tG_vQ zan0B7Iv|S{mO8hPCH9m<*MS!0o^*eU3$Im~;b=QG&hK)w$}yo~FfCk1CJxuq{{k;b zv5y^{aL%htPnUxsF3ZNV9wRHpW1i(QsbsENb4qhvn4r6eS1}#>q?6%jai*rgqo&(# z&Il$o;lMK2sz>SKTX?H^LgliNg5-VMNQOdf&$0me zYjZg^ZEkm=0RJZD)KtGR<2chHNAg4UM+VUqe3crL=Sp%pkA^ctQMi;ByR_}zV@!ok z;(fI2m#Lnl>1mrlKQmu$2X2KR(HVeJf0FHqJYv`iRi#sw6+5}t`J3bNL3~*&YC7cO zu}&Z0D2p}pv2Z{1>(tdw1MzMh-|-_cQU3~t35YN~34?ZV1I^%NW25Ql=;&W(3~RrB zDTP0AjBjrJ>+%0@L5)-`pr|zFjMRgoUCXiWzs&_S663SkgiZ7Um9WT|Q#mZZrv@fP zDd8$@Z4mj@^Y@9aGf!t{5v)+lvV`cVPaX~4pWpe1^FXn063#oWnIfTu!TVmW`gNGq z2~n|~@Qe!?;UetiGa>`TlQg2QH@J>>puRK@F0YK&%Y_DDyxP`CNNKw7Mh1<81*64& zldDJ08mb0D^->NXWp=BZA<(_IDy*yx?r+}?Z(}zb%MUCn0e7H8DeFVIx#Kh$i?HxUhI7N-F&d)Q9D%8%6xzV)O5{--_Ks?sxg#TTgR)YAp!&*j#1 zJQ$59zRyYo=!dX{rixoQ6a!fSCH{>#G&f5iNC#z(RQvk2wfDWbqLxcc@tU#7cE`si zoFAF)xQOmRwsAnQw?nN5#2sIm4Qfc(uh0E%aR?AzGqp+1QEHlzaFG*#pR&It922rt z(q=o^%?=thOG0Y6(Y74tL?+&cpt>8!ENwv(I|Qky>Yj3Oo4=E~DtlQr|M4cF@&#Tsh6GI?~`%+b|=XCNHj; zx3gsLzKdwm*@4&#Pj=WBF$&c!L}~>>mX2p~^{!x675j68l%G^#DUej9-0$jpEo{7Z z9Z}u~kdR+r`48dxDE>L^1^Sx$illsvp}P8ZZ$c`8;DL|L(qBd)R-m|6ubCHF`qL$d zDn)Uf%GC+xskM4J3f4MggLFlW)o}Q2cjJ^zoW?N_75*y4JMy}dZGJekEk&g1aEE3F z+w={Hy|+82AxI^3dGnH1cCp4F2@gSQPzKSxE2pKh1RI}CiHsBc+-6=R1Yimvl?YOZ zQJ}OMQZs``u>&%3br657AG`KD6d6hmUC}8Tpzt&`9i%rA6(K`j@KgwH{b$Dfx{~dA z6H07?W!3%ziloGPQSzCp{U%cIFJ+-u-jPOV_moHJ^9pV|QNa*P#4Ds;R-5bU?1P#e z^*SO51U5;ef9umchs)KdKL7p_w%0QOuDBK&x&(6yYw?THmdWL{5Cz z+e|z`^y1F-L-eF-uo|kS&0=SttO|X)GlgHeRxbanH8`ZTr+LQnC|=qU;FUtT>x&(W_PnOkhm$h2<6n7&DF;=rTd+;=mi4mp)kwP z1Hs{&55B4D<^~tY$+vBzADx`Wl~bHUXicBl{kRF6mX=tT^WA#Vx|T{*ZbRbRM#qB- z;0(F0&V4BwtXeP|Y>4$#ULJa|=a^n@%iUCB3yWTR@TFpWcOOM=bbKGpO26DRK*1if zE6?l;=M<|2L<$s?ejUm&-LRk#$(+WSlWcrxvjPPX_3rcWm%4l5pM@lRo;aTv%ujY^ z?x)Y#ExA}YQZ{z(i5gwqwae3IdLQON+?_b-{B3gk?$~>@Pg}g+a3y0yAadP3H}glw z)#xN2JXX+Ea!K2s_Kdu}Gu8AFWQ3#6->JPOn1_g`{+=#>D?k1a$Y}aqn%ToU(2?_! zTgcA`Qxb{CPE0GbD`;hn+7Dcs+H5hm5aJLNWUH)YNS1x_O{X{Q3S`BQGetE;XNac4 znyxDNksm3YCI2K-k4M0E8vL|QM7-bD;y9wgTE7CKwJ;DoBJ@%TI{10%xil6Tx4K>? zt#96H{z-wj`OUw+6rqHQJ7dN<*k_}dra-v4V3;SxbZJ{EQ{vW9@6btsoOvLrj zzD{BG*SdK_;R$8?THWT+vVrcD^&=BLUs{?7&=Jt>7K+x+xog?Bd9{8SEA0i}W z{;O`UWsBm9k94^#e`>SoiF6k9&Mi@vcygvHe46v6OLM4G+5F-VqKO#PFhZ2le=VDu z?NG7e`CjSEQxQ;&--P?!LCyXM4d|HA|1Ye6$cVT|rn;Jw~~Fr&bBN2g~j$wxX> zrn0Dmz}l5dpqL%^5NJhc5^$CLe!5nu}2BgP-72GJ_eNewh@Eq&tJg5N7B^W&Th+|29!= z)YXD8?9UAZX2py5Rdn3#J?ta-$$maPclXMQ%E~{ruxR^t1JI=){MrAqCiG$;qY@5R zx=+~&?U8v;pF-Pn6w7<$@Bs<5UaSN zz!>cmZ6TqF{=GMvTXJCFaS=^K`AIJv{p+(V#c(u0*_ro40VS5L7#=dIu&YWnYenw> z4rY6IFw$oBL-KITgV`&M`AK%&Tp7btY(k$O9X%xpHn*Mcum2&f7a4yw z|3`3$UW~2b(3XB=&lDq=E{0xvFO^FEb7(+3|IF<_@h_<|R2Oc?-e?Uv2TZ+V$mVAJ zR3;oWxuqxuJEdSZsC1yqX4)H&f60=Pi*k!)`l3Hu}F)H&+g zMeDQOL~t@lc@L^1n!QaXyZ!pPev(Vh|KoE>XnLt$-f}+hqtO%_$Z(kfVIvXMvFFxK zy`90AXr{?c@QEF*mKkHf?*lsCuos&AMU^!jmTJ^t(TKOHq_XV~1VJQH=i=r@uLu!f zf}>!#um&xaAd;vQ+4_g`=;ew^e`0mB8x=)#qL$(jmE_v%_m22;0~zV*pyI^DMAo09 zH4#o*+uP+JaTN9DAk)DM+~FG;1taeg&PYMA{K>pZ)9pOq`$;qa{Kt>iyNnVDl{3G| z&3k~ytf0nYfG`K=3$8A-3~vo0BQe5OEiZOvB5kQx$MHs7lh>4_f7?z1^9IY&SEsUM ztG{n%tP@R|Ph!}Tp+isF(RbgZtH5AprX&TDk$#8iahjAk#>7PR0sV~>WCx5)#N;O~ z8XHSs=$N`6uua@N67>)ioZ8BQHLs1p{cP}~=C;)jWC$eFSB%Ob@`Jpv*K{ MYI>@u+jfus1MV7mGynhq literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e79f7c74dc328507b93fe17fa8370ae866f1367 GIT binary patch literal 21324 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 C4wF6r literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/Project/compiler.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Project/compiler.md index 18e5d5238af1f4..4076c74c7a2ead 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Project/compiler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Project/compiler.md @@ -6,7 +6,7 @@ title: Compilation Vous pouvez compiler vos projets, c'est-à-dire traduire toutes vos méthodes en langage machine. La compilation d'un projet permet de vérifier la cohérence du code et d'accélérer son exécution, mais aussi de masquer le code dans son intégralité. La compilation est une étape indispensable, entre le développement de projets avec 4D et leur déploiement en tant qu'applications autonomes. -## Compilation incrémentale +## Compiler La compilation est gérée depuis votre application 4D et est entièrement automatique. @@ -40,7 +40,7 @@ Le nombre d'erreurs trouvées lors de vos premières compilations peut être dé > La compilation nécessite une licence appropriée. Sans cette licence, il n'est pas possible d'effectuer une compilation (les boutons sont désactivés). Néanmoins, il est toujours possible de vérifier la syntaxe et de générer des méthodes de typage. -## Exécuter la compilation +## Exécuter en compilé Une fois le projet compilé, il est possible de passer du [mode interprété au mode compilé](Concepts/interpreted.md), et vice versa, à tout moment et sans avoir à quitter l'application 4D (sauf si le code interprété a été supprimé). Pour ce faire, utilisez les commandes **Redémarrer en interprété** et **Redémarrer en compilé** du menu **Exécution**. La [boîte de dialogue d'ouverture de projet ](GettingStarted/creating.md#options) de 4D permet également de choisir le mode interprété ou compilé au lancement du projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md index dae311c5bdc397..aa995d1490f8c2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md @@ -193,7 +193,7 @@ function test() ``` -3. Vous voulez gérer à la fois les erreurs [prévisibles et non prévisibles]{#predictable-vs-unpredictable-errors} : +3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: ```4d var $e:=ds.Employee.new() @@ -293,7 +293,7 @@ Les exceptions qui interrompent l'exécution du code sont renvoyées par 4D mais - un **message**, qui explique pourquoi l'erreur s'est produite - un **code**, qui est un numéro arbitraire renvoyé par le composant -La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. +La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. Click on the **Copy** button to store detailed information related to the error in the pasteboard. Pour obtenir une description complète d'une erreur et surtout de son origine, vous devez appeler la commande [`Last errors`](../commands/last-errors). Lorsque vous interceptez et traitez des erreurs à l'aide d'une [méthode de traitement des erreurs](#installing-an-error-handling-method) dans vos applications finales, utilisez [`Last errors`](../commands/last-errors) et veillez à enregistrer toutes les propriétés de l'objet *error*, car les codes d'erreur dépendent des composants. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Project/compiler.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Project/compiler.md index 19dc026c7a6a14..6ee86ff9e8c0b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Project/compiler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Project/compiler.md @@ -5,7 +5,7 @@ title: Compilation Vous pouvez compiler vos projets, c'est-à-dire traduire toutes vos méthodes en langage machine. La compilation d'un projet permet de vérifier la cohérence du code et d'accélérer son exécution, mais aussi de masquer le code dans son intégralité. La compilation est une étape indispensable, entre le développement de projets avec 4D et leur déploiement en tant qu'applications autonomes. -## Compilation incrémentale +## Compiler La compilation est gérée depuis votre application 4D et est entièrement automatique. @@ -39,7 +39,7 @@ Le nombre d'erreurs trouvées lors de vos premières compilations peut être dé > La compilation nécessite une licence appropriée. Sans cette licence, il n'est pas possible d'effectuer une compilation (les boutons sont désactivés). Néanmoins, il est toujours possible de vérifier la syntaxe et de générer des méthodes de typage. -## Exécuter la compilation +## Exécuter en compilé Une fois le projet compilé, il est possible de passer du [mode interprété au mode compilé](Concepts/interpreted.md), et vice versa, à tout moment et sans avoir à quitter l'application 4D (sauf si le code interprété a été supprimé). Pour ce faire, utilisez les commandes **Redémarrer en interprété** et **Redémarrer en compilé** du menu **Exécution**. La [boîte de dialogue d'ouverture de projet ](GettingStarted/creating.md#options) de 4D permet également de choisir le mode interprété ou compilé au lancement du projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md index dae311c5bdc397..c6c377f5debb8f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md @@ -193,7 +193,7 @@ function test() ``` -3. Vous voulez gérer à la fois les erreurs [prévisibles et non prévisibles]{#predictable-vs-unpredictable-errors} : +3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: ```4d var $e:=ds.Employee.new() @@ -293,7 +293,21 @@ Les exceptions qui interrompent l'exécution du code sont renvoyées par 4D mais - un **message**, qui explique pourquoi l'erreur s'est produite - un **code**, qui est un numéro arbitraire renvoyé par le composant -La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. +To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. -Pour obtenir une description complète d'une erreur et surtout de son origine, vous devez appeler la commande [`Last errors`](../commands/last-errors). Lorsque vous interceptez et traitez des erreurs à l'aide d'une [méthode de traitement des erreurs](#installing-an-error-handling-method) dans vos applications finales, utilisez [`Last errors`](../commands/last-errors) et veillez à enregistrer toutes les propriétés de l'objet *error*, car les codes d'erreur dépendent des composants. +### Error dialog box + +La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. Expand the **Details** area and click on the **Save...** or **Copy** button: + +![copy-button](../assets/en/Concepts/error.png) + +Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: + +![pasted-error](../assets/en/Concepts/error2.png) + +### `Last errors` command + +You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. + +When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Project/compiler.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Project/compiler.md index 19dc026c7a6a14..6ee86ff9e8c0b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Project/compiler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Project/compiler.md @@ -5,7 +5,7 @@ title: Compilation Vous pouvez compiler vos projets, c'est-à-dire traduire toutes vos méthodes en langage machine. La compilation d'un projet permet de vérifier la cohérence du code et d'accélérer son exécution, mais aussi de masquer le code dans son intégralité. La compilation est une étape indispensable, entre le développement de projets avec 4D et leur déploiement en tant qu'applications autonomes. -## Compilation incrémentale +## Compiler La compilation est gérée depuis votre application 4D et est entièrement automatique. @@ -39,7 +39,7 @@ Le nombre d'erreurs trouvées lors de vos premières compilations peut être dé > La compilation nécessite une licence appropriée. Sans cette licence, il n'est pas possible d'effectuer une compilation (les boutons sont désactivés). Néanmoins, il est toujours possible de vérifier la syntaxe et de générer des méthodes de typage. -## Exécuter la compilation +## Exécuter en compilé Une fois le projet compilé, il est possible de passer du [mode interprété au mode compilé](Concepts/interpreted.md), et vice versa, à tout moment et sans avoir à quitter l'application 4D (sauf si le code interprété a été supprimé). Pour ce faire, utilisez les commandes **Redémarrer en interprété** et **Redémarrer en compilé** du menu **Exécution**. La [boîte de dialogue d'ouverture de projet ](GettingStarted/creating.md#options) de 4D permet également de choisir le mode interprété ou compilé au lancement du projet. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md index 34b2db5e7bd73b..e5af84c39bf08c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md @@ -28,10 +28,9 @@ La séquence de connexion d'un utilisateur est la suivante : Les requêtes REST descriptives sont toujours traitées par le serveur, même si aucune session utilisateur web utilisant une licence n'est ouverte. Lors de la première requête REST (pour un appel de page Qodly par exemple), une session utilisateur web "guest" est créée. 2. `authentify()` doit être une [fonction de datastore class](../ORDA/ordaClasses.md#datastore-class) exposée. Vous appelez votre fonction [`authentify()`](#function-authentify) (créée au préalable), dans laquelle vous vérifiez les informations d'identification de l'utilisateur et appelez [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) avec les privilèges appropriés. + The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). -3. La requête `/rest/$catalog/authentify` est envoyée au serveur avec les informations d'identification de l'utilisateur. Cette étape nécessite seulement un formulaire de connexion basique qui n'accède pas aux données ; cela peut être une [page Qodly](https://developer.4d.com/qodly/) (appelée via la requête `/rest/$getWebForm`). - -4. Si l'utilisateur est authentifié avec succès, une licence 4D est consommée sur le serveur et toutes les requêtes REST sont acceptées. +3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6569262f2949934e1b2af256e301b7110e20055c GIT binary patch literal 26663 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 MYI>@u+jfus1MV7mGynhq literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e79f7c74dc328507b93fe17fa8370ae866f1367 GIT binary patch literal 21324 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 C4wF6r literal 0 HcmV?d00001 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 085d30d79b654c..0f09195e5fcef7 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 @@ -193,7 +193,7 @@ function test() ``` -3. Vous voulez gérer à la fois les erreurs [prévisibles et non prévisibles]{#predictable-vs-unpredictable-errors} : +3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: ```4d var $e:=ds.Employee.new() @@ -293,6 +293,6 @@ Les exceptions qui interrompent l'exécution du code sont renvoyées par 4D mais - un **message**, qui explique pourquoi l'erreur s'est produite - un **code**, qui est un numéro arbitraire renvoyé par le composant -La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. +La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. Click on the **Copy** button to store detailed information related to the error in the pasteboard. Pour obtenir une description complète d'une erreur et surtout de son origine, vous devez appeler la commande [`Last errors`](../commands/last-errors.md). Lorsque vous interceptez et traitez des erreurs à l'aide d'une [méthode de traitement des erreurs](#installing-an-error-handling-method) dans vos applications finales, utilisez [`Last errors`](../commands/last-errors.md) et veillez à enregistrer toutes les propriétés de l'objet *error*, car les codes d'erreur dépendent des composants. 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 27cf2e148d164e..e23d2319270f72 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,6 +9,12 @@ Lisez [**Les nouveautés de 4D 21**](https://blog.4d.com/fr/whats-new-in-4d-21lt ::: +## 4D 21.2 LTS + +#### Points forts + +- [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=21.2) : liste de tous les bugs qui ont été corrigés dans 4D 21.2. + ## 4D 21.1 LTS #### Points forts @@ -312,7 +318,7 @@ Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettr | 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.18.0 | **21** | Utilisé pour QUIC | -| OpenSSL | 3.5.2 | **21** | | +| OpenSSL | 3.5.7 | **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) | | 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 | | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/compiler.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/compiler.md index 19dc026c7a6a14..6ee86ff9e8c0b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/compiler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/compiler.md @@ -5,7 +5,7 @@ title: Compilation Vous pouvez compiler vos projets, c'est-à-dire traduire toutes vos méthodes en langage machine. La compilation d'un projet permet de vérifier la cohérence du code et d'accélérer son exécution, mais aussi de masquer le code dans son intégralité. La compilation est une étape indispensable, entre le développement de projets avec 4D et leur déploiement en tant qu'applications autonomes. -## Compilation incrémentale +## Compiler La compilation est gérée depuis votre application 4D et est entièrement automatique. @@ -39,7 +39,7 @@ Le nombre d'erreurs trouvées lors de vos premières compilations peut être dé > La compilation nécessite une licence appropriée. Sans cette licence, il n'est pas possible d'effectuer une compilation (les boutons sont désactivés). Néanmoins, il est toujours possible de vérifier la syntaxe et de générer des méthodes de typage. -## Exécuter la compilation +## Exécuter en compilé Une fois le projet compilé, il est possible de passer du [mode interprété au mode compilé](Concepts/interpreted.md), et vice versa, à tout moment et sans avoir à quitter l'application 4D (sauf si le code interprété a été supprimé). Pour ce faire, utilisez les commandes **Redémarrer en interprété** et **Redémarrer en compilé** du menu **Exécution**. La [boîte de dialogue d'ouverture de projet ](GettingStarted/creating.md#options) de 4D permet également de choisir le mode interprété ou compilé au lancement du projet. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md index d8f5a62942e70c..9ad67a520a2830 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md @@ -327,7 +327,7 @@ ECDSA キーのみ: キーの楕円曲線 **.pem** : Text -The PEM definition of an encryption key to load. 秘密鍵を渡した場合、RSA または ECDSA の公開鍵は秘密鍵から推定されます。 +読み込む暗号化キーのPEM 定義。 秘密鍵を渡した場合、RSA または ECDSA の公開鍵は秘密鍵から推定されます。 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 3248b45d071c09..54d0acd9f69bac 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -68,9 +68,9 @@ SMTP Transporter オブジェクトは [SMTP New transporter](../commands/smtp-n #### 説明 -The `.certificate` property contains the certificate used to sign emails using S/MIME (Secure/MIME), provided as a [`4D.File`](./FileClass.md) object or a Blob. This certificate contains the private key. +`.certificate` プロパティにはS/MIME (Secure/MIME) を使用してEメールを署名するのに使用される証明書を、[`4D.File`](./FileClass.md) オブジェクトまたはBlob 形式として格納 されています。 証明書には秘密鍵が含まれています。 -If your certificate is already registered in your Certificate store (*keychain*), you can use [`.certificateName`](#certificatename) instead of this property. Note that you cannot use both properties simultaneously, otherwise an error is returned. +証明書がすでに証明書ストア(*keychain*) に登録されている場合、このプロパティの代わりに[`.certificateName`](#certificatename) を使用することができます。 ただし両方のプロパティを同時に使用することはできないという点に注意してください。その場合にはエラーが返されます。 :::tip 関連したblog 記事 @@ -85,24 +85,24 @@ var $transporter : 4D.SMTPTransporter var $options ; $result : Object $options:=New object -//Enter the information for the SMTP server +// SMTP サーバー用の情報を入力 -//Enable S/MIME signing -//Provide certificate file +// S/MIME 署名を有効化 +// 証明書ファイルを提供 $options.certificate:=File("myCertificateFile.p12") $options.certificatePassword:="myGreatPW123" $transporter:=4D.SMTPTransporter.new($options) $email:=New object -//Fill the email content +// Eメールの中身を代入 $result:=$transporter.send($email) ``` #### 参照 -[.certificateName](#certificatename)
+[.certificateName](#certificatename) [.certificatePassword](#certificatepassword) ## .certificateName @@ -119,13 +119,19 @@ $result:=$transporter.send($email) #### 説明 -The `.certificateName` property contains the name of the certificate used to sign emails using S/MIME (Secure/MIME) as it is registered in the system Certificate store (*keychain*). This certificate contains the private key. +`.certificateName` プロパティは S/MIME (Secure/MIME) を使用してEメールを署名するために使用される、システム証明書ストア(*keychain*) に登録されている証明書の名前 を格納しています。 証明書には秘密鍵が含まれています。 -The certificate can also be provided directly as a file using the [`.certificate`](#certificate) property. Note that you cannot use both properties simultaneously, otherwise an error is returned. +The certificate can also be provided directly as a file or blob using the [`.certificate`](#certificate) property. ただし両方のプロパティを同時に使用することはできないという点に注意してください。その場合にはエラーが返されます。 + +:::tip 関連したblog 記事 + +[Signing emails with S/MIME and SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) + +::: #### 参照 -[.certificate](#certificate) +[.certificate](#certificate) [.certificatePassword](#certificatepassword) ## .certificatePassword @@ -142,11 +148,11 @@ The certificate can also be provided directly as a file using the [`.certificate #### 説明 -The `.certificatePassword` property contains the password of the certificate used to sign emails, if required. An empty string is used if no password is required. +`.certificatePassword` プロパティはEメールを署名するのに証明書が使用するパスワード(必要であれば) を格納しています。 パスワードが何も必要ない場合には空の文字列が使用されます。 #### 参照 -[.certificate](#certificate) +[.certificate](#certificate) [.certificateName](#certificatename) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/error-handling.md index c0b933d6dd56f0..71c7ac627f984e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/error-handling.md @@ -193,7 +193,7 @@ function test() ``` -3. [予測可能なエラーと予測不可能なエラー]{#predictable-vs-unpredictable-errors} の両方を管理したい場合を考えます: +3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: ```4d var $e:=ds.Employee.new() @@ -293,7 +293,21 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo - **メッセージ**。エラーがなぜ起きたかを説明します。 - **コード**。コンポーネントによって返される任意の数値です。 -[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 +To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. -エラーと特にその原因の完全な詳細を取得するには、[`Last errors`](../commands/last-errors) コマンドを呼び出す必要があります。 最終アプリケーションにおいて[エラー処理メソッド](#installing-an-error-handling-method) を使用してエラーへの割り込みと処理をする場合、[`Last errors`](../commands/last-errors) を使用して必ず*error* オブジェクトの全てのプロパティを記録するようにしてください。エラーコードはコンポーネントによって異なるからです。 +### Error dialog box + +[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 Expand the **Details** area and click on the **Save...** or **Copy** button: + +![copy-button](../assets/en/Concepts/error.png) + +Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: + +![pasted-error](../assets/en/Concepts/error2.png) + +### `Last errors` command + +You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. + +When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. 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 be8b697aa8ee44..9486f8be71ad93 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 @@ -21,7 +21,7 @@ title: フィールドプロパティ :::note -[**Non-streamable classes**](../Concepts/dt_object.md#streaming-support) such as [ORDA Data Model classes](../ORDA/ordaClasses.md), [file handles](../API/FileHandleClass.md), [web server](../API/WebServerClass.md)... などの**ストリーム不可のクラス** はオブジェクトフィールドに代入することはできません。 +[ORDA データモデルクラス](../ORDA/ordaClasses.md)、[ファイルハンドラー](../API/FileHandleClass.md)、[Web サーバー](../API/WebServerClass.md)...などの[**ストリーム不可のクラス**](../Concepts/dt_object.md#ストリーミングサポート) はオブジェクトフィールドに代入することはできません。 ::: 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 29777a5112d70e..2a390f4e2b3bd1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -5,13 +5,13 @@ title: リリースノート ## 4D 21 R5 -Read [**What’s new in 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), the blog post that lists all new features and enhancements in 4D 21 R5. +[**4D 21 R5 の新機能**](https://blog.4d.com/ja/whats-new-in-4d-21-r5/): 4D 21 R5 の新機能と拡張機能をすべてリストアップしたブログ記事です。 #### ハイライト -- Support of S/MIME email signing in [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class through new properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21_R5): 4D 21 R6 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r6/))。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21_R5): 4D 21 R5 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r5/))。 ## 4D 21 R4 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 bb17843821e1d7..10e008d139b9b9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -7,7 +7,7 @@ title: リモートデータストア ローカルの 4Dアプリケーションは、[`Open datastore`](../commands/open-datastore) コマンドを呼び出すことで、リモートデータストアに接続し参照します。 -リモートマシン上で、4D は [セッション](../WebServer/sessions.md) を開いて、`Open datastore` を呼び出したアプリケーションからのリクエストを処理します。 リクエストは内部で [REST API](../REST/gettingStarted.md) を使用し、これには [利用可能なライセンス](../REST/authUsers.md) が必要な場合があります。 +リモートマシン上で、4D は [セッション](../WebServer/sessions.md) を開いて、`Open datastore` を呼び出したアプリケーションからのリクエストを処理します。 Requests internally use the [REST API](../REST/gettingStarted.md), which means that they require [**authentication** and **available licenses**](../REST/authUsers.md). ## Webセッションの使用 @@ -27,19 +27,11 @@ title: リモートデータストア ### セッションの監視 -データストアアクセスを管理しているセッションは 4D Server の管理ウィンドウに表示されます: - -- プロセス名: "REST Handler: \" -- タイプ: HTTP Server Worker -- セッション: `Open datastore` コマンドに渡されたユーザー名 - -次の例では、1つのセッション上で 2つのプロセスが実行中です: - -![](../assets/en/ORDA/sessionAdmin.png) +Sessions for datastore access are shown in the 4D Server administration window as [**REST sessions**](../ServerWindow/sessions.md#rest-web-and-soap-sessions) with **4D** as user agent. ## セッションの終了 -[セッションの有効期限](../WebServer/sessions.md#セッションの有効期限) の段落で説明されているように、アクティビティなしにタイムアウト時間が経過すると、4D は自動的にセッションを終了します。 デフォルトのタイムアウト時間は 60分です。 *Open datastore* コマンドの `connectionInfo` パラメーターを指定して、タイムアウト時間を変更することができます。 +[セッションの有効期限](../WebServer/sessions.md#セッションの有効期限) の段落で説明されているように、アクティビティなしにタイムアウト時間が経過すると、4D は自動的にセッションを終了します。 The default timeout is 60 mn, but this value can be modified using the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore) command. セッション終了後にリクエストがリモートデータストアに送信された場合、セッションは可能な限り (ライセンスがあり、サーバーが停止していない、など) 再開されます。 ただしセッションが再開しても、ロックやトランザクションに関わるコンテキストは失われていることに留意が必要です (後述参照)。 @@ -48,7 +40,7 @@ title: リモートデータストア エンティティロッキングやトランザクションに関連した ORDA 機能は、ORDA のクライアント / サーバーモードと同様に、リモートデータストアにおいてもプロセスレベルで管理されます: - あるプロセスがリモートデータストアのエンティティをロックした場合、セッションの共有如何に関わらず、他のすべてのプロセスに対してそのエンティティはロックされた状態です ([エンティティロッキング](entities.md#エンティティロッキング) 参照)。 同一のレコードに対応する複数のエンティティが 1つのプロセスによってロックされている場合、同プロセス内でそれらがすべてアンロックされないと、ロックは解除されません。 なお、ロックされたエンティティに対する参照がメモリ上に存在しなくなった場合にも、ロックは解除されます。 -- トランザクションは `dataStore.startTransaction( )`、`dataStore.cancelTransaction( )`、`dataStore.validateTransaction( )` のメソッドを使って、リモートデータストアごとに個別に開始・認証・キャンセルすることができます。 これらの操作は他のデータストアには影響しません。 +- Transactions can be started, validated or cancelled separately on each remote datastore using the [`dataStore.startTransaction()`](../API/DataStoreClass.md#starttransaction), [`dataStore.cancelTransaction()`](../API/DataStoreClass.md#canceltransaction), and [`dataStore.validateTransaction()`](../API/DataStoreClass.md#starttransaction) functions. これらの操作は他のデータストアには影響しません。 - クラシックな4D ランゲージコマンド([`START TRANSACTION`](../commands/start-transaction)、 [`VALIDATE TRANSACTION`](../commands/validate-transaction)、 [`CANCEL TRANSACTION`](../commands/cancel-transaction)) は(`ds` から返される)メインのデータストアに対してのみ適用されます。 リモートデータストアのエンティティがあるプロセスのトランザクションで使われている場合、セッションの共有如何に関わらず、他のすべてのプロセスはそのエンティティを更新できません。 - 次の場合にエンティティのロックは解除され、トランザクションはキャンセルされます: 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 b42be29b1716e1..ebc7a1082b7a68 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -28,10 +28,9 @@ title: ユーザーとセッション 記述的RESTリクエスト は、ライセンスを消費する Webユーザーセッションが開かれていなくても、常にサーバーで処理されます。 この場合、それらは "ゲスト" セッションを介して処理されます。 2. 事前に用意した [`authentify()` 関数](#function-authentify) を呼び出し、ユーザーの資格情報をチェックして、適切な権限で[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出します。 `authentify()` は公開された [データストアクラス関数](../ORDA/ordaClasses.md#datastore-クラス) でなければなりません。 + The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). -3. `/rest/$catalog/authentify` リクエストは、ユーザーの資格情報と共にサーバーに送信されます。 このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](https://developer.4d.com/qodly/) を利用できます。 - -4. ユーザーが正常に認証された場合、4Dライセンスがサーバー上で消費され、すべての RESTリクエストが受け入れられます。 +3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. ![alt-text](../assets/en/REST/force-login-2.jpeg) 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 cffc9f4d5600f5..5903ee7215763c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -11,7 +11,7 @@ title: プロセスページ 列ヘッダーをドラッグ&ドロップして、列の順番を入れ替えることができます。 また、ヘッダーをクリックすると、リストの値が並べ替えられます。 -Like the Sessions page, this page contains a dynamic [search/filtering area](sessions.md#search-and-filtering) that can be used to reduce the number of rows displayed in the list to those that correspond to the text entered in the search area. 検索/フィルターはセッションとプロセス名の列に対して実行されます。 +セッションページと同様にこのページにも、検索欄に入力されたテキストに対応する行だけをリストに表示させ、行数を減らすことができる動的な [検索/フィルターエリア](sessions.md#検索とフィルター) があります。 検索/フィルターはセッションとプロセス名の列に対して実行されます。 ウィンドウに表示されるプロセスを、タイプ毎にフィルターするためのボタンが 3つあります: @@ -99,6 +99,6 @@ Like the Sessions page, this page contains a dynamic [search/filtering area](ses > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 -- **Watch session**: used to display, on the [Sessions page](sessions.md), all the processes of the selected session(s). 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **セッションを表示**: 選択されたプロセスのセッションを管理ウィンドウの [セッションページ](sessions.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6569262f2949934e1b2af256e301b7110e20055c GIT binary patch literal 26663 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 MYI>@u+jfus1MV7mGynhq literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e79f7c74dc328507b93fe17fa8370ae866f1367 GIT binary patch literal 21324 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 C4wF6r literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/server/vss.md b/i18n/ja/docusaurus-plugin-content-docs/current/server/vss.md index a34a683b725991..976daa79575d66 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/server/vss.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/server/vss.md @@ -25,26 +25,26 @@ VSS 機能は4D Server アプリケーションがローンチされたときに 3. アプリケーションを終了し、4D Server あるいは組み込みアプリケーションサーバーを管理者として再起動する。 その際4D VSS サービスが自動的に実行され、VSS に登録される。 4. (任意)4D Server あるいは組み込みアプリケーションを通常の権限を使用して再起動する。 -The VSS writer executable is started as a service with the name "VSS \". One VSS service will run for all 4D Server instances. One VSS service will run for each different engined application (different name) running on the machine (see below). +VSS ライターの実行ファイルは、"VSS \" という名前でサービスとして開始されます。 全ての4D Server インスタンスに対して一つのVSS サービスが実行されます。 同じマシン上で実行される組み込みアプリケーション(違う名前を持つ)に対しては、それぞれに個別のVSS サービスが実行されます(以下参照)。 -The [Monitor Page](../ServerWindow/monitor.md) of the 4D Server Administration window displays the status of VSS writer service, in Application information area: +4D Server 管理ウィンドウの[モニターページ](../ServerWindow/monitor.md) にはVSS ライターサービスの状態がアプリケーション情報エリア内に表示されます: ![](../assets/en/server/vss.png) -Additional information about the Volume Shadow Copy status can be displayed in a tips when you hover the mouse over the area: +エリア上にマウスをホバーすると、ボリュームシャドウコピーサービスに関する追加の情報が表示されます: ![](../assets/en/server/vss-2.png) -## About VSS Writer +## VSSライターについて -The **vss_writer.exe** application is provided to handle Volume Shadow Copy Service (VSS) management for 4D applications. +4D アプリケーションのボリュームシャドウコピーサービス(VSS) 管理を行うために**vss_writer.exe** アプリケーションが提供されています。 :::note -The 4D VSS management is handled through a separate application since this program must run using administration privileges. +4D VSS 管理は別のアプリケーションを通して行われます。このプログラムは管理者権限を使用して実行される必要があるからです。 ::: -The 4D VSS writer executable is automatically installed by 4D Server at first launch. +4D VSS ライターの実行可能ファイルは4D Server によって初回起動時に自動的にインストールされます。 -The 4D VSS Writer service handles and transfers VSS messages to 4D Server. These messages are logged in the 4D Server diagnostic log, and in the Windows event viewer. \ No newline at end of file +4D VSS ライターサービスはVSS メッセージを管理し、そのメッセージを4D Server へと転送します。 これらのメッセージは4D Server の診断ログと、Windows イベントビューワーに記録されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md index 931a1dc77c4c8e..a2c67116790073 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md @@ -23,7 +23,7 @@ title: エラー処理 ## 予測可能なエラーvs予測不可能なエラー {#predictable-vs-unpredictable-errors} -[`entity.save()`](../API/EntityClass.md#save) や [`transporter.send()`](../API/SMTPTransporterClass.md#send) などの多くの4D クラス関数は、*status* 情報を格納しているオブジェクトを返します。 このオブジェクトには、プログラムの実行を停止する必要のないエラー(無効なパスワード、ロックされたエンティティ)など、ランタイムコンテキストにおける**予測可能な**エラーを保存するのに使用されます。 このカテゴリのエラーは、**サイレントエラー**とも呼ばれ、通常のコードで管理することができます。 [`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは[エラー処理メソッド](#エラー処理メソッドを実装する) などのエラー処理コンテキストにおいてこのようなエラーが発生した場合、これらは実行を中断することはせず、エラー処理(例: [`Try/Catch`](#trycatchend-try) の`Catch` 部分)をトリガーすることはありません。 これらは[`Last errors`](../commands/last-errors) のコレクションには含まれません。 エラーは返されるオブジェクトの`status` および `statusText` プロパティ内にのみ返されます。 これはビジネスロジックに応じて処理することが可能です。 +[`entity.save()`](../API/EntityClass.md#save) や [`transporter.send()`](../API/SMTPTransporterClass.md#send) などの多くの4D クラス関数は、*status* 情報を格納しているオブジェクトを返します。 このオブジェクトには、プログラムの実行を停止する必要のないエラー(無効なパスワード、ロックされたエンティティ)など、ランタイムコンテキストにおける**予測可能な**エラーを保存するのに使用されます。 このカテゴリーのエラーは、**サイレントエラー**とも呼ばれ、通常のコードで管理することができます。 [`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは[エラー処理メソッド](#エラー処理メソッドを実装する) などのエラー処理コンテキストにおいてこのようなエラーが発生した場合、これらは実行を中断することはせず、エラー処理(例: [`Try/Catch`](#trycatchend-try) の`Catch` 部分)をトリガーすることはありません。 これらは[`Last errors`](../commands/last-errors) のコレクションには含まれません。 エラーは返されるオブジェクトの`status` および `statusText` プロパティ内にのみ返されます。 これはビジネスロジックに応じて処理することが可能です。 もう一つのエラーのカテゴリーは**予測不可能な**エラーと呼ばれ、別名**深刻なエラー**とも呼ばれます。 これにはディスク書き込みエラー、ネットワーク失敗、あるいはそれ以外の予期せぬ中断が含まれます。 これらのカテゴリーのエラーは[*コード*、*メッセージ*および*署名*](#エラーコード)によって定義される例外を生成します。 これらは実行を中断し、[`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは [エラー処理メソッド](#エラー処理メソッドの実装) 機能のエラー処理をトリガーします。 これらは[`Last errors`](../commands/last-errors) のコレクションに含まれます。 深刻なエラーは、プロパティに値(例: `dk status serious error` - "その他のエラー")も返すことがあり得るという点に注意してください。 @@ -193,7 +193,7 @@ function test() ``` -3. [予測可能なエラーと予測不可能なエラー]{#predictable-vs-unpredictable-errors} の両方を管理したい場合を考えます: +3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: ```4d var $e:=ds.Employee.new() @@ -293,7 +293,7 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo - **メッセージ**。エラーがなぜ起きたかを説明します。 - **コード**。コンポーネントによって返される任意の数値です。 -[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 +[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 Click on the **Copy** button to store detailed information related to the error in the pasteboard. エラーと特にその原因の完全な詳細を取得するには、[`Last errors`](../commands/last-errors) コマンドを呼び出す必要があります。 最終アプリケーションにおいて[エラー処理メソッド](#installing-an-error-handling-method) を使用してエラーへの割り込みと処理をする場合、[`Last errors`](../commands/last-errors) を使用して必ず*error* オブジェクトの全てのプロパティを記録するようにしてください。エラーコードはコンポーネントによって異なるからです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/CryptoKeyClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/CryptoKeyClass.md index 5b5fe8c3229431..c1edeabd0a6b92 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/CryptoKeyClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/CryptoKeyClass.md @@ -327,7 +327,7 @@ ECDSA キーのみ: キーの楕円曲線 **.pem** : Text -The PEM definition of an encryption key to load. 秘密鍵を渡した場合、RSA または ECDSA の公開鍵は秘密鍵から推定されます。 +読み込む暗号化キーのPEM 定義。 秘密鍵を渡した場合、RSA または ECDSA の公開鍵は秘密鍵から推定されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md index 931a1dc77c4c8e..71c7ac627f984e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md @@ -23,7 +23,7 @@ title: エラー処理 ## 予測可能なエラーvs予測不可能なエラー {#predictable-vs-unpredictable-errors} -[`entity.save()`](../API/EntityClass.md#save) や [`transporter.send()`](../API/SMTPTransporterClass.md#send) などの多くの4D クラス関数は、*status* 情報を格納しているオブジェクトを返します。 このオブジェクトには、プログラムの実行を停止する必要のないエラー(無効なパスワード、ロックされたエンティティ)など、ランタイムコンテキストにおける**予測可能な**エラーを保存するのに使用されます。 このカテゴリのエラーは、**サイレントエラー**とも呼ばれ、通常のコードで管理することができます。 [`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは[エラー処理メソッド](#エラー処理メソッドを実装する) などのエラー処理コンテキストにおいてこのようなエラーが発生した場合、これらは実行を中断することはせず、エラー処理(例: [`Try/Catch`](#trycatchend-try) の`Catch` 部分)をトリガーすることはありません。 これらは[`Last errors`](../commands/last-errors) のコレクションには含まれません。 エラーは返されるオブジェクトの`status` および `statusText` プロパティ内にのみ返されます。 これはビジネスロジックに応じて処理することが可能です。 +[`entity.save()`](../API/EntityClass.md#save) や [`transporter.send()`](../API/SMTPTransporterClass.md#send) などの多くの4D クラス関数は、*status* 情報を格納しているオブジェクトを返します。 このオブジェクトには、プログラムの実行を停止する必要のないエラー(無効なパスワード、ロックされたエンティティ)など、ランタイムコンテキストにおける**予測可能な**エラーを保存するのに使用されます。 このカテゴリーのエラーは、**サイレントエラー**とも呼ばれ、通常のコードで管理することができます。 [`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは[エラー処理メソッド](#エラー処理メソッドを実装する) などのエラー処理コンテキストにおいてこのようなエラーが発生した場合、これらは実行を中断することはせず、エラー処理(例: [`Try/Catch`](#trycatchend-try) の`Catch` 部分)をトリガーすることはありません。 これらは[`Last errors`](../commands/last-errors) のコレクションには含まれません。 エラーは返されるオブジェクトの`status` および `statusText` プロパティ内にのみ返されます。 これはビジネスロジックに応じて処理することが可能です。 もう一つのエラーのカテゴリーは**予測不可能な**エラーと呼ばれ、別名**深刻なエラー**とも呼ばれます。 これにはディスク書き込みエラー、ネットワーク失敗、あるいはそれ以外の予期せぬ中断が含まれます。 これらのカテゴリーのエラーは[*コード*、*メッセージ*および*署名*](#エラーコード)によって定義される例外を生成します。 これらは実行を中断し、[`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは [エラー処理メソッド](#エラー処理メソッドの実装) 機能のエラー処理をトリガーします。 これらは[`Last errors`](../commands/last-errors) のコレクションに含まれます。 深刻なエラーは、プロパティに値(例: `dk status serious error` - "その他のエラー")も返すことがあり得るという点に注意してください。 @@ -193,7 +193,7 @@ function test() ``` -3. [予測可能なエラーと予測不可能なエラー]{#predictable-vs-unpredictable-errors} の両方を管理したい場合を考えます: +3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: ```4d var $e:=ds.Employee.new() @@ -293,7 +293,21 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo - **メッセージ**。エラーがなぜ起きたかを説明します。 - **コード**。コンポーネントによって返される任意の数値です。 -[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 +To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. -エラーと特にその原因の完全な詳細を取得するには、[`Last errors`](../commands/last-errors) コマンドを呼び出す必要があります。 最終アプリケーションにおいて[エラー処理メソッド](#installing-an-error-handling-method) を使用してエラーへの割り込みと処理をする場合、[`Last errors`](../commands/last-errors) を使用して必ず*error* オブジェクトの全てのプロパティを記録するようにしてください。エラーコードはコンポーネントによって異なるからです。 +### Error dialog box + +[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 Expand the **Details** area and click on the **Save...** or **Copy** button: + +![copy-button](../assets/en/Concepts/error.png) + +Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: + +![pasted-error](../assets/en/Concepts/error2.png) + +### `Last errors` command + +You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. + +When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md index b42be29b1716e1..ebc7a1082b7a68 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md @@ -28,10 +28,9 @@ title: ユーザーとセッション 記述的RESTリクエスト は、ライセンスを消費する Webユーザーセッションが開かれていなくても、常にサーバーで処理されます。 この場合、それらは "ゲスト" セッションを介して処理されます。 2. 事前に用意した [`authentify()` 関数](#function-authentify) を呼び出し、ユーザーの資格情報をチェックして、適切な権限で[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出します。 `authentify()` は公開された [データストアクラス関数](../ORDA/ordaClasses.md#datastore-クラス) でなければなりません。 + The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). -3. `/rest/$catalog/authentify` リクエストは、ユーザーの資格情報と共にサーバーに送信されます。 このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](https://developer.4d.com/qodly/) を利用できます。 - -4. ユーザーが正常に認証された場合、4Dライセンスがサーバー上で消費され、すべての RESTリクエストが受け入れられます。 +3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/processes.md index cffc9f4d5600f5..5903ee7215763c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/processes.md @@ -11,7 +11,7 @@ title: プロセスページ 列ヘッダーをドラッグ&ドロップして、列の順番を入れ替えることができます。 また、ヘッダーをクリックすると、リストの値が並べ替えられます。 -Like the Sessions page, this page contains a dynamic [search/filtering area](sessions.md#search-and-filtering) that can be used to reduce the number of rows displayed in the list to those that correspond to the text entered in the search area. 検索/フィルターはセッションとプロセス名の列に対して実行されます。 +セッションページと同様にこのページにも、検索欄に入力されたテキストに対応する行だけをリストに表示させ、行数を減らすことができる動的な [検索/フィルターエリア](sessions.md#検索とフィルター) があります。 検索/フィルターはセッションとプロセス名の列に対して実行されます。 ウィンドウに表示されるプロセスを、タイプ毎にフィルターするためのボタンが 3つあります: @@ -99,6 +99,6 @@ Like the Sessions page, this page contains a dynamic [search/filtering area](ses > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 -- **Watch session**: used to display, on the [Sessions page](sessions.md), all the processes of the selected session(s). 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 +- **セッションを表示**: 選択されたプロセスのセッションを管理ウィンドウの [セッションページ](sessions.md) に直接表示させることができます。 1つ以上のユーザープロセスが選択されている場合にこのボタンは有効になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6569262f2949934e1b2af256e301b7110e20055c GIT binary patch literal 26663 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 MYI>@u+jfus1MV7mGynhq literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e79f7c74dc328507b93fe17fa8370ae866f1367 GIT binary patch literal 21324 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 C4wF6r literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md index 9d0e4466c4fddc..fdfc417cacaa7f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md @@ -23,7 +23,7 @@ title: エラー処理 ## 予測可能なエラーvs予測不可能なエラー {#predictable-vs-unpredictable-errors} -[`entity.save()`](../API/EntityClass.md#save) や [`transporter.send()`](../API/SMTPTransporterClass.md#send) などの多くの4D クラス関数は、*status* 情報を格納しているオブジェクトを返します。 このオブジェクトには、プログラムの実行を停止する必要のないエラー(無効なパスワード、ロックされたエンティティ)など、ランタイムコンテキストにおける**予測可能な**エラーを保存するのに使用されます。 このカテゴリのエラーは、**サイレントエラー**とも呼ばれ、通常のコードで管理することができます。 [`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは[エラー処理メソッド](#エラー処理メソッドを実装する) などのエラー処理コンテキストにおいてこのようなエラーが発生した場合、これらは実行を中断することはせず、エラー処理(例: [`Try/Catch`](#trycatchend-try) の`Catch` 部分)をトリガーすることはありません。 これらは[`Last errors`](../commands/last-errors.md) のコレクションには含まれません。 エラーは返されるオブジェクトの`status` および `statusText` プロパティ内にのみ返されます。 これはビジネスロジックに応じて処理することが可能です。 +[`entity.save()`](../API/EntityClass.md#save) や [`transporter.send()`](../API/SMTPTransporterClass.md#send) などの多くの4D クラス関数は、*status* 情報を格納しているオブジェクトを返します。 このオブジェクトには、プログラムの実行を停止する必要のないエラー(無効なパスワード、ロックされたエンティティ)など、ランタイムコンテキストにおける**予測可能な**エラーを保存するのに使用されます。 このカテゴリーのエラーは、**サイレントエラー**とも呼ばれ、通常のコードで管理することができます。 [`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは[エラー処理メソッド](#エラー処理メソッドを実装する) などのエラー処理コンテキストにおいてこのようなエラーが発生した場合、これらは実行を中断することはせず、エラー処理(例: [`Try/Catch`](#trycatchend-try) の`Catch` 部分)をトリガーすることはありません。 これらは[`Last errors`](../commands/last-errors.md) のコレクションには含まれません。 エラーは返されるオブジェクトの`status` および `statusText` プロパティ内にのみ返されます。 これはビジネスロジックに応じて処理することが可能です。 もう一つのエラーのカテゴリーは**予測不可能な**エラーと呼ばれ、別名**深刻なエラー**とも呼ばれます。 これにはディスク書き込みエラー、ネットワーク失敗、あるいはそれ以外の予期せぬ中断が含まれます。 これらのカテゴリーのエラーは[*コード*、*メッセージ*および*署名*](#エラーコード)によって定義される例外を生成します。 これらは実行を中断し、[`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは [エラー処理メソッド](#エラー処理メソッドの実装) 機能のエラー処理をトリガーします。 これらは[`Last errors`](../commands/last-errors.md) のコレクションに含まれます。 深刻なエラーは、プロパティに値(例: `dk status serious error` - "その他のエラー")も返すことがあり得るという点に注意してください。 @@ -193,7 +193,7 @@ function test() ``` -3. [予測可能なエラーと予測不可能なエラー]{#predictable-vs-unpredictable-errors} の両方を管理したい場合を考えます: +3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: ```4d var $e:=ds.Employee.new() @@ -293,6 +293,6 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo - **メッセージ**。エラーがなぜ起きたかを説明します。 - **コード**。コンポーネントによって返される任意の数値です。 -[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 +[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 Click on the **Copy** button to store detailed information related to the error in the pasteboard. エラーと特にその原因の完全な詳細を取得するには、[`Last errors`](../commands/last-errors.md) コマンドを呼び出す必要があります。 エラーと特にその原因の完全な詳細を取得するには、[`Last errors`](../commands/last-errors.md) コマンドを呼び出す必要があります。 最終アプリケーションにおいて[エラー処理メソッド](#installing-an-error-handling-method) を使用してエラーへの割り込みと処理をする場合、[`Last errors`](../commands/last-errors.md) を使用して必ず*error* オブジェクトの全てのプロパティを記録するようにしてください。エラーコードはコンポーネントによって異なるからです。 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 7a19d39b32648e..bf45d8fa6b5fc7 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 @@ -9,6 +9,12 @@ title: リリースノート ::: +## 4D 21.2 LTS + +#### ハイライト + +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21.2): 4D 21.2 で修正されたバグのリストです(日本語版は [こちら](https://4d-jp.github.io/2025/279/release-note-version-21/))。 + ## 4D 21.1 LTS #### ハイライト @@ -317,7 +323,7 @@ title: リリースノート | libZip | 1.11.4 | **21** | Zip クラス、4D Write Pro、svg および serverNet コンポーネントによって使用。 | | LZMA | 5.8.1 | **21** | | | ngtcp2 | 1.18.0 | **21** | QUIC に使用 | -| OpenSSL | 3.5.2 | **21** | | +| OpenSSL | 3.5.7 | **21** | | | PDFWriter | 4.7.0 | **21** | [`WP Export document`](../WritePro/commands/wp-export-document.md) および [`WP Export variable`](../WritePro/commands/wp-export-variable.md) において使用されます | | SpreadJS | 17.1.0 | 20 R7 | 新機能の概要については、[このブログ記事](https://blog.4d.com/ja/4d-view-pro-whats-new-in-4d-20-r7/) を参照ください。 | | webKit | WKWebView | 19 | | 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 8ae07257bc0f44..16bb4c329b87f6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -102,7 +102,7 @@ $result:=$transporter.send($email) #### Veja também -[.certificateName](#certificatename)
+[.certificateName](#certificatename) [.certificatePassword](#certificatepassword) ## .certificateName @@ -121,11 +121,17 @@ $result:=$transporter.send($email) The `.certificateName` property contains the name of the certificate used to sign emails using S/MIME (Secure/MIME) as it is registered in the system Certificate store (*keychain*). This certificate contains the private key. -The certificate can also be provided directly as a file using the [`.certificate`](#certificate) property. Note that you cannot use both properties simultaneously, otherwise an error is returned. +The certificate can also be provided directly as a file or blob using the [`.certificate`](#certificate) property. Note that you cannot use both properties simultaneously, otherwise an error is returned. + +:::tip Related blog post + +[Signing emails with S/MIME and SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) + +::: #### Veja também -[.certificate](#certificate) +[.certificate](#certificate) [.certificatePassword](#certificatepassword) ## .certificatePassword @@ -146,7 +152,7 @@ The `.certificatePassword` property contains diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/error-handling.md b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/error-handling.md index eef155dfc93734..9fcf8f9e323cf4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/error-handling.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Concepts/error-handling.md @@ -191,7 +191,7 @@ function test() ``` -3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. Você deseja lidar com erros [previsíveis e não previsíveis](#predictable-vs-unpredictable-errors): ```4d var $e:=ds.Employee.new() @@ -290,7 +290,21 @@ Exceções que interrompem a execução de código são retornadas pela 4D, mas - uma **mensagem**, que explica porque o erro ocorreu - um **código**, que é um número arbitrário retornado pelo componente -A [caixa de diálogo de erro 4D](../Debugging/basics.md) mostra o código e a mensagem para o usuário. +To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. -Para ter uma descrição completa de um erro e especialmente de sua origem, você precisa chamar o comando [`Last errors`](../commands/last-errors). Ao interceptar e tratar erros usando um [método de tratamento de erros](#installing-an-error-handling-method) em seus aplicativos finais, use [`Last errors`](../commands/last-errors) e certifique-se de registrar todas as propriedades do objeto *error*, pois os códigos de erro dependem dos componentes. +### Error dialog box + +A [caixa de diálogo de erro 4D](../Debugging/basics.md) mostra o código e a mensagem para o usuário. Expand the **Details** area and click on the **Save...** or **Copy** button: + +![copy-button](../assets/en/Concepts/error.png) + +Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: + +![pasted-error](../assets/en/Concepts/error2.png) + +### `Last errors` command + +You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. + +When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. 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 07f07e64ee042c..25eead492d3959 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,7 +9,7 @@ Leia [**O que há de novo no 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21- #### Destaques -- Support of S/MIME email signing in [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class through new properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos os bugs corrigidos em 4D 21 R5. 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 000d4e5563921d..27b79f631b989d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -7,7 +7,7 @@ Um **datastore remoto** é uma referência, em uma aplicação 4D local (4D ou 4 O aplicativo 4D local se conecta ao datastore remoto e faz referência a ele por meio de uma chamada ao comando [`Open datastore`](../commands/open-datastore). -Na máquina remota, 4D abre uma [sessão](../WebServer/sessions.md) para lidar com solicitações da aplicação que chamam `Open datastore`. As solicitações usam internamente a [API REST](../REST/gettingStarted.md), o que significa que elas podem exigir [licenças disponíveis](../REST/authUsers.md). +Na máquina remota, 4D abre uma [sessão](../WebServer/sessions.md) para lidar com solicitações da aplicação que chamam `Open datastore`. Requests internally use the [REST API](../REST/gettingStarted.md), which means that they require [**authentication** and **available licenses**](../REST/authUsers.md). ## Usando sessões web @@ -27,19 +27,11 @@ Estes princípios são ilustrados nos gráficos seguintes: ### Visionamento de sessões -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`. - -No exemplo a seguir, dois processos estão sendo executados na mesma sessão: - -![](../assets/en/ORDA/sessionAdmin.png) +Sessions for datastore access are shown in the 4D Server administration window as [**REST sessions**](../ServerWindow/sessions.md#rest-web-and-soap-sessions) with **4D** as user agent. ## Fechamento das sessões -Conforme descrito no [tempo de vida da sessão](../WebServer/sessions.md#session-lifetime), uma sessão web é fechada automaticamente por 4D quando não há atividade durante seu período limite. El tiempo de espera por defecto es de 60 mn, pero este valor puede modificarse utilizando el parámetro *connectionInfo* del comando `Open datastore`. +Conforme descrito no [tempo de vida da sessão](../WebServer/sessions.md#session-lifetime), uma sessão web é fechada automaticamente por 4D quando não há atividade durante seu período limite. The default timeout is 60 mn, but this value can be modified using the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore) command. Se uma solicitação for enviada ao repositório de dados remoto depois que a sessão tiver sido fechada, ela será recriada automaticamente, se possível (licença disponível, servidor não parado...). However, keep in mind that the context of the session regarding locks and transactions is lost (see below). @@ -48,7 +40,7 @@ Se uma solicitação for enviada ao repositório de dados remoto depois que a se Os recursos do ORDA relacionados ao bloqueio de entidades e à transação são gerenciados no nível do processo em repositórios de dados remotos, assim como no modo cliente/servidor do ORDA: - Si un proceso bloquea una entidad de un datastores remoto, la entidad se bloquea para todos los otros procesos, incluso cuando estos procesos comparten la misma sesión (ver [Bloqueo de entidades](entities.md#entity-locking)). Se várias entidades que apontam para um mesmo registro tiverem sido bloqueadas em um processo, todas elas deverão ser desbloqueadas no processo para remover o bloqueio. Se um bloqueio tiver sido colocado em uma entidade, o bloqueio será removido quando não houver mais referência a essa entidade na memória. -- Las transacciones pueden iniciarse, validarse o cancelarse por separado en cada almacén de datos remoto mediante las funciones `dataStore.startTransaction()`, `dataStore.cancelTransaction()` y `dataStore.validateTransaction()`. Não têm impacto noutros datastores. +- Transactions can be started, validated or cancelled separately on each remote datastore using the [`dataStore.startTransaction()`](../API/DataStoreClass.md#starttransaction), [`dataStore.cancelTransaction()`](../API/DataStoreClass.md#canceltransaction), and [`dataStore.validateTransaction()`](../API/DataStoreClass.md#starttransaction) functions. Não têm impacto noutros datastores. - Classic 4D language commands ([`START TRANSACTION`](../commands/start-transaction), [`VALIDATE TRANSACTION`](../commands/validate-transaction), [`CANCEL TRANSACTION`](../commands/cancel-transaction)) only apply to the main datastore (returned by `ds`). Se uma entidade de um datastore remoto é segurada por uma transação em um processo, outros processos não podem atualizá-lo, mesmo que esses processos compartilhem a mesma sessão. - Os bloqueios nas entidades são removidos e as transações são anuladas: 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 72dd6a821050c8..ea294fe3dbaa99 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -28,10 +28,9 @@ A sequência de login do usuário é a seguinte: Descriptive REST requests are always processed by the server, even if no web user session using a license is opened. At the first REST call (for a Qodly page call for example), a "guest" web user session is created. 2. Você chama sua [`authentify()`](#function-authentify) (criado previamente), na qual você verifica as credenciais do usuário e chama [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) com privilégios apropriados. `authentify()` deve ser uma [função de datastore class](../ORDA/ordaClasses.md#datastore-class) exposta. + The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). -3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. This step only requires a basic login form that do not access data; it can be a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). - -4. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted. +3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Concepts/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6569262f2949934e1b2af256e301b7110e20055c GIT binary patch literal 26663 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 MYI>@u+jfus1MV7mGynhq literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Concepts/error2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e79f7c74dc328507b93fe17fa8370ae866f1367 GIT binary patch literal 21324 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 C4wF6r literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md index a864467800e10a..5312bf17e12f59 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md @@ -191,7 +191,7 @@ function test() ``` -3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. Você deseja lidar com erros [previsíveis e não previsíveis](#predictable-vs-unpredictable-errors): ```4d var $e:=ds.Employee.new() @@ -290,7 +290,7 @@ Exceções que interrompem a execução de código são retornadas pela 4D, mas - uma **mensagem**, que explica porque o erro ocorreu - um **código**, que é um número arbitrário retornado pelo componente -A [caixa de diálogo de erro 4D](../Debugging/basics.md) mostra o código e a mensagem para o usuário. +A [caixa de diálogo de erro 4D](../Debugging/basics.md) mostra o código e a mensagem para o usuário. Click on the **Copy** button to store detailed information related to the error in the pasteboard. Para ter uma descrição completa de um erro e especialmente de sua origem, você precisa chamar o comando [`Last errors`](../commands/last-errors). Ao interceptar e tratar erros usando um [método de tratamento de erros](#installing-an-error-handling-method) em seus aplicativos finais, use [`Last errors`](../commands/last-errors) e certifique-se de registrar todas as propriedades do objeto *error*, pois os códigos de erro dependem dos componentes. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md index a864467800e10a..7ae1aa12174f0b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md @@ -191,7 +191,7 @@ function test() ``` -3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. Você deseja lidar com erros [previsíveis e não previsíveis](#predictable-vs-unpredictable-errors): ```4d var $e:=ds.Employee.new() @@ -290,7 +290,21 @@ Exceções que interrompem a execução de código são retornadas pela 4D, mas - uma **mensagem**, que explica porque o erro ocorreu - um **código**, que é um número arbitrário retornado pelo componente -A [caixa de diálogo de erro 4D](../Debugging/basics.md) mostra o código e a mensagem para o usuário. +To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. -Para ter uma descrição completa de um erro e especialmente de sua origem, você precisa chamar o comando [`Last errors`](../commands/last-errors). Ao interceptar e tratar erros usando um [método de tratamento de erros](#installing-an-error-handling-method) em seus aplicativos finais, use [`Last errors`](../commands/last-errors) e certifique-se de registrar todas as propriedades do objeto *error*, pois os códigos de erro dependem dos componentes. +### Error dialog box + +A [caixa de diálogo de erro 4D](../Debugging/basics.md) mostra o código e a mensagem para o usuário. Expand the **Details** area and click on the **Save...** or **Copy** button: + +![copy-button](../assets/en/Concepts/error.png) + +Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: + +![pasted-error](../assets/en/Concepts/error2.png) + +### `Last errors` command + +You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. + +When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md index 72dd6a821050c8..ea294fe3dbaa99 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md @@ -28,10 +28,9 @@ A sequência de login do usuário é a seguinte: Descriptive REST requests are always processed by the server, even if no web user session using a license is opened. At the first REST call (for a Qodly page call for example), a "guest" web user session is created. 2. Você chama sua [`authentify()`](#function-authentify) (criado previamente), na qual você verifica as credenciais do usuário e chama [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) com privilégios apropriados. `authentify()` deve ser uma [função de datastore class](../ORDA/ordaClasses.md#datastore-class) exposta. + The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). -3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. This step only requires a basic login form that do not access data; it can be a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). - -4. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted. +3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6569262f2949934e1b2af256e301b7110e20055c GIT binary patch literal 26663 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 MYI>@u+jfus1MV7mGynhq literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/assets/en/Concepts/error2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e79f7c74dc328507b93fe17fa8370ae866f1367 GIT binary patch literal 21324 zcmce82{@Gh-uEC|WJzU9)@ZRt6ft(n7Ai{^YqFDln^DM4QOFt<*>|#zUAB;&7)#c% zkHL(Y@!q5VbIx<#_dMr4&wD-B+f|nsbI*Ox{C?l>XZzj}54F|Kon<=<0)fumS69{p zfk;_EAd)#M3g9OzMHeu@7ZP_pHAPVIkIQSoH)m`Wv=l&~vN#%?1v&6NwX3?3I|xMA zM*K(8QX( zWo2QUzJt&jZgT*9fs|liX+5OT*0NzacKvV+Tf|X^&h-|* z;uh+Tfi(#uS^JdW6dkZH%*QI2qbYt*qfE|t*_`Mjp!H=nlA|q6;X{3 z;2-SL?U9TC7aHtQcyRrv2bq4FGDIFa*OG02?PjKAxfgBj;SXp|I>yV*Q z*LRM-4F3{rRv$wZPKvr*xsV#vnPbrJKGW~Bh&t>}oJP+aa40m=x`$VUXcq-=pzc~w z}M#9 zOnsIfbjff+&Wk(9HLPuqk-n8@EAaTZXFR^af}Pb+Zfr}Qa$W6-6~1b(cYFXN42J4_ zg(sFR(Pw5_$AR5A8S6D)_rM6~6$gEG^P?wD0voGg`$Er4nA+_kB@RG`c^I-oZJp8# zo%tX6{GTUen$LUh&tk$>eUeFr%2uK(!pc*-YI5#0StIE;sJ8U05<+7sXdYu;eTd2{ zWx|f#N#21SkU!UFu9({wF3$G7eL&m1Q;yZq z|6G;uRg-DsAwEPKe;D_+D1WMn`_@wMD}?tOmwC_gya&+%vSRmmTMvYuwhr!zh@2el z@)m;+Mi5r1H0%Un?)B264fc+Dnrt~Z{rME-o8bao(tES$UBFLow-V(Y@o%{J*W zsIVJmSH=ux^*Rx3|NE%7NpBN8d5ArX`>~hliOG@x|*+_O(~FUpb$1 zdo_`4*WSp)Y_x<|f8B(a2CoOX`~a(3Vz6hyvSb7#n?u(t7s{%r?IYa$56X>?znbC( zAz*GVIdhT7)-@j!HoU_82Vs0**rd;O$saoppT5gpqJIb5IJ!UPb8!rIahdeMB8(%^ zXQX0L`1ss*;PFzAt#hP1Bznnfs;Q+esA)KWsLtAJeYub z5}rHkY;P^5Kd-q{?L+}HxNQt$uEXxx#AdQud!gMQy{wDq=5I1$FQazklD^e^bcZ^&2y&!}J)`QO9N$3J zYb*FnrT6=F-o|r2z9>_4ZgGU(GfX#@dQ0%RMCOyu6&Lyk_2M>6mSew!hGnyV_~1>K zr+S$qx^&!XyiAvKTs&}%E+?!@;{1B1(Tj?A^qF@S>}SYKFCMN%V~^FlW$0p1Cr-VY zF;B5LIkg}QVe_`I#||%OIcT6d`s3aElzpHEIER?;2&!p;^NuQ+_iaxsZ=&j%!?5z> z_xvB0!sv3gXj?i%YP(Y=G9u}khcGDNu(xt;<>cH(R`w`L=bF8zl>tbv=4+KcUJ5u>IDauoL0D@U#+2tho&@Fvs1 z`;<|J8ou7jDa>s)redk1yeK%#@CC!d z9S)|pu=?~l-2ol-CVB{#PPxmTvrWdt;aDw^Q+iMkUagekb3m)SCBeCW_ZGNZu6aVK zg0(cQ*a|JquAFbjR=LI~V(R^HnV&u2vG6CBFQ)A2P8d*tVa%G9=DjEznOvxUuhg>! zf-r9_uA&$0g-f2W216zBp0B7WKN3$O?~jW&*^UoP z?B10O>@&ohKG?%awASR88&TOyiH!@xoPtUdJ>h-tw!oY#H9*TljdQ|q+)!-~aQyA% zVWC8~#{0KIJ{jFnm%Fd1tX%V@nml-wt&U>t>h>M^7YxFTj5EKsPw&NPa)K>^z)lWfB2aChCwfSFz5VBn@_dNvXM~%)G6X`UrYU@5-kCJ| zne8$RFCvES*h^PX04AU6LF{5yuZsBaE; z9_{ZGyp#}cjvwh`-JLWeO)SiuYi-jh`<10H$7bROZ{3$-K$q%*YIj=`SgPwu+~e{Ni+nkaS+-C4m9#* z;45?ieOna!Hph^`P0Zp$So_bN-5Z_`>5X;MJCKWr2$B5$HuduntmB4j$5C3%J@@QXu$Dwx9I7bwJGe(*a+bMqcT^#|$2*!MRO9oTWiDunv8W9%WlQTOzvw`F~MyAlHCH!t2YNIc5Z|!QKm2@qE|v@OwZxF26nc2>tVO!U}czqLc;k5 zr%xOG)z~wy-|Pz-4OA?OgN3V#oxjdvZ^9oQpG&dflm^=lwZnSt%>`Ml-+5>vPY9a|CeVxALu(H!rhVA$7*wH!eL!RV2SK zO#>fH9Ud87nqZjU8mwapM@1ny^+p0WScB%dg;UENNEFhpviBU!-%GVNqx^)rx$v|k z`8TTpnar!>NAPCr>$3&e0xXk=FvRy~_1q^y=gn;oY*)PEL z%KF(n_p^O^PMe?a`u%y*%fxDe+wyhcq--)Hl_+N zI@3*p?2Zn!ibiI&*v8M$W>m!#s>1p(z7_Oo_FghR{W52G@V&5u1AV^jI}%%h6(*N* zrFeQ*pXVnS!6)w7*#rmOz-$ahCZ}1h%mdy6yvQTEZAv1ieKx zju4zH&&98MCn{;lpY@O&Jy!${5qFXc9CWsSC)1Le+9bgIdaOjX9QsOz#<)N1FwcwR zm?3{$qz0DOVbbgz9ri6GBD7DRZk|r=b!T8DQfDa~SB>NZ+eo#|>Cp^m zGiN7cZBPUcV0b1*(c%(=W-UQfAl2GYsHK&aNhO_|HVLhu#n`35cxT8;+6!O(83zJy zMgyTRu8@z;hlT^A5D@0gSB@0u{+`9a2+}qno zG*h-2KU5n>GJ3$?QGZ7jDI($@sHqT!LK^HHv2w#_u&BAcD% z*d}#~3Bn0gm#wWB0wzSNoGTNMhm}~nMGOXqa<8v){4PK(YX2z-_5Ih+%BgGPWoyz; zj#*|ESQf=z@HB)FzJ=%#!mW@c+H;eY2AXUGqBe1xS;+)xgj#s? zD3dW|r{=F5|eKTYcm8Jypip%GL_71X5G7QEE>LgsjvUxNwwlKsh5re^?h^v zIV=3N@#91UiDL^Fj{=pNe+S>r)olyyHI=vi5Mt;F8kuy&3NYUxl{*yw zhAnueBxc#Q_K?2J(^O`WEuR?gRq2EgXW zOoc0t@dKeZ16FBIB&~**PN79Zrs3K`rJPZ1dVv{U>z+TQA?>a3aA!rMAQDh1*=IXr z{HDR1rq01o;B_uc+n9`1Cz>LSm~Tp$JSKESsBF;QjhltK)~%9A1!Aj-!B?eFuVajxJk^kH4K^GLq=- z;!z0o6V;v(=HZc^>_3$dmP6!MJtXJjw3t&*ZfE8B2SBO2*-*2>8S`kRRm-gXu2u#|7z)?rC)jsZo!UHGR!BdYbL#GaAIWDxEDF3qFaJa490o0 zVPjIyog+hwGzNf(NIYb7nwnizSy|v1KVAY^uw6kFO_9srnP(n`2pEY6Y>;f}qqNJt z{a&F1&U!!bY-u;euQj4H045Ib)Q<&GwgLF8Pc4dpb=-nYcV&}nlQS->@85Tgrqz5% z|0YBsv6F8)(K@D9vSatE>Zfq4;j4UIRGoWeGk#g8?6>JX zqnR!j(K31`@x2490M`rGjz|OWr?vf4(RMKw_TAVi)rTgPXv#ig@9(n12~v){>ayr+hG#Ahs7bJM2*Tx~cO`BMWjpKIF;Gqsu-PPd{Q^{c?j&Y2z@CK*E8 z=1p~7)s&S@0l~y-gWNvJ&{1z*aZF0~ZuZRlM=PFLi^G1f{pTnJdpug0LV*#a=};u2 zUt{&b_9v&PQXs8L7x|qR7EVdw!+``3wO3Y+AgkfO^_<{Ps7lav{gV~J%<%ByrD~Gb zdg~%VVTbx#b{*&y@99QbAGab;0j;-*%ra^#-(dE`m^(!dpMhpRk1*$Dx$pf;0cRn%@Pur%4P`1xPejz8=@ zjG1J43Y+E7r@Ks>zRWccV4iiX#FFsy#TJ(i(}3@xycpz3Q$X{VCdGq?>SD4j*lv|a zl}FK9N%7qjG=r{0IS?C?9BC3W^zp9lZR#$JF4&%YuJP z1L$WTC7T&2eKP{GHmocYC`uiAYv`^l=y%=ur7w0Jja-WNlWpA;!mmfChQP(fE| z!g;)>eDvCD^6SbTLQd528p53Nav5#S<>;@#Ippn61Aj_jM`17quz<7%rd2q!B~yBG z_}aA1`0!Og@{6CkM2kJ>NqqBUxTULpr6&43W8iICQFSo@(Swe+W)oQ#!ek1rSn=~@ z7g#b=pX!2_{<%uHzZBxyZtbnS9~0`@{`;fU$5Y*GS>v-bgzxd^U(PPi-3bT#QA=y} z=?{;j9^M>(I63-Y3}w$zw6`DNH9&zpWV)^gUx5{QY)k!|0Bgsa%htH=K&v52u$Jmj zZ8fjouS$RE|3!`N(C5+7RV>98L+5Y-PHpHmptEb<^S0rF-?Aa07<{XR4pAdTkIJRy z?ow!m?gg;F_sXDYi$ayd`sy#^jO`~}SI7ib)L6X;DmTUNz?Jc4)8?4Z)+Op{wVa`=O3q&tH`9FRbY`iH(|lQ*QkW%k`0DYv51!kwewg?9yn92YkkEjt~ZsOs)jTY;g0ZyPHK+uGdFZ;a7P zR*TBAf9FI>8h?~TUqAF8Au*=5YaEgL^*E26ME8BkXU9mPlyAtlPP1q3Km-<1izC>J z7q!0mmP@%!R&9HXmOR1;kHHB)_*Vz>@T#|_$KkN=4`!>wBhPsEQ^#WrUdL~)88)W5 z&NDHA=*A$s7qbe!Jcd6sOF3)}BUA2-tC(bHo1-`G3=4gE&B zbL%wt7F;R^F8>c90^R&OAWQBJ#Ef|J zuQuG&R%}Bijlu&r5j74cED4vV1!e+BdHQw+Q(SpatXHJtCp~|PU6)eGCP>%0YOh&_ z{t-H9kH#)^C9#-oD&H7$8Q&c~JpR4`>GsQ5n!BF+C1#Ar{4*h**b->m=XmCx8u4^U zsId9V%N|!K<89DCXXT>PGSNhVl6hS5TQEJlh%b5c=ynINM=G*W?ipz8HU08lKYU?aT+#(0b*0fV@Fu@Xp>uWa@5qzl)~K`eTZ(8X1R@0B`@ZD zok$Lg06g=s!O@4@0Eo<`0GV%?BQlwFi8r?sn;(}<++k%oH);&3v zD#&ewTsPk8;j6>oqscr?M`>Zr_Zz<-ZAT^Y=)z9r&%mL#PfRz=eV#x0@@sea`1m`U z?3H7ri0?E{IkWG$GL-T8O#k#~!4~RL_JTCGKFsT(=?IY>$+-P*>6CTrF%d}}<4LZM4^B9&UqqV&y@mghIA>UdEAx#CDEa=V zj*sg+wm+&ROe2Rw&iHVqEBhw^+i7AqI^G}DvR?*c z?c*kts$w(h$G5P(b!z4A@`T1PRtApL-fJSO*MeI%L>ph=Nd`HSsuYr2$scD!MG7*d zGcvcgaQEb$g4`aXWqPytxyYqc*I$ouwtkSzlzT39yC;3FUki~yql7fzH3GM!lNT+w z9Y3lM3ZxoECQXBXSPGjwnGnhqEMKX6)%U$+cVdizs8vT;C0s+ zw*O?(m4h_gwDO^}i0=9xv2z}~cwQC58(RdIerY>wCT4f9?VW6Om?ai@#_i^-E4Qkl z_W?ok*JH`0B{Vyrf^xn-Op|Kyg1qrtflD)`N(7m*FIoXCX2I}f!Fv}+e8(aLvkwTN z0{Et+EzS>?nVZrBHd-ST0R>aAj2)lZ#c*`}q@G*fv;MYB53ktDUXEnK3>U4R1M>Gz9B~gpM{&|jBB);|_!5{d^yIQ*-plavBXEc94 ztg`@I#k!)@QxI7Rz;K*nG=0SsrE~8u78*FJd1>y}G=_@LSDjTfwybk8OIV~F;Yg>ZX z#Hl-HNuKz=4M(TDmzCB{~(2T}q zS`80enos^Na%fo|x_Kt$(Z@5$#YRuPC7C2hMnkvWR+eJdb-x$NNxl}MC2f))3 z4bvb->Et@`Gwe*u{6QSGKIbXq*XhN%rWUjsZl%&p>{yIa=)R66N9^o4KF|a!9kr=g z!>z64trJDch;PU{-2|=M9v`WLuOy%^>r2^3`+slBZ`q4FVcqF@_mlf_zvAs~r3Ofr zy*W!t2K`URs^=Gax09VI)!An*ll6ivj)}hS<5Nrc(Wm055a8Qu|H|?G2mbnN+b$(C zGw^}RgQF+;XvZ64?qaes#I@0@^;9$-eR=Br3!e+u=Z69F75M2;%!~w)V`p#AA41^J zh|F|hBdcP&!Sz6fEHbTOQHX%eVaG^J(D#nYjh^IBJVz@Wp6CHfAOG%8M#D@p9p6Q@AXz22Wy+k+-TbpLB1++x}NL)P*wdpvPvv zyK;JWi6UbMjv_$g#orD>N^8wLpP4~&;u-UgtKiGkQD7C!TQNV-OnNjBkkSup_UEa^ zX;jAn)GSq(*&OsY)okojJg@PGu`Dag-zS$-q19Af%21503$V(Dq&`UiezA_LEeYv# znCI>=4|VKj0knT&pAqOqqM~a~A!DlFmJmEGk8^@x3EK6r=|O z?A1#y3-2dQnqSiwNQU3?5IlMvW~*e2_Y;&+6Q!) zqz6M3;sCcZkNtM1tTklR9Mf?EkSVc2alj7w%I_O~c=ORYTBTu>LQ2u47)uPt@FvLa zQ>v9YM&NXZT~QCY;85h+@ELORSPry;-EA9Zc^`xGz5YWK?5!&}z<(|E1b{xvrH+O9Jy`hM=1!<#otm|na3ty2_jmW=AG%DcC| zsAKYSfmsoLBz_LSrw{*5PQ75qs}_BhUviD&)^*e33Mi0<(7GR#RdN7yoibbN`>j3B zuX)}YT?*N_q{!sAshCu_Qc8#RJ&q4wis+r=E*64NBiL%?A)Pg5Vi8fBadUFFYhYiY zb5DKJ+rwqanr;IE!E0OPiRC;yCAHwt{3roHOE9xww+;npB(rt>Ri5kt;03vrAe-zY z!L_Ta4%-iwX5UaUSIA>b9U1v-U`Enjqs-4`zLN5|9d{wSIyJ=Hk*yq-E9^V=oGAlW zqMrn&One@9AlWI(C-0CBpLC4~UzMpf3VLZB<6CsBRPdsj3_~t?0P>zfyke-m^oy#L zdF9uo@p^&CVv1cEa;DT~ifpR_S_5%Ca44PHCLj;(I@&Hhfu3<5Kz$<1+MRn95Cc|Db$hD>UyQ zXPE@gH*n_zPYjn1a0u21WVFetjyslOikhxCYf! zR`$McL~PoF5=9s($YOD^uGG826{#7*6THldStOt>UZR`TDcs*k7+fhS<{>sCS{r}-zX^WU&j%U<088is7aEa5=DfAo4?1e)!hoLDj5v~P1g+8 zscH}lnRZ3mM%)Ka=jrHI&)PKkNKOtO0&EH$rjrS*uE*8i!@16Unoio=TXNm?)Y7@> zT)u6Rw@L%Hy2~14^nM6(g5&|OGQ2df{_AU?L-YWwqv>%y z$b0|O@ukXf>IEVz3pyTYVA@R2Fqh42O@C}E>Sh27*v6e#qy!jAp<_;o)NWh}*h9kb ztB%VoI%+uhL)6-rmmwc%&2xkwvMX`l1X3l5aYfETc#9_iWG>TRKiMe624Dcr=8;G~ zxcg0lfn(r031DbPPJxsz2kTb(GDGD5D2EJLzUiwUG5|wllFGi9h;Qbt#=}MZmXjE^ z0-EXU`}c1XeL)}eIiCSjabCE&WNs=@Kb}V|$9#*35%rqCu$=Stn5B2Kl4I`NgB>UX znCa@B*4HulzbYs(@jdTF*yHBgIyGQt^s2uCJ0?(%-8{OC`KzgA*?lB_i;S2aiP<#* zLxJ?jr}C(R##K!D2-bGBag2Za4%aK0qN**;nOK|rY%8=S8KHPI#=UwqobT6sX+S6H z{Lhz9YY2OxKQ1_1H%CcTA>x4|pE^y!^5E(nZz}oBVG5N?Q5SLDft03H#Rw=WA z&acbh$aRMG(lay8CK{<*u477k97{k$(==5-!#sKC4JyNono;hUrCu^vH33~K+aw2q>c3R$MZKmqX6fIvG#d~0+#IA*P1)w zGfJaaA$T?CyJ@K>O$^{)R1EcRC5rIEaT*!&z-y*rHo=5NFcd!w#wQ%z4b;!#rO-L# z^G~s@kJh2f09I-BNVWN3uC24BkE@u|ZH|Bj)awOtz5ml^;hbBA zezYIL!?)P#)qw)1ez*F+jtgoNk?dK>WzYN#7430YdAX0pBbmqb_T7H7x|x_%IhRtX z?gwf#_I*H^wJf-z@I2h5ytCner3mq@Lk!#8InHq#y%ZukBCUjYBQh%K=)L z30zX*_NN#CzUj{A0F|O|_Pf3tX_jwYW3=CoC|{(CZX=SO7|PT3ZneBSdh2znd=&pk zHq9r0yw&=W1E0oCn}{ZJ!6DBW2S-Rj^m(+@t;QNcU5@t>BkK?tW`M6w0zYZW+GHmL zc6IlGjhh&)P=})s-D*H!dmCkk;lKoX_#D?kGY`tdD+$)J1IC?-xh6W^hx!Jr(siQt zrqz?!j$5`iMI~1IM~ppOTQI9mC^)-h87OP3&r2EJY4rk<@&3DDL647GrhTuB>)hvy zVo$*aq=};?Fh3Do2mQ--$GougQGL(-IEQ)!z$o4N<$(Rqn<#R?Hrc+%w0!{xOgTyI zC9FE@j%oqgdOMf>SAuFz)DjaC*g_ST`8yiyBK6s%t(Omr1n(Q`f}0+jp6Tq7styc> zyZ8=O%t@Uue~jczgX9G8b}n<~!?PXBY(c7cnLVNFR?}fG@en_J)BCGuHT6H2QNEju zskkh$RR|5ZZ0<=x;sn?m)e}W5TXR5JF$)@6RJ#KYKL#i;B5w6&oo*20DaffE{o`=F zoe$9bh9Z%9ZtAhV@liT2B?=qy@ELxzo5D8dWlivU$fU_hxOI#{R)Eklzsz0qBVr(K zUDf2o5Pwc5DGv-?_F2JlXMJAGPW=N3EhMSI)YGvh2920G8Yxh%8(piBArZ}x1ku*Fe*Lq}F% z3#S|u`}-Kd5^?$_0kI%Zj0`-3|0g45?R4msq>__5>+RQdA+F_WO!-d8=RH>n;PY#X zXamVlxhpo-vUY^u9ATa2ILyY^-BoOsENfW&yZ#fZTsKO| zCotY&onkNty*Lnyh#uf1xH3+POj7$*{>N3i?crw7x!^vzO7^7<^dII+nge(?G^QVH znAL$&F-n>RG>JAuD3!O|M$*BZoJb#Bcls$-pOH2Rr@#EUdfmH)?8v38@0Lb{TgMoU? zorVYvkr_g=wE=)AGb-AAM7kfr4SjTrf5l|oQkHk9>bX=Q`b_9_Q`s;)8K|)UkqW8 z$>U{_I_4bbGs?m_9Ek4UD9B)sg>#A!{g*bG_y$3hUd0#D?JnK-0d*!NJ z)xka)A!o@Vb6U52BKc`tM1pz@b^VvotVCu`cq3V%AH)Aa1DhTvSt9aN)+)9yqBH>Z z;nHY%p4pU~@mKD;BBwN);3E{JII})C!)hvg)ePW|qW9Wu4BD;~u$$PS!;Ai7Q2vK_Ip2mG$^(Q<1sKUX_o;g3GC2Mn)lA^Y9_W?Z?ZV@Mgj{onE5 z?GLFuqLF34wEZbwJX;jQVYgM3mH8fCFz53DgATHJZ-9b+hkIECjt#&*0NO~)UIIWR zThhns)N`D>ZfzTSD4*YQHI!TQjVLtxk@E)vq9xQ~pPCl5y-nG7#bcFT{HXr+Ed2tr4&S|V@c=6a zOby)q^-usfMrVVRx)y)R|CXzw&?W@|5tE}*d#$Z3tCsDxvu_#y6r|9tpG(L%LpH`= z0Nlgc0dZ$8j{*r(x$hO3^yBFk7R%`Qde=``AV+l|#?Edf2#8$z%tZ319+?f|WnX3S zf9@szj#-Z>6*oiOA%UFZmU9z);rQ-AaJohuJKF;gKb9+>*$` ziZ{RigWpGbFlI79rkS~EBSf6vP$vH~#_Xwq*)SUOIWOQyufe+2|TsVIGYSn6l@J<;thGPVd9RziJx=F%s!l z9isZfA8N)#wCau~-ZKWpBrQaaB|Mv<%YTM-B#_NAO)ilEHrGynsHv8Gc)Ck-LD5LS zfjL#)`0+}TjU{h%;KQ3OjFOIzmNI0&mvsNS@KTo;{uh5E4p6gkmtNr9NqXVo>E}cek}Y&%y(-2Bq7u z3S4}jmgG@IA=&Qr_?tsOgr%`VVdF}EMrj$&QQpb@xLv@tyruH^Ry@^iTMVd-JrB)C z&&a5|T*E~L{gBh=L{RI=IDfZE)CN$&hipFQ{HqF4mmS_J$q6!RG z5e|C&Ee+PDhARpD8ukn?-d))Em|x#~V3B^FDuhmAliKisb>5~C@fq}ANGNn$fc4Yd zrG2B7YTi)(%~qKoLoV@zKl3$T`;T^KBkn8CtTxs#g9w>TlY6(4{rmx3w>U1!X34Yl z-lUP*%*QHx6_)xhI<&Rv(ubIg_wX&h?ViB%{>Ls)Z#(~cjT2}(nu+nP{R2|kz$&$r zoIkybW9eQ8Nyo@35rC}(3h=ytXEmvC7FaA9|6-tz7LL? zWB+UY^r@174#=Pn>@L>WD*62^>|3~X#pHR$p`=fI&2Ip~HYTXW#ACmTK1W*ZqDdd= zl6RTPn|FBfQeO1Gqn5ZwkdqJYmlh5y`(E9L~DA#hK7JpP7hq zcaB2NFsT>>AEm#F&@v|*Dtr98fHf~u0TB8vZ=my{)N!-#M=5>HZiWNYd|+OcM3u^R zoz%?4G>CMUu5mV!p)EKnkAZ~6ELx&;{^{l}&Ej7D;gE2$<{qH7)bZ3}S)Voc)3vs2{j&ROxEfT#(ZAzvdmV9?vy?!x1)df z*r5=5<}Z|Pm?zBn`##X2mF$8@fbL@^n7SUt)!bfT%k?4`vr>}m(=X$(OMM<_TU&OP zKtAb(EPm#4u3aH)-SU!0Bc)PTJBSN^^rdhY%bH_V6*tdeAN&aXm`m4RHwh?>7Pk*L zfezsarFk`%WakC>o+o59@D}~7^!O#P3*x3OMT>~EOiPkRU%kR=0>DwUWf1pGkB@fa zzRCv<4&X*!Lf-l^&x{&$}S2z=da?pnc#C;j6Q zM=@sIer7*%?dV#Wav}W00mxdPtjQN6NkqHI9k7c+=qmG~jNb5QRlqZS5}F3r3j!q} z=1~cth&ABT^Z;KVXQ3V|k)svq>@1WUHMluKI6k*(xCzKv%c)LMKzT_>0rCD3AxAo{ zpUcws%nVSMdNmmOsek;r*TMzU%WM)(bY)?-UvX`wcT|`)sd91J{up_=#>YUyGJ8Np zH^@yng!Kx=LX@>^m$R;C=9y}GWFqs=Sm87exMJgXqC)WH8syAj-VKBy#-`3S0C_Rt zn?D9PJ4i$dNa+$6s%2kTA`tWg-V!GBWSR*;FGWWE9T?a`Cbn4OR=oLm15PRN}vbDwXJrZC{ zt)DxP8(xV6t`E`cqQHQ=)lbvO4=hMV>UUK{fs66t|9vbrSE8Ba$2CAQQ$~dT1d)Nv zDKW@ODU3!nQ1MsmbvcR08LIiWt<-;|*5}cS21IrL01n(#i-6&=SD{{#04rij7n=lf z%0u2cO{aaPN%nsm-+ldp`?6Lr(OhS8;~}0+Gf1h77|;de_zviosDudMhyYl8aFvMG zUkwZZ`t4!o-`FN_X@D*9@J5T+Ez$Ww8enHH1K3aZ-re#xo|#}P8NgAhw+hM%iO@>n zi4pJ_U7j1x0|?m+@SOWZLEP1vXe%TBiz~}|7aPVpx2@<#N<6bxkdl}?6A*CVmmxy5 z7?Rh3QCpzt1!Q#*EdP2O`8E)P%xR$xg(0FGlD4OM!3wL-2PG(_o(7H|cm;Y@pF!5< z+t?7@=zy5LyCpJMK)EY(kLlG-o_g@B5qqY;r+VRJR&WR&F9IZyK$mBa zn`R`daRpckfT$M%Kq!bwZfxh^tIYft?fs{AAw=HdsTswrj9@9=iiCkyqWU7VxZi2 zT5G~+T%I5>OHKc-BwhrPX3#me*VUT|7%^$3jv3>|BKEzBy3UYKP3?9I`+eqkkUXG? zG)3cNKEV;kB+aBW(_O-67>IOgLBTKpf$d6!=DWSLvE`APrY_!07j zSz*GlHa&EDj(c7wg4gbHAs6V&P=I6cI5+5YverlDdh2&YYYN2hF;WDEId`U`?vF|b zQU|!XI~(p<2Wqf2;Zey52*bANPzmfotKiSarxkiQjtn&fhA}O9rwGk)LdJnd**jrT-=W=yCm==v zbF1tZ*`zN8v;{vZIC+jgEvr3ZoHMUs@GAg&`h*-vs|rvb(V3m86gm!0JK)l}-oZ6< z0Mg^J2W}uxW93}l;%lQ{yTcb$8^nRxv7KQy0~Cx2p)=~ea^9yL*L*aC=bP3?*GR%% zoEUL{1X>kH93YW>V%-4UAH7l*_Dt%vAq?1YCA(;{BtcjqRMW9MrZ)$!&EQQN!eQW1 z|2;O48#@b~-t>YKFqtPtxU^NW5ZB6$`%%kPQvMI-j(DI1qhH@}S;2*DE;!+67cQd# zF;5bare}wAL*vbtXzSPoZXfGwg?suIWXirAzAXB{p3i4mHR!GERVC#%7W2Wdn`S{C z#uebln)ep2Z(m7n4GlZu*Sd;OU$yp>p(#FK5g#%@O=rRg7-Srn0EDLjTq4a5q@{>v z$X_&j8xF;v2Lm|_o;s?(9;r5e!{(dfCUAjpS}wAdqE5DtHyl-@eRfeO0P!BH7?J_d zeks#1ISb33EfOI_tVasshhtZLC5z{#mJ$r1?}a1>%=|0~arz?Inn#~a1_bM>fSw>u z@Q_{c?BTVW8&Mm{Xc$=)KaR)fk#|PKLg>>;h)~v}zhV&2dYO`jk|7PloPv<~SJt*< zy*htog6X3E|O`3u>JubcwR z&o~n!5Z(G-l*A40%Qz#H|7aGNzt4xX2hfxxun>z3aPNTjo#-1%&sKj^w?|@Zg>#gc zTjs7rh!B>Z)zm@>ftoxDnC>?E6}} zZFRoh5@5ibsa`9n!GS`q&^SqD)o>@Om>;;U!J|bZ2I+o594Wo0QKPV?QbSG5ijzPjZ`OTjo30VteQqUE`c0DN4u%2(ds1)6>$ykOBdj+$vm z3uw;SakkFo0{ZJBO5E8xG5?HJ|Luk+Z`g=&v$>E~xVuWv?ncSBR!j#?DmDjV{y8AY z-WhTrmE=!z380Yepx}`~f#>{3lA?LC4u+pEgJrwId3cxfTZ?~w$X&bZQqISNm1Z%2 zqli(d_Y_O|aw=Z4o2*!LX!HU}wQ}GgHtgABp898aMEvXehvmgg0)p`to-6ZI>BaY0 z@8<0V%9o4tWQ#)_L2y)pqPzc(1DIL=+l7mhSvw)8{FXC-PzE1YEv z^ajfPaA|Pl@?fD@PBB^5fCa?1ZQ&Hy1t)ze!Cj8GWm zQ(e#=^m%3Tck&40lu>0--tWLy&p5+`F463|^VGcpNXZC!!_i`$3owrM65xDN34c%3 ztVRLt#)Ag<#8O++$!%pRG?e!zMVqtu$2N(7xssi;x zVJK8dU~HhfxDgk1(M7EPM4HB+!Bs0@*lttBQC37(V+^(Iq1DzvNUW|e;XJ+2ysSTW zoYBPzE;|LE?wo#yh4t2Ny_3jqXT7^;J+g^sQE zIh%{#d!Q!jMG*^kX5~`>_a2jaDDdj;YXH@Iq_di0I3Zsd*c<$oA(s5i+LeMZY(SvL zJ>he6JF|>^w6)_{ZfpwlBo&Tf|63*hf`*Ncpgc8ayl$aY<>HLReTQ(ef6{O8;l9T| zrC?tsM}%iVas7xixm$1_0TEp=^VO&9h6E$@xbEww%_LJOm?_nRm+v+E`Gqj{7DKrn zc&Xz@X!xr1#480UMxyngHBmO+5T^NOaNG;1*nx+g;ELRp{JvNk3%mEIOiyBo> zggu3r5=sDhw@@i?1}(F9a6m2&+}kEGU99;dQsYk!1%LPzYmfM5o*G4HIugExnpVJPACaN5Bo`W*VVjiwHm(r&{-tUROS?f|3Uyu?JDTUZ)!Ka;O1IX2g) zr_<%VA7tZ#r(v%KKeWcs`s`jeR713ASyH8q+DX9NloXY})Fh>JLf2p{}b@qZA@QVN|NpvyE$e#^(P00+V zc#_$`*&Y|Z+6f#Cy+)tR-CF$|LJ!>VBjY`Twi-|>zjA0)z<4&3HxCMZH{tSRGm2>`vMjHxv5`KvlHAa3%T)svGfQ@k{F=@H4$ zdy|T&$rlFECB~jv`PX%w z+O4RXwKxqHU|0@E6SD`T6G-P}S@b+KX+b+>Rv`)=We5TeH2{I(cEgVD0)+5W^_S39 ze=8b5ya93jT{JR{25Oe>s{C+{t8EMAJ$}vo+r+wlOKOto*21^*05+N@U zcCV&B!qTCEn3_-5_rnXV^E6|``(fFKXrmWCW8o@_KjJXyX-kps7AFy`0&J6;;PKVH zsHDeQ^Qw~?9n#3^3W5tvS8EK_8Py>l>iWI9TBS~6RQpwy(8Jm>jo^qQ-$reU5_uAg= z-TA$obDpR3@A+$gz3<-dp7;6f^Zne)`n7{Mdzl$j2$4`1J`xlzp3c~wgFgwStpKip z)8m~@pwky|j&**dPoH$V?Br#xT^~8Gx-U&DiUe|sr z-O}Febjh=wSt!A6DuzPaC@e)b1he}5xzN~ii&prCJt{-I2bs%n7pFJ{0y39^Bn{h)76*eB~y$nj#4&%W4yNlZho0` z_08<`4H+Rb(S&jfJ4$(lpU1P}#j4CxZ$jw|kmw8?d{D?b9$OGpCXInpCy*d- z@d=D5>DBs0Zc!$hq#dTdBf0jT+>Xm16b)HkT|I0e+4tWr9`NXBed`U>in(+LgKkgSH`Zzgp5etUqTbP^np=3oGN;0*7qrJvg-s z39=Jgfu$?>p~`aRsriQ13kdZ+M?T6TYg#Z=@OXviy(9wrp5Hew?WA;FWjy&5xL;a3 z6=Pj|RN+uAho}vQjwP50tYWR7%T?E?Jul6xs@pI2m?H6HyY0lxO_+Wd9ieGDESwK$ zvi08vb<+3IxAZ+VxbJWw;O#AWgGpSo%JO?d`$*Cr%t9fnHNKOvEj5)OdpDqdf7>d} zu>ORQJc=_1+fE6`60bCFr^+!vkr+yi*q=ExrCeLBHnAu=R}U?I(AvQ^udMCGPBE8! zXVlj*0OEP|nVhp{#xhIJ!cBKBgm;%@d*=hY;6aMyC9S$?tk*U%%)3jgZPyPMKx*E| zZrjCApXp^Hf%E!K*rmzybxP^;j7h8y5>_x=WRk4Y2Vl3+BVFS{V(< zuuI!>P^FZ1q|KLu+6%1~MmK1R9rcp6$On-E*$H3y;=}fc^m?x?tTUD&9tK-vH)LpJ zL}M&@?@7-*6t7S#Ok7D<{b%Kt+e*=>iqLd<%+GCxIzaRnle-EPuc34)alSeYl$A8& zl|FZ9A4U0Wz(!Uz#5UTX){)_VR|3G*qTU$C76Pz35F6Ei3wk0=hCpv@g_{6?pCF99 zA?yKP2fHg>^a0%eu;Pz2eDB#|K!K*aM`bz(njhORTC*CoOif(7<#QDN{Pe`B9Kq~{TND~=`zrOsbFQX&pglcX!KvQ C4wF6r literal 0 HcmV?d00001 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 8c694fc9f21c06..51a4bafe9a9363 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 @@ -191,7 +191,7 @@ function test() ``` -3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. Você deseja lidar com erros [previsíveis e não previsíveis](#predictable-vs-unpredictable-errors): ```4d var $e:=ds.Employee.new() @@ -290,6 +290,6 @@ Exceções que interrompem a execução de código são retornadas pela 4D, mas - uma **mensagem**, que explica porque o erro ocorreu - um **código**, que é um número arbitrário retornado pelo componente -A [caixa de diálogo de erro 4D](../Debugging/basics.md) mostra o código e a mensagem para o usuário. +A [caixa de diálogo de erro 4D](../Debugging/basics.md) mostra o código e a mensagem para o usuário. Click on the **Copy** button to store detailed information related to the error in the pasteboard. Para ter uma descrição completa de um erro e especialmente de sua origem, você precisa chamar o comando [`Last errors`](../commands/last-errors.md). Ao interceptar e tratar erros usando um [método de tratamento de erros](#installing-an-error-handling-method) em seus aplicativos finais, use [`Last errors`](../commands/last-errors.md) e certifique-se de registrar todas as propriedades do objeto *error*, pois os códigos de erro dependem dos componentes. 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 6da12f6df147c5..7c4f5c3a6a78c8 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 @@ -9,6 +9,12 @@ Leia [**O que há de novo no 4D 21**](https://blog.4d.com/whats-new-in-4d-21lts/ ::: +## 4D 21.2 LTS + +#### Destaques + +- [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21.2): list of all bugs that have been fixed in 4D 21.2. + ## 4D 21.1 LTS #### Destaques @@ -312,7 +318,7 @@ Se suas aplicações 4D utilizam conexões TLS, é recomendado que você faça a | libZip | 1.11.4 | **21** | Utilizado pelos componentes zip class, 4D Write Pro, svg e serverNet | | LZMA | 5.8.1 | **21** | | | ngtcp2 | 1.18.0 | **21** | Usado para QUIC | -| OpenSSL | 3.5.2 | **21** | | +| OpenSSL | 3.5.7 | **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) | | SpreadJS | 17.1.0 | 20 R7 | Veja [este post de blog](https://blog.4d.com/4d-view-pro-whats-new-in-4d-20-r7/) para uma visão geral dos novos recursos | | webKit | WKWebView | 19 | | From 85eb3bb743dd17a204fd06c895515be47f596e48 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 1 Sep 2026 14:44:07 +0200 Subject: [PATCH 03/60] fixed table for set rgb color --- .../Objects (Forms)/object-set-rgb-colors.md | 4 +-- .../Objects (Forms)/object-set-rgb-colors.md | 10 ++++---- .../Objects (Forms)/object-set-rgb-colors.md | 12 ++++----- .../Objects (Forms)/object-set-rgb-colors.md | 10 ++++---- .../Objects (Forms)/object-set-rgb-colors.md | 10 ++++---- .../Objects (Forms)/object-set-rgb-colors.md | 25 ++++++++++--------- .../Objects (Forms)/object-set-rgb-colors.md | 10 ++++---- .../Objects (Forms)/object-set-rgb-colors.md | 10 ++++---- .../Objects (Forms)/object-set-rgb-colors.md | 10 ++++---- .../Objects (Forms)/object-set-rgb-colors.md | 10 ++++---- 10 files changed, 56 insertions(+), 55 deletions(-) diff --git a/docs/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/docs/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 5045b35ebd4c69..3a5b115ee85411 100644 --- a/docs/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/docs/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -47,8 +47,8 @@ You can use "" (empty string) in *foregroundColor*, *backgroundColor*, and/or *a You indicate RGB color values in *foregroundColor* and, optionally, *backgroundColor*, and *altBackgrndColor* parameters. The following formats are supported: -| **Format name** | **Type** | **Description** | **Examples** | -| ----------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| **Format name** | **Type** | **Description** | **Examples** | +| ------------ | -------- | --------------- | ---------------------- | | CSS color name | Text | Standard CSS2 color name.
  • List of available names can be found in various locations on the web, for example on the [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/) web site.
  • Use "transparent" to set transparency to background (can only be used with the *backgroundColor* and *altBackgrndColor* parameters).
| "red", "cyan", "lightblue" | | CSS color "#rrggbb" syntax | Text | Standard CSS2 hex color code:
  • rr = red component of the color
  • gg = green component of the color
  • bb = blue component of the color
| "#ff0000", "#00FFFF", "#ADD8E6" | | CSS color "rgb(r,g,b)" syntax | Text | Standard CSS2 rgb color code:
  • r = red component of the color (0...255)
  • g = green component of the color (0...255)
  • b = blue component of the color (0...255)
| "rgb(255,255,0)", "rgb(255,0,0)" | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 4431e85842522f..5fde9287758215 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -49,11 +49,11 @@ Los valores de los colores RGB se indican en los parámetros *colorPrimerPlano* | **Nombre del formato
** | **Tipo** | **Descripción** | **Ejemplos** | | ----------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| CSS color name | Texto | Nombre de color CSS2 estándar. La lista de nombres disponibles se puede encontrar en varios lugares en la web, por ejemplo, en el sitio web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/). Utiliza "transparente" para definir la transparencia en el fondo (solo se puede utilizar con los parámetros *colorFondo* y *colorFondoAlt*). Utiliza "" (cadena vacía) en *colorPrimerPlano* y/o *colorFondo* para dejarlo sin cambios. | "red", "cyan", "lightblue" | -| CSS color "#rrggbb" syntax | Texto | Código de color hexadecimal CSS2 estándar: rr = componente rojo del color gg = componente verde del color bb = componente azul del color | "#ff0000", "#00FFFF", "#ADD8E6" | -| CSS color "rgb(r,g,b)" syntax | Texto | Código de color rgb CSS2 estándar: r = componente rojo del color (0...255) g = componente verde del color (0...255) b = componente azul del color (0...255) | "rgb(255,255,0)", "rgb(255,0,0)" | -| 4-byte RGB value | Entero largo | Entero largo de 4 bytes (formato 0x00rrggbb). Valores hexadecimales:
rr = componente rojo del color gg = componente verde del color bb = componente azul del color | 0x00000000, 0x00FF7F7F | -| 4D "system" color constant | Entero largo | Colores utilizados por 4D para dibujar objetos con colores automáticos. Constantes disponibles (del tema *DEFINIR COLORES RVA*):
Background color Background color none (solo puede utilizasrse con los parámetros *colorFondo* y *colorFondoAlt*) Dark shadow color Disable highlight item color Foreground color Highlight menu background color Highlight menu text color Highlight text background color Highlight text color Light shadow color | **Nota:** *los colores automáticos dependen del sistema y del tipo de objeto al cual se asignan.* | +| CSS color name | Texto | Nombre de color CSS2 estándar.
  • La lista de nombres disponibles se puede encontrar en varios lugares en la web, por ejemplo, en el sitio web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/).
  • Utiliza "transparente" para definir la transparencia en el fondo (solo se puede utilizar con los parámetros *colorFondo* y *colorFondoAlt*).
Utiliza "" (cadena vacía) en *colorPrimerPlano* y/o *colorFondo* para dejarlo sin cambios. | "red", "cyan", "lightblue" | +| CSS color "#rrggbb" syntax | Texto | Código de color hexadecimal CSS2 estándar:
  • rr = componente rojo del color
  • gg = componente verde del color
  • bb = componente azul del color
| "#ff0000", "#00FFFF", "#ADD8E6" | +| CSS color "rgb(r,g,b)" syntax | Texto | Código de color rgb CSS2 estándar:
  • r = componente rojo del color (0...255)
  • g = componente verde del color (0...255)
  • b = componente azul del color (0...255)
| "rgb(255,255,0)", "rgb(255,0,0)" | +| 4-byte RGB value | Entero largo | Entero largo de 4 bytes (formato 0x00rrggbb). Valores hexadecimales:
  • rr = componente rojo del color
  • gg = componente verde del color
  • bb = componente azul del color
| 0x00000000, 0x00FF7F7F | +| 4D "system" color constant | Entero largo | Colores utilizados por 4D para dibujar objetos con colores automáticos. Constantes disponibles (del tema *DEFINIR COLORES RVA*):
  • Background color
  • Background color none (solo puede utilizasrse con los parámetros *colorFondo* y *colorFondoAlt*)
  • Dark shadow color
  • Disable highlight item color
  • Foreground color
  • Highlight menu background color
  • Highlight menu text color
  • Highlight text background color
  • Highlight text color
  • Light shadow color
| **Nota:** *los colores automáticos dependen del sistema y del tipo de objeto al cual se asignan.* | ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 6a2dd444bc573a..5fde9287758215 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -5,7 +5,7 @@ slug: /commands/object-set-rgb-colors displayed_sidebar: docs --- -**OBJECT SET RGB COLORS** ( * ; *objeto* : Text ; *colorPrimerPlano* : Text, Integer {; *colorFondo* : Text, Integer {; *colorFondoAlt* : Text, Integer}} )
**OBJECT SET RGB COLORS** ( *objeto* : Field, Variable ; *colorPrimerPlano* : Text, Integer {; *colorFondo* : Text, Integer {; *colorFondoAlt* : Text, Integer}} ) +**OBJECT SET RGB COLORS** ( * ; *objeto* : Text ; *colorPrimerPlano* : Text, Integer {; *colorFondo* : Text, Integer {; *colorFondoAlt* : Text, Integer}} )
**OBJECT SET RGB COLORS** ( *objeto* : Variable, Field ; *colorPrimerPlano* : Text, Integer {; *colorFondo* : Text, Integer {; *colorFondoAlt* : Text, Integer}} )
@@ -49,11 +49,11 @@ Los valores de los colores RGB se indican en los parámetros *colorPrimerPlano* | **Nombre del formato
** | **Tipo** | **Descripción** | **Ejemplos** | | ----------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| CSS color name | Texto | Nombre de color CSS2 estándar. La lista de nombres disponibles se puede encontrar en varios lugares en la web, por ejemplo, en el sitio web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/). Utiliza "transparente" para definir la transparencia en el fondo (solo se puede utilizar con los parámetros *colorFondo* y *colorFondoAlt*). Utiliza "" (cadena vacía) en *colorPrimerPlano* y/o *colorFondo* para dejarlo sin cambios. | "red", "cyan", "lightblue" | -| CSS color "#rrggbb" syntax | Texto | Código de color hexadecimal CSS2 estándar: rr = componente rojo del color gg = componente verde del color bb = componente azul del color | "#ff0000", "#00FFFF", "#ADD8E6" | -| CSS color "rgb(r,g,b)" syntax | Texto | Código de color rgb CSS2 estándar: r = componente rojo del color (0...255) g = componente verde del color (0...255) b = componente azul del color (0...255) | "rgb(255,255,0)", "rgb(255,0,0)" | -| 4-byte RGB value | Entero largo | Entero largo de 4 bytes (formato 0x00rrggbb). Valores hexadecimales:
rr = componente rojo del color gg = componente verde del color bb = componente azul del color | 0x00000000, 0x00FF7F7F | -| 4D "system" color constant | Entero largo | Colores utilizados por 4D para dibujar objetos con colores automáticos. Constantes disponibles (del tema *DEFINIR COLORES RVA*):
Background color Background color none (solo puede utilizasrse con los parámetros *colorFondo* y *colorFondoAlt*) Dark shadow color Disable highlight item color Foreground color Highlight menu background color Highlight menu text color Highlight text background color Highlight text color Light shadow color | **Nota:** *los colores automáticos dependen del sistema y del tipo de objeto al cual se asignan.* | +| CSS color name | Texto | Nombre de color CSS2 estándar.
  • La lista de nombres disponibles se puede encontrar en varios lugares en la web, por ejemplo, en el sitio web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/).
  • Utiliza "transparente" para definir la transparencia en el fondo (solo se puede utilizar con los parámetros *colorFondo* y *colorFondoAlt*).
Utiliza "" (cadena vacía) en *colorPrimerPlano* y/o *colorFondo* para dejarlo sin cambios. | "red", "cyan", "lightblue" | +| CSS color "#rrggbb" syntax | Texto | Código de color hexadecimal CSS2 estándar:
  • rr = componente rojo del color
  • gg = componente verde del color
  • bb = componente azul del color
| "#ff0000", "#00FFFF", "#ADD8E6" | +| CSS color "rgb(r,g,b)" syntax | Texto | Código de color rgb CSS2 estándar:
  • r = componente rojo del color (0...255)
  • g = componente verde del color (0...255)
  • b = componente azul del color (0...255)
| "rgb(255,255,0)", "rgb(255,0,0)" | +| 4-byte RGB value | Entero largo | Entero largo de 4 bytes (formato 0x00rrggbb). Valores hexadecimales:
  • rr = componente rojo del color
  • gg = componente verde del color
  • bb = componente azul del color
| 0x00000000, 0x00FF7F7F | +| 4D "system" color constant | Entero largo | Colores utilizados por 4D para dibujar objetos con colores automáticos. Constantes disponibles (del tema *DEFINIR COLORES RVA*):
  • Background color
  • Background color none (solo puede utilizasrse con los parámetros *colorFondo* y *colorFondoAlt*)
  • Dark shadow color
  • Disable highlight item color
  • Foreground color
  • Highlight menu background color
  • Highlight menu text color
  • Highlight text background color
  • Highlight text color
  • Light shadow color
| **Nota:** *los colores automáticos dependen del sistema y del tipo de objeto al cual se asignan.* | ## Ejemplo 1 diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 4431e85842522f..5fde9287758215 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -49,11 +49,11 @@ Los valores de los colores RGB se indican en los parámetros *colorPrimerPlano* | **Nombre del formato
** | **Tipo** | **Descripción** | **Ejemplos** | | ----------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| CSS color name | Texto | Nombre de color CSS2 estándar. La lista de nombres disponibles se puede encontrar en varios lugares en la web, por ejemplo, en el sitio web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/). Utiliza "transparente" para definir la transparencia en el fondo (solo se puede utilizar con los parámetros *colorFondo* y *colorFondoAlt*). Utiliza "" (cadena vacía) en *colorPrimerPlano* y/o *colorFondo* para dejarlo sin cambios. | "red", "cyan", "lightblue" | -| CSS color "#rrggbb" syntax | Texto | Código de color hexadecimal CSS2 estándar: rr = componente rojo del color gg = componente verde del color bb = componente azul del color | "#ff0000", "#00FFFF", "#ADD8E6" | -| CSS color "rgb(r,g,b)" syntax | Texto | Código de color rgb CSS2 estándar: r = componente rojo del color (0...255) g = componente verde del color (0...255) b = componente azul del color (0...255) | "rgb(255,255,0)", "rgb(255,0,0)" | -| 4-byte RGB value | Entero largo | Entero largo de 4 bytes (formato 0x00rrggbb). Valores hexadecimales:
rr = componente rojo del color gg = componente verde del color bb = componente azul del color | 0x00000000, 0x00FF7F7F | -| 4D "system" color constant | Entero largo | Colores utilizados por 4D para dibujar objetos con colores automáticos. Constantes disponibles (del tema *DEFINIR COLORES RVA*):
Background color Background color none (solo puede utilizasrse con los parámetros *colorFondo* y *colorFondoAlt*) Dark shadow color Disable highlight item color Foreground color Highlight menu background color Highlight menu text color Highlight text background color Highlight text color Light shadow color | **Nota:** *los colores automáticos dependen del sistema y del tipo de objeto al cual se asignan.* | +| CSS color name | Texto | Nombre de color CSS2 estándar.
  • La lista de nombres disponibles se puede encontrar en varios lugares en la web, por ejemplo, en el sitio web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/).
  • Utiliza "transparente" para definir la transparencia en el fondo (solo se puede utilizar con los parámetros *colorFondo* y *colorFondoAlt*).
Utiliza "" (cadena vacía) en *colorPrimerPlano* y/o *colorFondo* para dejarlo sin cambios. | "red", "cyan", "lightblue" | +| CSS color "#rrggbb" syntax | Texto | Código de color hexadecimal CSS2 estándar:
  • rr = componente rojo del color
  • gg = componente verde del color
  • bb = componente azul del color
| "#ff0000", "#00FFFF", "#ADD8E6" | +| CSS color "rgb(r,g,b)" syntax | Texto | Código de color rgb CSS2 estándar:
  • r = componente rojo del color (0...255)
  • g = componente verde del color (0...255)
  • b = componente azul del color (0...255)
| "rgb(255,255,0)", "rgb(255,0,0)" | +| 4-byte RGB value | Entero largo | Entero largo de 4 bytes (formato 0x00rrggbb). Valores hexadecimales:
  • rr = componente rojo del color
  • gg = componente verde del color
  • bb = componente azul del color
| 0x00000000, 0x00FF7F7F | +| 4D "system" color constant | Entero largo | Colores utilizados por 4D para dibujar objetos con colores automáticos. Constantes disponibles (del tema *DEFINIR COLORES RVA*):
  • Background color
  • Background color none (solo puede utilizasrse con los parámetros *colorFondo* y *colorFondoAlt*)
  • Dark shadow color
  • Disable highlight item color
  • Foreground color
  • Highlight menu background color
  • Highlight menu text color
  • Highlight text background color
  • Highlight text color
  • Light shadow color
| **Nota:** *los colores automáticos dependen del sistema y del tipo de objeto al cual se asignan.* | ## Ejemplo 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 64c3d558efe1f5..a947c94dde12ec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -50,11 +50,11 @@ Vous passez des valeurs de couleurs RVB dans les paramètres *couleurAvantPlan* | **Nom du format** | **Type** | **Description** | **Exemples** | | -------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| Nom de la couleur CSS | Texte | Nom de la couleur CSS standard.
La liste des noms est disponible en ligne, comme par exemple sur le site web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/). Utilisez "transparent" pour obtenir un fond transparent (peut être utilisé uniquement avec les paramètres *couleurArrièrePlan* et *couleurArrièrePlanAlt*). | "red", "cyan", "lightblue" | -| Syntaxe "#rrggbb" de la couleur CSS | Texte | Code couleur standard CSS2 en notation hexadécimale : rr = Composante rouge de la couleur gg = Composante verte de la couleur bb = Composante bleue de la couleur | "#ff0000", "#00FFFF", "#ADD8E6" | -| Syntaxe "rgb(r,g,b)" de la couleur CSS | Texte | Code couleur standard CSS2 en notation rvb :
r = Composante rouge de la couleur (0...255) g = Composante verte de la couleur (0...255) b = Composante bleue de la couleur (0...255) | "rgb(255,255,0)", "rgb(255,0,0)" | -| Valeur RVB de 4 octets | Entier long | Entier long de 4 octets (format 0x00rrggbb). Valeurs hexadécimales :
rr = Composante rouge de la couleur gg = Composante verte de la couleur bb = Composante bleue de la couleur | 0x00000000, 0x00FF7F7F | -| Constante couleur "système" 4D | Entier long | Couleurs utilisées par 4D pour dessiner des objets avec des couleurs automatiques. Constantes disponibles (du thème *FIXER COULEUR RVB*):
Background color Background color none (cette constante peut être utilisée uniquement avec les paramètres *couleurArrièrePlan* et couleurArrièrePlanAlt) Dark shadow color Disable highlight item color Foreground color Highlight menu background color Highlight menu text color Highlight text background color Highlight text color Light shadow color | **Note :* Les couleurs automatiques dépendent du système et du type d'objet auxquels elles sont affectées.* | +| Nom de la couleur CSS | Texte | Nom de la couleur CSS standard.
  • La liste des noms est disponible en ligne, comme par exemple sur le site web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/).
  • Utilisez "transparent" pour obtenir un fond transparent (peut être utilisé uniquement avec les paramètres *couleurArrièrePlan* et *couleurArrièrePlanAlt*).
| "red", "cyan", "lightblue" | +| Syntaxe "#rrggbb" de la couleur CSS | Texte | Code couleur standard CSS2 en notation hexadécimale :
  • rr = Composante rouge de la couleur
  • gg = Composante verte de la couleur
  • bb = Composante bleue de la couleur
| "#ff0000", "#00FFFF", "#ADD8E6" | +| Syntaxe "rgb(r,g,b)" de la couleur CSS | Texte | Code couleur standard CSS2 en notation rvb :
  • r = Composante rouge de la couleur (0...255)
  • g = Composante verte de la couleur (0...255)
  • b = Composante bleue de la couleur (0...255)
| "rgb(255,255,0)", "rgb(255,0,0)" | +| Valeur RVB de 4 octets | Entier long | Entier long de 4 octets (format 0x00rrggbb). Valeurs hexadécimales :
  • rr = Composante rouge de la couleur
  • gg = Composante verte de la couleur
  • bb = Composante bleue de la couleur
| 0x00000000, 0x00FF7F7F | +| Constante couleur "système" 4D | Entier long | Couleurs utilisées par 4D pour dessiner des objets avec des couleurs automatiques. Constantes disponibles (du thème *FIXER COULEUR RVB*):
  • Background color
  • Background color none (cette constante peut être utilisée uniquement avec les paramètres *couleurArrièrePlan* et *couleurArrièrePlanAlt*)
  • Dark shadow color
  • Disable highlight item color
  • Foreground color
  • Highlight menu background color
  • Highlight menu text color
  • Highlight text background color
  • Highlight text color
  • Light shadow color
| **Note :* Les couleurs automatiques dépendent du système et du type d'objet auxquels elles sont affectées.* | ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 0f02328a0fb906..a947c94dde12ec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -5,17 +5,17 @@ slug: /commands/object-set-rgb-colors displayed_sidebar: docs --- -**OBJECT SET RGB COLORS** ( {* ;} *objet* ; *couleurAvantPlan* {; *couleurArrièrePlan* {; *couleurArrièrePlanAlt*}} ) +**OBJECT SET RGB COLORS** ( * ; *objet* : Text ; *couleurAvantPlan* : Text, Integer {; *couleurArrièrePlan* : Text, Integer {; *couleurArrièrePlanAlt* : Text, Integer}} )
**OBJECT SET RGB COLORS** ( *objet* : Variable, Field ; *couleurAvantPlan* : Text, Integer {; *couleurArrièrePlan* : Text, Integer {; *couleurArrièrePlanAlt* : Text, Integer}} )
| Paramètre | Type | | Description | | --- | --- | --- | --- | | * | Opérateur | → | Si spécifié, objet est un nom d'objet (chaîne) Si omis, objet est un champ ou une variable | -| objet | any | → | Nom d'objet (si * est spécifié) ou Champ ou Variable (si * est omis) | -| couleurAvantPlan | Text, Integer | → | Valeur de la couleur RVB d'avant-plan | -| couleurArrièrePlan | Text, Integer | → | Valeur de la couleur RVB d'arrière-plan | -| couleurArrièrePlanAlt | Text, Integer | → | Valeur de la couleur RVB d'arrière-plan alternée | +| objet | Text, Variable, Field | → | Nom d'objet (si * est spécifié) ou Champ ou Variable (si * est omis) | +| couleurAvantPlan | Text, Integer | → | Valeur de la couleur RVB d'avant-plan ("" = ne pas changer)| +| couleurArrièrePlan | Text, Integer | → | Valeur de la couleur RVB d'arrière-plan ("" = ne pas changer)| +| couleurArrièrePlanAlt | Text, Integer | → | Valeur de la couleur RVB d'arrière-plan alternée ("" = ne pas changer)|
@@ -39,9 +39,10 @@ displayed_sidebar: docs Si vous passez le paramètre optionnel *\**, vous spécifiez que le paramètre *objet* est le nom d'un objet (une chaîne de caractères). Si le paramètre \* est omis, vous spécifiez que *objet* est un champ ou un objet. Dans ce cas, vous ne passez pas dans *objet* une chaîne de caractères mais la référence à un champ ou à une variable (champ ou variable objet uniquement). Pour plus d'informations sur les noms d'objets, reportez-vous à la section *Objets de formulaires*. -Le paramètre facultatif *couleurArrièrePlanAlt* permet de désigner une couleur alternative pour l’arrière-plan (c’est-à-dire le fond) des lignes paires. Ce paramètre n’est utile que lorsque l’objet désigné est de type list box ou colonne de list box. Lorsque ce paramètre est utilisé, la *couleurArrièrePlan* est utilisée pour le fond des lignes impaires uniquement. Utiliser des couleurs alternées améliore la lisibilité des tableaux. +Le paramètre facultatif *couleurArrièrePlanAlt* permet de désigner une couleur alternative pour l’arrière-plan (c’est-à-dire le fond) des lignes paires. Ce paramètre n’est utile que lorsque l’objet désigné est de type list box ou colonne de list box. Lorsque ce paramètre est utilisé, la *couleurArrièrePlan* est utilisée pour le fond des lignes impaires uniquement. Utiliser des couleurs alternées améliore la lisibilité des tableaux. Si *objet* désigne l’objet list box, les couleurs alternées sont utilisées dans la totalité de la list box. Si *objet* désigne une colonne de list box, seule cette colonne utilisera les couleurs définies. + +Vous pouvez passer "" (chaîne vide) dans *couleurAvantPlan*, *couleurArrièrePlan*, et/ou *couleurArrièrePlanAlt* pour laisser la couleur inchangée. -Si *objet* désigne l’objet list box, les couleurs alternées sont utilisées dans la totalité de la list box. Si *objet* désigne une colonne de list box, seule cette colonne utilisera les couleurs définies. **Définition des couleurs** @@ -49,11 +50,11 @@ Vous passez des valeurs de couleurs RVB dans les paramètres *couleurAvantPlan* | **Nom du format** | **Type** | **Description** | **Exemples** | | -------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| Nom de la couleur CSS | Texte | Nom de la couleur CSS standard.
La liste des noms est disponible en ligne, comme par exemple sur le site web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/). Utilisez "transparent" pour obtenir un fond transparent (peut être utilisé uniquement avec les paramètres *couleurArrièrePlan* et *couleurArrièrePlanAlt*). Utilisez "" (chaîne vide) dans *couleurAvantPlan* et/ou couleurArrièrePlan pour laisser la couleur inchangée. | "red", "cyan", "lightblue" | -| Syntaxe "#rrggbb" de la couleur CSS | Texte | Code couleur standard CSS2 en notation hexadécimale : rr = Composante rouge de la couleur gg = Composante verte de la couleur bb = Composante bleue de la couleur | "#ff0000", "#00FFFF", "#ADD8E6" | -| Syntaxe "rgb(r,g,b)" de la couleur CSS | Texte | Code couleur standard CSS2 en notation rvb :
r = Composante rouge de la couleur (0...255) g = Composante verte de la couleur (0...255) b = Composante bleue de la couleur (0...255) | "rgb(255,255,0)", "rgb(255,0,0)" | -| Valeur RVB de 4 octets | Entier long | Entier long de 4 octets (format 0x00rrggbb). Valeurs hexadécimales :
rr = Composante rouge de la couleur gg = Composante verte de la couleur bb = Composante bleue de la couleur | 0x00000000, 0x00FF7F7F | -| Constante couleur "système" 4D | Entier long | Couleurs utilisées par 4D pour dessiner des objets avec des couleurs automatiques. Constantes disponibles (du thème *FIXER COULEUR RVB*):
Background color Background color none (cette constante peut être utilisée uniquement avec les paramètres *couleurArrièrePlan* et couleurArrièrePlanAlt) Dark shadow color Disable highlight item color Foreground color Highlight menu background color Highlight menu text color Highlight text background color Highlight text color Light shadow color | **Note :* Les couleurs automatiques dépendent du système et du type d'objet auxquels elles sont affectées.* | +| Nom de la couleur CSS | Texte | Nom de la couleur CSS standard.
  • La liste des noms est disponible en ligne, comme par exemple sur le site web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/).
  • Utilisez "transparent" pour obtenir un fond transparent (peut être utilisé uniquement avec les paramètres *couleurArrièrePlan* et *couleurArrièrePlanAlt*).
| "red", "cyan", "lightblue" | +| Syntaxe "#rrggbb" de la couleur CSS | Texte | Code couleur standard CSS2 en notation hexadécimale :
  • rr = Composante rouge de la couleur
  • gg = Composante verte de la couleur
  • bb = Composante bleue de la couleur
| "#ff0000", "#00FFFF", "#ADD8E6" | +| Syntaxe "rgb(r,g,b)" de la couleur CSS | Texte | Code couleur standard CSS2 en notation rvb :
  • r = Composante rouge de la couleur (0...255)
  • g = Composante verte de la couleur (0...255)
  • b = Composante bleue de la couleur (0...255)
| "rgb(255,255,0)", "rgb(255,0,0)" | +| Valeur RVB de 4 octets | Entier long | Entier long de 4 octets (format 0x00rrggbb). Valeurs hexadécimales :
  • rr = Composante rouge de la couleur
  • gg = Composante verte de la couleur
  • bb = Composante bleue de la couleur
| 0x00000000, 0x00FF7F7F | +| Constante couleur "système" 4D | Entier long | Couleurs utilisées par 4D pour dessiner des objets avec des couleurs automatiques. Constantes disponibles (du thème *FIXER COULEUR RVB*):
  • Background color
  • Background color none (cette constante peut être utilisée uniquement avec les paramètres *couleurArrièrePlan* et *couleurArrièrePlanAlt*)
  • Dark shadow color
  • Disable highlight item color
  • Foreground color
  • Highlight menu background color
  • Highlight menu text color
  • Highlight text background color
  • Highlight text color
  • Light shadow color
| **Note :* Les couleurs automatiques dépendent du système et du type d'objet auxquels elles sont affectées.* | ## Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 64c3d558efe1f5..a947c94dde12ec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -50,11 +50,11 @@ Vous passez des valeurs de couleurs RVB dans les paramètres *couleurAvantPlan* | **Nom du format** | **Type** | **Description** | **Exemples** | | -------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| Nom de la couleur CSS | Texte | Nom de la couleur CSS standard.
La liste des noms est disponible en ligne, comme par exemple sur le site web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/). Utilisez "transparent" pour obtenir un fond transparent (peut être utilisé uniquement avec les paramètres *couleurArrièrePlan* et *couleurArrièrePlanAlt*). | "red", "cyan", "lightblue" | -| Syntaxe "#rrggbb" de la couleur CSS | Texte | Code couleur standard CSS2 en notation hexadécimale : rr = Composante rouge de la couleur gg = Composante verte de la couleur bb = Composante bleue de la couleur | "#ff0000", "#00FFFF", "#ADD8E6" | -| Syntaxe "rgb(r,g,b)" de la couleur CSS | Texte | Code couleur standard CSS2 en notation rvb :
r = Composante rouge de la couleur (0...255) g = Composante verte de la couleur (0...255) b = Composante bleue de la couleur (0...255) | "rgb(255,255,0)", "rgb(255,0,0)" | -| Valeur RVB de 4 octets | Entier long | Entier long de 4 octets (format 0x00rrggbb). Valeurs hexadécimales :
rr = Composante rouge de la couleur gg = Composante verte de la couleur bb = Composante bleue de la couleur | 0x00000000, 0x00FF7F7F | -| Constante couleur "système" 4D | Entier long | Couleurs utilisées par 4D pour dessiner des objets avec des couleurs automatiques. Constantes disponibles (du thème *FIXER COULEUR RVB*):
Background color Background color none (cette constante peut être utilisée uniquement avec les paramètres *couleurArrièrePlan* et couleurArrièrePlanAlt) Dark shadow color Disable highlight item color Foreground color Highlight menu background color Highlight menu text color Highlight text background color Highlight text color Light shadow color | **Note :* Les couleurs automatiques dépendent du système et du type d'objet auxquels elles sont affectées.* | +| Nom de la couleur CSS | Texte | Nom de la couleur CSS standard.
  • La liste des noms est disponible en ligne, comme par exemple sur le site web [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/).
  • Utilisez "transparent" pour obtenir un fond transparent (peut être utilisé uniquement avec les paramètres *couleurArrièrePlan* et *couleurArrièrePlanAlt*).
| "red", "cyan", "lightblue" | +| Syntaxe "#rrggbb" de la couleur CSS | Texte | Code couleur standard CSS2 en notation hexadécimale :
  • rr = Composante rouge de la couleur
  • gg = Composante verte de la couleur
  • bb = Composante bleue de la couleur
| "#ff0000", "#00FFFF", "#ADD8E6" | +| Syntaxe "rgb(r,g,b)" de la couleur CSS | Texte | Code couleur standard CSS2 en notation rvb :
  • r = Composante rouge de la couleur (0...255)
  • g = Composante verte de la couleur (0...255)
  • b = Composante bleue de la couleur (0...255)
| "rgb(255,255,0)", "rgb(255,0,0)" | +| Valeur RVB de 4 octets | Entier long | Entier long de 4 octets (format 0x00rrggbb). Valeurs hexadécimales :
  • rr = Composante rouge de la couleur
  • gg = Composante verte de la couleur
  • bb = Composante bleue de la couleur
| 0x00000000, 0x00FF7F7F | +| Constante couleur "système" 4D | Entier long | Couleurs utilisées par 4D pour dessiner des objets avec des couleurs automatiques. Constantes disponibles (du thème *FIXER COULEUR RVB*):
  • Background color
  • Background color none (cette constante peut être utilisée uniquement avec les paramètres *couleurArrièrePlan* et *couleurArrièrePlanAlt*)
  • Dark shadow color
  • Disable highlight item color
  • Foreground color
  • Highlight menu background color
  • Highlight menu text color
  • Highlight text background color
  • Highlight text color
  • Light shadow color
| **Note :* Les couleurs automatiques dépendent du système et du type d'objet auxquels elles sont affectées.* | ## Exemple 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 0fd5742d29d2a8..88ab8fba1a5c61 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -49,11 +49,11 @@ displayed_sidebar: docs | **フォーマット名** | **型** | **詳細** | **例** | | --------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| CSS カラー名 | テキスト | 標準のCSS2 カラー名。
利用可能な名前の一覧は、オンライン上の様々なページで確認することができます。(例: [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/) など) "transparent" を使用することで、背景に対して透明度を設定することができます(ただし*backgroundColor* および *altBackgrndColor* 引数に対してのみ使用することができます)。 "" (空の文字列)を*foregroundColor* または *backgroundColor* に対して使用することでそれらの変数を変更しないままにします。 | "red", "cyan", "lightblue" | -| CSS カラー "#rrggbb" シンタックス | テキスト | 標準のCSS2 16進数カラーコード: rr = カラーの赤成分 gg = カラーの緑成分 bb = カラーの青成分 | "#ff0000", "#00FFFF", "#ADD8E6" | -| CSS カラー "rgb(r,g,b)" シンタックス | テキスト | 標準のCSS2 rgb カラーコード: r = カラーの赤成分(0〜255) g = カラーの緑成分(0〜255) b = カラーの青成分(0〜255) | "rgb(255,255,0)", "rgb(255,0,0)" | -| 4-バイトRGB 値 | 倍長整数 | 4-バイトの倍長整数(フォーマット0x00rrggbb)。16進数の値をとります:
rr = カラーの赤成分 gg = カラーの緑成分 bb = カラーの青成分 | 0x00000000, 0x00FF7F7F | -| 4D "system" カラー定数 | 倍長整数 | オブジェクトを自動カラーで描画する際に4Dが使用するカラー。利用可能定数は以下の通り(*SET RGB COLORS* テーマ):
Background color Background color none (*backgroundColor* および *altBackgrndColor* 引数においてのみ使用可能) Dark shadow color Disable highlight item color Foreground color Highlight menu background color Highlight menu text color Highlight text background color Highlight text color Light shadow color | **注:* 自動カラーは、システムに依るとともに、そのカラーが適用されるオブジェクトの種類によっても変わります。* | +| CSS カラー名 | テキスト | 標準のCSS2 カラー名。
  • 利用可能な名前の一覧は、オンライン上の様々なページで確認することができます。(例: [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/) など)
  • "transparent" を使用することで、背景に対して透明度を設定することができます(ただし*backgroundColor* および *altBackgrndColor* 引数に対してのみ使用することができます)。
"" (空の文字列)を*foregroundColor* または *backgroundColor* に対して使用することでそれらの変数を変更しないままにします。 | "red", "cyan", "lightblue" | +| CSS カラー "#rrggbb" シンタックス | テキスト | 標準のCSS2 16進数カラーコード:
  • rr = カラーの赤成分
  • gg = カラーの緑成分
  • bb = カラーの青成分
| "#ff0000", "#00FFFF", "#ADD8E6" | +| CSS カラー "rgb(r,g,b)" シンタックス | テキスト | 標準のCSS2 rgb カラーコード:
  • r = カラーの赤成分(0〜255)
  • g = カラーの緑成分(0〜255)
  • b = カラーの青成分(0〜255)
| "rgb(255,255,0)", "rgb(255,0,0)" | +| 4-バイトRGB 値 | 倍長整数 | 4-バイトの倍長整数(フォーマット0x00rrggbb)。16進数の値をとります:
  • rr = カラーの赤成分
  • gg = カラーの緑成分
  • bb = カラーの青成分
| 0x00000000, 0x00FF7F7F | +| 4D "system" カラー定数 | 倍長整数 | オブジェクトを自動カラーで描画する際に4Dが使用するカラー。利用可能定数は以下の通り(*SET RGB COLORS* テーマ):
  • Background color
  • Background color none (*backgroundColor* および *altBackgrndColor* 引数においてのみ使用可能)
  • Dark shadow color
  • Disable highlight item color
  • Foreground color
  • Highlight menu background color
  • Highlight menu text color
  • Highlight text background color
  • Highlight text color
  • Light shadow color
| **注:* 自動カラーは、システムに依るとともに、そのカラーが適用されるオブジェクトの種類によっても変わります。* | ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 0fd5742d29d2a8..88ab8fba1a5c61 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -49,11 +49,11 @@ displayed_sidebar: docs | **フォーマット名** | **型** | **詳細** | **例** | | --------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| CSS カラー名 | テキスト | 標準のCSS2 カラー名。
利用可能な名前の一覧は、オンライン上の様々なページで確認することができます。(例: [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/) など) "transparent" を使用することで、背景に対して透明度を設定することができます(ただし*backgroundColor* および *altBackgrndColor* 引数に対してのみ使用することができます)。 "" (空の文字列)を*foregroundColor* または *backgroundColor* に対して使用することでそれらの変数を変更しないままにします。 | "red", "cyan", "lightblue" | -| CSS カラー "#rrggbb" シンタックス | テキスト | 標準のCSS2 16進数カラーコード: rr = カラーの赤成分 gg = カラーの緑成分 bb = カラーの青成分 | "#ff0000", "#00FFFF", "#ADD8E6" | -| CSS カラー "rgb(r,g,b)" シンタックス | テキスト | 標準のCSS2 rgb カラーコード: r = カラーの赤成分(0〜255) g = カラーの緑成分(0〜255) b = カラーの青成分(0〜255) | "rgb(255,255,0)", "rgb(255,0,0)" | -| 4-バイトRGB 値 | 倍長整数 | 4-バイトの倍長整数(フォーマット0x00rrggbb)。16進数の値をとります:
rr = カラーの赤成分 gg = カラーの緑成分 bb = カラーの青成分 | 0x00000000, 0x00FF7F7F | -| 4D "system" カラー定数 | 倍長整数 | オブジェクトを自動カラーで描画する際に4Dが使用するカラー。利用可能定数は以下の通り(*SET RGB COLORS* テーマ):
Background color Background color none (*backgroundColor* および *altBackgrndColor* 引数においてのみ使用可能) Dark shadow color Disable highlight item color Foreground color Highlight menu background color Highlight menu text color Highlight text background color Highlight text color Light shadow color | **注:* 自動カラーは、システムに依るとともに、そのカラーが適用されるオブジェクトの種類によっても変わります。* | +| CSS カラー名 | テキスト | 標準のCSS2 カラー名。
  • 利用可能な名前の一覧は、オンライン上の様々なページで確認することができます。(例: [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/) など)
  • "transparent" を使用することで、背景に対して透明度を設定することができます(ただし*backgroundColor* および *altBackgrndColor* 引数に対してのみ使用することができます)。
"" (空の文字列)を*foregroundColor* または *backgroundColor* に対して使用することでそれらの変数を変更しないままにします。 | "red", "cyan", "lightblue" | +| CSS カラー "#rrggbb" シンタックス | テキスト | 標準のCSS2 16進数カラーコード:
  • rr = カラーの赤成分
  • gg = カラーの緑成分
  • bb = カラーの青成分
| "#ff0000", "#00FFFF", "#ADD8E6" | +| CSS カラー "rgb(r,g,b)" シンタックス | テキスト | 標準のCSS2 rgb カラーコード:
  • r = カラーの赤成分(0〜255)
  • g = カラーの緑成分(0〜255)
  • b = カラーの青成分(0〜255)
| "rgb(255,255,0)", "rgb(255,0,0)" | +| 4-バイトRGB 値 | 倍長整数 | 4-バイトの倍長整数(フォーマット0x00rrggbb)。16進数の値をとります:
  • rr = カラーの赤成分
  • gg = カラーの緑成分
  • bb = カラーの青成分
| 0x00000000, 0x00FF7F7F | +| 4D "system" カラー定数 | 倍長整数 | オブジェクトを自動カラーで描画する際に4Dが使用するカラー。利用可能定数は以下の通り(*SET RGB COLORS* テーマ):
  • Background color
  • Background color none (*backgroundColor* および *altBackgrndColor* 引数においてのみ使用可能)
  • Dark shadow color
  • Disable highlight item color
  • Foreground color
  • Highlight menu background color
  • Highlight menu text color
  • Highlight text background color
  • Highlight text color
  • Light shadow color
| **注:* 自動カラーは、システムに依るとともに、そのカラーが適用されるオブジェクトの種類によっても変わります。* | ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md index 0fd5742d29d2a8..88ab8fba1a5c61 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Forms)/object-set-rgb-colors.md @@ -49,11 +49,11 @@ displayed_sidebar: docs | **フォーマット名** | **型** | **詳細** | **例** | | --------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| CSS カラー名 | テキスト | 標準のCSS2 カラー名。
利用可能な名前の一覧は、オンライン上の様々なページで確認することができます。(例: [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/) など) "transparent" を使用することで、背景に対して透明度を設定することができます(ただし*backgroundColor* および *altBackgrndColor* 引数に対してのみ使用することができます)。 "" (空の文字列)を*foregroundColor* または *backgroundColor* に対して使用することでそれらの変数を変更しないままにします。 | "red", "cyan", "lightblue" | -| CSS カラー "#rrggbb" シンタックス | テキスト | 標準のCSS2 16進数カラーコード: rr = カラーの赤成分 gg = カラーの緑成分 bb = カラーの青成分 | "#ff0000", "#00FFFF", "#ADD8E6" | -| CSS カラー "rgb(r,g,b)" シンタックス | テキスト | 標準のCSS2 rgb カラーコード: r = カラーの赤成分(0〜255) g = カラーの緑成分(0〜255) b = カラーの青成分(0〜255) | "rgb(255,255,0)", "rgb(255,0,0)" | -| 4-バイトRGB 値 | 倍長整数 | 4-バイトの倍長整数(フォーマット0x00rrggbb)。16進数の値をとります:
rr = カラーの赤成分 gg = カラーの緑成分 bb = カラーの青成分 | 0x00000000, 0x00FF7F7F | -| 4D "system" カラー定数 | 倍長整数 | オブジェクトを自動カラーで描画する際に4Dが使用するカラー。利用可能定数は以下の通り(*SET RGB COLORS* テーマ):
Background color Background color none (*backgroundColor* および *altBackgrndColor* 引数においてのみ使用可能) Dark shadow color Disable highlight item color Foreground color Highlight menu background color Highlight menu text color Highlight text background color Highlight text color Light shadow color | **注:* 自動カラーは、システムに依るとともに、そのカラーが適用されるオブジェクトの種類によっても変わります。* | +| CSS カラー名 | テキスト | 標準のCSS2 カラー名。
  • 利用可能な名前の一覧は、オンライン上の様々なページで確認することができます。(例: [htmlcolorcodes.com](https://htmlcolorcodes.com/color-names/) など)
  • "transparent" を使用することで、背景に対して透明度を設定することができます(ただし*backgroundColor* および *altBackgrndColor* 引数に対してのみ使用することができます)。
"" (空の文字列)を*foregroundColor* または *backgroundColor* に対して使用することでそれらの変数を変更しないままにします。 | "red", "cyan", "lightblue" | +| CSS カラー "#rrggbb" シンタックス | テキスト | 標準のCSS2 16進数カラーコード:
  • rr = カラーの赤成分
  • gg = カラーの緑成分
  • bb = カラーの青成分
| "#ff0000", "#00FFFF", "#ADD8E6" | +| CSS カラー "rgb(r,g,b)" シンタックス | テキスト | 標準のCSS2 rgb カラーコード:
  • r = カラーの赤成分(0〜255)
  • g = カラーの緑成分(0〜255)
  • b = カラーの青成分(0〜255)
| "rgb(255,255,0)", "rgb(255,0,0)" | +| 4-バイトRGB 値 | 倍長整数 | 4-バイトの倍長整数(フォーマット0x00rrggbb)。16進数の値をとります:
  • rr = カラーの赤成分
  • gg = カラーの緑成分
  • bb = カラーの青成分
| 0x00000000, 0x00FF7F7F | +| 4D "system" カラー定数 | 倍長整数 | オブジェクトを自動カラーで描画する際に4Dが使用するカラー。利用可能定数は以下の通り(*SET RGB COLORS* テーマ):
  • Background color
  • Background color none (*backgroundColor* および *altBackgrndColor* 引数においてのみ使用可能)
  • Dark shadow color
  • Disable highlight item color
  • Foreground color
  • Highlight menu background color
  • Highlight menu text color
  • Highlight text background color
  • Highlight text color
  • Light shadow color
| **注:* 自動カラーは、システムに依るとともに、そのカラーが適用されるオブジェクトの種類によっても変わります。* | ## 例題 1 From 8d01b63124b83b6e70c0c125763aaff75965ed22 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 1 Sep 2026 14:44:33 +0200 Subject: [PATCH 04/60] Feature/winui list form (#3398) * 2 lines * Update updates.md * Update updates.md * after closure --- docs/FormEditor/forms.md | 13 ++++--------- docs/FormEditor/properties_Markers.md | 2 ++ docs/Notes/updates.md | 2 ++ 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/FormEditor/forms.md b/docs/FormEditor/forms.md index 7a01110e9c252d..194ecf07403a32 100644 --- a/docs/FormEditor/forms.md +++ b/docs/FormEditor/forms.md @@ -282,13 +282,6 @@ A multi-page form has both a background page and several display pages. Objects ## Fluent UI rendering -:::caution Developer Preview - -Fluent UI support is currently in the Developer Preview phase. It should not be used in production. - -::: - - 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. @@ -307,8 +300,9 @@ This feature can be used **in 4D projects on Windows**. It is not available on m :::tip Related blog posts -[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
-[Deploy Fluent UI effortlessly in your 4D applications](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
+[Deploy Fluent UI effortlessly in your 4D applications](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Fluent UI Comes to List Forms](https://blog.4d.com/fluent-ui-comes-to-list-forms) ::: @@ -365,6 +359,7 @@ When using 4D forms with Fluent UI rendering, you need to pay attention to the f - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands/wa-zoom-in) / [`WA ZOOM OUT`](../commands/wa-zoom-out) 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). +- In [list forms](../FormEditor/properties_FormProperties.md#form-type), objects located in the [Header or Footer areas](./properties_Markers.md) are always displayed on a background layer, while those in the Detail area are displayed in the foreground. Unlike in the Classic rendering, an object that extends beyond the Header boundaries will always be drawn under the objects in the Detail area. diff --git a/docs/FormEditor/properties_Markers.md b/docs/FormEditor/properties_Markers.md index c96f04e6f91f17..f374f908098145 100644 --- a/docs/FormEditor/properties_Markers.md +++ b/docs/FormEditor/properties_Markers.md @@ -34,6 +34,8 @@ The form Detail area is displayed on the screen and printed once for each record You can make the Detail area smaller or larger. Whatever you place in the Detail area is displayed or printed once for each record. Most often you place fields or variables in the Detail area so that the information in each record is displayed or printed, but you can place other elements in the Detail area as well. +The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). + #### JSON Grammar |Name|Data Type|Possible Values| diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index a7bfd5c06384f6..0c2f7a9e54996b 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -11,11 +11,13 @@ Read [**What’s new in 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Highlights - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. - [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21_R5): list of all bugs that have been fixed in 4D 21 R5. + ## 4D 21 R4 Read [**What’s new in 4D 21 R4**](https://blog.4d.com/whats-new-in-4d-21-r4/), the blog post that lists all new features and enhancements in 4D 21 R4. From bc49d7e94b4af338c4123f7661075ee5118b8375 Mon Sep 17 00:00:00 2001 From: sandritica <136651682+sandritica@users.noreply.github.com> Date: Wed, 2 Sep 2026 03:56:30 -0500 Subject: [PATCH 05/60] Fixing ES issues in OB commands (#3399) * Update parameter names in selection-to-array.md * Update parameters in selection-to-array.md * Update description for adding list to BLOB * Update description for list-to-blob.md parameters * Refactor parameters in encrypt-data-file.md * Refine parameter details in encrypt-data-file.md Updated parameter descriptions and types for encryption data file. * Fix formatting of curPassPhrase in encrypt-data-file.md * Fix formatting of curPassPhrase in encrypt-data-file.md * Translate formula return description to Spanish * Translate formula return value note to Spanish * Update opcionPag description in form-get-objects.md Removed the obsolete indicator from opcionPag in the documentation. * Clarify opcionPag description in form-get-objects.md Removed the asterisk from the 'opcionPag' description to clarify its usage. * Rename yValores to zValores in graph.md * Add graphSettings parameter and rename yValores to zValores * Fix formatting of refElem parameter in delete-from-list.md * Fix parameter formatting in delete-from-list.md * Fix formatting of refElem parameter in documentation * Fix formatting of refElem parameter in documentation * Fix formatting of refElem parameter in documentation * Fix parameter description formatting in documentation * Fix formatting of refElem parameter in documentation * Fix formatting of refElem parameter in documentation * Update refElemento type from '*' to 'Operator' * Fix formatting of refElem parameter in documentation * Fix formatting of refElem parameter in documentation * Fix parameter description for posicionElem * Fix parameter name formatting in get-list-item.md * Fix parameter formatting in insert-in-list.md * Fix parameter formatting in insert-in-list.md * Fix formatting of refElem parameter in documentation * Fix formatting of refElem parameter in documentation * Fix formatting of refElem parameter description * Fix formatting of refElem parameter in documentation * Fix parameter formatting in set-list-item-icon.md * Fix formatting of refElem parameter in documentation * Fix parameter type for refElem in documentation * Fix parameter type for refElem in documentation * Update parameter types in set-list-item-properties.md * Update parameter types in set-list-item-properties.md * Fix parameter type for refElem in set-list-item.md * Fix parameter type for refElem in set-list-item.md * Fix syntax formatting for throw command documentation * Fix syntax formatting for 'throw' command Updated syntax for the 'throw' command to improve clarity. * Add description for method with no return value * Fix formatting in execute-method.md table * Update parameters in listbox-set-table-source.md * Update parameters in listbox-set-table-source.md * Update listbox-set-table-source.md for clarity * Fix syntax for LISTBOX SET TABLE SOURCE Updated the syntax for LISTBOX SET TABLE SOURCE to correct 'objeto' to 'object'. * Update syntax and parameters for get-picture-from-library * Update syntax and parameters for get-picture-from-library * Translate printing job parameters to Spanish * Translate printing job parameters to Spanish * Fix links and references in page-break.md Updated references and links in the Spanish documentation for the PAGE BREAK command. * Fix formatting and links in page-break.md * Update PAGE BREAK command documentation Clarified the usage of the PAGE BREAK command and its parameters, including the optional parameters and their effects on print jobs. * Update PRINT LABEL syntax and parameters in Spanish * Update parameter names in print-label.md * Update PRINT RECORD syntax and parameters in Spanish * Update PRINT RECORD command documentation in Spanish * Update RELATE ONE command syntax and parameters * Update syntax and parameters for RELATE ONE command * Update ACTIVITY SNAPSHOT syntax and parameters * Update ACTIVITY SNAPSHOT syntax and parameters * Update REDRAW command parameters in Spanish documentation * Revise REDRAW command syntax and parameters Updated the syntax and parameters for the REDRAW command in the documentation. * Clarify parameters in wa-execute-javascript-function.md Updated the description of the 'objeto' parameter to include 'campo' and clarified the result parameter. * Update parameter descriptions in JavaScript function doc * Revise 'DOM Get XML element' command syntax and parameters Updated the syntax and parameters for the 'DOM Get XML element' command in Spanish documentation. * Update XML DOM get element documentation in Spanish * Update SAX SET XML DECLARATION syntax and parameters * Update parameters in SAX SET XML DECLARATION syntax * Fix formatting and parameter types in selection-to-array.md * Update syntax and parameter types in selection-to-array.md * Revise INTEGER TO BLOB syntax and parameter details Updated syntax and description for INTEGER TO BLOB command. * Update INTEGER TO BLOB syntax and parameters * Update LONGINT TO BLOB syntax and parameters * Update LONGINT TO BLOB syntax and parameters * Revise REAL TO BLOB command syntax and parameters Updated the syntax and description for the REAL TO BLOB command in Spanish localization. * Revise REAL TO BLOB syntax and parameters Updated the syntax and description for the REAL TO BLOB command in Spanish. * Update parameter names in text-to-blob documentation * Refactor TEXT TO BLOB command parameters Updated parameter names and descriptions for clarity. * Update RECEIVE PACKET syntax and parameter types * Update RECEIVE PACKET syntax and parameter types * Update decrypt data BLOB syntax and parameters * Update decrypt-data-blob.md for parameter names * Update encryption function parameters in Spanish docs * Update encrypt-data-blob documentation parameters * Revise 'Encrypt data file' command syntax Updated the syntax for the 'Encrypt data file' command to include new parameters and types. * Update encrypt data file syntax and parameters * Update parameter names in method-get-modification-date.md * Update parameter names in method-get-modification-date.md * Update syntax and parameter descriptions in method-set-attribute.md * Update method-set-attribute.md for parameter names * Update parameter name from 'operador' to 'Operator' * Update parameter name from 'operador' to 'Operator' * Update drop-position.md for parameter type changes * Update drop-position.md for syntax and parameter types * Update parameter types in form-get-entry-order.md * Update parameter types in form-get-entry-order.md * Update GRAPH command syntax in Spanish documentation * Revise GRAPH command syntax in Spanish docs Updated the syntax and parameters for the GRAPH command in Spanish documentation. * Update syntax and parameter types in object-set-action.md * Update syntax and parameter types in object-set-action.md * Update syntax and parameter types in documentation * Update syntax and parameter types in documentation * Revise PRINT SELECTION syntax in print-selection.md Updated the syntax for PRINT SELECTION command in Spanish documentation. * Revise PRINT SELECTION command documentation Updated syntax and parameters for PRINT SELECTION command. * Update last query plan documentation format * Modify 'Last query plan' command syntax and parameters Updated the syntax for the 'Last query plan' command to include 'descFormat' parameter and added 'formatDesc' to the parameters table. * Change data types from 'Entero largo, Cadena' to 'Integer, Text' * Change data types for operador field in documentation * Update syntax parameters for QR SET TOTALS DATA * Update syntax and parameters in qr-set-totals-data.md * Revise READ ONLY command syntax in read-only.md Updated syntax for READ ONLY command in Spanish documentation. * Revise READ ONLY command syntax in read-only.md Updated syntax for READ ONLY command in Spanish documentation. * Revise READ WRITE command syntax in read-write.md Updated syntax for READ WRITE command in Spanish documentation. * Modify READ WRITE command syntax in documentation Updated syntax for READ WRITE command to include table parameter. * Update syntax and parameter descriptions in relate-many.md * Update syntax and description for RELATE MANY command * Update syntax and parameter types in set-field-relation.md * Update syntax and parameter types in documentation * Update font-list.md for parameter syntax and types * Update font-list.md for parameter syntax and types * Update syntax and parameter types in web-get-http-header.md * Update syntax and parameter types in web-get-http-header.md * Update syntax and parameter types in web-set-http-header.md * Update XML DOM parse command documentation * Fix parameter type and update syntax in documentation * Update XML DOM parse variable documentation * Fix validation parameter type in XML DOM documentation * Update parameter type for 'objeto' in ob-copy.md * Update parameter type in ob-copy.md * Update parameter type for 'objeto' in ob-get.md * Simplify parameter type in ob-get.md * Update parameter type in ob-is-defined.md * Fix parameter type in ob-is-defined.md * Update parameter type for 'ob-is-empty' documentation * Update parameter type in ob-is-empty.md * Update parameter type in ob-remove.md * Update parameter type for 'objeto' in ob-remove.md * Fix parameter type for 'objeto' in ob-set-array.md * Fix parameter type for 'objeto' in ob-set-array.md * Update parameter type in ob-set-null.md * Update parameter type in ob-set-null.md * Fix parameter type for 'objeto' in ob-set.md * Fix parameter type for 'objeto' in ob-set.md --- .../current/language-legacy/Objects (Language)/ob-copy.md | 2 +- .../current/language-legacy/Objects (Language)/ob-get.md | 2 +- .../current/language-legacy/Objects (Language)/ob-is-defined.md | 2 +- .../current/language-legacy/Objects (Language)/ob-is-empty.md | 2 +- .../current/language-legacy/Objects (Language)/ob-remove.md | 2 +- .../current/language-legacy/Objects (Language)/ob-set-array.md | 2 +- .../current/language-legacy/Objects (Language)/ob-set-null.md | 2 +- .../current/language-legacy/Objects (Language)/ob-set.md | 2 +- .../version-21-R4/language-legacy/Objects (Language)/ob-copy.md | 2 +- .../version-21-R4/language-legacy/Objects (Language)/ob-get.md | 2 +- .../language-legacy/Objects (Language)/ob-is-defined.md | 2 +- .../language-legacy/Objects (Language)/ob-is-empty.md | 2 +- .../language-legacy/Objects (Language)/ob-remove.md | 2 +- .../language-legacy/Objects (Language)/ob-set-array.md | 2 +- .../language-legacy/Objects (Language)/ob-set-null.md | 2 +- .../version-21-R4/language-legacy/Objects (Language)/ob-set.md | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-copy.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-copy.md index 2cfbed74a6973a..084c843b036a05 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-copy.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-copy.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | resuelvePunt | Boolean | → | True = resuelve los puntero, False o se omite = no resuelve punteros | | option | Integer | → | ck shared: devuelve un objeto compartido,ck resolve pointers: resuelve punteros antes de copiar | | agruparCon | Collection, Object | → | Colección u objeto compartido a agrupar con el objeto resultante | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-get.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-get.md index 023571da638ac4..83ac73c46eb0e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-get.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-get.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Nombre de la propiedad a leer | | tipo | Integer | → | Tipo al cual convertir el valor | | Resultado | any | ← | Valor actual de propiedad | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-is-defined.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-is-defined.md index 1982d86da087fc..86de1f9ed63509 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-is-defined.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-is-defined.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Si se pasa = propiedad a verificar, si se omite = verificar el objeto | | Resultado | Boolean | ← | Si propiedad se omite: True si objeto está definido, de lo contrario False.
Si propiedad se pasa: True si propiedad está definida, de lo contrario False |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-is-empty.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-is-empty.md index 052e27d9fac5dc..3fba96fdbf54e4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-is-empty.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-is-empty.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | Resultado | Boolean | ← | True si objeto está vacío o indefinido, de lo contrario False | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-remove.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-remove.md index 06f47127b9b6ae..dc337001ea3b43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-remove.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-remove.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Nombre de la propiedad a eliminar | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set-array.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set-array.md index a45590c2b18400..09ecd52fc64d41 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set-array.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set-array.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Nombre de la propiedad a definir | | array | Array, Variable | → | Array a almacenar en propiedad | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set-null.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set-null.md index db42bfd833bb11..4dc2a0e1dd2a3e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set-null.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set-null.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | property | Text | → | Nombre de la propiedad donde el valor nulo se va a aplicar | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set.md index dad7958069d6cf..b70b4fd520b4fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Language)/ob-set.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Nombre de la propiedad a configurar | | valor | Expression | → | Nuevo valor de la propiedad | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-copy.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-copy.md index 2cfbed74a6973a..084c843b036a05 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-copy.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-copy.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | resuelvePunt | Boolean | → | True = resuelve los puntero, False o se omite = no resuelve punteros | | option | Integer | → | ck shared: devuelve un objeto compartido,ck resolve pointers: resuelve punteros antes de copiar | | agruparCon | Collection, Object | → | Colección u objeto compartido a agrupar con el objeto resultante | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-get.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-get.md index 023571da638ac4..83ac73c46eb0e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-get.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-get.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Nombre de la propiedad a leer | | tipo | Integer | → | Tipo al cual convertir el valor | | Resultado | any | ← | Valor actual de propiedad | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-is-defined.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-is-defined.md index 1982d86da087fc..86de1f9ed63509 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-is-defined.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-is-defined.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Si se pasa = propiedad a verificar, si se omite = verificar el objeto | | Resultado | Boolean | ← | Si propiedad se omite: True si objeto está definido, de lo contrario False.
Si propiedad se pasa: True si propiedad está definida, de lo contrario False | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-is-empty.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-is-empty.md index 052e27d9fac5dc..3fba96fdbf54e4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-is-empty.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-is-empty.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | Resultado | Boolean | ← | True si objeto está vacío o indefinido, de lo contrario False | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-remove.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-remove.md index 06f47127b9b6ae..dc337001ea3b43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-remove.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-remove.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Nombre de la propiedad a eliminar | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set-array.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set-array.md index a45590c2b18400..09ecd52fc64d41 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set-array.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set-array.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Nombre de la propiedad a definir | | array | Array, Variable | → | Array a almacenar en propiedad | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set-null.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set-null.md index db42bfd833bb11..4dc2a0e1dd2a3e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set-null.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set-null.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Campo Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | property | Text | → | Nombre de la propiedad donde el valor nulo se va a aplicar | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set.md index dad7958069d6cf..b70b4fd520b4fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Objects (Language)/ob-set.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | -| objeto | Object, Object | → | Objeto estructurado | +| objeto | Object | → | Objeto estructurado | | propiedad | Text | → | Nombre de la propiedad a configurar | | valor | Expression | → | Nuevo valor de la propiedad | From e8c3fe43a691dec14f6955d104c30e61b221ba04 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 2 Sep 2026 10:56:42 +0200 Subject: [PATCH 06/60] New Crowdin updates (#3400) * updates.md French * sessionclass.md French * licenses.md French * forms.md French * properties_markers.md French * quotamanagerclass.md French * sessionclass.md Spanish * licenses.md Spanish * sessions.md Japanese * sessions.md Japanese * updates.md Spanish * updates.md Japanese * updates.md Portuguese, Brazilian * forms.md Spanish * properties_markers.md Spanish * quotamanagerclass.md Spanish * sessionclass.md Japanese * licenses.md Japanese * forms.md Japanese * properties_markers.md Japanese * licenses.md Japanese * licenses.md Japanese * quotamanagerclass.md Japanese * quotamanagerclass.md Japanese * licenses.md Japanese * sessionclass.md Portuguese, Brazilian * licenses.md Portuguese, Brazilian * forms.md Portuguese, Brazilian * properties_markers.md Portuguese, Brazilian * quotamanagerclass.md Portuguese, Brazilian --- .../current/API/QuotaManagerClass.md | 4 +- .../current/API/SessionClass.md | 2 +- .../current/Admin/licenses.md | 18 +-- .../current/FormEditor/forms.md | 14 +-- .../current/FormEditor/properties_Markers.md | 2 + .../current/Notes/updates.md | 2 + .../current/API/QuotaManagerClass.md | 4 +- .../current/API/SessionClass.md | 2 +- .../current/Admin/licenses.md | 18 +-- .../current/FormEditor/forms.md | 14 +-- .../current/FormEditor/properties_Markers.md | 2 + .../current/Notes/updates.md | 2 + .../current/API/QuotaManagerClass.md | 4 +- .../current/API/SessionClass.md | 2 +- .../current/Admin/licenses.md | 20 +-- .../current/FormEditor/forms.md | 14 +-- .../current/FormEditor/properties_Markers.md | 2 + .../current/Notes/updates.md | 2 + .../current/ServerWindow/sessions.md | 118 +++++++++--------- .../version-21-R3/Admin/licenses.md | 2 +- .../version-21-R4/API/QuotaManagerClass.md | 2 +- .../version-21-R4/Admin/licenses.md | 2 +- .../version-21-R4/ServerWindow/sessions.md | 118 +++++++++--------- .../version-21/Admin/licenses.md | 2 +- .../current/API/QuotaManagerClass.md | 4 +- .../current/API/SessionClass.md | 2 +- .../current/Admin/licenses.md | 18 +-- .../current/FormEditor/forms.md | 14 +-- .../current/FormEditor/properties_Markers.md | 2 + .../current/Notes/updates.md | 2 + 30 files changed, 207 insertions(+), 207 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index cc71bbf4c1a1b5..cf025dd729deb5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -24,7 +24,7 @@ Los objetos 4D.QuotaManager ofrecen las siguientes propiedades: | [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| -| [](#nbentitysets)
| +| [](#nbentitysets)
| @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### Descripción -La propiedad `.nbEntitySets` contiene el número máximo de conjuntos de entidades REST permitidos en memoria para la sesión actual (en segundos). +The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. Por defecto, no hay límite para conjuntos de entidades [almacenados en memoria por solicitudes REST](../REST/$info.md) (el valor es 0). Puede definir un límite para controlar la carga útil del servidor para una sesión específica. 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 149c2bb9c1df5c..ead1f1cf2596e5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -809,7 +809,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Admin/licenses.md b/i18n/es/docusaurus-plugin-content-docs/current/Admin/licenses.md index f54dc63026dd35..72c7aff1850dd0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/licenses.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/licenses.md @@ -18,15 +18,15 @@ Las licencias de desarrollo son necesarias para acceder al entorno Diseño 4D y Las licencias de despliegue pueden ser anidadas en el paso de creación por el desarrollador o introducido en el primer lanzamiento por el usuario final, como se describe en la siguiente tabla: -| Licencia de despliegue | Descripción | Dónde introducirla | -| ------------------------ | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Unlimited Desktop* | **Descontinuada** - Licencia personalizada integrada | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Desktop* | Licencia por usuario, que permite utilizar aplicaciones 4D independientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | -| *4D Desktop Business* | Licencia personalizada integrada para aplicaciones 4D independientes | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Server OEM* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D XML Keys Activation* | Utilizado para activar las licencias OEM del servidor 4D en modo de embebido no automático | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Server* | Licencia por usuario, que les permite utilizar 4D Server y clientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| Licencia de despliegue | Descripción | Dónde introducirla | +| ----------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| *4D Server* | Licencia por usuario, que les permite utilizar 4D Server y clientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| *4D Desktop* | Licencia por equipo, que permite el uso de aplicaciones 4D autónomas | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| *4D Desktop Business Edition* | Licencia personalizada integrada para aplicaciones 4D independientes | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D Server OEM* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D OEM Desktop* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D XML Keys Activation* | Utilizado para activar las licencias OEM del servidor 4D en modo de embebido no automático | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D Unlimited Desktop* | **Descontinuada** - Licencia personalizada integrada | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | ### Vencimiento 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 41a871a3f53beb..94665ed58af79d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -265,12 +265,6 @@ Un formulario multipáginas tiene una página de fondo y varias páginas de visu ## Renderización Fluent UI -:::caution Vista previa para desarrolladores - -La compatibilidad con Fluent UI se encuentra actualmente en fase Developer Preview. No debe utilizarse en producción. - -::: - 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. 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. @@ -287,8 +281,9 @@ Esta funcionalidad puede utilizarse **en proyectos 4D en Windows**. No está dis :::tip Entradas de blog relacionadas -[Modernice sus interfaces 4D con Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
-[Despliegue Fluent UI sin esfuerzo en sus aplicaciones 4D](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
+[Deploy Fluent UI effortlessly in your 4D applications](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Fluent UI Comes to List Forms](https://blog.4d.com/fluent-ui-comes-to-list-forms) ::: @@ -337,7 +332,7 @@ El [media query CSS **form-theme**](./createStylesheet.md#media-queries) permite Cuando utilice los formularios 4D con el renderizado Fluent UI, debe prestar atención a los siguientes puntos: -- El comando [`FORM theme`](../commands/form-theme) devuelve el tema actual del formulario. Valores posibles: "Classic" o "FluentUI". Si no existe un formulario actual o si el comando se ejecuta en macOS, se devuelve una cadena vacía. +- El comando [`FORM theme`](../commands/form-theme) devuelve el tema actual del formulario. Possible values: "Classic", "FluentUI" or "LiquidGlass". - El comando [`Application info`](../commands/application-info) le permite saber si Fluent UI puede ser utilizado (propiedad `canUseFluentUI`) o está siendo utilizado (propiedad `useFluentUI`). - Si [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) con el parámetro *itemStyle* `Underline` no es soportado (ignorado) para los menús emergentes. @@ -345,6 +340,7 @@ Cuando utilice los formularios 4D con el renderizado Fluent UI, debe prestar ate - Los [botones circulares](../FormObjects/button_overview.md#circle) son soportados (como en macOS). - Los comandos [`WA ZOOM IN`](../commands/wa-zoom-in) / [`WA ZOOM OUT`](../commands/wa-zoom-out) 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. +- In [list forms](../FormEditor/properties_FormProperties.md#form-type), objects located in the [Header or Footer areas](./properties_Markers.md) are always displayed on a background layer, while those in the Detail area are displayed in the foreground. Unlike in the Classic rendering, an object that extends beyond the Header boundaries will always be drawn under the objects in the Detail area. ## Formularios heredados diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index 87cb3fcedfe0c1..19f8602d7c7a8d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,6 +33,8 @@ El área Detalle del formulario se muestra en la pantalla y se imprime una vez p Puede hacer el área Detalle más pequeña o más grande. Lo que coloque en el área Detalle se muestra o imprime una vez por cada registro. Lo más habitual es colocar campos o variables en el área Detalle para que se muestre o imprima la información de cada registro, pero también se pueden colocar otros elementos en el área Detalle. +The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). + #### Gramática JSON | Nombre | Tipos de datos | Valores posibles | 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 658ade1c506dd4..ba7cced046382e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -11,6 +11,8 @@ Lea [**Las novedades en 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. + - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos los bugs que se han corregido en 4D 21 R5. ## 4D 21 R4 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index 6d0d3f4201818a..e0662939e36861 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -24,7 +24,7 @@ Les objets 4D.QuotaManager exposent les propriétés suivantes : | [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| -| [](#nbentitysets)
| +| [](#nbentitysets)
| @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### Description -La propriété `.nbEntitySets` contient le nombre maximal d'entity sets REST autorisés en mémoire pour la session courante (en secondes). +The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. Par défaut, il n'y a pas de limite pour les entity sets [stockés en mémoire par les requêtes REST](../REST/$info.md) (la valeur est 0). Vous pouvez définir une limite afin de contrôler la charge utile du serveur pour une session spécifique. 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 12dbedec46b926..bbadcd376e6d02 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -809,7 +809,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/licenses.md b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/licenses.md index 8785052a19ba4c..3bdca6723953da 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/licenses.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/licenses.md @@ -18,15 +18,15 @@ Les licences de développement sont nécessaires pour accéder à l'environnemen Les licences de déploiement peuvent être intégrées à l'étape de construction par le développeur ou saisies lors du premier lancement par l'utilisateur final, comme décrit dans le tableau suivant : -| Licence de déploiement | Description | Où la saisir | -| ------------------------ | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Unlimited Desktop* | **Non maintenu** - Licence personnalisée intégrée | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Desktop* | Licence par utilisateur, lui permettant d'utiliser des applications 4D autonomes | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | -| *4D Desktop Business* | Licence personnalisée intégrée pour les applications 4D autonomes | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Server OEM* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D XML Keys Activation* | Utilisée pour activer les licences 4D Server OEM en mode d'intégration non automatique | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Server* | Licence par utilisateur, lui permettant d'utiliser 4D Server et des postes clients | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| Licence de déploiement | Description | Où la saisir | +| ----------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| *4D Server* | Licence par utilisateur, lui permettant d'utiliser 4D Server et des postes clients | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| *4D Desktop* | Licence par ordinateur, permettant d'utiliser des applications 4D autonomes | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| *4D Desktop Business Edition* | Licence personnalisée intégrée pour les applications 4D autonomes | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D Server OEM* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D OEM Desktop* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D XML Keys Activation* | Utilisée pour activer les licences 4D Server OEM en mode d'intégration non automatique | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D Unlimited Desktop* | **Non maintenu** - Licence personnalisée intégrée | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | ### Expiration 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 a62b0ab1a1d46e..da3db5533ecef7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -265,12 +265,6 @@ Un formulaire multi-pages contient à la fois une page d'arrière-plan et plusie ## Rendu Fluent UI -:::caution Developer Preview - -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. - -::: - 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. @@ -287,8 +281,9 @@ Cette fonction peut être utilisée **dans les projets 4D sous Windows**. Elle n :::tip Articles de blog sur le sujet -[Modernisez vos interfaces 4D avec Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
-[Déployez Fluent UI sans effort dans vos applications 4D](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
+[Deploy Fluent UI effortlessly in your 4D applications](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Fluent UI Comes to List Forms](https://blog.4d.com/fluent-ui-comes-to-list-forms) ::: @@ -337,7 +332,7 @@ Le [media query CSS **form-theme**](./createStylesheet.md#media-queries) vous pe Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez prêter attention aux points suivants : -- La commande [`FORM theme`](../commands/form-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. +- La commande [`FORM theme`](../commands/form-theme) renvoie le thème d'affichage réel du formulaire courant. Possible values: "Classic", "FluentUI" or "LiquidGlass". - La commande [`Application info`](../commands/application-info) vous permet de savoir si Fluent UI peut être utilisé (propriété `canUseFluentUI`) ou est utilisé (propriété `useFluentUI`). - Si [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) avec le paramètre *itemStyle* `Underline` n'est pas pris en charge (ignoré) pour les menus pop up. @@ -345,6 +340,7 @@ Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez pr - Les [boutons circulaires](../FormObjects/button_overview.md#circle) sont pris en charge (comme sur macOS). - Les commandes [`WA ZOOM IN`](../commands/wa-zoom-in) / [`WA ZOOM OUT`](../commands/wa-zoom-out) 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. +- In [list forms](../FormEditor/properties_FormProperties.md#form-type), objects located in the [Header or Footer areas](./properties_Markers.md) are always displayed on a background layer, while those in the Detail area are displayed in the foreground. Unlike in the Classic rendering, an object that extends beyond the Header boundaries will always be drawn under the objects in the Detail area. ## Formulaires hérités diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index 7d0eb15a2dd553..cd4f88dd83c102 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,6 +33,8 @@ La zone de corps (ou de détail) du formulaire est affichée à l'écran et impr Vous agrandissez ou réduisez la taille de cette zone en faisant glisser le taquet C vers le bas ou vers le haut. Tout élément placé dans cette zone est affiché ou imprimé une fois pour chacun des enregistrements. La plupart du temps, vous placez des champs ou des variables dans cette zone afin que les données de chaque enregistrement soient imprimées ou affichées, mais il est aussi possible d’y placer d’autres éléments. +The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). + #### Grammaire JSON | Nom | Type de données | Valeurs possibles | 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 34ee30e04c7537..dc641253effd9c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -11,6 +11,8 @@ Read [**What’s new in 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. + - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=21_R5) : liste de tous les bugs qui ont été corrigés dans 4D 21 R5. ## 4D 21 R4 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index 45bb28a5c059a9..b3b9802f24daa1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -24,7 +24,7 @@ title: QuotaManager | [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| -| [](#nbentitysets)
| +| [](#nbentitysets)
| @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### 説明 -`.nbEntitySets` プロパティにはカレントセッション中にメモリ内で許可されるREST エンティティセットの最大数 が格納されています。 +The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. デフォルトでは、エンティティセットが[REST リクエストによってメモリに保存される数](../REST/$info.md) には制約はありません(値は 0 に設定されています)。 特定のセッションに対して、サーバーのペイロードを抑えるために、上限を設定することができます。 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 2d12b458a60cbf..c993199b432871 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -809,7 +809,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/licenses.md b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/licenses.md index f751456d83b550..1a5eec2bdb3794 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/licenses.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/licenses.md @@ -18,15 +18,15 @@ title: ライセンスリスト 運用ライセンスは、以下の表で説明されているように、開発者によって開発段階で埋め込むか、あるいは初回起動時にエンドユーザーによって入力される必要があります: -| 運用ライセンス | 説明 | 入力する場所 | -| ------------------------ | ------------------------------------------------ | --------------------------------------------------------- | -| *4D OEM Desktop* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Unlimited Desktop* | **販売終了** - 埋め込まれたカスタムのライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Desktop* | ユーザーごとのライセンスで、スタンドアロンの4D アプリケーションを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | -| *4D Desktop Business* | スタンドアロン4D アプリケーション用の埋め込みカスタムライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Server OEM* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D XML Keys Activation* | 非自動埋め込みモードの4D Server OEM ライセンスをアクティベートするのに使用されます | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Server* | 各ユーザーごとに必要なライセンスで、4D Server とクライアントを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| 運用ライセンス | 説明 | 入力する場所 | +| ----------------------------- | ------------------------------------------------ | --------------------------------------------------------- | +| *4D Server* | 各ユーザーごとに必要なライセンスで、4D Server とクライアントを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| *4D Desktop* | コンピューターごとのライセンス、スタンドアロン4D アプリケーションを使用するのに必要 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| *4D Desktop Business Edition* | スタンドアロン4D アプリケーション用の埋め込みカスタムライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D Server OEM* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D OEM Desktop* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D XML Keys Activation* | 非自動埋め込みモードの4D Server OEM ライセンスをアクティベートするのに使用されます | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D Unlimited Desktop* | **販売終了** - 埋め込まれたカスタムのライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | ### 期限切れ @@ -156,7 +156,7 @@ title: ライセンスリスト | ------------------------------------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | | 4D社のサイトからインストーラーをダウンロードできません。 | サイトがダウンしている、またはアンチウィルスやファイアウォールなどの影響 | 1- 時間を空けて再度試してください
または
2- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください。 | | ディスクに製品をインストールできません (インストールが拒否される)。 | アプリケーションのインストール権限がない | アプリケーションをインストールする権限を持ったセッションを開いてください (管理者アクセス)。 | -| オンラインアクティベーションに失敗します。 | アンチウィルス、ファイアーウォール、プロキシ | 1- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください
または
2- オフラインアクティベーションを試してください。 (ただし "R" バージョン用のライセンスでは利用不可) | +| オンラインアクティベーションに失敗します。 | アンチウィルス、ファイアウォール、プロキシ | 1- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください
または
2- オフラインアクティベーションを試してください。 (ただし "R" バージョン用のライセンスでは利用不可) | この情報で問題が解決しない場合は、お問い合わせください。 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 7cdcf3fcc193b1..269b390ecce8dd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -265,12 +265,6 @@ var $h:=Print form("Request_var";$formData;Form detail) ## Fluent UI レンダリング -:::caution デベロッパー・プレビュー - -Fluent UI のサポートは現在デベロッパープレビューのフェーズです。 本番環境で使用すべきではありません。 本番環境で使用すべきではありません。 - -::: - Windows では、4D は **Fluent UI** フォームレンダリングをサポートしています。これは **WinUI 3** テクノロジーに基づいた、Microsoft のモダンなグラフィカルユーザーインターフェースデザインです。 **WinUI 3** はWindows App SDK の基礎であり、今後のWindows グラフィカルインターフェースを象徴するものです。 Fluent UI レンダリングは現代的かつ魅力的なコントロールを提供するだけでなく、ダーク/ライトシステムテーマのサポート、高解像度ディスプレイのために最適化されたよりスムーズなレンダリング、そして最近のMicrosoft アプリケーションに沿った、一貫したユーザーエクスペリエンスを提供します。 @@ -287,8 +281,9 @@ Fluent UI レンダリングは現代的かつ魅力的なコントロールを :::tip 関連したblog 記事 -[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
-[Deploy Fluent UI effortlessly in your 4D applications](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
+[Deploy Fluent UI effortlessly in your 4D applications](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Fluent UI Comes to List Forms](https://blog.4d.com/fluent-ui-comes-to-list-forms) ::: @@ -338,7 +333,7 @@ Fluent UI レンダリングモードは、アプリケーションレベルま Fluent UI で4D フォームを使用する場合、以下の点に注意を払う必要があります: -- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 取り得る値: "Classic" あるいは "FluentUI"。 カレントフォームがない場合、あるいはコマンドがmacOS 上で呼ばれた場合、空の文字列が返されます。 +- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 Possible values: "Classic", "FluentUI" or "LiquidGlass". - [`Application info`](../commands/application-info) コマンドを使用することで、Fluent UI が使用できるかどうか(`canUseFluentUI` プロパティ) あるいは使用されているかどうか(`useFluentUI` プロパティ) を知ることができます。 - [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) がフォームのコンテキストで呼び出された場合、返された情報はフォームのカレントのアピアランス(クラシックあるいはFluent UI)に関連したものです。 コマンドがフォームのコンテキスト外から呼ばれた場合、返された情報は[グローバルプロジェクト設定](#アプリケーション設定) に関連したものです。 - [`SET MENU ITEM STYLE`](../commands/set-menu-item-style) の*itemStyle* 引数での `Underline` はポップアップメニューではサポートされていません(無視されます)。 @@ -346,6 +341,7 @@ Fluent UI で4D フォームを使用する場合、以下の点に注意を払 - [サークルボタン](../FormObjects/button_overview.md#サークル) はサポートされています(macOS と同様)。 - [`WA ZOOM IN`](../commands/wa-zoom-in) / [`WA ZOOM OUT`](../commands/wa-zoom-out) コマンドは、システムレンダリングエンジンを使用したWeb エリアではサポートされません。 - フォーカスの四角はピクチャーおよびテキストの[入力](../FormObjects/input_overview.md) に追加することができます。 +- In [list forms](../FormEditor/properties_FormProperties.md#form-type), objects located in the [Header or Footer areas](./properties_Markers.md) are always displayed on a background layer, while those in the Detail area are displayed in the foreground. Unlike in the Classic rendering, an object that extends beyond the Header boundaries will always be drawn under the objects in the Detail area. ## 継承フォーム diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index 6dc6697ad22bf1..05a0940a18a55b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,6 +33,8 @@ title: マーカー 詳細エリアの大きさは変更することができます。 詳細エリアに配置したオブジェクトはレコード毎に表示または印刷されます。 主にフィールドや変数を配置して、各レコードの情報を表示/印刷しますが、他のオブジェクトを配置することもできます。 +The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). + #### JSON 文法 | 名称 | データタイプ | とりうる値 | 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 2a390f4e2b3bd1..56ed42c9aebfd9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -11,6 +11,8 @@ title: リリースノート - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. + - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21_R5): 4D 21 R5 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r5/))。 ## 4D 21 R4 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sessions.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sessions.md index 691a59690ef6a9..c4f7824385fbde 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sessions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sessions.md @@ -1,126 +1,126 @@ --- id: sessions -title: Sessions Page +title: セッションページ --- -The **Sessions** page lists all active sessions connected to the server, including Client, Web, REST, and SOAP sessions. +**セッション** ページには、サーバーに接続している全てのアクティブなセッションが表示されます。これにはクライアント接続、Web 接続、REST 接続、そしてSOAP セッションが含まれます。 ![](../assets/en/Admin/server-sessions-2.png) -The **Sessions** button indicates, in parentheses, the total number of active sessions (this number does not take into account any display filters applied to the window). +**ユーザー** ボタンには、アクティブなセッションの合計数が括弧内に表示されます(この数には、ウィンドウにて適用されるフィルターは考慮されません)。 -The page contains a dynamic search area, filtering controls, and administration buttons. ヘッダーエリアをドラッグ&ドロップして、列の順番を入れ替えることができます。 +このページには、動的な検索エリアやフィルタリング制御、管理ボタンなどがあります。 ヘッダーエリアをドラッグ&ドロップして、列の順番を入れ替えることができます。 -You can also sort the list by clicking a column header. Click repeatedly to toggle between ascending and descending order. +また、ヘッダーをクリックすると、リストの値が並べ替えられます。 クリックするごとに昇順/降順が入れ替わります。 ![](../assets/en/Admin/server-sessions-sort-1.png) ## セッションの一覧 -Each row represents one active session. +各行は一つのアクティブなセッションを表します。 -The list provides the following information: +リストには、以下の情報が表示されます: -- Icon representing the type of session (Apple for macOS Client sessions, Windows for Windows Client sessions, globe for Web, REST, and SOAP sessions). And an additional visual indicator shows whether the session is authenticated. -- **Origin**: Type of session (Client, Web, REST, or SOAP). -- **User Name**: Name of the connected 4D user, or the alias defined using the [`SET USER ALIAS`](../commands/set-user-alias) command when applicable. For Web, REST, or SOAP sessions, no user name is displayed unless one has been associated with the session using the `userName` property of the [`setPrivileges()`](../API/SessionClass.md#setprivileges) function. -- **Login Date**: Date and time when the session was established. -- **CPU Time**: CPU time consumed by the session since it was created. -- **Activity**: Percentage of server activity currently devoted to the session (dynamic value). -- **Status**: Status of the session. Client sessions can be **Online**, **[Sleeping](../Desktop/clientServer.md#management-of-sleeping-client-sessions)**, or **[Unreachable](../Desktop/clientServer.md#management-of-unreachable-peer)**. Web, REST, and SOAP sessions always have the **Online** status. +- セッションの種類を表すアイコン(macOS クライアントセッションにはApple アイコン、Windows クライアントにはWindows アイコン、Web、REST、SOAP セッションには地球アイコン)。 また、セッションが認証されているかどうかを表す追加のインジケーターも表示されます。 +- **オリジン**: セッションの種類(クライアント、Web、REST、あるいはSOAP)。 +- **ユーザー名**: 接続している4D ユーザーの名前、または[`SET USER ALIAS`](../commands/set-user-alias) コマンドを使用して定義されているエイリアス(適用可能な場合)。 Web、REST、あるいはSOAP セッションに対しては、[`setPrivileges()`](../API/SessionClass.md#setprivileges) 関数の`userName` プロパティを使用してセッションにユーザー名が割り当てられてない限り、ユーザー名は表示されません。 +- **ログイン日**: セッションが確立された日付と時刻。 +- **CPU時間**: セッションが作成されてから消費したCPU 時間。 +- **Activity**: セッションに対して現在割り当てられているサーバーアクティビティの割合(動的な値)。 +- **ステータス**: セッションのステータス。 クライアントセッションの場合、**オンライン**、 **[スリープ中](../Desktop/clientServer.md#スリープしたクライアントセッションの管理)**あるいは **[クライアント接続不可](../Desktop/clientServer.md#到達不能なピアの管理)** のいずれかになります。 Web、REST、およびSOAP セッションは常に**オンライン** ステータスとなります。 -Additional information is available in the detail panel when a session is selected. +セッションが選択されていれば追加の情報が詳細パネル内に表示されます。 -## Session detail panel +## セッション詳細パネル -Selecting a session displays additional information in the lower panel. +セッションを選択すると追加の情報が下側のパネルに表示されます。 -### Client sessions +### クライアントセッション -The following information is available: +以下の情報が表示されます: -- **System username**: Name of the operating system session opened on the remote machine. -- **IP address**: IP address of the remote machine that opened the session. +- **システムユーザー名**: リモートマシン上で開かれたOSセッションの名前。 +- **IP アドレス**: セッションを開いたリモートマシンのIP アドレス。 - **マシン名**: リモートマシンの名前。 -- **4D Write Pro**: Indicates whether the session user belongs to a group that grants access to 4D Write Pro. -- **4D View Pro**: Indicates whether the session user belongs to a group that grants access to 4D View Pro. +- **4D Write Pro**: セッションユーザーが、4D Write Pro へのアクセスが付与されたグループに属しているかどうかを表します。 +- **4D View Pro**: セッションユーザーが、4D View Pro へのアクセスが付与されたグループに属しているかどうかを表します。 -### REST, Web, and SOAP sessions +### REST、Web、およびSOAPセッション -The detail panel displays information such as: +詳細パネルは以下のような情報を表示します: -- **Guest status**: Indicates whether the session is a Guest session. Guest sessions are unauthenticated Web sessions. -- **Privileges**: List of privileges associated with the session. -- **IP address**: IP address of the remote machine that opened the session. -- **User agent**: Identifies the client application, browser, or service that initiated the session. +- **ゲストステータス**: セッションがゲストセッションかどうかを表します。 ゲストセッションとは未認証のWeb セッションです。 +- **権限**: セッションに割り当てられた権限の一覧。 +- **IP アドレス**: セッションを開いたリモートマシンのIP アドレス。 +- **ユーザーエージェント**: クライアントアプリケーション、ブラウザ、あるいはセッションを開始したサービスを識別します。 -### IP Lookup button +### IP検索ボタン -IP Lookup button is enabled when a public IP address is displayed. You can click on the button to retrieve the geolocation of the selected session. +公開IP アドレスが表示されている場合、IP 検索ボタンが有効化されます。 このボタンをクリックすることで、選択されたセッションの位置情報を取得することができます。 -If the information is available, the location is displayed next to the IP Lookup button in the format **City, Country**. Otherwise **Not found** is displayed. +もしその情報が利用可能な場合、**City, Country** のフォーマットでIP 検索ボタンの横に位置が表示されます。 そうでない場合**Not found** が表示されます。 -## Search and Filtering +## 検索とフィルタリング -### Search bar +### 検索バー -The search field can be used to reduce the number of rows displayed in the list to those that correspond to the text entered. The search is performed on the **User Name**, **Machine name**, **Session name**, and **IP address** columns. +検索フィールドを使用して、入力されたテキストに対応する行だけをリストに表示させ、行数を減らすことができます。 検索は、**ユーザー名**、**マシン名**、**セッション名**、および **IP アドレス** 列に対して実行されます。 -The list is updated in real time as you enter text. +テキストが入力されると、リストはリアルタイムで更新されます。 -You can search for multiple values by separating them with a semicolon (`;`). In this case, the values are combined using the **OR** operator. +値をセミコロン(`;`) で区切ることで、複数の値を使用して検索をおこなうことができます。 この場合、値は**OR** 演算子を使用して結合されます。 -For example, if you enter: +例えば、以下のように入力した場合: ``` John;Mary;REST ``` -only rows containing **John**, **Mary**, or **REST** in the searchable columns are displayed. +検索可能カラム内で**John**、**Mary**、あるいは **REST** を格納している行のみが表示されます。 -### Session Type Filters +### セッションタイプフィルター -The Sessions page also provides quick filters to display only specific session types. +セッションページでは特定のタイプのセッションのみを表示するクイックフィルターも提供しています。 -The following filters are available: +以下のフィルターが利用可能です: -- **Counted sessions**: includes only sessions counted for floating license consumption. -- **Clients**: includes only desktop client sessions. -- **Web**: includes only Web and SOAP sessions. -- **REST**: includes only REST sessions. +- **カウントされたセッション**: ライセンスを消費しているとカウントされるセッションのみを含めます。 +- **クライアント**: デスクトップクライアントセッションのみを含めます。 +- **Web**: Web およびSOAP セッションのみを含めます。 +- **REST**: REST セッションのみを含めます。 -Filters can be enabled or disabled independently, or combined with other filters, and are applied immediately to the session list. +フィルターは個別に有効化/無効化したり、また他のフィルターと組み合わせることができ、セッションリストに即座に適用されます。 ## 管理ボタン -There are three administration buttons: **Send message** is available when one or more Client sessions are selected. **Watch Processes** is available when a single session of any type is selected, and **Drop session** is available when one or more sessions of any type are selected. -You can select several rows by holding down the **Shift** key for an adjacent selection or the **Ctrl** (Windows) / **Command** (macOS) key for a non-adjacent selection. +管理ボタンは三つあります: **メッセージ送信** は一つ以上のクライアントセッションが選択されている場合に利用可能です。 **プロセス監視** はタイプに関わらず単一のセッションが選択されているときに利用可能で、また**セッションをドロップ** はタイプに関わらず一つ以上のセッションが選択されているときに利用可能です。 +**Shift** キーを押しながらクリックして連続した行を、あるいは **Ctrl (Windows) / Command (macOS)** キーを押しながらクリックして連続しない行を複数選択できます。 ### メッセージ送信 -This button can be used to send a message to the selected **Client** session(s). If no Client session is selected, the button is not active. When you click this button, a dialog box appears that lets you enter the message. The dialog box also indicates the number of Client sessions that will receive the message: +このボタンを使用して、選択した**クライアント**セッションにメッセージを送信できます。 クライアントセッションが選択されていないと、ボタンを使用できません。 ボタンをクリックするとダイアログボックスが表示され、メッセージを入力できます。 ダイアログにはメッセージを受信するクライアントセッションの数が表示されます: ![](../assets/en/Admin/server-message.png) -The message is displayed as an alert on the corresponding remote machines. +このメッセージは対応するリモートマシン上でアラートとして表示されます。 -You can perform the same action programmatically using the [`SEND MESSAGE TO REMOTE USER`](../commands/send-message-to-remote-user) command. +[`SEND MESSAGE TO REMOTE USER`](../commands/send-message-to-remote-user) コマンドを使用することで同じアクションをプログラムで実行することができます。 ### プロセス監視 -This button can be used to directly show the processes associated with the selected session on the [**Processes** page](processes.md). +このボタンをクリックすると、選択されたセッションに割り当てられたプロセスを、管理ウィンドウの[**プロセス** ページ](processes.md) に直接表示させることができます。 -The process list is automatically filtered using the selected session UUID. +プロセスのリストは選択されたセッションのUUID を使用して自動的にフィルタリングされます。 -When multiple sessions are selected, this button is disabled. +複数のセッションが選択された場合、このボタンは無効化されます。 -### Drop session +### セッションをドロップ -This button can be used to force the selected Client session(s) to disconnect. +このボタンは、選択したクライアントセッションの接続を強制的に解除するために使用します。 -A confirmation dialog is displayed before the session is disconnected to confirm or cancel this operation (Hold down the **Alt** key while clicking **Drop user** to disconnect immediately without displaying the confirmation dialog). +セッションが接続解除される前に、操作を実行するかキャンセルするかを確認する確認ダイアログが表示されます(**Alt** キーを押しながら**ユーザーをドロップ** をクリックすることでこの確認ダイアログを表示せずに即座に接続解除することもできます)。 -You can perform the same action programmatically using the [`DROP REMOTE USER`](../commands/drop-remote-user) command. +[`DROP REMOTE USER`](../commands/drop-remote-user) コマンドを使用することで同じアクションをプログラムで実行することができます。 ## スリープしたクライアントセッションの管理 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md index f751456d83b550..7fe59184b4d328 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md @@ -156,7 +156,7 @@ title: ライセンスリスト | ------------------------------------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | | 4D社のサイトからインストーラーをダウンロードできません。 | サイトがダウンしている、またはアンチウィルスやファイアウォールなどの影響 | 1- 時間を空けて再度試してください
または
2- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください。 | | ディスクに製品をインストールできません (インストールが拒否される)。 | アプリケーションのインストール権限がない | アプリケーションをインストールする権限を持ったセッションを開いてください (管理者アクセス)。 | -| オンラインアクティベーションに失敗します。 | アンチウィルス、ファイアーウォール、プロキシ | 1- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください
または
2- オフラインアクティベーションを試してください。 (ただし "R" バージョン用のライセンスでは利用不可) | +| オンラインアクティベーションに失敗します。 | アンチウィルス、ファイアウォール、プロキシ | 1- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください
または
2- オフラインアクティベーションを試してください。 (ただし "R" バージョン用のライセンスでは利用不可) | この情報で問題が解決しない場合は、お問い合わせください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md index 36d8863a4b0486..45bb28a5c059a9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md @@ -78,7 +78,7 @@ Session.quotas.defaultEntitySetTimeout:=1200 #### 説明 -`.maxEntitySetTimeout` プロパティにはカレントセッションの途中にメモリー内に保存されているREST エンティティセットの非アクティブタイムアウトの最大値(秒単位) が格納されています。 +`.maxEntitySetTimeout` プロパティにはカレントセッションの途中にメモリ内に保存されているREST エンティティセットの非アクティブタイムアウトの最大値(秒単位) が格納されています。 この値は[セッションの`quotas.maxEntitySetTimeout` プロパティ](./SessionClass.md#quotas) を使用することで設定することもできます。これらはセッション内で後で作成されたあらゆるエンティティセットに対して使用することができます(この場合既存のエンティティセットのタイムアウトの最大値は変更されません)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md index f751456d83b550..7fe59184b4d328 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md @@ -156,7 +156,7 @@ title: ライセンスリスト | ------------------------------------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | | 4D社のサイトからインストーラーをダウンロードできません。 | サイトがダウンしている、またはアンチウィルスやファイアウォールなどの影響 | 1- 時間を空けて再度試してください
または
2- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください。 | | ディスクに製品をインストールできません (インストールが拒否される)。 | アプリケーションのインストール権限がない | アプリケーションをインストールする権限を持ったセッションを開いてください (管理者アクセス)。 | -| オンラインアクティベーションに失敗します。 | アンチウィルス、ファイアーウォール、プロキシ | 1- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください
または
2- オフラインアクティベーションを試してください。 (ただし "R" バージョン用のライセンスでは利用不可) | +| オンラインアクティベーションに失敗します。 | アンチウィルス、ファイアウォール、プロキシ | 1- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください
または
2- オフラインアクティベーションを試してください。 (ただし "R" バージョン用のライセンスでは利用不可) | この情報で問題が解決しない場合は、お問い合わせください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/sessions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/sessions.md index 12f98f50f2040c..1526a4fb17b4a7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/sessions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/sessions.md @@ -1,123 +1,123 @@ --- id: sessions -title: Sessions Page +title: セッションページ --- -The **Sessions** page lists all active sessions connected to the server, including Client, Web, REST, and SOAP sessions. +**セッション** ページには、サーバーに接続している全てのアクティブなセッションが表示されます。これにはクライアント接続、Web 接続、REST 接続、そしてSOAP セッションが含まれます。 ![](../assets/en/Admin/server-sessions-1.png) -The **Sessions** button indicates, in parentheses, the total number of active sessions (this number does not take into account any display filters applied to the window). +**ユーザー** ボタンには、アクティブなセッションの合計数が括弧内に表示されます(この数には、ウィンドウにて適用されるフィルターは考慮されません)。 -The page contains a dynamic search area, filtering controls, and administration buttons. ヘッダーエリアをドラッグ&ドロップして、列の順番を入れ替えることができます。 +このページには、動的な検索エリアやフィルタリング制御、管理ボタンなどがあります。 ヘッダーエリアをドラッグ&ドロップして、列の順番を入れ替えることができます。 -You can also sort the list by clicking a column header. Click repeatedly to toggle between ascending and descending order. +また、ヘッダーをクリックすると、リストの値が並べ替えられます。 クリックするごとに昇順/降順が入れ替わります。 ![](../assets/en/Admin/server-sessions-sort-1.png) ## セッションの一覧 -Each row represents one active session. +各行は一つのアクティブなセッションを表します。 -The list provides the following information: +リストには、以下の情報が表示されます: -- Icon representing the type of session (Apple for macOS Client sessions, Windows for Windows Client sessions, globe for Web, REST, and SOAP sessions). And an additional visual indicator shows whether the session is authenticated. -- **Origin**: Type of session (Client, Web, REST, or SOAP). -- **User Name**: Name of the connected 4D user, or the alias defined using the [`SET USER ALIAS`](../commands/set-user-alias) command when applicable. For Web, REST, or SOAP sessions, no user name is displayed unless one has been associated with the session using the `userName` property of the [`setPrivileges()`](../API/SessionClass.md#setprivileges) function. -- **Login Date**: Date and time when the session was established. -- **CPU Time**: CPU time consumed by the session since it was created. -- **Activity**: Percentage of server activity currently devoted to the session (dynamic value). -- **Status**: Status of the session. Client sessions can be **Online**, **[Sleeping](../Desktop/clientServer.md#management-of-sleeping-client-sessions)**, or **[Unreachable](../Desktop/clientServer.md#management-of-unreachable-peer)**. Web, REST, and SOAP sessions always have the **Online** status. +- セッションの種類を表すアイコン(macOS クライアントセッションにはApple アイコン、Windows クライアントにはWindows アイコン、Web、REST、SOAP セッションには地球アイコン)。 また、セッションが認証されているかどうかを表す追加のインジケーターも表示されます。 +- **オリジン**: セッションの種類(クライアント、Web、REST、あるいはSOAP)。 +- **ユーザー名**: 接続している4D ユーザーの名前、または[`SET USER ALIAS`](../commands/set-user-alias) コマンドを使用して定義されているエイリアス(適用可能な場合)。 Web、REST、あるいはSOAP セッションに対しては、[`setPrivileges()`](../API/SessionClass.md#setprivileges) 関数の`userName` プロパティを使用してセッションにユーザー名が割り当てられてない限り、ユーザー名は表示されません。 +- **ログイン日**: セッションが確立された日付と時刻。 +- **CPU時間**: セッションが作成されてから消費したCPU 時間。 +- **Activity**: セッションに対して現在割り当てられているサーバーアクティビティの割合(動的な値)。 +- **ステータス**: セッションのステータス。 クライアントセッションの場合、**オンライン**、 **[スリープ中](../Desktop/clientServer.md#スリープしたクライアントセッションの管理)**あるいは **[クライアント接続不可](../Desktop/clientServer.md#到達不能なピアの管理)** のいずれかになります。 Web、REST、およびSOAP セッションは常に**オンライン** ステータスとなります。 -Additional information is available in the detail panel when a session is selected. +セッションが選択されていれば追加の情報が詳細パネル内に表示されます。 -## Session detail panel +## セッション詳細パネル -Selecting a session displays additional information in the lower panel. +セッションを選択すると追加の情報が下側のパネルに表示されます。 -### Client sessions +### クライアントセッション -The following information is available: +以下の情報が表示されます: -- **System username**: Name of the operating system session opened on the remote machine. -- **IP address**: IP address of the remote machine that opened the session. +- **システムユーザー名**: リモートマシン上で開かれたOSセッションの名前。 +- **IP アドレス**: セッションを開いたリモートマシンのIP アドレス。 - **マシン名**: リモートマシンの名前。 -- **4D Write Pro**: Indicates whether the session user belongs to a group that grants access to 4D Write Pro. -- **4D View Pro**: Indicates whether the session user belongs to a group that grants access to 4D View Pro. +- **4D Write Pro**: セッションユーザーが、4D Write Pro へのアクセスが付与されたグループに属しているかどうかを表します。 +- **4D View Pro**: セッションユーザーが、4D View Pro へのアクセスが付与されたグループに属しているかどうかを表します。 -### REST, Web, and SOAP sessions +### REST、Web、およびSOAPセッション -The detail panel displays information such as: +詳細パネルは以下のような情報を表示します: -- **Guest status**: Indicates whether the session is a Guest session. Guest sessions are unauthenticated Web sessions. -- **Privileges**: List of privileges associated with the session. -- **IP address**: IP address of the remote machine that opened the session. -- **User agent**: Identifies the client application, browser, or service that initiated the session. +- **ゲストステータス**: セッションがゲストセッションかどうかを表します。 ゲストセッションとは未認証のWeb セッションです。 +- **権限**: セッションに割り当てられた権限の一覧。 +- **IP アドレス**: セッションを開いたリモートマシンのIP アドレス。 +- **ユーザーエージェント**: クライアントアプリケーション、ブラウザ、あるいはセッションを開始したサービスを識別します。 -### IP Lookup button +### IP検索ボタン -IP Lookup button is enabled when a public IP address is displayed. You can click on the button to retrieve the geolocation of the selected session. +公開IP アドレスが表示されている場合、IP 検索ボタンが有効化されます。 このボタンをクリックすることで、選択されたセッションの位置情報を取得することができます。 -If the information is available, the location is displayed next to the IP Lookup button in the format **City, Country**. Otherwise **Not found** is displayed. +もしその情報が利用可能な場合、**City, Country** のフォーマットでIP 検索ボタンの横に位置が表示されます。 そうでない場合**Not found** が表示されます。 -## Search and Filtering +## 検索とフィルタリング -### Search bar +### 検索バー -The search field can be used to reduce the number of rows displayed in the list to those that correspond to the text entered. The search is performed on the **User Name**, **Machine name**, **Session name**, and **IP address** columns. +検索フィールドを使用して、入力されたテキストに対応する行だけをリストに表示させ、行数を減らすことができます。 検索は、**ユーザー名**、**マシン名**、**セッション名**、および **IP アドレス** 列に対して実行されます。 -The list is updated in real time as you enter text. +テキストが入力されると、リストはリアルタイムで更新されます。 -You can search for multiple values by separating them with a semicolon (`;`). In this case, the values are combined using the **OR** operator. +値をセミコロン(`;`) で区切ることで、複数の値を使用して検索をおこなうことができます。 この場合、値は**OR** 演算子を使用して結合されます。 -For example, if you enter: +例えば、以下のように入力した場合: ``` John;Mary;REST ``` -only rows containing **John**, **Mary**, or **REST** in the searchable columns are displayed. +検索可能カラム内で**John**、**Mary**、あるいは **REST** を格納している行のみが表示されます。 -### Session Type Filters +### セッションタイプフィルター -The Sessions page also provides quick filters to display only specific session types. +セッションページでは特定のタイプのセッションのみを表示するクイックフィルターも提供しています。 -The following filters are available: +以下のフィルターが利用可能です: -- **Counted sessions**: includes only sessions counted for floating license consumption. -- **Clients**: includes only desktop client sessions. -- **Web**: includes only Web and SOAP sessions. -- **REST**: includes only REST sessions. +- **カウントされたセッション**: ライセンスを消費しているとカウントされるセッションのみを含めます。 +- **クライアント**: デスクトップクライアントセッションのみを含めます。 +- **Web**: Web およびSOAP セッションのみを含めます。 +- **REST**: REST セッションのみを含めます。 -Filters can be enabled or disabled independently, or combined with other filters, and are applied immediately to the session list. +フィルターは個別に有効化/無効化したり、また他のフィルターと組み合わせることができ、セッションリストに即座に適用されます。 ## 管理ボタン -There are three administration buttons: **Send message** is available when one or more Client sessions are selected. **Watch Processes** is available when a single session of any type is selected, and **Drop session** is available when one or more sessions of any type are selected. -You can select several rows by holding down the **Shift** key for an adjacent selection or the **Ctrl** (Windows) / **Command** (macOS) key for a non-adjacent selection. +管理ボタンは三つあります: **メッセージ送信** は一つ以上のクライアントセッションが選択されている場合に利用可能です。 **プロセス監視** はタイプに関わらず単一のセッションが選択されているときに利用可能で、また**セッションをドロップ** はタイプに関わらず一つ以上のセッションが選択されているときに利用可能です。 +**Shift** キーを押しながらクリックして連続した行を、あるいは **Ctrl (Windows) / Command (macOS)** キーを押しながらクリックして連続しない行を複数選択できます。 ### メッセージ送信 -This button can be used to send a message to the selected **Client** session(s). If no Client session is selected, the button is not active. When you click this button, a dialog box appears that lets you enter the message. The dialog box also indicates the number of Client sessions that will receive the message: +このボタンを使用して、選択した**クライアント**セッションにメッセージを送信できます。 クライアントセッションが選択されていないと、ボタンを使用できません。 ボタンをクリックするとダイアログボックスが表示され、メッセージを入力できます。 ダイアログにはメッセージを受信するクライアントセッションの数が表示されます: ![](../assets/en/Admin/server-message.png) -The message is displayed as an alert on the corresponding remote machines. +このメッセージは対応するリモートマシン上でアラートとして表示されます。 -You can perform the same action programmatically using the [`SEND MESSAGE TO REMOTE USER`](../commands/send-message-to-remote-user) command. +[`SEND MESSAGE TO REMOTE USER`](../commands/send-message-to-remote-user) コマンドを使用することで同じアクションをプログラムで実行することができます。 ### プロセス監視 -This button can be used to directly show the processes associated with the selected session on the [**Processes** page](processes.md). +このボタンをクリックすると、選択されたセッションに割り当てられたプロセスを、管理ウィンドウの[**プロセス** ページ](processes.md) に直接表示させることができます。 -The process list is automatically filtered using the selected session UUID. +プロセスのリストは選択されたセッションのUUID を使用して自動的にフィルタリングされます。 -When multiple sessions are selected, this button is disabled. +複数のセッションが選択された場合、このボタンは無効化されます。 -### Drop session +### セッションをドロップ -This button can be used to force the selected Client session(s) to disconnect. +このボタンは、選択したクライアントセッションの接続を強制的に解除するために使用します。 -A confirmation dialog is displayed before the session is disconnected to confirm or cancel this operation (Hold down the **Alt** key while clicking **Drop user** to disconnect immediately without displaying the confirmation dialog). +セッションが接続解除される前に、操作を実行するかキャンセルするかを確認する確認ダイアログが表示されます(**Alt** キーを押しながら**ユーザーをドロップ** をクリックすることでこの確認ダイアログを表示せずに即座に接続解除することもできます)。 -You can perform the same action programmatically using the [`DROP REMOTE USER`](../commands/drop-remote-user) command. +[`DROP REMOTE USER`](../commands/drop-remote-user) コマンドを使用することで同じアクションをプログラムで実行することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/licenses.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/licenses.md index f751456d83b550..7fe59184b4d328 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/licenses.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/licenses.md @@ -156,7 +156,7 @@ title: ライセンスリスト | ------------------------------------------------------ | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | | 4D社のサイトからインストーラーをダウンロードできません。 | サイトがダウンしている、またはアンチウィルスやファイアウォールなどの影響 | 1- 時間を空けて再度試してください
または
2- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください。 | | ディスクに製品をインストールできません (インストールが拒否される)。 | アプリケーションのインストール権限がない | アプリケーションをインストールする権限を持ったセッションを開いてください (管理者アクセス)。 | -| オンラインアクティベーションに失敗します。 | アンチウィルス、ファイアーウォール、プロキシ | 1- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください
または
2- オフラインアクティベーションを試してください。 (ただし "R" バージョン用のライセンスでは利用不可) | +| オンラインアクティベーションに失敗します。 | アンチウィルス、ファイアウォール、プロキシ | 1- 一時的にアンチウィルスソフトやファイアウォールを無効にしてください
または
2- オフラインアクティベーションを試してください。 (ただし "R" バージョン用のライセンスでは利用不可) | この情報で問題が解決しない場合は、お問い合わせください。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index 2f0c26a0f6e5e9..11d3e85631d3da 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -24,7 +24,7 @@ The `4D.QuotaManager` class provides you with an interface to configure and moni | [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| -| [](#nbentitysets)
| +| [](#nbentitysets)
| @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### Descrição -The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session (in seconds). +The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. By default, there is no limit for entity sets [stored in memory by REST requests](../REST/$info.md) (the value is 0). You can set a limit to control the server payload for a specific session. 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 aaaff8b8110e0a..c662483947e6c5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -809,7 +809,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/licenses.md b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/licenses.md index 834c20704eb57b..b939408690ede1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/licenses.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/licenses.md @@ -18,15 +18,15 @@ As licenças de desenvolvimento são necessárias para acessar o ambiente e os r As licenças de implementação podem ser incorporadas na etapa de compilação pelo desenvolvedor ou inseridas no primeiro lançamento pelo usuário, conforme descrito na tabela a seguir: -| Licença de implantação | Descrição | Onde entrar | -| ------------------------ | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Unlimited Desktop* | **Descontinuado** - Licença personalizada incorporada | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Desktop* | Licença por usuário, permitindo-lhes utilizar aplicativos 4D autônomos | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | -| *4D Desktop Business* | Embedded custom license for stand-alone 4D applications | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Server OEM* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D XML Keys Activation* | Used to activate 4D Server OEM licenses in non-automatic embedding mode | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Server* | Licença por usuário, permitindo que eles usem 4D Server e clientes | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| Licença de implantação | Descrição | Onde entrar | +| ----------------------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| *4D Server* | Licença por usuário, permitindo que eles usem 4D Server e clientes | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| *4D Desktop* | Per-computer license, allowing to use stand-alone 4D applications | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| *4D Desktop Business Edition* | Embedded custom license for stand-alone 4D applications | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D Server OEM* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D OEM Desktop* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D XML Keys Activation* | Used to activate 4D Server OEM licenses in non-automatic embedding mode | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D Unlimited Desktop* | **Descontinuado** - Licença personalizada incorporada | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | ### Vencimento 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 d3918b25e424d2..b7151a96ef6644 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -265,12 +265,6 @@ Um formulário de múltiplas páginas possui tanto uma página de fundo quanto v ## Fluent UI rendering -:::caution Prévia do desenvolvedor - -Fluent UI support is currently in the Developer Preview phase. Não deve ser usado na produção. - -::: - 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. @@ -287,8 +281,9 @@ This feature can be used **in 4D projects on Windows**. It is not available on m :::tip Related blog posts -[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
-[Deploy Fluent UI effortlessly in your 4D applications](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
+[Deploy Fluent UI effortlessly in your 4D applications](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Fluent UI Comes to List Forms](https://blog.4d.com/fluent-ui-comes-to-list-forms) ::: @@ -337,7 +332,7 @@ The [**form-theme** CSS media query](./createStylesheet.md#media-queries) allows When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The [`FORM theme`](../commands/form-theme) command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or if the command is called on macOS, and empty string is returned. +- The [`FORM theme`](../commands/form-theme) command returns the actual display theme of the current form. Possible values: "Classic", "FluentUI" or "LiquidGlass". - The [`Application info`](../commands/application-info) command allows you to know if Fluent UI can be used (`canUseFluentUI` property) or is being used (`useFluentUI` property). - If [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. @@ -345,6 +340,7 @@ When using 4D forms with Fluent UI rendering, you need to pay attention to the f - [Circle buttons](../FormObjects/button_overview.md#circle) are supported (similar as macOS). - The [`WA ZOOM IN`](../commands/wa-zoom-in) / [`WA ZOOM OUT`](../commands/wa-zoom-out) 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). +- In [list forms](../FormEditor/properties_FormProperties.md#form-type), objects located in the [Header or Footer areas](./properties_Markers.md) are always displayed on a background layer, while those in the Detail area are displayed in the foreground. Unlike in the Classic rendering, an object that extends beyond the Header boundaries will always be drawn under the objects in the Detail area. ## Formulários herdados diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index e3f0d41d2a3132..82c41c81825422 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,6 +33,8 @@ A área de dFormulário detalhado é exibida na tela e impressa uma vez para cad É possível aumentar ou diminuir a área Detalhe. O que quer que seja colocado na área Detalhes é exibido ou impresso uma vez para cada registro. Na maioria das vezes, você coloca campos ou variáveis na área Detail para que as informações de cada registro sejam exibidas ou impressas, mas também é possível colocar outros elementos na área Detail. +The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). + #### Gramática JSON | Nome | Tipo de dados | Valores possíveis | 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 25eead492d3959..fad63a850ca1a6 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -11,6 +11,8 @@ Leia [**O que há de novo no 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21- - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. + - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos os bugs corrigidos em 4D 21 R5. ## 4D 21 R4 From 1bed550feef1984a81c6921b6785d49a87c9cc26 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Wed, 2 Sep 2026 21:39:13 +0900 Subject: [PATCH 07/60] Update selection-to-array.md (#3401) JA fixing old info (mainly parameters table) --- .../Arrays/selection-to-array.md | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Arrays/selection-to-array.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Arrays/selection-to-array.md index 0feb405352049f..7ae254541a0644 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Arrays/selection-to-array.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Arrays/selection-to-array.md @@ -5,16 +5,14 @@ slug: /commands/selection-to-array displayed_sidebar: docs --- -**SELECTION TO ARRAY** ({ field | table ; *array* : Array {; *aField* : Field ; *array* : Array {; ...(*aField* : Field, *array* : Array)}}{; *}}) +**SELECTION TO ARRAY** ({...(*selection* : Field, Table ; *array* : Array)} {; *})
| 引数 | 型 | | 説明 | | --- | --- | --- | --- | -| field | table | フィールド, テーブル | → | データを取得するフィールドまたは レコード番号を取得するテーブル | +| selection | フィールド, テーブル | → | データを取得するフィールドまたは レコード番号を取得するテーブル | | array | Array | ← | フィールド値またはレコード番号を受け取る配列 | -| aField | Field | → | 配列に値を取得するフィールド | -| array | Array | ← | フィールドデータを受け取る配列 | | * | 演算子 | → | 実行をスタックする |
@@ -38,7 +36,7 @@ displayed_sidebar: docs * 1つまたは複数のフィールドから値をロードします。 * *\[table\];array* シンタックスを使用してテーブルからレコード番号をロードします。 -* テー ブル間にn対1の自動リレートが設定されている場合や、[SET AUTOMATIC RELATIONS](../commands/set-automatic-relations)を事前に呼び出してn対1のマニュアルリレートを自動に変更した場合は、リレートフィールドの値をロードします。いずれの場合も、複 数レベルのn対1リレートを経てテーブルから値がロードされます。 +* テーブル間にn対1 の自動リレートが設定されている場合や、[SET AUTOMATIC RELATIONS](../commands/set-automatic-relations) を事前に呼び出してn対1 のマニュアルリレートを自動に変更した場合は、リレートフィールドの値をロードします。いずれの場合も、複数レベルのn対1 リレートを経てテーブルから値がロードされます。 各配列は、そのフィールドタイプに応じてタイプ定義されます。 @@ -51,18 +49,18 @@ displayed_sidebar: docs レコード番号をロードする場合、配列のタイプは倍長整数となります。 -*\** 引数を渡すと、4Dはその行の実行を遅延し、メモリに格納します。*\** で終わる行を使用して複数の行をスタックできます。スタックされた行は *\** なしの**SELECTION TO ARRAY**一回の呼び出しですべて実行されます。この目的のため、このコマンドを引数なしで呼び出すことができます。 -これにより、[QUERY](../commands/query)コマンドのように、複雑な文を複数の行に分割して記述することができ、可読性が向上します。また途中の行の挿入も容易です ([ARRAY TO SELECTION](../commands/array-to-selection) コマンドの例題2参照)。 +*\** 引数を渡すと、4Dはその行の実行を遅延し、メモリに格納します。*\** で終わる行を使用して複数の行をスタックできます。スタックされた行は *\** なしの**SELECTION TO ARRAY** 一回の呼び出しですべて実行されます。この目的のため、このコマンドを引数なしで呼び出すことができます。この場合、配列の型は(*\** 引数がない)最後の行が実行された際に検証されます。 +これにより、[QUERY](../commands/query)コマンドのように、複雑な文を複数の行に分割して記述することができ、可読性が向上します。また途中で行を挿入したり、ループ内で配列をビルドすることも容易です ([ARRAY TO SELECTION](../commands/array-to-selection) コマンドの例題2参照)。 **4D Server:** **SELECTION TO ARRAY**コマンドは4D Server用に最適化されています。各配列はサーバ上で作成され、配列全体がクライアントマシンに送信されます。 -**警告:** **SELECTION TO ARRAY**コマンドは、カレントセレクションの大きさやロードするデータサイズによっ て非常に大きな配列を作成する場合があります。配列はメモリ上に存在します。そのためコマンドの実行後、結果をテストするのは良いことです。これを行うに は、作成された配列のサイズをテストするか、[ON ERR CALL](../commands/on-err-call)を使用してコマンドの呼び出しをカバーします。 +**警告:** **SELECTION TO ARRAY**コマンドは、カレントセレクションの大きさやロードするデータの型やサイズによっては非常に大きな配列を作成する場合があります。配列はメモリ上に存在します。そのためコマンドの実行後、結果をテストするのは良いことです。これを行うには、作成された配列のサイズをテストするか、[ON ERR CALL](../commands/on-err-call) を使用してコマンドの呼び出しをカバーします。 -**注:** **SELECTION TO ARRAY**コマンドを呼び出した後、カレントセレクションとカレントレコードは同じままですが、カレントレコードはロードされていません。もしカレントレコードのフィールド値を使いたい場合は**SELECTION TO ARRAY**コマンドの後に[LOAD RECORD](../commands/load-record)コマンドを使用してください。 +**注:** **SELECTION TO ARRAY**コマンドを呼び出した後、カレントセレクションとカレントレコードは同じままですが、カレントレコードはロードされていません。もしカレントレコードのフィールド値を使いたい場合は**SELECTION TO ARRAY** コマンドの後に[LOAD RECORD](../commands/load-record) コマンドを使用してください。 ## 例題 1 -以下の例は、*\[People\]*テーブルと*\[Company\]*テーブルは自動リレーションを持ちます。2つの配列*asLastName*と*asCompanyAddr*は、*\[People\]* テーブルのセレクションの数にリサイズされ、両テーブルからのデータを受け取ります: +以下の例は、*\[People\]* テーブルと*\[Company\]* テーブルは自動リレーションを持ちます。2つの配列*asLastName* と*asCompanyAddr* は、*\[People\]* テーブルのセレクションの数にリサイズされ、両テーブルからのデータを受け取ります: ```4d  SELECTION TO ARRAY([People]Last Name;asLastName;[Company]Address;asCompanyAddr) @@ -70,7 +68,7 @@ displayed_sidebar: docs ## 例題 2 - 以下の例は、*\[Clients\]*レコード番号を配列 *alRecordNumbers* に、*\[Clients\]Names* フィールドの値を配列 *asNames* 代入します: + 以下の例は、*\[Clients\]* レコード番号を配列 *alRecordNumbers* に、*\[Clients\]Names* フィールドの値を配列 *asNames* に代入します: ```4d  SELECTION TO ARRAY([Clients];alRecordNumbers;[Clients]Names;asNames) From bf4059ccd1a628590c60072cbf6fb01879f03229 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Wed, 2 Sep 2026 21:39:47 +0900 Subject: [PATCH 08/60] Update use-character-set.md (#3402) JA fixing old info (mainly parameters info) --- .../Communications/use-character-set.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Communications/use-character-set.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Communications/use-character-set.md index 5be3aad749fe97..4099863e710481 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Communications/use-character-set.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Communications/use-character-set.md @@ -5,13 +5,13 @@ slug: /commands/use-character-set displayed_sidebar: docs --- -**USE CHARACTER SET** ( map | * {; *mapInOut*} ) +**USE CHARACTER SET** ( *map* : Text, Operator {; *mapInOut* : Integer} )
| 引数 | 型 | | 説明 | | --- | --- | --- | --- | -| map | * | Text, Operator | → | 使用する文字セット名 (Unicodeモード), または 使用するASCIIマップドキュメント名 (ASCIIモード), または * の場合、デフォルトの文字セット/ASCIIマップにリセット | +| map | Text, Operator | → | 使用する文字セット名、または * の場合、デフォルトの文字セットにリセット | | mapInOut | Integer | → | 0 = 出力マップ 1 = 入力マップ 省略した場合、出力マップ |
@@ -29,15 +29,15 @@ displayed_sidebar: docs ## 説明 -**USE CHARACTER SET**は、データベースとドキュメントまたはシリアルポート間のデータ交換の際、4Dが 使用する文字セットを変更するために使用できます。このコマンドはカレントプロセスに有効です。交換操作にはテキスト, DIF, そして SYLK ファイルの読み込み/書き出しが含まれます。文字マップはまた[SEND PACKET](../commands/send-packet), [RECEIVE PACKET](../commands/receive-packet) (テキスト型パケット) そして[RECEIVE BUFFER](../commands/receive-buffer)によるデータ交換にも使用されます。[SEND RECORD](../commands/send-record), [SEND VARIABLE](../commands/send-variable), [RECEIVE RECORD](../commands/receive-record), [SEND PACKET](../commands/send-packet), [RECEIVE PACKET](../commands/receive-packet) (BLOB型パケット) そして [RECEIVE VARIABLE](../commands/receive-variable) によるデータ交換には影響しません。 +**USE CHARACTER SET**は、データベースとドキュメントまたはシリアルポート間のデータ交換の際、4D が使用する文字セットを変更するために使用できます。このコマンドはカレントプロセスに有効です。交換操作にはテキスト, DIF, そして SYLK ファイルの読み込み/書き出しが含まれます。文字マップはまた[SEND PACKET](../commands/send-packet), [RECEIVE PACKET](../commands/receive-packet) (テキスト型パケット) そして[RECEIVE BUFFER](../commands/receive-buffer)によるデータ交換にも使用されます。[SEND RECORD](../commands/send-record), [SEND VARIABLE](../commands/send-variable), [RECEIVE RECORD](../commands/receive-record), [SEND PACKET](../commands/send-packet), [RECEIVE PACKET](../commands/receive-packet) (BLOB型パケット) そして [RECEIVE VARIABLE](../commands/receive-variable) によるデータ交換には影響しません。 -*map* 引数は使用する文字セットの“IANA”名、またはそのエイリアス名と対応していなければなりません。例えば、“iso-8859-1”と“utf-8”は有効 な名前であり、そのエイリアス“latin1”あるいは“l1”もまた有効です。これらの名前に関する詳細は、以下のサイトを参照してください: +*map* 引数は使用する文字セットの“IANA” 名、またはそのエイリアス名と対応していなければなりません。例えば、“iso-8859-1” と“utf-8” はどちらも有効な名前であり、そのエイリアスである“latin1” あるいは“l1” もまた有効です。これらの名前に関する詳細は、以下のサイトを参照してください: *http://www.iana.org/assignments/character-sets* IANA名に関する説明は[CONVERT FROM TEXT](../commands/convert-from-text)コマンドにもあります。 -*mapInOut*が0の場合、マップは書き出しのために設定されます。*mapInOut*が1の場合、マップは読み込みのために設定されます。*mapInOut* 引数を渡さない場合、デフォルトで書き出しマップが使用されます。 +*mapInOut* が0 の場合、マップは書き出しのために設定されます。*mapInOut* が1 の場合、マップは読み込みのために設定されます。*mapInOut* 引数を渡さない場合、デフォルトで書き出しマップが使用されます。 *\** 引数が渡されると、 (*mapInOut*の値に基づき、読み込みまたは書き込みが) デフォルトの文字セットに再設定されます。 4Dが使用するデフォルトの文字コードはUTF-8です。 From 470216fa34d52d39e8f70fefeff7e49449d67ddf Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Wed, 2 Sep 2026 21:40:28 +0900 Subject: [PATCH 09/60] Update encrypt-data-file.md (#3403) JA fixing old info (mainly parameters info) --- .../Data Security/encrypt-data-file.md | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Data Security/encrypt-data-file.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Data Security/encrypt-data-file.md index ab03e911da1a18..924c324ad2d415 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Data Security/encrypt-data-file.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Data Security/encrypt-data-file.md @@ -5,7 +5,7 @@ slug: /commands/encrypt-data-file displayed_sidebar: docs --- -**Encrypt data file** ( *structurePath* : Text ; *dataPath* : Text {; *newPassPhrase* : テキスト, オブジェクト {; *archiveFolder* : Text {; *curPassPhrase* : テキスト, オブジェクト {; *methodName* : Text}}}} ) : Text
**Encrypt data file** ( *structurePath* : Text ; *dataPath* : Text {; *newDataKey* : テキスト, オブジェクト {; *archiveFolder* : Text {; *curDataKey* : テキスト, オブジェクト {; *methodName* : Text}}}} ) : Text +**Encrypt data file** ( *structurePath* : Text ; *dataPath* : Text {; *newPassPhrase* : Text {; *archiveFolder* : Text, 4D.Folder {; *curPassPhrase* : Text {; *methodName* : Text}}}} ) : Text
**Encrypt data file** ( *structurePath* : Text ; *dataPath* : Text {; *newDataKey* : Object {; *archiveFolder* : Text, 4D.Folder {; *curDataKey* : Object {; *methodName* : Text}}}} ) : Text
**Encrypt data file** ( *structurePath* : Text ; *dataPath* : Text {; *newPassPhrase* : Text {; *archiveFolder* : Text, 4D.Folder {; *curDataKey* : Object {; *methodName* : Text}}}} ) : Text
@@ -13,9 +13,11 @@ displayed_sidebar: docs | --- | --- | --- | --- | | structurePath | Text | → | ストラクチャーファイルのパス名 | | dataPath | Text | → | 暗号化するデータファイルへのパス名 | -| newPassPhrase | newDataKey | テキスト, オブジェクト | → | 更新したい場合: 新しいパスフレーズ (テキスト)または新しい暗号化キー(オブジェクト) | -| archiveFolder | Text | → | 元のファイルを保存しておくフォルダーのパス名 | -| curPassPhrase | curDataKey | テキスト, オブジェクト | → | カレントのパスフレーズ(テキスト)またはカレントの暗号化キー(オブジェクト) | +| newPassPhrase | テキスト | → | 更新したい場合: 新しいパスフレーズ | +| newDataKey | オブジェクト | → | 更新したい場合: 新しい暗号化キー(オブジェクト) | +| archiveFolder | Text, 4D.Folder | → | 元のファイルを保存しておくフォルダーのパス名またはオブジェクト | +| curPassPhrase | テキスト | → | カレントのパスフレーズ | +| curDataKey | オブジェクト | → | カレントの暗号化キー | | methodName | Text | → | 4Dコールバックメソッド名 | | 戻り値 | Text | ← | 元のファイルが保存されたフォルダーの完全なパス名 |
@@ -33,7 +35,7 @@ displayed_sidebar: docs ## 説明 -**Encrypt data file** コマンドはを使用数と、*structurePath* 引数で指定されたストラクチャーに割り当てられている、*dataPath* 引数で指定されたデータファイルを暗号化または再暗号化することができます。またこれを使用してデータベースから暗号化を取り除くこともできます。このコマンドは元のファイルに対する編集は行わず、元のデータファイルのバックアップを取るために作成された完全なパス名を返します。 +**Encrypt data file** コマンドはを使用すると、*structurePath* 引数で指定されたストラクチャーに割り当てられている、*dataPath* 引数で指定されたデータファイルを暗号化または再暗号化することができます。またこれを使用してデータベースから暗号化を取り除くこともできます。このコマンドは元のファイルに対する編集は行わず、元のデータファイルのバックアップを取るために作成された完全なパス名を返します。 **注:** @@ -46,9 +48,9 @@ displayed_sidebar: docs *structurePath* 引数には、空の文字列か、暗号化しようとしているデータファイルに関連づけられているストラクチャーファイルへの完全なパス名を渡します。この情報は暗号化手続きのために必要になります。空の文字列を渡した場合、標準の**ファイルを開く**ダイアログが表示され、ユーザーは使用されるストラクチャーファイルを指定することができます。それ以外には、OSのシンタックスで表された完全なパス名を渡すことができます。 -引数には、空の文字列か、ファイル名か、または完全なパス名を渡します(パス名はOSのシンタックスで表されている必要があります)。空の文字列を渡した場合、標準の**ファイルを開く**ダイアログが表示され、ユーザーは使用されるデータファイルを指定することができます。このファイルは*structurePath* 引数で指定したストラクチャーファイルと対応している必要があります。データファイル名だけを渡した場合、4D はストラクチャーファイルと同じ階層の中を探します。 +*dataPath* 引数には、空の文字列か、ファイル名か、または完全なパス名を渡します(パス名はOSのシンタックスで表されている必要があります)。空の文字列を渡した場合、標準の**ファイルを開く**ダイアログが表示され、ユーザーは使用されるデータファイルを指定することができます。このファイルは*structurePath* 引数で指定したストラクチャーファイルと対応している必要があります。データファイル名だけを渡した場合、4D はストラクチャーファイルと同じ階層の中を探します。 -* **データベースを最初に暗号化するときに限り、**渡すのは*newPassPhrase* あるいは *newDataKey* 引数だけです(逆に、*curPassPhrase* または *curDataKey* 引数は渡してはいけません): +* **データベースを最初に暗号化するときに限り**、渡すのは*newPassPhrase* あるいは *newDataKey* 引数だけです(逆に、*curPassPhrase* または *curDataKey* 引数は渡してはいけません): * *newPassPhrase*: 暗号化キーを生成するのに使用する文字列(SHA 256-bit) * *newDataKey*: 新しいデータ暗号化キーを(*encodedKey* プロパティに)格納しているオブジェクト。このキーは[New data key](../commands/new-data-key) コマンドで生成されている必要があります。 @@ -59,11 +61,11 @@ displayed_sidebar: docs * **全てのテーブルから暗号化を削除する**ためには、空のパスフレーズまたは*null* データキーを*newPassPhrase* (あるいは *newDataKey*)引数として渡します。このときカレントのパスフレーズまたはデータキーが既に提供されている必要があります。復号化されたファイルは、“Replaced files (Decrypting) YYYY-MM-DD HH-MM-SS”/"Decrypted files YYYY-MM-DD HH-MM-SS"という名前のフォルダー内に生成/コピーされます。 このコマンドは元のファイルは編集しません。元のファイルは*archiveFolder* 引数で指定したフォルダーに移動されます(引数が渡されていれば)。このフォルダーは特殊なフォルダーで、*Replaced files (Encrypting) YYYY-MM-DD HH-MM-SS* or *Replaced files (Decrypting) YYYY-MM-DD HH-MM-SS* という名前がつけられ、YYYY-MM-DD HH-MM-SS は処理をした日時を表します。例えば、 "Replaced files (Encrypting) 2018-09-29 13-00-35"というような名前です。新たに暗号化または複合化されたデータファイルは自動的に元のファイルと入れ換えられます。 -引数に"" (空の文字列)を渡した場合、標準の**フォルダーを開く**ダイアログがが表示され、ユーザーは作成されるフォルダーの位置を指定することができます。引数が省略されていた場合、元のファイルは、ストラクチャーファイルのすぐ隣に作成された、タイムスタンプを押されたフォルダーに自動的に保存されていきます。 +*archiveFolder* 引数に"" (空の文字列)を渡した場合、標準の**フォルダーを開く**ダイアログがが表示され、ユーザーは作成されるフォルダーの位置を指定することができます。*archiveFolder* 引数が省略されていた場合、元のファイルは、ストラクチャーファイルのすぐ隣に作成された、タイムスタンプを押されたフォルダーに自動的に保存されていきます。 *method* 引数を使用すると、暗号化プロセスの途中に頻繁に呼び出されるコールバックメソッドを設定することができます。空の文字列または無効なメソッド名を渡した場合、この引数は無視されます(メソッドは呼び出されません)。呼び出されるとき、このメソッドは呼び出しを行っているイベントの型によって、最大で5つまでの引数を受け取ることができます(以下参照)。これらの引数をメソッド内で宣言しておくことを忘れないで下さい: -| **イベント** | **$1 (倍長整数)** | **$2 (倍長整数)** | **$3 (テキスト)** | **$4 (倍長整数)** | **$5 (倍長整数)** | +| **イベント** | **$messageType (倍長整数)** | **$objectType (倍長整数)** | **$messageText (テキスト)** | **$table (倍長整数)** | **$reserved (倍長整数)** | | ------------------- | ------------- | ------------- | ----------------------------------------------------------------------------------- | ---------------- | ------------- | | Message | 1 | 0 | プロセスメッセージ(例."Encrypting BLOBs in table Documents") | 完了パーセンテージ(例. 50) | 予約済み | | Encryption finished | 2 | 0 | OK メッセージ (例 "Done") | 0 | 予約済み | @@ -139,7 +141,7 @@ displayed_sidebar: docs ## 参照 - +[4D Blog - New 4D commands to work with encrypted data](https://blog.4d.com/new-4d-commands-to-work-with-encrypted-data/) [Data file encryption status](../commands/data-file-encryption-status) [Decrypt data BLOB](../commands/decrypt-data-blob) [Encrypt data BLOB](../commands/encrypt-data-blob) From 640f17c29915ce302938a4a3b1fe821a6f43d1d0 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Wed, 2 Sep 2026 21:43:31 +0900 Subject: [PATCH 10/60] Update form-get-objects.md (#3405) JA fixing old info (mainly parameters info) --- .../language-legacy/Forms/form-get-objects.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Forms/form-get-objects.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Forms/form-get-objects.md index a96a98e3b6987a..8395a3045c86f9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Forms/form-get-objects.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Forms/form-get-objects.md @@ -5,7 +5,7 @@ slug: /commands/form-get-objects displayed_sidebar: docs --- -**FORM GET OBJECTS** ( *objectsArray* : Text array {; *variablesArray* : Pointer array {; *pagesArray* : Integer array}} {; *formPageOption* : 倍長整数, 演算子} )
**FORM GET OBJECTS** ( *objectsArray* : Text array {; *variablesArray* : Pointer array {; *pagesArray* : Integer array}} {; *} ) +**FORM GET OBJECTS** ( *objectsArray* : Text array {; *variablesArray* : Pointer array {; *pagesArray* : Integer array}} {; *formPageOption* : 倍長整数 } )
@@ -14,7 +14,7 @@ displayed_sidebar: docs | objectsArray | Text array | ← | フォームオブジェクト名 | | variablesArray | Pointer array | ← | オブジェクトに関連付けられた 変数やフィールドへのポインタ | | pagesArray | Integer array | ← | オブジェクトごとのページ番号 | -| formPageOption | * | 倍長整数, 演算子 | → | 1=Form current page, 2=Form all pages, 4=Form inherited
* 指定時(廃止予定) = Form current pageとForm inherited | +| formPageOption | 倍長整数 | → | 1=Form current page, 2=Form all pages, 4=Form inherited |
@@ -38,17 +38,17 @@ displayed_sidebar: docs 引数として渡した配列が事前に定義されていない場合、コマンドはその配列を作成し、サイズを自動的に設定します。しかし、アプリケーションをコンパイルする場合を考慮し、各配列を明示的に宣言することをお勧めします。 -(フォーム内でユニークな) オブジェクト名を受け取る文字列配列を*objectsArray*に渡します。配列内でのオブジェクトの出現順序は意味を持ちません。。 +(フォーム内でユニークな) オブジェクト名を受け取る文字列配列を*objectsArray* に渡します。配列内でのオブジェクトの出現順序は意味を持ちません。 コマンドにより代入される他の任意の配列は、1番目の配列との同期が取られます。 -任意の引数*variablesArray*にはポインタ配列を渡し、この配列にはオブジェクトに関連付けられている変数やフィールドへのポインタが格納されます。オブジェクトに関連付けられた変数が存在しない場合、[Is nil pointer](../commands/is-nil-pointer) ポインタが返されます。“サブフォーム”オブジェクトタイプが存在する場合、サブフォームのテーブルへのポインタが返されます。 +任意の引数*variablesArray* にはポインタ配列を渡し、この配列にはオブジェクトに関連付けられている変数やフィールドへのポインタが格納されます。オブジェクトに関連付けられた変数が存在しない場合、[Is nil pointer](../commands/is-nil-pointer) ポインタが返されます。“サブフォーム”オブジェクトタイプが存在する場合、サブフォームのテーブルへのポインタが返されます。 -3番目の配列(任意)*pagesArray*には、フォームのページ番号が代入されます。この配列の各要素には、対応するオブジェクトのページ番号が格納されます。 +3番目の配列(任意)*pagesArray* には、フォームのページ番号が代入されます。この配列の各要素には、対応するオブジェクトのページ番号が格納されます。 -任意の引数 *\** を使用すると、返されるオブジェクトのリストをフォームのカレントページに限定することができます。この引数を渡した場合、コマンドはカレントページ、 ページ0、継承ページのオブジェクトだけを返します。このコマンドは、フォームのカレントページ上に存在するあらゆるオブジェクト (表示・非表示とも) を処理します。 +任意の引数 *\** を使用すると、返されるオブジェクトのリストをフォームのカレントページに限定することができます。この引数を渡した場合、コマンドはカレントページ、 ページ0、継承ページのオブジェクトだけを返します。言い換えると、この場合のこのコマンドは、フォームのカレントページ上に存在するあらゆるオブジェクト (表示・非表示とも) を処理します。 -任意の引数 *formPageOption* はオブジェクトを取得したいフォームの部分を指定することができます。デフォルトでは、*formPageOption* parameter引数(と*\** 引数)が省略された場合、継承されたオブジェクトを含む、全てのページのオブジェクトフォームが返されます。コマンドのスコープを限定するためには、*formPageOption* 引数に値を渡します。"*Form Objects (Access)*" テーマ内にある、以下の定数のどれか一つ(またはその組み合わせ)を渡して下さい: +任意の引数 *formPageOption* はオブジェクトを取得したいフォームの部分を指定することができます。デフォルトでは、*formPageOption* 引数(と*\** 引数)が省略された場合、継承されたオブジェクトを含む、全てのページのオブジェクトフォームが返されます。コマンドのスコープを限定するためには、*formPageOption* 引数に値を渡します。"*Form Objects (Access)*" テーマ内にある、以下の定数のどれか一つ(またはその組み合わせ)を渡して下さい: | 定数 | 型 | 値 | コメント | | ----------------- | ---- | - | --------------------------------------------------- | From f2117fdafae6d2053948eeaed624b8da07ef4a4e Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Wed, 2 Sep 2026 21:44:22 +0900 Subject: [PATCH 11/60] Update graph.md (#3406) JA fixing old info (mainly parameters info) --- .../current/language-legacy/Graphs/graph.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Graphs/graph.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Graphs/graph.md index f91e2943aa39f6..3b396382468b93 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Graphs/graph.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Graphs/graph.md @@ -5,14 +5,15 @@ slug: /commands/graph displayed_sidebar: docs --- -**GRAPH** ( *graphArea* : Picture ; *graphNumber* : Integer, Object ; *xLabels* : Array {; *...yElements* : Array} ) +**GRAPH** ( *graphPicture* : Picture ; *graphNumber* : Integer ; *xLabels* : Array {; *...yElements* : Array} )
**GRAPH** ( *graphPicture* : Picture ; *graphSettings* : Object ; *xLabels* : Array {; *...yElements* : Array} )
| 引数 | 型 | | 説明 | | --- | --- | --- | --- | | graphArea | Picture | → | ピクチャー変数 | -| graphNumber | Integer, Object | → | 倍長整数:グラフタイプ番号 オブジェクト(64-bit版のみ):グラフ設定 | +| graphNumber | Integer | → | 倍長整数:グラフタイプ番号 | +| graphSettings | Object | → | オブジェクト: グラフ設定 | | xLabels | Array | → | X軸ラベル | | yElements | Array | → | グラフにするデータ (最大8個) |
@@ -44,12 +45,12 @@ displayed_sidebar: docs 第二引数は、描画されるグラフタイプを指定します。これには二つのオプションがあります: -* Longint型である *graphNumber*引数を渡す (全てのバージョンの4Dで可能): この場合、1から8までの数値を渡す必要があります。グラフタイプについては例題1 に説明があります。グラフ描画後、*graphNum*を変更し、**GRAPH** コマンドをもう一度実行することでタイプを変更することができます。その後 [GRAPH SETTINGS](../commands/graph-settings) コマンドを呼び出す事で特定のグラフ特性を修正することができます。例題1を参照してください。 -* Object型である *graphSettings*引数を渡す (ただしWindows用4D Serverではサポートされません): この場合、定義する様々なグラフ特性を含んだオブジェクトを渡す必要があります。このためには、"*Graph Parameters*" テーマ内にある定数を使用することができます (以下参照)。このシンタックスでは一回の呼び出しで、グラフタイプと同時に特定の設定 (凡例、xmin、等) を定義する事ができます。これにより、ユーザーは生成されたグラフを通常のSVGピクチャーとして保存し、FireFox、Chrome、IE、Safariなどの標準のブラウザーを使用してそれらを表示する事ができるようにします(生成されたグラフはブラウザーに埋め込まれているSVGスタンダードに追従します)。それに加え、このシンタックスではその他の様々な設定を変更できるため、例えばバーの間のスペース、マージン、バーの色等をカスタマイズすることができます。これについては例題2、3、4を参照して下さい。**警告**: このシンタックスを使用する場合、[GRAPH SETTINGS](../commands/graph-settings) コマンドは呼び出してはいけません。 +* 整数型である *graphNumber*引数を渡す (全てのバージョンの4Dで可能): この場合、1から8までの数値を渡す必要があります。グラフタイプについては例題1 に説明があります。グラフ描画後、*graphNum* を変更し、**GRAPH** コマンドをもう一度実行することでタイプを変更することができます。その後 [GRAPH SETTINGS](../commands/graph-settings) コマンドを呼び出す事で特定のグラフ特性を修正することができます。例題1 を参照してください。 +* オブジェクト型である *graphSettings*引数を渡す: この場合、定義する様々なグラフ特性を含んだオブジェクトを渡す必要があります。このためには、"*Graph Parameters*" テーマ内にある定数を使用することができます (以下参照)。このシンタックスでは一回の呼び出しで、グラフタイプと同時に特定の設定 (凡例、xmin、等) を定義する事ができます。これにより、ユーザーは生成されたグラフを通常のSVGピクチャーとして保存し、FireFox、Chrome、IE、Safariなどの標準のブラウザーを使用してそれらを表示する事ができるようにします(生成されたグラフはブラウザーに埋め込まれているSVGスタンダードに追従します)。それに加え、このシンタックスではその他の様々な設定を変更できるため、例えばバーの間のスペース、マージン、バーの色等をカスタマイズすることができます。これについては例題2、3、4を参照して下さい。**警告**: このシンタックスを使用する場合、[GRAPH SETTINGS](../commands/graph-settings) コマンドは呼び出してはいけません。 -引数 *xLabels* は、X軸(グラフの一番下)に使用するラベルを定義します。このデータは文字列、日付、時間、数値タイプのいずれでも構いません。 *xLabels* と*yElements*の配列要素数はそれぞれ同じでなければなりません。 +引数 *xLabels* は、X軸(グラフの一番下)に使用するラベルを定義します。このデータは文字列、日付、時間、数値タイプのいずれでも構いません。 *xLabels* と*yElements* の配列要素数はそれぞれ同じでなければなりません。 -引数*yElements*で指定するデータは、グラフにするデータです。このデータは数値でなければなりません。最大8つのデータセットをグラフ化することができます。円グラフは、最初の*yElements*のみをグラフ化します。 +引数*yElements* で指定するデータは、グラフにするデータです。このデータは数値でなければなりません。最大8つのデータセットをグラフ化することができます。円グラフは、最初の*yElements* のみをグラフ化します。 ### 自動ID @@ -77,7 +78,7 @@ SVGグラフ中で見つけられる要素には自動で特定のIDが割り当 ### graphSettings属性 -*graphSettings*引数を使用する場合、そこに定義したい様々なプロパティを含んだオブジェクトを渡します。"*Graph Parameters*"定数テーマ内にある、以下の定数を使用する事ができます: +*graphSettings*引数を使用する場合、そこに定義したい様々なプロパティを含んだオブジェクトを渡します。"*Graph Parameters*" 定数テーマ内にある、以下の定数を使用する事ができます: | 定数 | 型 | 値 | コメント | | --------------------------------- | --- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -125,7 +126,7 @@ SVGグラフ中で見つけられる要素には自動で特定のIDが割り当 ## 例題 1 -*graphNumber*を使用するシンタックス: 以下の例は、グラフィックエンジンを使用して得ることのできる異なるグラフタイプを示します。コードはフォームメソッドあるいはオブジェクトメソッドに記述されます: +*graphNumber*を使用するシンタックス: 以下の例は、グラフィックエンジンを使用して得ることのできる異なるグラフタイプを示します。コードはフォームメソッドあるいはオブジェクトメソッドに記述されます。ここで示されているグラフは値が定数であることから分かるように、現実的なものではなく、あくまで例として示されているものです: ```4d  var vGraph : Picture // SVG エンジンを使用する場合に指定する From 14af7a451063d9a2bb5ffdf338a5993d85e0e2bc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 2 Sep 2026 17:40:11 +0200 Subject: [PATCH 12/60] fixes and updates css, licenses --- docs/API/QuotaManagerClass.md | 2 +- docs/FormEditor/createStylesheet.md | 2 +- docs/Users/handling_users_groups.md | 10 +++++----- docs/ViewPro/getting-started.md | 2 +- docs/WritePro/user-legacy/presentation.md | 2 +- .../version-18/FormEditor/createStylesheet.md | 2 +- .../version-18/Users/handling_users_groups.md | 6 +++--- .../version-19/FormEditor/createStylesheet.md | 2 +- .../version-19/Users/handling_users_groups.md | 6 +++--- .../version-20/FormEditor/createStylesheet.md | 2 +- .../version-20/Users/handling_users_groups.md | 8 ++++---- versioned_docs/version-20/ViewPro/getting-started.md | 2 +- .../version-21-R3/FormEditor/createStylesheet.md | 2 +- .../version-21-R3/Users/handling_users_groups.md | 10 +++++----- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../version-21-R3/WritePro/user-legacy/presentation.md | 2 +- versioned_docs/version-21-R4/API/QuotaManagerClass.md | 2 +- .../version-21-R4/FormEditor/createStylesheet.md | 2 +- .../version-21-R4/Users/handling_users_groups.md | 10 +++++----- .../version-21-R4/ViewPro/getting-started.md | 2 +- .../version-21-R4/WritePro/user-legacy/presentation.md | 2 +- .../version-21/FormEditor/createStylesheet.md | 2 +- .../version-21/Users/handling_users_groups.md | 10 +++++----- versioned_docs/version-21/ViewPro/getting-started.md | 2 +- .../version-21/WritePro/user-legacy/presentation.md | 2 +- .../version-21/commands-legacy/open-color-picker.md | 4 ++-- .../version-21/commands-legacy/test-path-name.md | 2 +- 27 files changed, 51 insertions(+), 51 deletions(-) diff --git a/docs/API/QuotaManagerClass.md b/docs/API/QuotaManagerClass.md index 6deacdc1f177e4..239e98d5947792 100644 --- a/docs/API/QuotaManagerClass.md +++ b/docs/API/QuotaManagerClass.md @@ -27,7 +27,7 @@ The `4D.QuotaManager` class provides you with an interface to configure and moni || |---| -|[](#currentvalues)
| +|[](#currentvalues)
| |[](#defaultentitysettimeout)
| |[](#maxentitysettimeout)
| |[](#nbentitysets)
| diff --git a/docs/FormEditor/createStylesheet.md b/docs/FormEditor/createStylesheet.md index 4a88cbe63bdaf2..43ecf4c0dbab71 100644 --- a/docs/FormEditor/createStylesheet.md +++ b/docs/FormEditor/createStylesheet.md @@ -329,7 +329,7 @@ icon: url("edit.png"); /* relative path to the form file */ * For `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` and `verticalLineStroke`, three syntaxes are supported: * CSS color name: `fill: red;` - * Hexa value: `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * the `rgb()` function: `fill:rgb(255,0,0)` * If a string uses forbidden characters in CSS, you can surround the string with simple or double quotes. For example: diff --git a/docs/Users/handling_users_groups.md b/docs/Users/handling_users_groups.md index 3f47640f1d126c..91c1f3883de098 100644 --- a/docs/Users/handling_users_groups.md +++ b/docs/Users/handling_users_groups.md @@ -153,19 +153,19 @@ Placing groups into other groups lets you create a user hierarchy. The users of To remove a user or group from another group, you just need to deselect the corresponding option in the member attribution area. -### Assigning a group to a plug-in or to a server +### Assigning a license to a group -You can assign a group privileges to any plug-ins installed in the project. This includes all the 4D plug-ins and any third-party plug-ins. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the plug-ins lets you control the use of the licenses you possess for these plug-ins. Any users that do not belong to the access group of a plug-in cannot load this plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the plug-ins loaded by the 4D application. To give a group access to a plug-in, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** and **4D Client SOAP Server** items lets you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. ### An access hierarchy scheme diff --git a/docs/ViewPro/getting-started.md b/docs/ViewPro/getting-started.md index ca7fd5ab1b3e35..b651d1efbf4308 100644 --- a/docs/ViewPro/getting-started.md +++ b/docs/ViewPro/getting-started.md @@ -35,7 +35,7 @@ The easiest way to install 4D View Pro in an opened project is to use the Depend Once you restart the project, the 4D View Pro component is installed as a [Github dependency](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requires a license. You need to activate this license in your application in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: +4D View Pro requires a license. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: ![](../assets/en/ViewPro/licenseError.png) diff --git a/docs/WritePro/user-legacy/presentation.md b/docs/WritePro/user-legacy/presentation.md index 9d25949f73e525..7ac64a9cb657ff 100644 --- a/docs/WritePro/user-legacy/presentation.md +++ b/docs/WritePro/user-legacy/presentation.md @@ -27,7 +27,7 @@ The key features of the product are: 4D Write Pro is fully integrated into 4D itself, making it easier to deploy and manage. No additional installation is required; you can add 4D Write Pro areas to your forms and handle 4D Write Pro variables directly in your 4D applications. -However, you need to have a 4D Write Pro license installed in your application in order to enable the feature. +However, you need to have a [4D Write Pro license installed in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to enable the feature. ## Creating a 4D Write Pro area diff --git a/versioned_docs/version-18/FormEditor/createStylesheet.md b/versioned_docs/version-18/FormEditor/createStylesheet.md index 2a65019d2fc718..9cc043e4a7f42f 100644 --- a/versioned_docs/version-18/FormEditor/createStylesheet.md +++ b/versioned_docs/version-18/FormEditor/createStylesheet.md @@ -232,7 +232,7 @@ icon: url("edit.png"); /* relative path to the form file */ * For `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` and `verticalLineStroke`, three syntaxes are supported: * css color name: `fill: red;` - * hexa value: `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * the `rgb()` function: `fill:rgb(255,0,0)` * If a string uses forbidden characters in CSS, you can surround the string with simple or double quotes. For example: diff --git a/versioned_docs/version-18/Users/handling_users_groups.md b/versioned_docs/version-18/Users/handling_users_groups.md index f7035aa6c3339c..e684e511b71ae8 100644 --- a/versioned_docs/version-18/Users/handling_users_groups.md +++ b/versioned_docs/version-18/Users/handling_users_groups.md @@ -133,15 +133,15 @@ Placing groups into other groups lets you create a user hierarchy. The users of To remove a user or group from another group, you just need to deselect the corresponding option in the member attribution area. -### Assigning a group to a plug-in or to a server +### Assigning a license to a group You can assign a group privileges to any plug-ins installed in the database. This includes all the 4D plug-ins and any third-party plug-ins. -Distributing access to the plug-ins lets you control the use of the licenses you possess for these plug-ins. Any users that do not belong to the access group of a plug-in cannot load this plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. You can also restrict the use of the 4D Client Web server and SOAP server via the plug-in access area. -The “Plug-in” area on the Groups page of the tool box lists all the plug-ins loaded by the 4D application. To give a group access to a plug-in, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to a plug-in, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) diff --git a/versioned_docs/version-19/FormEditor/createStylesheet.md b/versioned_docs/version-19/FormEditor/createStylesheet.md index c140dad9c0b3bc..3ccee18849a063 100644 --- a/versioned_docs/version-19/FormEditor/createStylesheet.md +++ b/versioned_docs/version-19/FormEditor/createStylesheet.md @@ -273,7 +273,7 @@ icon: url("edit.png"); /* relative path to the form file */ * For `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` and `verticalLineStroke`, three syntaxes are supported: * CSS color name: `fill: red;` - * Hexa value: `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * the `rgb()` function: `fill:rgb(255,0,0)` * If a string uses forbidden characters in CSS, you can surround the string with simple or double quotes. For example: diff --git a/versioned_docs/version-19/Users/handling_users_groups.md b/versioned_docs/version-19/Users/handling_users_groups.md index cdb90cf508839c..b47091b98e2722 100644 --- a/versioned_docs/version-19/Users/handling_users_groups.md +++ b/versioned_docs/version-19/Users/handling_users_groups.md @@ -133,15 +133,15 @@ Placing groups into other groups lets you create a user hierarchy. The users of To remove a user or group from another group, you just need to deselect the corresponding option in the member attribution area. -### Assigning a group to a plug-in or to a server +### Assigning a license to a group You can assign a group privileges to any plug-ins installed in the project. This includes all the 4D plug-ins and any third-party plug-ins. -Distributing access to the plug-ins lets you control the use of the licenses you possess for these plug-ins. Any users that do not belong to the access group of a plug-in cannot load this plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the plug-ins loaded by the 4D application. To give a group access to a plug-in, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to a plug-in, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) diff --git a/versioned_docs/version-20/FormEditor/createStylesheet.md b/versioned_docs/version-20/FormEditor/createStylesheet.md index a04d73881d1d64..ac9183687cc18c 100644 --- a/versioned_docs/version-20/FormEditor/createStylesheet.md +++ b/versioned_docs/version-20/FormEditor/createStylesheet.md @@ -286,7 +286,7 @@ icon: url("edit.png"); /* relative path to the form file */ * For `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` and `verticalLineStroke`, three syntaxes are supported: * CSS color name: `fill: red;` - * Hexa value: `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * the `rgb()` function: `fill:rgb(255,0,0)` * If a string uses forbidden characters in CSS, you can surround the string with simple or double quotes. For example: diff --git a/versioned_docs/version-20/Users/handling_users_groups.md b/versioned_docs/version-20/Users/handling_users_groups.md index dbb21c65af739f..197619b0640a9c 100644 --- a/versioned_docs/version-20/Users/handling_users_groups.md +++ b/versioned_docs/version-20/Users/handling_users_groups.md @@ -153,15 +153,15 @@ Placing groups into other groups lets you create a user hierarchy. The users of To remove a user or group from another group, you just need to deselect the corresponding option in the member attribution area. -### Assigning a group to a plug-in or to a server +### Assigning a license to a group -You can assign a group privileges to any plug-ins installed in the project. This includes all the 4D plug-ins and any third-party plug-ins. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the plug-ins lets you control the use of the licenses you possess for these plug-ins. Any users that do not belong to the access group of a plug-in cannot load this plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the plug-ins loaded by the 4D application. To give a group access to a plug-in, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) diff --git a/versioned_docs/version-20/ViewPro/getting-started.md b/versioned_docs/version-20/ViewPro/getting-started.md index 85f3e3363e70d2..50c1f8a607617b 100644 --- a/versioned_docs/version-20/ViewPro/getting-started.md +++ b/versioned_docs/version-20/ViewPro/getting-started.md @@ -24,7 +24,7 @@ Embedding 4D View Pro areas in your forms allows you to import and export spread 4D View Pro features are directly included in 4D, making it easy to deploy and manage. No additional installation is required. -However, 4D View Pro requires a license. You need to activate this license in your application in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: +However, 4D View Pro requires a license. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: ![](../assets/en/ViewPro/licenseError.png) diff --git a/versioned_docs/version-21-R3/FormEditor/createStylesheet.md b/versioned_docs/version-21-R3/FormEditor/createStylesheet.md index 4a88cbe63bdaf2..43ecf4c0dbab71 100644 --- a/versioned_docs/version-21-R3/FormEditor/createStylesheet.md +++ b/versioned_docs/version-21-R3/FormEditor/createStylesheet.md @@ -329,7 +329,7 @@ icon: url("edit.png"); /* relative path to the form file */ * For `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` and `verticalLineStroke`, three syntaxes are supported: * CSS color name: `fill: red;` - * Hexa value: `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * the `rgb()` function: `fill:rgb(255,0,0)` * If a string uses forbidden characters in CSS, you can surround the string with simple or double quotes. For example: diff --git a/versioned_docs/version-21-R3/Users/handling_users_groups.md b/versioned_docs/version-21-R3/Users/handling_users_groups.md index 3f47640f1d126c..91c1f3883de098 100644 --- a/versioned_docs/version-21-R3/Users/handling_users_groups.md +++ b/versioned_docs/version-21-R3/Users/handling_users_groups.md @@ -153,19 +153,19 @@ Placing groups into other groups lets you create a user hierarchy. The users of To remove a user or group from another group, you just need to deselect the corresponding option in the member attribution area. -### Assigning a group to a plug-in or to a server +### Assigning a license to a group -You can assign a group privileges to any plug-ins installed in the project. This includes all the 4D plug-ins and any third-party plug-ins. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the plug-ins lets you control the use of the licenses you possess for these plug-ins. Any users that do not belong to the access group of a plug-in cannot load this plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the plug-ins loaded by the 4D application. To give a group access to a plug-in, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** and **4D Client SOAP Server** items lets you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. ### An access hierarchy scheme diff --git a/versioned_docs/version-21-R3/ViewPro/getting-started.md b/versioned_docs/version-21-R3/ViewPro/getting-started.md index ca7fd5ab1b3e35..b651d1efbf4308 100644 --- a/versioned_docs/version-21-R3/ViewPro/getting-started.md +++ b/versioned_docs/version-21-R3/ViewPro/getting-started.md @@ -35,7 +35,7 @@ The easiest way to install 4D View Pro in an opened project is to use the Depend Once you restart the project, the 4D View Pro component is installed as a [Github dependency](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requires a license. You need to activate this license in your application in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: +4D View Pro requires a license. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: ![](../assets/en/ViewPro/licenseError.png) diff --git a/versioned_docs/version-21-R3/WritePro/user-legacy/presentation.md b/versioned_docs/version-21-R3/WritePro/user-legacy/presentation.md index 9d25949f73e525..7ac64a9cb657ff 100644 --- a/versioned_docs/version-21-R3/WritePro/user-legacy/presentation.md +++ b/versioned_docs/version-21-R3/WritePro/user-legacy/presentation.md @@ -27,7 +27,7 @@ The key features of the product are: 4D Write Pro is fully integrated into 4D itself, making it easier to deploy and manage. No additional installation is required; you can add 4D Write Pro areas to your forms and handle 4D Write Pro variables directly in your 4D applications. -However, you need to have a 4D Write Pro license installed in your application in order to enable the feature. +However, you need to have a [4D Write Pro license installed in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to enable the feature. ## Creating a 4D Write Pro area diff --git a/versioned_docs/version-21-R4/API/QuotaManagerClass.md b/versioned_docs/version-21-R4/API/QuotaManagerClass.md index 6deacdc1f177e4..239e98d5947792 100644 --- a/versioned_docs/version-21-R4/API/QuotaManagerClass.md +++ b/versioned_docs/version-21-R4/API/QuotaManagerClass.md @@ -27,7 +27,7 @@ The `4D.QuotaManager` class provides you with an interface to configure and moni || |---| -|[](#currentvalues)
| +|[](#currentvalues)
| |[](#defaultentitysettimeout)
| |[](#maxentitysettimeout)
| |[](#nbentitysets)
| diff --git a/versioned_docs/version-21-R4/FormEditor/createStylesheet.md b/versioned_docs/version-21-R4/FormEditor/createStylesheet.md index 4a88cbe63bdaf2..43ecf4c0dbab71 100644 --- a/versioned_docs/version-21-R4/FormEditor/createStylesheet.md +++ b/versioned_docs/version-21-R4/FormEditor/createStylesheet.md @@ -329,7 +329,7 @@ icon: url("edit.png"); /* relative path to the form file */ * For `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` and `verticalLineStroke`, three syntaxes are supported: * CSS color name: `fill: red;` - * Hexa value: `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * the `rgb()` function: `fill:rgb(255,0,0)` * If a string uses forbidden characters in CSS, you can surround the string with simple or double quotes. For example: diff --git a/versioned_docs/version-21-R4/Users/handling_users_groups.md b/versioned_docs/version-21-R4/Users/handling_users_groups.md index 3f47640f1d126c..91c1f3883de098 100644 --- a/versioned_docs/version-21-R4/Users/handling_users_groups.md +++ b/versioned_docs/version-21-R4/Users/handling_users_groups.md @@ -153,19 +153,19 @@ Placing groups into other groups lets you create a user hierarchy. The users of To remove a user or group from another group, you just need to deselect the corresponding option in the member attribution area. -### Assigning a group to a plug-in or to a server +### Assigning a license to a group -You can assign a group privileges to any plug-ins installed in the project. This includes all the 4D plug-ins and any third-party plug-ins. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the plug-ins lets you control the use of the licenses you possess for these plug-ins. Any users that do not belong to the access group of a plug-in cannot load this plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the plug-ins loaded by the 4D application. To give a group access to a plug-in, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** and **4D Client SOAP Server** items lets you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. ### An access hierarchy scheme diff --git a/versioned_docs/version-21-R4/ViewPro/getting-started.md b/versioned_docs/version-21-R4/ViewPro/getting-started.md index ca7fd5ab1b3e35..b651d1efbf4308 100644 --- a/versioned_docs/version-21-R4/ViewPro/getting-started.md +++ b/versioned_docs/version-21-R4/ViewPro/getting-started.md @@ -35,7 +35,7 @@ The easiest way to install 4D View Pro in an opened project is to use the Depend Once you restart the project, the 4D View Pro component is installed as a [Github dependency](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requires a license. You need to activate this license in your application in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: +4D View Pro requires a license. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: ![](../assets/en/ViewPro/licenseError.png) diff --git a/versioned_docs/version-21-R4/WritePro/user-legacy/presentation.md b/versioned_docs/version-21-R4/WritePro/user-legacy/presentation.md index 9d25949f73e525..7ac64a9cb657ff 100644 --- a/versioned_docs/version-21-R4/WritePro/user-legacy/presentation.md +++ b/versioned_docs/version-21-R4/WritePro/user-legacy/presentation.md @@ -27,7 +27,7 @@ The key features of the product are: 4D Write Pro is fully integrated into 4D itself, making it easier to deploy and manage. No additional installation is required; you can add 4D Write Pro areas to your forms and handle 4D Write Pro variables directly in your 4D applications. -However, you need to have a 4D Write Pro license installed in your application in order to enable the feature. +However, you need to have a [4D Write Pro license installed in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to enable the feature. ## Creating a 4D Write Pro area diff --git a/versioned_docs/version-21/FormEditor/createStylesheet.md b/versioned_docs/version-21/FormEditor/createStylesheet.md index a04d73881d1d64..ac9183687cc18c 100644 --- a/versioned_docs/version-21/FormEditor/createStylesheet.md +++ b/versioned_docs/version-21/FormEditor/createStylesheet.md @@ -286,7 +286,7 @@ icon: url("edit.png"); /* relative path to the form file */ * For `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` and `verticalLineStroke`, three syntaxes are supported: * CSS color name: `fill: red;` - * Hexa value: `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * the `rgb()` function: `fill:rgb(255,0,0)` * If a string uses forbidden characters in CSS, you can surround the string with simple or double quotes. For example: diff --git a/versioned_docs/version-21/Users/handling_users_groups.md b/versioned_docs/version-21/Users/handling_users_groups.md index 8249bef7618ff1..1bf4264f443ba0 100644 --- a/versioned_docs/version-21/Users/handling_users_groups.md +++ b/versioned_docs/version-21/Users/handling_users_groups.md @@ -153,19 +153,19 @@ Placing groups into other groups lets you create a user hierarchy. The users of To remove a user or group from another group, you just need to deselect the corresponding option in the member attribution area. -### Assigning a group to a plug-in or to a server +### Assigning a license to a group -You can assign a group privileges to any plug-ins installed in the project. This includes all the 4D plug-ins and any third-party plug-ins. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the plug-ins lets you control the use of the licenses you possess for these plug-ins. Any users that do not belong to the access group of a plug-in cannot load this plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the plug-ins loaded by the 4D application. To give a group access to a plug-in, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** and **4D Client SOAP Server** items lets you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. ### An access hierarchy scheme diff --git a/versioned_docs/version-21/ViewPro/getting-started.md b/versioned_docs/version-21/ViewPro/getting-started.md index c1dffebef4e2b7..6f79f77ed3ab53 100644 --- a/versioned_docs/version-21/ViewPro/getting-started.md +++ b/versioned_docs/version-21/ViewPro/getting-started.md @@ -35,7 +35,7 @@ The easiest way to install 4D View Pro in an opened project is to use the Depend Once you restart the project, the 4D View Pro component is installed as a [Github dependency](../Project/components.md#adding-a-github-dependency). -4D View Pro requires a license. You need to activate this license in your application in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: +4D View Pro requires a license. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. When using this component without a license, the contents of an object that requires a 4D View Pro feature are not displayed at runtime, an error message is displayed instead: ![](../assets/en/ViewPro/licenseError.png) diff --git a/versioned_docs/version-21/WritePro/user-legacy/presentation.md b/versioned_docs/version-21/WritePro/user-legacy/presentation.md index 90b7fca0b4e570..d9cacfad84398e 100644 --- a/versioned_docs/version-21/WritePro/user-legacy/presentation.md +++ b/versioned_docs/version-21/WritePro/user-legacy/presentation.md @@ -27,7 +27,7 @@ The key features of the product are: 4D Write Pro is fully integrated into 4D itself, making it easier to deploy and manage. No additional installation is required; you can add 4D Write Pro areas to your forms and handle 4D Write Pro variables directly in your 4D applications. -However, you need to have a 4D Write Pro license installed in your application in order to enable the feature. +However, you need to have a [4D Write Pro license installed in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to enable the feature. ## Creating a 4D Write Pro area diff --git a/versioned_docs/version-21/commands-legacy/open-color-picker.md b/versioned_docs/version-21/commands-legacy/open-color-picker.md index 58d8f38da7f76a..268b1a8b6536df 100644 --- a/versioned_docs/version-21/commands-legacy/open-color-picker.md +++ b/versioned_docs/version-21/commands-legacy/open-color-picker.md @@ -31,11 +31,11 @@ displayed_sidebar: docs **Note:** This is a modal dialog box under Windows but not under macOS. -When the user selects a color and validates the dialog box, this color is applied to the current text selection in the object with the focus, if the ["Allow Font/Color Picker" property](../../FormObjects/properties_Text.md#allow-fontcolor-picker) is checked for this object. +When the user selects a color and validates the dialog box, this color is applied to the current text selection in the object with the focus, if the ["Allow Font/Color Picker" property](../FormObjects/properties_Text.md#allow-fontcolor-picker) is checked for this object. If you pass 0 in the *textOrBackground* parameter or omit this parameter, the selected color is applied to the text. If you pass 1 in *textOrBackground*, this color is applied to the text background. -If the color was changed, the [`On After Edit` form event](../../Events/onAfterEdit.md) is generated for the object. +If the color was changed, the [`On After Edit` form event](../Events/onAfterEdit.md) is generated for the object. ## See also diff --git a/versioned_docs/version-21/commands-legacy/test-path-name.md b/versioned_docs/version-21/commands-legacy/test-path-name.md index 95cd7eb1742f92..335480f40431d5 100644 --- a/versioned_docs/version-21/commands-legacy/test-path-name.md +++ b/versioned_docs/version-21/commands-legacy/test-path-name.md @@ -28,7 +28,7 @@ displayed_sidebar: docs ## Description -The **Test path name** function checks if a document or folder whose name or pathname you pass in *pathname* is present on the disk. You can pass either a relative or absolute pathname, expressed in the [syntax of the current system](../../Concepts/paths.md#platform-specific-syntax). +The **Test path name** function checks if a document or folder whose name or pathname you pass in *pathname* is present on the disk. You can pass either a relative or absolute pathname, expressed in the [syntax of the current system](../Concepts/paths.md#platform-specific-syntax). If a document is found, **Test path name** returns 1\. If a folder found, **Test path name** returns 0. From 0b926e7910450dea3021447778df9d4cd4092c9e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 3 Sep 2026 10:24:41 +0200 Subject: [PATCH 13/60] fix again licenses --- docs/Users/handling_users_groups.md | 6 ++---- docs/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../Users/handling_users_groups.md | 6 ++---- .../version-21-R3/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../Users/handling_users_groups.md | 6 ++---- .../version-21-R4/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes 6 files changed, 6 insertions(+), 12 deletions(-) diff --git a/docs/Users/handling_users_groups.md b/docs/Users/handling_users_groups.md index 91c1f3883de098..9f7b08c64791cb 100644 --- a/docs/Users/handling_users_groups.md +++ b/docs/Users/handling_users_groups.md @@ -157,16 +157,14 @@ To remove a user or group from another group, you just need to deselect the corr You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. - ### An access hierarchy scheme diff --git a/docs/assets/en/Users/plugins.png b/docs/assets/en/Users/plugins.png index dd3dc15bb2c6dfdd647473fb694a5d6b3976eda2..cbef1608509485e138f3c0d68ae2e60a0f0ddcc1 100644 GIT binary patch literal 7464 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 A$^ZZW literal 3237 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 F{{kQDHT(bo diff --git a/versioned_docs/version-21-R3/Users/handling_users_groups.md b/versioned_docs/version-21-R3/Users/handling_users_groups.md index 91c1f3883de098..9f7b08c64791cb 100644 --- a/versioned_docs/version-21-R3/Users/handling_users_groups.md +++ b/versioned_docs/version-21-R3/Users/handling_users_groups.md @@ -157,16 +157,14 @@ To remove a user or group from another group, you just need to deselect the corr You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. - ### An access hierarchy scheme diff --git a/versioned_docs/version-21-R3/assets/en/Users/plugins.png b/versioned_docs/version-21-R3/assets/en/Users/plugins.png index dd3dc15bb2c6dfdd647473fb694a5d6b3976eda2..cbef1608509485e138f3c0d68ae2e60a0f0ddcc1 100644 GIT binary patch literal 7464 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 A$^ZZW literal 3237 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 F{{kQDHT(bo diff --git a/versioned_docs/version-21-R4/Users/handling_users_groups.md b/versioned_docs/version-21-R4/Users/handling_users_groups.md index 91c1f3883de098..9f7b08c64791cb 100644 --- a/versioned_docs/version-21-R4/Users/handling_users_groups.md +++ b/versioned_docs/version-21-R4/Users/handling_users_groups.md @@ -157,16 +157,14 @@ To remove a user or group from another group, you just need to deselect the corr You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. - ### An access hierarchy scheme diff --git a/versioned_docs/version-21-R4/assets/en/Users/plugins.png b/versioned_docs/version-21-R4/assets/en/Users/plugins.png index dd3dc15bb2c6dfdd647473fb694a5d6b3976eda2..cbef1608509485e138f3c0d68ae2e60a0f0ddcc1 100644 GIT binary patch literal 7464 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 A$^ZZW literal 3237 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 F{{kQDHT(bo From b1706b801f43d1a0b1157e45e752635ff0ec535d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 3 Sep 2026 10:43:52 +0200 Subject: [PATCH 14/60] New Crowdin updates (#3404) * client-server.md Japanese * database.md Japanese * ai.md Japanese * ai.md Japanese * ai.md Japanese * database.md Japanese * createstylesheet.md French * createstylesheet.md Spanish * createstylesheet.md Japanese * createstylesheet.md Portuguese, Brazilian * handling_users_groups.md French * handling_users_groups.md Spanish * handling_users_groups.md Japanese * handling_users_groups.md Portuguese, Brazilian * getting-started.md French * getting-started.md Spanish * getting-started.md Japanese * getting-started.md Portuguese, Brazilian * cryptokeyclass.md Japanese * functionclass.md Japanese * imaptransporterclass.md French * smtptransporterclass.md Spanish * webserverclass.md Japanese * classes.md French * classes.md Spanish * error-handling.md Spanish * createstylesheet.md French * createstylesheet.md Spanish * createstylesheet.md Japanese * createstylesheet.md Portuguese, Brazilian * forms.md Spanish * handling_users_groups.md French * handling_users_groups.md Spanish * handling_users_groups.md Japanese * handling_users_groups.md Portuguese, Brazilian * getting-started.md French * getting-started.md Spanish * getting-started.md Japanese * getting-started.md Portuguese, Brazilian * command-index.md Japanese * wp-add-picture.md Japanese * imaptransporterclass.md French * sessionclass.md French * sessionclass.md Spanish * sessionclass.md Japanese * sessionclass.md Portuguese, Brazilian * licenses.md French * licenses.md Spanish * licenses.md Japanese * licenses.md Portuguese, Brazilian * classes.md French * classes.md Spanish * createstylesheet.md French * createstylesheet.md Spanish * createstylesheet.md Japanese * createstylesheet.md Portuguese, Brazilian * http-parse-message.md French * http-parse-message.md Spanish * http-parse-message.md Japanese * http-parse-message.md Portuguese, Brazilian * wa-set-context.md Japanese * handling_users_groups.md French * handling_users_groups.md Spanish * handling_users_groups.md Japanese * handling_users_groups.md Portuguese, Brazilian * getting-started.md French * getting-started.md Spanish * getting-started.md Japanese * getting-started.md Portuguese, Brazilian * wp-add-picture.md Japanese * user-new.md Japanese * functionclass.md Japanese * imaptransporterclass.md French * sessionclass.md French * sessionclass.md Spanish * sessionclass.md Japanese * sessionclass.md Portuguese, Brazilian * licenses.md French * licenses.md Spanish * licenses.md Japanese * licenses.md Portuguese, Brazilian * classes.md French * classes.md Spanish * createstylesheet.md French * createstylesheet.md Spanish * createstylesheet.md Japanese * createstylesheet.md Portuguese, Brazilian * forms.md French * forms.md Spanish * forms.md Japanese * forms.md Portuguese, Brazilian * updates.md French * updates.md Spanish * updates.md Japanese * updates.md Portuguese, Brazilian * handling_users_groups.md French * handling_users_groups.md Spanish * handling_users_groups.md Japanese * handling_users_groups.md Portuguese, Brazilian * getting-started.md French * getting-started.md Spanish * getting-started.md Japanese * getting-started.md Portuguese, Brazilian * command-index.md Japanese * wp-add-picture.md Japanese * user-new.md Japanese * quotamanagerclass.md French * quotamanagerclass.md Spanish * quotamanagerclass.md Japanese * quotamanagerclass.md Portuguese, Brazilian * functionclass.md Japanese * imaptransporterclass.md French * quotamanagerclass.md French * quotamanagerclass.md Spanish * quotamanagerclass.md Japanese * quotamanagerclass.md Portuguese, Brazilian * sessionclass.md French * sessionclass.md Spanish * sessionclass.md Japanese * sessionclass.md Portuguese, Brazilian * licenses.md French * licenses.md Spanish * licenses.md Japanese * licenses.md Portuguese, Brazilian * error-handling.md Spanish * createstylesheet.md French * createstylesheet.md Spanish * createstylesheet.md Japanese * createstylesheet.md Portuguese, Brazilian * forms.md French * forms.md Spanish * forms.md Japanese * forms.md Portuguese, Brazilian * handling_users_groups.md French * handling_users_groups.md Spanish * handling_users_groups.md Japanese * handling_users_groups.md Portuguese, Brazilian * getting-started.md French * getting-started.md Spanish * getting-started.md Japanese * getting-started.md Portuguese, Brazilian * command-index.md Japanese * wp-add-picture.md Japanese * user-new.md Japanese * mirror.md French * mirror.md Spanish * mirror.md Japanese * mirror.md Portuguese, Brazilian --- .../current/API/QuotaManagerClass.md | 2 +- .../current/API/SMTPTransporterClass.md | 22 ++++++------ .../current/Backup/mirror.md | 4 +-- .../current/Concepts/classes.md | 2 +- .../current/Concepts/error-handling.md | 14 ++++---- .../current/FormEditor/createStylesheet.md | 2 +- .../current/FormEditor/forms.md | 2 +- .../current/Users/handling_users_groups.md | 10 +++--- .../current/ViewPro/getting-started.md | 2 +- .../version-20/FormEditor/createStylesheet.md | 2 +- .../version-20/Users/handling_users_groups.md | 8 ++--- .../version-20/ViewPro/getting-started.md | 2 +- .../version-21-R3/API/SessionClass.md | 2 +- .../version-21-R3/Admin/licenses.md | 18 +++++----- .../version-21-R3/Concepts/classes.md | 2 +- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R3/FormEditor/forms.md | 2 +- .../version-21-R3/Notes/updates.md | 2 +- .../Users/handling_users_groups.md | 10 +++--- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../version-21-R4/API/QuotaManagerClass.md | 6 ++-- .../version-21-R4/API/SessionClass.md | 2 +- .../version-21-R4/Admin/licenses.md | 18 +++++----- .../version-21-R4/Concepts/error-handling.md | 14 ++++---- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R4/FormEditor/forms.md | 2 +- .../Users/handling_users_groups.md | 10 +++--- .../version-21-R4/ViewPro/getting-started.md | 2 +- .../version-21/API/SessionClass.md | 2 +- .../version-21/Admin/licenses.md | 18 +++++----- .../version-21/Concepts/classes.md | 2 +- .../version-21/FormEditor/createStylesheet.md | 2 +- .../version-21/Users/handling_users_groups.md | 10 +++--- .../version-21/ViewPro/getting-started.md | 2 +- .../version-21/commands/http-parse-message.md | 2 +- .../current/API/IMAPTransporterClass.md | 7 ++-- .../current/API/QuotaManagerClass.md | 2 +- .../current/Backup/mirror.md | 4 +-- .../current/Concepts/classes.md | 2 +- .../current/FormEditor/createStylesheet.md | 2 +- .../current/Users/handling_users_groups.md | 10 +++--- .../current/ViewPro/getting-started.md | 2 +- .../version-20/FormEditor/createStylesheet.md | 2 +- .../version-20/Users/handling_users_groups.md | 8 ++--- .../version-20/ViewPro/getting-started.md | 2 +- .../version-21-R3/API/IMAPTransporterClass.md | 7 ++-- .../version-21-R3/API/SessionClass.md | 2 +- .../version-21-R3/Admin/licenses.md | 18 +++++----- .../version-21-R3/Concepts/classes.md | 2 +- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R3/FormEditor/forms.md | 2 +- .../version-21-R3/Notes/updates.md | 2 +- .../Users/handling_users_groups.md | 10 +++--- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../version-21-R4/API/IMAPTransporterClass.md | 7 ++-- .../version-21-R4/API/QuotaManagerClass.md | 6 ++-- .../version-21-R4/API/SessionClass.md | 2 +- .../version-21-R4/Admin/licenses.md | 18 +++++----- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R4/FormEditor/forms.md | 2 +- .../Users/handling_users_groups.md | 10 +++--- .../version-21-R4/ViewPro/getting-started.md | 2 +- .../version-21/API/IMAPTransporterClass.md | 7 ++-- .../version-21/API/SessionClass.md | 2 +- .../version-21/Admin/licenses.md | 18 +++++----- .../version-21/Concepts/classes.md | 2 +- .../version-21/FormEditor/createStylesheet.md | 2 +- .../version-21/Users/handling_users_groups.md | 10 +++--- .../version-21/ViewPro/getting-started.md | 2 +- .../version-21/commands/http-parse-message.md | 2 +- .../current/API/CryptoKeyClass.md | 2 +- .../current/API/FunctionClass.md | 2 +- .../current/API/QuotaManagerClass.md | 2 +- .../current/API/WebServerClass.md | 20 +++++------ .../current/Backup/mirror.md | 4 +-- .../current/FormEditor/createStylesheet.md | 2 +- .../current/Users/handling_users_groups.md | 10 +++--- .../current/ViewPro/getting-started.md | 2 +- .../WritePro/commands/command-index.md | 10 +++--- .../WritePro/commands/wp-add-picture.md | 2 +- .../current/WritePro/user/user-new.md | 20 +++++------ .../current/settings/ai.md | 2 +- .../current/settings/client-server.md | 30 ++++++++-------- .../current/settings/database.md | 24 ++++++------- .../version-20/FormEditor/createStylesheet.md | 2 +- .../version-20/Users/handling_users_groups.md | 8 ++--- .../version-20/ViewPro/getting-started.md | 2 +- .../version-21-R3/API/FunctionClass.md | 2 +- .../version-21-R3/API/SessionClass.md | 2 +- .../version-21-R3/Admin/licenses.md | 18 +++++----- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R3/FormEditor/forms.md | 2 +- .../version-21-R3/Notes/updates.md | 2 +- .../Users/handling_users_groups.md | 16 ++++----- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../WritePro/commands/command-index.md | 10 +++--- .../WritePro/commands/wp-add-picture.md | 2 +- .../version-21-R3/WritePro/user/user-new.md | 18 +++++----- .../version-21-R3/settings/ai.md | 2 +- .../version-21-R4/API/FunctionClass.md | 2 +- .../version-21-R4/API/QuotaManagerClass.md | 6 ++-- .../version-21-R4/API/SessionClass.md | 2 +- .../version-21-R4/Admin/licenses.md | 18 +++++----- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R4/FormEditor/forms.md | 2 +- .../Users/handling_users_groups.md | 16 ++++----- .../version-21-R4/ViewPro/getting-started.md | 2 +- .../WritePro/commands/command-index.md | 10 +++--- .../WritePro/commands/wp-add-picture.md | 2 +- .../version-21-R4/WritePro/user/user-new.md | 20 +++++------ .../version-21-R4/settings/ai.md | 2 +- .../version-21-R4/settings/database.md | 36 +++++++++---------- .../version-21/API/SessionClass.md | 2 +- .../version-21/Admin/licenses.md | 18 +++++----- .../version-21/FormEditor/createStylesheet.md | 2 +- .../version-21/Users/handling_users_groups.md | 16 ++++----- .../version-21/ViewPro/getting-started.md | 2 +- .../WritePro/commands/wp-add-picture.md | 2 +- .../version-21/commands/http-parse-message.md | 4 +-- .../version-21/commands/wa-set-context.md | 2 +- .../current/API/QuotaManagerClass.md | 2 +- .../current/Backup/mirror.md | 4 +-- .../current/FormEditor/createStylesheet.md | 2 +- .../current/Users/handling_users_groups.md | 10 +++--- .../current/ViewPro/getting-started.md | 2 +- .../version-20/FormEditor/createStylesheet.md | 2 +- .../version-20/Users/handling_users_groups.md | 8 ++--- .../version-20/ViewPro/getting-started.md | 2 +- .../version-21-R3/API/SessionClass.md | 2 +- .../version-21-R3/Admin/licenses.md | 18 +++++----- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R3/FormEditor/forms.md | 2 +- .../version-21-R3/Notes/updates.md | 2 +- .../Users/handling_users_groups.md | 10 +++--- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../version-21-R4/API/QuotaManagerClass.md | 6 ++-- .../version-21-R4/API/SessionClass.md | 2 +- .../version-21-R4/Admin/licenses.md | 18 +++++----- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R4/FormEditor/forms.md | 2 +- .../Users/handling_users_groups.md | 10 +++--- .../version-21-R4/ViewPro/getting-started.md | 2 +- .../version-21/API/SessionClass.md | 2 +- .../version-21/Admin/licenses.md | 18 +++++----- .../version-21/FormEditor/createStylesheet.md | 2 +- .../version-21/Users/handling_users_groups.md | 10 +++--- .../version-21/ViewPro/getting-started.md | 2 +- .../version-21/commands/http-parse-message.md | 2 +- 148 files changed, 461 insertions(+), 465 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index cf025dd729deb5..4a56dff3cc6013 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -21,7 +21,7 @@ Los objetos 4D.QuotaManager ofrecen las siguientes propiedades: | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [](#currentvalues)
| +| [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| | [](#nbentitysets)
| 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 0ca801972d404b..735808b925147b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -68,13 +68,13 @@ La función `4D.SMTPTransporter.new()` the certificate used to sign emails using S/MIME (Secure/MIME), provided as a [`4D.File`](./FileClass.md) object or a Blob. This certificate contains the private key. +La propiedad `.certificate` contiene el certificado utilizado para firmar correos electrónicos mediante S/MIME (Secure/MIME), proporcionado como un objeto [`4D.File`](./FileClass.md) o como un Blob. Este certificado contiene la llave privada. -If your certificate is already registered in your Certificate store (*keychain*), you can use [`.certificateName`](#certificatename) instead of this property. Note that you cannot use both properties simultaneously, otherwise an error is returned. +Si su certificado ya está registrado en su tienda de certificados (*keychain*), puede utilizar [`.certificateName`](#certificatename) en lugar de esta propiedad. Tenga en cuenta que no puede utilizar ambas propiedades simultáneamente, de lo contrario se devuelve un error. :::tip Entrada de blog relacionada -[Signing emails with S/MIME and SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) +[Firmar correos electrónicos con S/MIME y SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) ::: @@ -85,17 +85,17 @@ var $transporter : 4D.SMTPTransporter var $options ; $result : Object $options:=New object -//Enter the information for the SMTP server +//Introducir la información del servidor SMTP -//Enable S/MIME signing -//Provide certificate file +//Habilitar la firma S/MIME +//Proporcionar el archivo de certificado $options.certificate:=File("myCertificateFile.p12") $options.certificatePassword:="myGreatPW123" $transporter:=4D.SMTPTransporter.new($options) $email:=New object -//Fill the email content +//Llenar el contenido del correo electrónico $result:=$transporter.send($email) ``` @@ -119,13 +119,13 @@ $result:=$transporter.send($email) #### Descripción -The `.certificateName` property contains the name of the certificate used to sign emails using S/MIME (Secure/MIME) as it is registered in the system Certificate store (*keychain*). This certificate contains the private key. +La propiedad `.certificateName` contiene el nombre del certificado utilizado para firmar correos electrónicos mediante S/MIME (Secure/MIME), tal y como figura registrado en el almacén de certificados del sistema (*keychain*). Este certificado contiene la llave privada. -The certificate can also be provided directly as a file or blob using the [`.certificate`](#certificate) property. Note that you cannot use both properties simultaneously, otherwise an error is returned. +El certificado también se puede proporcionar directamente como un archivo o un blob mediante la propiedad [`.certificate`](#certificate). Tenga en cuenta que no puede utilizar ambas propiedades simultáneamente, de lo contrario se devuelve un error. :::tip Entrada de blog relacionada -[Signing emails with S/MIME and SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) +[Firmar correos electrónicos con S/MIME y SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) ::: @@ -148,7 +148,7 @@ The certificate can also be provided directly as a file or blob using the [`.cer #### Descripción -The `.certificatePassword` property contains the password of the certificate used to sign emails, if required. An empty string is used if no password is required. +La propiedad `.certificatePassword` contiene la contraseña del certificado utilizado para firmar los correos electrónicos, si es necesario. Se usa una cadena vacía si no se requiere una contraseña. #### Ver también diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/mirror.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/mirror.md index fcb5ce72b02b91..8053ad5ef3601f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/mirror.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/mirror.md @@ -3,7 +3,7 @@ id: mirror title: Espejo lógico --- -4D Server ofrece una solución integrada que permite configurar un sistema de copias de seguridad mediante un espejo lógico. Esta solución se basa en dos comandos: [`New log file`](../commands/new-log-file) e [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). +4D Server ofrece una solución integrada que permite configurar un sistema de copias de seguridad mediante un espejo lógico. ## ¿Qué es un espejo lógico? @@ -27,7 +27,7 @@ A mirror solution only reflects changes made to the **data**. This backup mode i ## Principios de funcionamiento -Setting up a backup system using a logical mirror is based on two new commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). +Setting up a backup system using a logical mirror is based on two commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). Se aplican los siguientes principios: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md index b4afe2fa507e87..068dda3b47f39c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md @@ -67,7 +67,7 @@ Las clases disponibles son accesibles desde sus class stores. Hay dos class stor -El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. Por defecto, sólo las [clases ORDA](ORDA/ordaClasses.md) están disponibles. Devuelve todas las clases de usuario [definidas](../Project/code-overview.md#creating-classes) en el proyecto o componente abierto. +El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. Por defecto, sólo las [clases ORDA](ORDA/ordaClasses.md) están disponibles. Por defecto, sólo las [clases ORDA](ORDA/ordaClasses.md) están disponibles. #### Ejemplo 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 000dc244d183fe..06918d141a9e3b 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 @@ -293,21 +293,21 @@ Excepciones que interrumpen la ejecución de código son devueltas por 4D pero p - un **mensaje**, que explica por qué se ha producido el error - un **código**, que es un número arbitrario devuelto por el componente -To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. +Para obtener una descripción completa de un error y, en especial, de su origen, puede utilizar el [cuadro de diálogo de errores de 4D](../Debugging/basics.md) o el comando [`Last errors`](../commands/last-errors). -### Error dialog box +### Cuadro de diálogo de errores -La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Expand the **Details** area and click on the **Save...** or **Copy** button: +La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Expanda el área **Detalles** y haga clic en el botón **Guardar...** o **Copiar**: ![copy-button](../assets/en/Concepts/error.png) -Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: +La información detallada relacionada con el error se guarda en un archivo de texto o se copia en el portapapeles, incluyendo el contexto y el componente: ![pasted-error](../assets/en/Concepts/error2.png) -### `Last errors` command +### Comando `Last errors` -You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. +Puede llamar al comando [`Last errors`](../commands/last-errors) en su código para obtener información sobre errores. Este comando debe llamarse desde un método de gestión de errores instalado por el comando [`ON ERR CALL`](../commands/on-err-call) o en un contexto [`Try or Try/Catch`](#trycatchend-try). -When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. +Cuando intercepte y gestione errores en sus aplicaciones finales, utilice [`Last errors`](../commands/last-errors) y asegúrese de registrar todas las propiedades del objeto *error*, ya que los códigos de error dependen de los componentes. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md index dd94dfce2b3fe7..3b316bea2933cd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* ruta relativa al archivo del formulario */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Valor hexadécimal: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - función `rgb()`: `fill:rgb(255,0,0)` - Si una cadena utiliza caracteres prohibidos en CSS, puede rodear la cadena con comillas simples o dobles. Por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 94665ed58af79d..d6075123709833 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -332,7 +332,7 @@ El [media query CSS **form-theme**](./createStylesheet.md#media-queries) permite Cuando utilice los formularios 4D con el renderizado Fluent UI, debe prestar atención a los siguientes puntos: -- El comando [`FORM theme`](../commands/form-theme) devuelve el tema actual del formulario. Possible values: "Classic", "FluentUI" or "LiquidGlass". +- El comando [`FORM theme`](../commands/form-theme) devuelve el tema actual del formulario. Valores posibles: "Classic", "FluentUI" or "LiquidGlass". - El comando [`Application info`](../commands/application-info) le permite saber si Fluent UI puede ser utilizado (propiedad `canUseFluentUI`) o está siendo utilizado (propiedad `useFluentUI`). - Si [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) con el parámetro *itemStyle* `Underline` no es soportado (ignorado) para los menús emergentes. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md index 0d3fa1953bb2a5..fbb5ffbc40eb2f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md @@ -147,19 +147,19 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Asignar un grupo a un plug-in o a un servidor +### Assigning a license to a group -Puede asignar privilegios de grupo a cualquier plug-in instalado en el proyecto. Esto incluye todos los plug-ins de 4D y los de terceros. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distribuir los accesos a los plug-ins le permite controlar el uso de las licencias que posee para estos plug-ins. Todo usuario que no pertenezca al grupo de acceso de un plug-in no puede cargar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -El área "Plug-in" de la página Grupos de la caja de herramientas lista todos los plug-ins cargados por la aplicación 4D. Para dar acceso a un grupo a un complemento, basta con marcar la opción correspondiente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Las líneas **4D Client Web Server** y **4D Client SOAP Server** permiten controlar la posibilidad de publicación Web y SOAP (Web Services) de cada 4D en modo remoto. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. ### Un esquema de acceso jerárquico 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 cce68bbfb14661..a80d02c0a1e81d 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 @@ -32,7 +32,7 @@ La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar Una vez reiniciado el proyecto, el componente 4D View Pro se instala como una [dependencia Github](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requiere una licencia. Es necesario activar esta licencia en su aplicación para poder utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: +4D View Pro requiere una licencia. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md index 3cf15fee18172c..ace9d0579c7a0a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md @@ -284,7 +284,7 @@ icon: url("edit.png"); /* ruta relativa al archivo del formulario */ * Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: * Nombre del color CSS: `fill: red;` - * Valor hexadécimal: `fill: #FF0000;` + * Valor hexadecimal: `fill: #FF0000;` (solo 6 caracteres; no soporta transparencia) * función `rgb()`: `fill:rgb(255,0,0)` * Si una cadena utiliza caracteres prohibidos en CSS, puede rodear la cadena con comillas simples o dobles. Por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md index 96decbfc8b1dd6..aef7213c3c0730 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md @@ -138,15 +138,15 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Asignar un grupo a un plug-in o a un servidor +### Assigning a license to a group -Puede asignar privilegios de grupo a cualquier plug-in instalado en el proyecto. Esto incluye todos los plug-ins de 4D y los de terceros. +Puede asignar privilegios de grupo a cualquiera de las [extensiones](../Extensions/overview.md) instaladas en el proyecto. This includes all the 4D and third-party plug-ins and components. -Distribuir los accesos a los plug-ins le permite controlar el uso de las licencias que posee para estos plug-ins. Todo usuario que no pertenezca al grupo de acceso de un plug-in no puede cargar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -El área "Plug-in" de la página Grupos de la caja de herramientas lista todos los plug-ins cargados por la aplicación 4D. Para dar acceso a un grupo a un complemento, basta con marcar la opción correspondiente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md index 26466c5013ec3f..6b1e5465f6dc09 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md @@ -24,7 +24,7 @@ La integración de áreas de 4D View Pro en sus formularios le permite importar Las funcionalidades de 4D View Pro se incluyen directamente en 4D, lo que facilita su despliegue y gestión. No se requiere ninguna instalación adicional. -Sin embargo, 4D View Pro requiere una licencia. Es necesario activar esta licencia en su aplicación para poder utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: +Sin embargo, 4D View Pro requiere una licencia. Debe activar y [asignar esta licencia en su aplicación](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) para utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md index f6f9f74dfc34f3..c28a5c534665b1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md @@ -752,7 +752,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md index f54dc63026dd35..72c7aff1850dd0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md @@ -18,15 +18,15 @@ Las licencias de desarrollo son necesarias para acceder al entorno Diseño 4D y Las licencias de despliegue pueden ser anidadas en el paso de creación por el desarrollador o introducido en el primer lanzamiento por el usuario final, como se describe en la siguiente tabla: -| Licencia de despliegue | Descripción | Dónde introducirla | -| ------------------------ | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Unlimited Desktop* | **Descontinuada** - Licencia personalizada integrada | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Desktop* | Licencia por usuario, que permite utilizar aplicaciones 4D independientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | -| *4D Desktop Business* | Licencia personalizada integrada para aplicaciones 4D independientes | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Server OEM* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D XML Keys Activation* | Utilizado para activar las licencias OEM del servidor 4D en modo de embebido no automático | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Server* | Licencia por usuario, que les permite utilizar 4D Server y clientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| Licencia de despliegue | Descripción | Dónde introducirla | +| ----------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| *4D Server* | Licencia por usuario, que les permite utilizar 4D Server y clientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| *4D Desktop* | Licencia por equipo, que permite el uso de aplicaciones 4D autónomas | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| *4D Desktop Business Edition* | Licencia personalizada integrada para aplicaciones 4D independientes | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D Server OEM* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D OEM Desktop* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D XML Keys Activation* | Utilizado para activar las licencias OEM del servidor 4D en modo de embebido no automático | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D Unlimited Desktop* | **Descontinuada** - Licencia personalizada integrada | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | ### Vencimiento diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/classes.md index 4ae24fcc259dc9..090f78142ecff6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/classes.md @@ -67,7 +67,7 @@ Las clases disponibles son accesibles desde sus class stores. Hay dos class stor -El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. Devuelve todas las clases de usuario [definidas](../Project/code-overview.md#creating-classes) en el proyecto o componente abierto. +El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. Devuelve todas las clases de usuario [definidas](../Project/code-overview.md#creating-classes) en el proyecto o componente abierto. Por defecto, sólo las [clases ORDA](ORDA/ordaClasses.md) están disponibles. #### Ejemplo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md index 8c7df539e75c1e..aad524b8003064 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* ruta relativa al archivo del formulario */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Valor hexadécimal: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - función `rgb()`: `fill:rgb(255,0,0)` - Si una cadena utiliza caracteres prohibidos en CSS, puede rodear la cadena con comillas simples o dobles. Por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md index 19562dfdf29070..3e451badb4b847 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md @@ -211,7 +211,7 @@ El [media query CSS **form-theme**](./createStylesheet.md#media-queries) permite Cuando utilice los formularios 4D con el renderizado Fluent UI, debe prestar atención a los siguientes puntos: -- El comando [`FORM theme`](../commands/form-theme) devuelve el tema actual del formulario. Valores posibles: "Classic" o "FluentUI". Si no existe un formulario actual o si el comando se ejecuta en macOS, se devuelve una cadena vacía. +- El comando [`FORM theme`](../commands/form-theme) devuelve el tema actual del formulario. Valores posibles: "Classic", "FluentUI" or "LiquidGlass". - El comando [`Application info`](../commands/application-info) le permite saber si Fluent UI puede ser utilizado (propiedad `canUseFluentUI`) o está siendo utilizado (propiedad `useFluentUI`). - Si [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) con el parámetro *itemStyle* `Underline` no es soportado (ignorado) para los menús emergentes. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md index e163240c0e1458..8437c68e6803b3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md @@ -77,7 +77,7 @@ Lea [**Novedades en 4D 21 R2**](https://blog.4d.com/whats-new-in-4d-21-r2/), la | libZip | 1.11.4 | 21 | Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet | | LZMA | 5.8.1 | 21 | | | ngtcp2 | 1.18.0 | 21 | Utilizado para QUIC | -| OpenSSL | 3.5.2 | 21 | | +| OpenSSL | 3.5.7 | 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) | | SpreadJS | 18.2.0 | 21 R2 | Consulte [esta entrada de blog](https://blog.4d.com/4d-view-pro-whats-new-in-4d-21-r2/) para obtener una visión general de las nuevas funciones | | webKit | WKWebView | 19 | | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md index 0d3fa1953bb2a5..fbb5ffbc40eb2f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md @@ -147,19 +147,19 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Asignar un grupo a un plug-in o a un servidor +### Assigning a license to a group -Puede asignar privilegios de grupo a cualquier plug-in instalado en el proyecto. Esto incluye todos los plug-ins de 4D y los de terceros. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distribuir los accesos a los plug-ins le permite controlar el uso de las licencias que posee para estos plug-ins. Todo usuario que no pertenezca al grupo de acceso de un plug-in no puede cargar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -El área "Plug-in" de la página Grupos de la caja de herramientas lista todos los plug-ins cargados por la aplicación 4D. Para dar acceso a un grupo a un complemento, basta con marcar la opción correspondiente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Las líneas **4D Client Web Server** y **4D Client SOAP Server** permiten controlar la posibilidad de publicación Web y SOAP (Web Services) de cada 4D en modo remoto. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. ### Un esquema de acceso jerárquico diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md index cce68bbfb14661..a80d02c0a1e81d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md @@ -32,7 +32,7 @@ La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar Una vez reiniciado el proyecto, el componente 4D View Pro se instala como una [dependencia Github](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requiere una licencia. Es necesario activar esta licencia en su aplicación para poder utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: +4D View Pro requiere una licencia. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md index cc71bbf4c1a1b5..4a56dff3cc6013 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md @@ -21,10 +21,10 @@ Los objetos 4D.QuotaManager ofrecen las siguientes propiedades: | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [](#currentvalues)
| +| [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| -| [](#nbentitysets)
| +| [](#nbentitysets)
| @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### Descripción -La propiedad `.nbEntitySets` contiene el número máximo de conjuntos de entidades REST permitidos en memoria para la sesión actual (en segundos). +The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. Por defecto, no hay límite para conjuntos de entidades [almacenados en memoria por solicitudes REST](../REST/$info.md) (el valor es 0). Puede definir un límite para controlar la carga útil del servidor para una sesión específica. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md index c3d9cc6475c13d..f1ade40f5d3cb1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md @@ -809,7 +809,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md index f54dc63026dd35..72c7aff1850dd0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md @@ -18,15 +18,15 @@ Las licencias de desarrollo son necesarias para acceder al entorno Diseño 4D y Las licencias de despliegue pueden ser anidadas en el paso de creación por el desarrollador o introducido en el primer lanzamiento por el usuario final, como se describe en la siguiente tabla: -| Licencia de despliegue | Descripción | Dónde introducirla | -| ------------------------ | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Unlimited Desktop* | **Descontinuada** - Licencia personalizada integrada | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Desktop* | Licencia por usuario, que permite utilizar aplicaciones 4D independientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | -| *4D Desktop Business* | Licencia personalizada integrada para aplicaciones 4D independientes | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Server OEM* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D XML Keys Activation* | Utilizado para activar las licencias OEM del servidor 4D en modo de embebido no automático | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Server* | Licencia por usuario, que les permite utilizar 4D Server y clientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| Licencia de despliegue | Descripción | Dónde introducirla | +| ----------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| *4D Server* | Licencia por usuario, que les permite utilizar 4D Server y clientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| *4D Desktop* | Licencia por equipo, que permite el uso de aplicaciones 4D autónomas | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| *4D Desktop Business Edition* | Licencia personalizada integrada para aplicaciones 4D independientes | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D Server OEM* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D OEM Desktop* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D XML Keys Activation* | Utilizado para activar las licencias OEM del servidor 4D en modo de embebido no automático | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D Unlimited Desktop* | **Descontinuada** - Licencia personalizada integrada | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | ### Vencimiento diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md index 000dc244d183fe..06918d141a9e3b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md @@ -293,21 +293,21 @@ Excepciones que interrumpen la ejecución de código son devueltas por 4D pero p - un **mensaje**, que explica por qué se ha producido el error - un **código**, que es un número arbitrario devuelto por el componente -To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. +Para obtener una descripción completa de un error y, en especial, de su origen, puede utilizar el [cuadro de diálogo de errores de 4D](../Debugging/basics.md) o el comando [`Last errors`](../commands/last-errors). -### Error dialog box +### Cuadro de diálogo de errores -La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Expand the **Details** area and click on the **Save...** or **Copy** button: +La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Expanda el área **Detalles** y haga clic en el botón **Guardar...** o **Copiar**: ![copy-button](../assets/en/Concepts/error.png) -Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: +La información detallada relacionada con el error se guarda en un archivo de texto o se copia en el portapapeles, incluyendo el contexto y el componente: ![pasted-error](../assets/en/Concepts/error2.png) -### `Last errors` command +### Comando `Last errors` -You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. +Puede llamar al comando [`Last errors`](../commands/last-errors) en su código para obtener información sobre errores. Este comando debe llamarse desde un método de gestión de errores instalado por el comando [`ON ERR CALL`](../commands/on-err-call) o en un contexto [`Try or Try/Catch`](#trycatchend-try). -When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. +Cuando intercepte y gestione errores en sus aplicaciones finales, utilice [`Last errors`](../commands/last-errors) y asegúrese de registrar todas las propiedades del objeto *error*, ya que los códigos de error dependen de los componentes. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md index 8c7df539e75c1e..aad524b8003064 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* ruta relativa al archivo del formulario */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Valor hexadécimal: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - función `rgb()`: `fill:rgb(255,0,0)` - Si una cadena utiliza caracteres prohibidos en CSS, puede rodear la cadena con comillas simples o dobles. Por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md index 41a871a3f53beb..0a1d97740b4cb5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md @@ -337,7 +337,7 @@ El [media query CSS **form-theme**](./createStylesheet.md#media-queries) permite Cuando utilice los formularios 4D con el renderizado Fluent UI, debe prestar atención a los siguientes puntos: -- El comando [`FORM theme`](../commands/form-theme) devuelve el tema actual del formulario. Valores posibles: "Classic" o "FluentUI". Si no existe un formulario actual o si el comando se ejecuta en macOS, se devuelve una cadena vacía. +- El comando [`FORM theme`](../commands/form-theme) devuelve el tema actual del formulario. Valores posibles: "Classic", "FluentUI" or "LiquidGlass". - El comando [`Application info`](../commands/application-info) le permite saber si Fluent UI puede ser utilizado (propiedad `canUseFluentUI`) o está siendo utilizado (propiedad `useFluentUI`). - Si [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) con el parámetro *itemStyle* `Underline` no es soportado (ignorado) para los menús emergentes. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md index 0d3fa1953bb2a5..fbb5ffbc40eb2f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md @@ -147,19 +147,19 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Asignar un grupo a un plug-in o a un servidor +### Assigning a license to a group -Puede asignar privilegios de grupo a cualquier plug-in instalado en el proyecto. Esto incluye todos los plug-ins de 4D y los de terceros. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distribuir los accesos a los plug-ins le permite controlar el uso de las licencias que posee para estos plug-ins. Todo usuario que no pertenezca al grupo de acceso de un plug-in no puede cargar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -El área "Plug-in" de la página Grupos de la caja de herramientas lista todos los plug-ins cargados por la aplicación 4D. Para dar acceso a un grupo a un complemento, basta con marcar la opción correspondiente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Las líneas **4D Client Web Server** y **4D Client SOAP Server** permiten controlar la posibilidad de publicación Web y SOAP (Web Services) de cada 4D en modo remoto. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. ### Un esquema de acceso jerárquico diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md index cce68bbfb14661..a80d02c0a1e81d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md @@ -32,7 +32,7 @@ La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar Una vez reiniciado el proyecto, el componente 4D View Pro se instala como una [dependencia Github](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requiere una licencia. Es necesario activar esta licencia en su aplicación para poder utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: +4D View Pro requiere una licencia. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: ![](../assets/en/ViewPro/licenseError.png) 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 36cff79be40337..faf8fcdf0c4cce 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 @@ -748,7 +748,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/licenses.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/licenses.md index f54dc63026dd35..72c7aff1850dd0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/licenses.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/licenses.md @@ -18,15 +18,15 @@ Las licencias de desarrollo son necesarias para acceder al entorno Diseño 4D y Las licencias de despliegue pueden ser anidadas en el paso de creación por el desarrollador o introducido en el primer lanzamiento por el usuario final, como se describe en la siguiente tabla: -| Licencia de despliegue | Descripción | Dónde introducirla | -| ------------------------ | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Unlimited Desktop* | **Descontinuada** - Licencia personalizada integrada | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Desktop* | Licencia por usuario, que permite utilizar aplicaciones 4D independientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | -| *4D Desktop Business* | Licencia personalizada integrada para aplicaciones 4D independientes | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Server OEM* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D XML Keys Activation* | Utilizado para activar las licencias OEM del servidor 4D en modo de embebido no automático | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | -| *4D Server* | Licencia por usuario, que les permite utilizar 4D Server y clientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| Licencia de despliegue | Descripción | Dónde introducirla | +| ----------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| *4D Server* | Licencia por usuario, que les permite utilizar 4D Server y clientes | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| *4D Desktop* | Licencia por equipo, que permite el uso de aplicaciones 4D autónomas | Diálogo [Primera activación](#first-activation) en la máquina usuario | +| *4D Desktop Business Edition* | Licencia personalizada integrada para aplicaciones 4D independientes | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D Server OEM* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D OEM Desktop* | Licencia personalizada incorporada, contacte al equipo de ventas 4D para obtener información | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D XML Keys Activation* | Utilizado para activar las licencias OEM del servidor 4D en modo de embebido no automático | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | +| *4D Unlimited Desktop* | **Descontinuada** - Licencia personalizada integrada | Página [Licencias](../Desktop/building.md#licenses) del diálogo Crear aplicación | ### Vencimiento 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 dcf235614e6320..36f26fda5f8388 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 @@ -116,7 +116,7 @@ Las clases disponibles son accesibles desde sus class stores. Hay dos class stor -El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. Devuelve todas las clases de usuario [definidas](../Project/code-overview.md#creating-classes) en el proyecto o componente abierto. +El comando `cs` devuelve el almacén de clases de usuario para el proyecto o componente actual. Devuelve todas las clases de usuario [definidas](#class-definition) en el proyecto o componente abierto. Por defecto, sólo las [clases ORDA](ORDA/ordaClasses.md) están disponibles. #### Ejemplo 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..18db098d58b129 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 @@ -284,7 +284,7 @@ icon: url("edit.png"); /* ruta relativa al archivo del formulario */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Valor hexadécimal: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - función `rgb()`: `fill:rgb(255,0,0)` - Si una cadena utiliza caracteres prohibidos en CSS, puede rodear la cadena con comillas simples o dobles. Por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md index 756ee8c7fd1c93..02ad2091eddb08 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md @@ -147,19 +147,19 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Asignar un grupo a un plug-in o a un servidor +### Assigning a license to a group -Puede asignar privilegios de grupo a cualquier plug-in instalado en el proyecto. Esto incluye todos los plug-ins de 4D y los de terceros. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distribuir los accesos a los plug-ins le permite controlar el uso de las licencias que posee para estos plug-ins. Todo usuario que no pertenezca al grupo de acceso de un plug-in no puede cargar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -El área "Plug-in" de la página Grupos de la caja de herramientas lista todos los plug-ins cargados por la aplicación 4D. Para dar acceso a un grupo a un complemento, basta con marcar la opción correspondiente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Las líneas **4D Client Web Server** y **4D Client SOAP Server** permiten controlar la posibilidad de publicación Web y SOAP (Web Services) de cada 4D en modo remoto. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. ### Un esquema de acceso jerárquico 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 b9ca6fb57b7884..2fc53f436fc5ea 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 @@ -32,7 +32,7 @@ La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar Una vez reiniciado el proyecto, el componente 4D View Pro se instala como una [dependencia Github](../Project/components.md#adding-a-github-dependency). -4D View Pro requiere una licencia. Es necesario activar esta licencia en su aplicación para poder utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: +4D View Pro requiere una licencia. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md index 7ead6c93526006..ee630e2239e9f3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md @@ -90,4 +90,4 @@ var $parsedMessage : Object:=HTTP Parse message($message) | | | | ----------------- | ---- | | Número de comando | 1824 | -| Hilo seguro | no | +| Hilo seguro | sí | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md index 0328c19775d330..ec2308d269e4d4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md @@ -1638,14 +1638,14 @@ searchCriteria = HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE A noter que dans les deux derniers exemples, le résultat de la recherche est différent lorsque vous enlevez les parenthèses de la première liste de mots-clés. -- Le paramètre *searchCriteria* peut inclure optionnellement l'instruction \[CHARSET]. Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). +- Le paramètre *searchCriteria* peut inclure optionnellement l'instruction \[CHARSET]. Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Elle indique le codage de caractères utilisé dans la chaine *searchCriteria*. Par conséquent, vous devez convertir la chaîne *searchCriteria* dans le jeu de caractères spécifié si vous utilisez l'instruction \[CHARSET] (voir les commandes `CONVERT FROM TEXT` ou `Convert to text`). Par défaut, 4D encode la chaîne de critères searchCriteria en "Quotable Printable" si elle contient des caractères étendus. ``` searchCriteria = CHARSET "ISO-8859" BODY "Help" ``` -... La fonction `.searchMails()` recherche les messages qui correspondent aux critères de recherche *searchCriteria* dans la boîte aux lettres courante. +... signifie que le critère de recherche utilise le jeu de caractères iso-8859 et que le serveur devra convertir la chaîne avant la recherche, si nécessaire. #### Mots-clés de recherche autorisés @@ -1654,8 +1654,7 @@ Les mots-clés de recherche peuvent traiter des valeurs des types suivants : - **Valeurs de type date** : Les valeurs de type date sont placées dans des chaînes formatées de la manière suivante : *date-day+"-"+date-month+"-"+date-year* où date-day indique la date du jour dans le mois (2 caractères maxi), date-month indique le mois (Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Dec) et date-year indique l’année sur 4 chiffres. Exemple : `searchCriteria = SENTBEFORE 1-Feb-2020` (il n’est généralement pas nécessaire de mettre une date entre guillemets puisqu’elle ne contient pas de caractères spéciaux) -- \*\*Valeurs de type chaîne - \*\* : Les valeurs de type chaîne peuvent contenir tout type de caractère et doivent être placées entre des guillemets. Toutefois, si la chaîne ne contient pas de caractères spéciaux (des espaces par exemple), les guillemets ne sont pas obligatoires. Dans tous les cas, les guillemets vous permettent de vous assurer que la chaîne sera correctement interprétée. +- **Valeurs de type chaîne** : Les valeurs de type chaîne peuvent contenir tout type de caractère et doivent être placées entre des guillemets. Toutefois, si la chaîne ne contient pas de caractères spéciaux (des espaces par exemple), les guillemets ne sont pas obligatoires. Dans tous les cas, les guillemets vous permettent de vous assurer que la chaîne sera correctement interprétée. Exemple : `searchCriteria = FROM "SMITH"` Pour toutes les clés de recherche qui utilisent des chaînes, un message correspond à la clé si la chaîne est une sous-chaîne du champ. La recherche ne tient pas compte de la casse des caractères. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index e0662939e36861..e222ecfb3aa304 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -21,7 +21,7 @@ Les objets 4D.QuotaManager exposent les propriétés suivantes : | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [](#currentvalues)
| +| [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| | [](#nbentitysets)
| diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/mirror.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/mirror.md index 46af41463802ff..d39a7741d768ac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/mirror.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/mirror.md @@ -3,7 +3,7 @@ id: mirror title: Miroir logique --- -4D Server offre une solution intégrée qui permet la mise en place d'un système de sauvegarde via un miroir logique. Cette solution est basée sur deux commandes : [`New log file`](../commands/new-log-file) et [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). +4D Server offre une solution intégrée qui permet la mise en place d'un système de sauvegarde via un miroir logique. ## Qu'est-ce qu'un miroir logique ? @@ -27,7 +27,7 @@ La base miroir ne reflète que les modifications apportées aux **données**. Ce ## Principes de fonctionnement -Setting up a backup system using a logical mirror is based on two new commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). +Setting up a backup system using a logical mirror is based on two commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). Les principes suivants sont mis en œuvre : 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 6b8ffc5e16a7b2..1c5ad49c4eb118 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/classes.md @@ -67,7 +67,7 @@ Les classes disponibles sont accessibles depuis leurs class stores. Il existe de -La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. Par défaut, seules les [classes ORDA](ORDA/ordaClasses.md) du projet sont disponibles. Elle retourne toutes les classes utilisateur [définies](../Project/code-overview.md#creating-classes) dans le projet ou le composant ouvert. +La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. Par défaut, seules les [classes ORDA](ORDA/ordaClasses.md) du projet sont disponibles. Par défaut, seules les [classes ORDA](ORDA/ordaClasses.md) du projet sont disponibles. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md index 96773d5e03c84a..98188595845545 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* chemin relatif vers le fichier du formulaire */ - Pour `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` et `verticalLineStroke`, trois syntaxes sont prises en charge : - Nom la couleur CSS : `fill: red;` - - Valeur hexadécimale : `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - fonction `rgb()` : `fill:rgb(255,0,0)` - Si une chaîne utilise des caractères interdits en CSS, vous pouvez l'entourer de guillemets simples ou doubles. Par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md b/i18n/fr/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md index 45624873e8c774..ec0e0e3a72b5de 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md @@ -150,19 +150,19 @@ Placer des groupes dans d’autres groupes permet de créer une hiérarchie d’ Pour supprimer un utilisateur ou un groupe d’un autre groupe, il suffit de désélectionner l’option correspondante dans la liste des membres. -### Affecter un groupe à un plug-in ou à un serveur +### Assigning a license to a group -Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. Les plug-ins comprennent tous les plug-ins de 4D ainsi que tout plug-in développés par une société tierce. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Répartir les accès aux plug-ins vous permet de contrôler l’utilisation des licences dont vous disposez pour ces plug-ins. Tout utilisateur n’appartenant pas au groupe d’accès à un plug-in ne pourra pas charger ce plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Les licences utilisées demeurent associées aux comptes utilisateurs 4D dans le groupe, durant toute la session 4D. -La zone “Plug-ins” de la page Groupes de la boîte à outils liste tous les plug-ins chargés par l’application 4D. Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Les lignes **4D Client Web Server** et **4D Client SOAP Server** permettent contrôler la possibilité de publication Web et SOAP (Web Services) de chaque 4D en mode distant. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. ### Un schéma d’accès hiérarchique 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 c8111ef6185ed2..0e442205dfead5 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 @@ -32,7 +32,7 @@ La façon la plus simple d'installer 4D View Pro dans un projet ouvert est d'uti Une fois le projet redémarré, le composant 4D View Pro est installé en tant que [dépendance Github] (../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro nécessite une licence. Vous devez activer cette licence dans votre application afin d'utiliser ses fonctionnalités. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : +4D View Pro nécessite une licence. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md index a34ed0acb69799..ae3d1dd4a57e33 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md @@ -284,7 +284,7 @@ icon: url("edit.png"); /* chemin relatif vers le fichier du formulaire */ * Pour `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` et `verticalLineStroke`, trois syntaxes sont prises en charge : * Nom la couleur CSS : `fill: red;` - * Valeur hexadécimale : `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * fonction `rgb()` : `fill:rgb(255,0,0)` * Si une chaîne utilise des caractères interdits en CSS, vous pouvez l'entourer de guillemets simples ou doubles. Par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md index eba03b392471ff..5f3342b9c535da 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md @@ -138,15 +138,15 @@ Placer des groupes dans d’autres groupes permet de créer une hiérarchie d’ Pour supprimer un utilisateur ou un groupe d’un autre groupe, il suffit de désélectionner l’option correspondante dans la liste des membres. -### Affecter un groupe à un plug-in ou à un serveur +### Assigning a license to a group -Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. Les plug-ins comprennent tous les plug-ins de 4D ainsi que tout plug-in développés par une société tierce. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Répartir les accès aux plug-ins vous permet de contrôler l’utilisation des licences dont vous disposez pour ces plug-ins. Tout utilisateur n’appartenant pas au groupe d’accès à un plug-in ne pourra pas charger ce plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Les licences utilisées demeurent associées aux comptes utilisateurs 4D dans le groupe, durant toute la session 4D. -La zone “Plug-ins” de la page Groupes de la boîte à outils liste tous les plug-ins chargés par l’application 4D. Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md index b815c0802d98e3..2b29a2f850056a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md @@ -24,7 +24,7 @@ L'intégration de zones 4D View Pro dans vos formulaires vous permet d'importer Les fonctionnalités de 4D View Pro sont directement inclues dans 4D, ce qui en facilite le déploiement et la gestion. Aucune installation supplémentaire n'est nécessaire. -Cependant, 4D View Pro nécessite une licence. Vous devez activer cette licence dans votre application afin d'utiliser ses fonctionnalités. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : +Cependant, 4D View Pro nécessite une licence. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/API/IMAPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/API/IMAPTransporterClass.md index 7edaa2fdaa55c1..84bf1f24094f44 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/API/IMAPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/API/IMAPTransporterClass.md @@ -1634,14 +1634,14 @@ searchCriteria = HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE A noter que dans les deux derniers exemples, le résultat de la recherche est différent lorsque vous enlevez les parenthèses de la première liste de mots-clés. -- Le paramètre *searchCriteria* peut inclure optionnellement l'instruction \[CHARSET]. Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). +- Le paramètre *searchCriteria* peut inclure optionnellement l'instruction \[CHARSET]. Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Elle indique le codage de caractères utilisé dans la chaine *searchCriteria*. Par conséquent, vous devez convertir la chaîne *searchCriteria* dans le jeu de caractères spécifié si vous utilisez l'instruction \[CHARSET] (voir les commandes `CONVERT FROM TEXT` ou `Convert to text`). Par défaut, 4D encode la chaîne de critères searchCriteria en "Quotable Printable" si elle contient des caractères étendus. ``` searchCriteria = CHARSET "ISO-8859" BODY "Help" ``` -... La fonction `.searchMails()` recherche les messages qui correspondent aux critères de recherche *searchCriteria* dans la boîte aux lettres courante. +... signifie que le critère de recherche utilise le jeu de caractères iso-8859 et que le serveur devra convertir la chaîne avant la recherche, si nécessaire. #### Mots-clés de recherche autorisés @@ -1650,8 +1650,7 @@ Les mots-clés de recherche peuvent traiter des valeurs des types suivants : - **Valeurs de type date** : Les valeurs de type date sont placées dans des chaînes formatées de la manière suivante : *date-day+"-"+date-month+"-"+date-year* où date-day indique la date du jour dans le mois (2 caractères maxi), date-month indique le mois (Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Dec) et date-year indique l’année sur 4 chiffres. Exemple : `searchCriteria = SENTBEFORE 1-Feb-2020` (il n’est généralement pas nécessaire de mettre une date entre guillemets puisqu’elle ne contient pas de caractères spéciaux) -- \*\*Valeurs de type chaîne - \*\* : Les valeurs de type chaîne peuvent contenir tout type de caractère et doivent être placées entre des guillemets. Toutefois, si la chaîne ne contient pas de caractères spéciaux (des espaces par exemple), les guillemets ne sont pas obligatoires. Dans tous les cas, les guillemets vous permettent de vous assurer que la chaîne sera correctement interprétée. +- **Valeurs de type chaîne** : Les valeurs de type chaîne peuvent contenir tout type de caractère et doivent être placées entre des guillemets. Toutefois, si la chaîne ne contient pas de caractères spéciaux (des espaces par exemple), les guillemets ne sont pas obligatoires. Dans tous les cas, les guillemets vous permettent de vous assurer que la chaîne sera correctement interprétée. Exemple : `searchCriteria = FROM "SMITH"` Pour toutes les clés de recherche qui utilisent des chaînes, un message correspond à la clé si la chaîne est une sous-chaîne du champ. La recherche ne tient pas compte de la casse des caractères. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md index c5d43353432527..9d672c85f19891 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md @@ -752,7 +752,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md index 8785052a19ba4c..3bdca6723953da 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md @@ -18,15 +18,15 @@ Les licences de développement sont nécessaires pour accéder à l'environnemen Les licences de déploiement peuvent être intégrées à l'étape de construction par le développeur ou saisies lors du premier lancement par l'utilisateur final, comme décrit dans le tableau suivant : -| Licence de déploiement | Description | Où la saisir | -| ------------------------ | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Unlimited Desktop* | **Non maintenu** - Licence personnalisée intégrée | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Desktop* | Licence par utilisateur, lui permettant d'utiliser des applications 4D autonomes | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | -| *4D Desktop Business* | Licence personnalisée intégrée pour les applications 4D autonomes | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Server OEM* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D XML Keys Activation* | Utilisée pour activer les licences 4D Server OEM en mode d'intégration non automatique | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Server* | Licence par utilisateur, lui permettant d'utiliser 4D Server et des postes clients | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| Licence de déploiement | Description | Où la saisir | +| ----------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| *4D Server* | Licence par utilisateur, lui permettant d'utiliser 4D Server et des postes clients | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| *4D Desktop* | Licence par ordinateur, permettant d'utiliser des applications 4D autonomes | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| *4D Desktop Business Edition* | Licence personnalisée intégrée pour les applications 4D autonomes | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D Server OEM* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D OEM Desktop* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D XML Keys Activation* | Utilisée pour activer les licences 4D Server OEM en mode d'intégration non automatique | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D Unlimited Desktop* | **Non maintenu** - Licence personnalisée intégrée | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | ### Expiration diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/classes.md index f56fe15fa3248a..351d2c6a76864e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/classes.md @@ -67,7 +67,7 @@ Les classes disponibles sont accessibles depuis leurs class stores. Il existe de -La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. Elle retourne toutes les classes utilisateur [définies](../Project/code-overview.md#creating-classes) dans le projet ou le composant ouvert. +La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. Elle retourne toutes les classes utilisateur [définies](../Project/code-overview.md#creating-classes) dans le projet ou le composant ouvert. Par défaut, seules les [classes ORDA](ORDA/ordaClasses.md) du projet sont disponibles. #### Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md index ec7ec0d2536895..401838ae93cc49 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* chemin relatif vers le fichier du formulaire */ - Pour `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` et `verticalLineStroke`, trois syntaxes sont prises en charge : - Nom la couleur CSS : `fill: red;` - - Valeur hexadécimale : `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - fonction `rgb()` : `fill:rgb(255,0,0)` - Si une chaîne utilise des caractères interdits en CSS, vous pouvez l'entourer de guillemets simples ou doubles. Par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md index 93f711f4c24702..ac9b7062d12873 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md @@ -211,7 +211,7 @@ Le [media query CSS **form-theme**](./createStylesheet.md#media-queries) vous pe Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez prêter attention aux points suivants : -- La commande [`FORM theme`](../commands/form-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. +- La commande [`FORM theme`](../commands/form-theme) renvoie le thème d'affichage réel du formulaire courant. Possible values: "Classic", "FluentUI" or "LiquidGlass". - La commande [`Application info`](../commands/application-info) vous permet de savoir si Fluent UI peut être utilisé (propriété `canUseFluentUI`) ou est utilisé (propriété `useFluentUI`). - Si [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) avec le paramètre *itemStyle* `Underline` n'est pas pris en charge (ignoré) pour les menus pop up. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md index 99457a7f83759b..b5553997b340f3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md @@ -77,7 +77,7 @@ Lisez [**Les nouveautés de 4D 21 R2**](https://blog.4d.com/fr-whats-new-in-4d-2 | 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.18.0 | 21 | Utilisé pour QUIC | -| OpenSSL | 3.5.2 | 21 | | +| OpenSSL | 3.5.7 | 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) | | SpreadJS | 18.2.0 | 21 R2 | Voir [ce blog post](https://blog.4d.com/4d-view-pro-whats-new-in-4d-21-r2/) pour un aperçu des nouvelles fonctionnalités. | | webKit | WKWebView | 19 | | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md index 45624873e8c774..ec0e0e3a72b5de 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md @@ -150,19 +150,19 @@ Placer des groupes dans d’autres groupes permet de créer une hiérarchie d’ Pour supprimer un utilisateur ou un groupe d’un autre groupe, il suffit de désélectionner l’option correspondante dans la liste des membres. -### Affecter un groupe à un plug-in ou à un serveur +### Assigning a license to a group -Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. Les plug-ins comprennent tous les plug-ins de 4D ainsi que tout plug-in développés par une société tierce. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Répartir les accès aux plug-ins vous permet de contrôler l’utilisation des licences dont vous disposez pour ces plug-ins. Tout utilisateur n’appartenant pas au groupe d’accès à un plug-in ne pourra pas charger ce plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Les licences utilisées demeurent associées aux comptes utilisateurs 4D dans le groupe, durant toute la session 4D. -La zone “Plug-ins” de la page Groupes de la boîte à outils liste tous les plug-ins chargés par l’application 4D. Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Les lignes **4D Client Web Server** et **4D Client SOAP Server** permettent contrôler la possibilité de publication Web et SOAP (Web Services) de chaque 4D en mode distant. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. ### Un schéma d’accès hiérarchique diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md index c8111ef6185ed2..0e442205dfead5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md @@ -32,7 +32,7 @@ La façon la plus simple d'installer 4D View Pro dans un projet ouvert est d'uti Une fois le projet redémarré, le composant 4D View Pro est installé en tant que [dépendance Github] (../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro nécessite une licence. Vous devez activer cette licence dans votre application afin d'utiliser ses fonctionnalités. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : +4D View Pro nécessite une licence. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/IMAPTransporterClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/IMAPTransporterClass.md index 0d78da486580ce..57d21497732143 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/IMAPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/IMAPTransporterClass.md @@ -1638,14 +1638,14 @@ searchCriteria = HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE A noter que dans les deux derniers exemples, le résultat de la recherche est différent lorsque vous enlevez les parenthèses de la première liste de mots-clés. -- Le paramètre *searchCriteria* peut inclure optionnellement l'instruction \[CHARSET]. Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). +- Le paramètre *searchCriteria* peut inclure optionnellement l'instruction \[CHARSET]. Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Elle indique le codage de caractères utilisé dans la chaine *searchCriteria*. Par conséquent, vous devez convertir la chaîne *searchCriteria* dans le jeu de caractères spécifié si vous utilisez l'instruction \[CHARSET] (voir les commandes `CONVERT FROM TEXT` ou `Convert to text`). Par défaut, 4D encode la chaîne de critères searchCriteria en "Quotable Printable" si elle contient des caractères étendus. ``` searchCriteria = CHARSET "ISO-8859" BODY "Help" ``` -... La fonction `.searchMails()` recherche les messages qui correspondent aux critères de recherche *searchCriteria* dans la boîte aux lettres courante. +... signifie que le critère de recherche utilise le jeu de caractères iso-8859 et que le serveur devra convertir la chaîne avant la recherche, si nécessaire. #### Mots-clés de recherche autorisés @@ -1654,8 +1654,7 @@ Les mots-clés de recherche peuvent traiter des valeurs des types suivants : - **Valeurs de type date** : Les valeurs de type date sont placées dans des chaînes formatées de la manière suivante : *date-day+"-"+date-month+"-"+date-year* où date-day indique la date du jour dans le mois (2 caractères maxi), date-month indique le mois (Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Dec) et date-year indique l’année sur 4 chiffres. Exemple : `searchCriteria = SENTBEFORE 1-Feb-2020` (il n’est généralement pas nécessaire de mettre une date entre guillemets puisqu’elle ne contient pas de caractères spéciaux) -- \*\*Valeurs de type chaîne - \*\* : Les valeurs de type chaîne peuvent contenir tout type de caractère et doivent être placées entre des guillemets. Toutefois, si la chaîne ne contient pas de caractères spéciaux (des espaces par exemple), les guillemets ne sont pas obligatoires. Dans tous les cas, les guillemets vous permettent de vous assurer que la chaîne sera correctement interprétée. +- **Valeurs de type chaîne** : Les valeurs de type chaîne peuvent contenir tout type de caractère et doivent être placées entre des guillemets. Toutefois, si la chaîne ne contient pas de caractères spéciaux (des espaces par exemple), les guillemets ne sont pas obligatoires. Dans tous les cas, les guillemets vous permettent de vous assurer que la chaîne sera correctement interprétée. Exemple : `searchCriteria = FROM "SMITH"` Pour toutes les clés de recherche qui utilisent des chaînes, un message correspond à la clé si la chaîne est une sous-chaîne du champ. La recherche ne tient pas compte de la casse des caractères. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md index 6d0d3f4201818a..e222ecfb3aa304 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md @@ -21,10 +21,10 @@ Les objets 4D.QuotaManager exposent les propriétés suivantes : | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [](#currentvalues)
| +| [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| -| [](#nbentitysets)
| +| [](#nbentitysets)
| @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### Description -La propriété `.nbEntitySets` contient le nombre maximal d'entity sets REST autorisés en mémoire pour la session courante (en secondes). +The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. Par défaut, il n'y a pas de limite pour les entity sets [stockés en mémoire par les requêtes REST](../REST/$info.md) (la valeur est 0). Vous pouvez définir une limite afin de contrôler la charge utile du serveur pour une session spécifique. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md index ea99b76ec2d588..b9151450e94b1a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md @@ -809,7 +809,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md index 8785052a19ba4c..3bdca6723953da 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md @@ -18,15 +18,15 @@ Les licences de développement sont nécessaires pour accéder à l'environnemen Les licences de déploiement peuvent être intégrées à l'étape de construction par le développeur ou saisies lors du premier lancement par l'utilisateur final, comme décrit dans le tableau suivant : -| Licence de déploiement | Description | Où la saisir | -| ------------------------ | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Unlimited Desktop* | **Non maintenu** - Licence personnalisée intégrée | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Desktop* | Licence par utilisateur, lui permettant d'utiliser des applications 4D autonomes | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | -| *4D Desktop Business* | Licence personnalisée intégrée pour les applications 4D autonomes | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Server OEM* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D XML Keys Activation* | Utilisée pour activer les licences 4D Server OEM en mode d'intégration non automatique | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Server* | Licence par utilisateur, lui permettant d'utiliser 4D Server et des postes clients | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| Licence de déploiement | Description | Où la saisir | +| ----------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| *4D Server* | Licence par utilisateur, lui permettant d'utiliser 4D Server et des postes clients | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| *4D Desktop* | Licence par ordinateur, permettant d'utiliser des applications 4D autonomes | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| *4D Desktop Business Edition* | Licence personnalisée intégrée pour les applications 4D autonomes | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D Server OEM* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D OEM Desktop* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D XML Keys Activation* | Utilisée pour activer les licences 4D Server OEM en mode d'intégration non automatique | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D Unlimited Desktop* | **Non maintenu** - Licence personnalisée intégrée | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | ### Expiration diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md index ec7ec0d2536895..401838ae93cc49 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* chemin relatif vers le fichier du formulaire */ - Pour `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` et `verticalLineStroke`, trois syntaxes sont prises en charge : - Nom la couleur CSS : `fill: red;` - - Valeur hexadécimale : `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - fonction `rgb()` : `fill:rgb(255,0,0)` - Si une chaîne utilise des caractères interdits en CSS, vous pouvez l'entourer de guillemets simples ou doubles. Par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md index a62b0ab1a1d46e..6f94030ecdd26c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md @@ -337,7 +337,7 @@ Le [media query CSS **form-theme**](./createStylesheet.md#media-queries) vous pe Lorsque vous utilisez les formulaires 4D avec le rendu Fluent UI, vous devez prêter attention aux points suivants : -- La commande [`FORM theme`](../commands/form-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. +- La commande [`FORM theme`](../commands/form-theme) renvoie le thème d'affichage réel du formulaire courant. Possible values: "Classic", "FluentUI" or "LiquidGlass". - La commande [`Application info`](../commands/application-info) vous permet de savoir si Fluent UI peut être utilisé (propriété `canUseFluentUI`) ou est utilisé (propriété `useFluentUI`). - Si [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) avec le paramètre *itemStyle* `Underline` n'est pas pris en charge (ignoré) pour les menus pop up. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md index 45624873e8c774..ec0e0e3a72b5de 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md @@ -150,19 +150,19 @@ Placer des groupes dans d’autres groupes permet de créer une hiérarchie d’ Pour supprimer un utilisateur ou un groupe d’un autre groupe, il suffit de désélectionner l’option correspondante dans la liste des membres. -### Affecter un groupe à un plug-in ou à un serveur +### Assigning a license to a group -Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. Les plug-ins comprennent tous les plug-ins de 4D ainsi que tout plug-in développés par une société tierce. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Répartir les accès aux plug-ins vous permet de contrôler l’utilisation des licences dont vous disposez pour ces plug-ins. Tout utilisateur n’appartenant pas au groupe d’accès à un plug-in ne pourra pas charger ce plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Les licences utilisées demeurent associées aux comptes utilisateurs 4D dans le groupe, durant toute la session 4D. -La zone “Plug-ins” de la page Groupes de la boîte à outils liste tous les plug-ins chargés par l’application 4D. Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Les lignes **4D Client Web Server** et **4D Client SOAP Server** permettent contrôler la possibilité de publication Web et SOAP (Web Services) de chaque 4D en mode distant. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. ### Un schéma d’accès hiérarchique diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md index c8111ef6185ed2..0e442205dfead5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md @@ -32,7 +32,7 @@ La façon la plus simple d'installer 4D View Pro dans un projet ouvert est d'uti Une fois le projet redémarré, le composant 4D View Pro est installé en tant que [dépendance Github] (../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro nécessite une licence. Vous devez activer cette licence dans votre application afin d'utiliser ses fonctionnalités. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : +4D View Pro nécessite une licence. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : ![](../assets/en/ViewPro/licenseError.png) 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 c529bc3053cd82..5daa15fa6cc020 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 @@ -1619,14 +1619,14 @@ searchCriteria = HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE A noter que dans les deux derniers exemples, le résultat de la recherche est différent lorsque vous enlevez les parenthèses de la première liste de mots-clés. -- Le paramètre *searchCriteria* peut inclure optionnellement l'instruction \[CHARSET]. Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). +- Le paramètre *searchCriteria* peut inclure optionnellement l'instruction \[CHARSET]. Cette instruction est composée du mot "CHARSET" suivi d'un jeu de caractères défini \[CHARSET] (US ASCII, ISO-8859). Elle indique le codage de caractères utilisé dans la chaine *searchCriteria*. Par conséquent, vous devez convertir la chaîne *searchCriteria* dans le jeu de caractères spécifié si vous utilisez l'instruction \[CHARSET] (voir les commandes `CONVERT FROM TEXT` ou `Convert to text`). Par défaut, 4D encode la chaîne de critères searchCriteria en "Quotable Printable" si elle contient des caractères étendus. ``` searchCriteria = CHARSET "ISO-8859" BODY "Help" ``` -... La fonction `.searchMails()` recherche les messages qui correspondent aux critères de recherche *searchCriteria* dans la boîte aux lettres courante. +... signifie que le critère de recherche utilise le jeu de caractères iso-8859 et que le serveur devra convertir la chaîne avant la recherche, si nécessaire. #### Mots-clés de recherche autorisés @@ -1635,8 +1635,7 @@ Les mots-clés de recherche peuvent traiter des valeurs des types suivants : - **Valeurs de type date** : Les valeurs de type date sont placées dans des chaînes formatées de la manière suivante : *date-day+"-"+date-month+"-"+date-year* où date-day indique la date du jour dans le mois (2 caractères maxi), date-month indique le mois (Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Dec) et date-year indique l’année sur 4 chiffres. Exemple : `searchCriteria = SENTBEFORE 1-Feb-2020` (il n’est généralement pas nécessaire de mettre une date entre guillemets puisqu’elle ne contient pas de caractères spéciaux) -- \*\*Valeurs de type chaîne - \*\* : Les valeurs de type chaîne peuvent contenir tout type de caractère et doivent être placées entre des guillemets. Toutefois, si la chaîne ne contient pas de caractères spéciaux (des espaces par exemple), les guillemets ne sont pas obligatoires. Dans tous les cas, les guillemets vous permettent de vous assurer que la chaîne sera correctement interprétée. +- **Valeurs de type chaîne** : Les valeurs de type chaîne peuvent contenir tout type de caractère et doivent être placées entre des guillemets. Toutefois, si la chaîne ne contient pas de caractères spéciaux (des espaces par exemple), les guillemets ne sont pas obligatoires. Dans tous les cas, les guillemets vous permettent de vous assurer que la chaîne sera correctement interprétée. Exemple : `searchCriteria = FROM "SMITH"` Pour toutes les clés de recherche qui utilisent des chaînes, un message correspond à la clé si la chaîne est une sous-chaîne du champ. La recherche ne tient pas compte de la casse des caractères. 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 bb29cb3c13ee92..a56b4b618edcc8 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 @@ -748,7 +748,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Admin/licenses.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Admin/licenses.md index 8785052a19ba4c..3bdca6723953da 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Admin/licenses.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Admin/licenses.md @@ -18,15 +18,15 @@ Les licences de développement sont nécessaires pour accéder à l'environnemen Les licences de déploiement peuvent être intégrées à l'étape de construction par le développeur ou saisies lors du premier lancement par l'utilisateur final, comme décrit dans le tableau suivant : -| Licence de déploiement | Description | Où la saisir | -| ------------------------ | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Unlimited Desktop* | **Non maintenu** - Licence personnalisée intégrée | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Desktop* | Licence par utilisateur, lui permettant d'utiliser des applications 4D autonomes | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | -| *4D Desktop Business* | Licence personnalisée intégrée pour les applications 4D autonomes | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Server OEM* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D XML Keys Activation* | Utilisée pour activer les licences 4D Server OEM en mode d'intégration non automatique | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | -| *4D Server* | Licence par utilisateur, lui permettant d'utiliser 4D Server et des postes clients | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| Licence de déploiement | Description | Où la saisir | +| ----------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| *4D Server* | Licence par utilisateur, lui permettant d'utiliser 4D Server et des postes clients | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| *4D Desktop* | Licence par ordinateur, permettant d'utiliser des applications 4D autonomes | Boîte de dialogue [Première activation](#first-activation) sur la machine de l'utilisateur | +| *4D Desktop Business Edition* | Licence personnalisée intégrée pour les applications 4D autonomes | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D Server OEM* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D OEM Desktop* | Licence personnalisée intégrée, contactez le service commercial de 4D pour plus d'informations | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D XML Keys Activation* | Utilisée pour activer les licences 4D Server OEM en mode d'intégration non automatique | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | +| *4D Unlimited Desktop* | **Non maintenu** - Licence personnalisée intégrée | [Page des licences](../Desktop/building.md#licenses) de la boîte de dialogue du Générateur d'application | ### Expiration 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 7171f3d0cf426d..2e9ec748fb9d69 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 @@ -116,7 +116,7 @@ Les classes disponibles sont accessibles depuis leurs class stores. Il existe de -La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. Elle retourne toutes les classes utilisateur [définies](../Project/code-overview.md#creating-classes) dans le projet ou le composant ouvert. +La commande `cs` retourne le class store utilisateur pour le projet ou le composant courant. Elle retourne toutes les classes utilisateur [définies](#class-definition) dans le projet ou le composant ouvert. Par défaut, seules les [classes ORDA](ORDA/ordaClasses.md) du projet sont disponibles. #### Exemple 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..291ee26e3ca269 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 @@ -284,7 +284,7 @@ icon: url("edit.png"); /* chemin relatif vers le fichier du formulaire */ - Pour `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` et `verticalLineStroke`, trois syntaxes sont prises en charge : - Nom la couleur CSS : `fill: red;` - - Valeur hexadécimale : `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - fonction `rgb()` : `fill:rgb(255,0,0)` - Si une chaîne utilise des caractères interdits en CSS, vous pouvez l'entourer de guillemets simples ou doubles. Par exemple : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md index 345261b3ed7fe9..c885d7b0ab60cb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md @@ -150,19 +150,19 @@ Placer des groupes dans d’autres groupes permet de créer une hiérarchie d’ Pour supprimer un utilisateur ou un groupe d’un autre groupe, il suffit de désélectionner l’option correspondante dans la liste des membres. -### Affecter un groupe à un plug-in ou à un serveur +### Assigning a license to a group -Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. Les plug-ins comprennent tous les plug-ins de 4D ainsi que tout plug-in développés par une société tierce. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Répartir les accès aux plug-ins vous permet de contrôler l’utilisation des licences dont vous disposez pour ces plug-ins. Tout utilisateur n’appartenant pas au groupe d’accès à un plug-in ne pourra pas charger ce plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Les licences utilisées demeurent associées aux comptes utilisateurs 4D dans le groupe, durant toute la session 4D. -La zone “Plug-ins” de la page Groupes de la boîte à outils liste tous les plug-ins chargés par l’application 4D. Pour affecter un groupe à un plug-in, il suffit de cocher l’option correspondante. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Les lignes **4D Client Web Server** et **4D Client SOAP Server** permettent contrôler la possibilité de publication Web et SOAP (Web Services) de chaque 4D en mode distant. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. ### Un schéma d’accès hiérarchique 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 ab82f98dba7f71..7d0ba1492c3c54 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 @@ -32,7 +32,7 @@ La façon la plus simple d'installer 4D View Pro dans un projet ouvert est d'uti Une fois le projet redémarré, le composant 4D View Pro est installé en tant que [dépendance Github] (../Project/components.md#adding-a-github-dependency). -4D View Pro nécessite une licence. Vous devez activer cette licence dans votre application afin d'utiliser ses fonctionnalités. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : +4D View Pro nécessite une licence. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Lorsque vous utilisez ce composant sans licence, le contenu d'un objet nécessitant une fonctionnalité 4D View Pro ne s'affiche pas au moment de l'exécution; au lieu de cela, un message d'erreur : ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md index 169be635aa7edf..c58fee2b340819 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md @@ -90,4 +90,4 @@ var $parsedMessage : Object:=HTTP Parse message($message) | | | | ------------------ | ---- | | Numéro de commande | 1824 | -| Thread safe | non | +| Thread safe | oui | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md index 9ad67a520a2830..f237aee1370d4e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md @@ -412,7 +412,7 @@ RSA キーのみ: キーのサイズ (ビッ **.type** : Text -キーのタイプ: "RSA", "ECDSA", "PEM"。 +キーのタイプ: "RSA", "ECDSA", "PEM"。 - "RSA": `settings.size` に指定されたサイズを [.size](#size) として使った、RSA キーペア - "ECDSA": `settings.curve` に指定された曲線を [.curve](#curve) として用いた、楕円曲線デジタル署名アルゴリズム (Elliptic Curve Digital Signature Algorithm) キーペア。 ECDSA キーは署名だけに使用されるもので、暗号化には使用できないことに留意してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/FunctionClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/FunctionClass.md index 42dfbdb02324f2..ef10ad6f8e2fa7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/FunctionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/FunctionClass.md @@ -129,7 +129,7 @@ $f:={message: $message} #### 説明 -`.call()` 関数は、対象の function オブジェクトを、一つまたはそれ以上の引数を直接渡して実行し、その結果の値を返します。 +`.call()` 関数は、対象の function オブジェクトを、一つまたはそれ以上の引数を直接渡して実行し、その結果の値を返します。 *thisObj* には、関数内で `This` として使用されるオブジェクトへの参照を渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index b3b9802f24daa1..31089e6ab0c8d9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -21,7 +21,7 @@ title: QuotaManager | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [](#currentvalues)
| +| [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| | [](#nbentitysets)
| 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 797b585f16a185..e546981e69b35a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebServerClass.md @@ -170,7 +170,7 @@ The HTTPリクエストログファ **.defaultHomepage** : Text -デフォルトのホームページの名称 または、カスタムのホームページを送信しない場合は ""。 +デフォルトのホームページの名称 または、カスタムのホームページを送信しない場合は ""。 @@ -210,7 +210,7 @@ The HTTPリクエストログファ **.HSTSMaxAge** : Integer -新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位)。 この情報はクライアント側で指定された時間のあいだ保存されます。 この情報はクライアント側で指定された時間のあいだ保存されます。 +新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位)。 この情報はクライアント側で指定された時間のあいだ保存されます。 デフォルト値: 63072000 (2年)。 @@ -261,7 +261,7 @@ The HTTPリクエストログファ **.HTTPPort** : Integer -HTTP のリッスンIPポート番号。 +HTTP のリッスンIPポート番号。 デフォルト = 80 @@ -293,7 +293,7 @@ HTTP のリッスンIPポート番号。 **.HTTPSPort** : Integer -HTTPS のリッスンIPポート番号。 +HTTPS のリッスンIPポート番号。 デフォルト = 443 @@ -355,7 +355,7 @@ HTTPS のリッスンIPポート番号。 **.keepSession** : Boolean -Webサーバーで旧式セッションが有効されている場合に `true`、それ以外は `false`。 +Webサーバーで旧式セッションが有効されている場合に `true`、それ以外は `false`。 ##### 参照 @@ -369,7 +369,7 @@ Webサーバーで旧式セッションが有効されている場合に `true` **.logRecording** : Integer -リクエストログ (logweb.txt) の記録オプション値。 +リクエストログ (logweb.txt) の記録オプション値。 - 0 = 記録しない (デフォルト) - 1 = CLF形式で記録する @@ -456,7 +456,7 @@ Webサーバーで旧式セッションが有効されている場合に `true` *読み取り専用プロパティ* -使用されている OpenSSLライブラリのバージョン。 +使用されている OpenSSLライブラリのバージョン。 @@ -508,7 +508,7 @@ Webサーバーで旧式セッションが有効されている場合に `true` **.scalableSession** : Boolean -Webサーバーがスケーラブルセッションを使用している場合に `true`、それ以外は `false`。 +Webサーバーがスケーラブルセッションを使用している場合に `true`、それ以外は `false`。 ##### 参照 @@ -532,7 +532,7 @@ Webサーバーがスケーラブルセッションを使用している場合 **.sessionCookieName** : Text -セッションID の保存に使用されるセッションcookie の名称。 +セッションID の保存に使用されるセッションcookie の名称。 *読み取り専用プロパティ* @@ -562,7 +562,7 @@ Webサーバーがスケーラブルセッションを使用している場合 **.sessionCookieSameSite** : Text -セッションcookie の "SameSite" 属性の値。 とりうる値 (定数使用): とりうる値 (定数使用): +セッションcookie の "SameSite" 属性の値。 とりうる値 (定数使用): | 定数 | 値 | 説明 | | ------------------- | -------- | --------------------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md index 47f765884435b6..2e2cb348edbadd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md @@ -3,7 +3,7 @@ id: mirror title: 論理ミラー --- -4D Server では論理ミラーを使⽤したバックアップシステムの設定を可能とする統合されたソリューションを提供します。 このソリューションは2つのコマンドに基づいています: [`New log file`](../commands/new-log-file) よび [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file) です。 +4D Server では論理ミラーを使⽤したバックアップシステムの設定を可能とする統合されたソリューションを提供します。 ## 論理ミラーとは @@ -27,7 +27,7 @@ title: 論理ミラー ## 動作 -論理ミラーを使⽤したバックアップシステムの設定は、2つの新しいコマンド [`New log file`](../commands/new-log-file) および [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file) を使⽤して⾏います。 +Setting up a backup system using a logical mirror is based on two commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). 以下のような原則が実装されています: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md index 96c443e0e6c0d0..02b36a0b581c51 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: - CSS カラーネーム: `fill: red;` - - 16進数カラーコード: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - `rgb()` 関数: `fill:rgb(255,0,0)` - CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md index d62515da804154..dd3b0103baf00e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md @@ -149,19 +149,19 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### プラグインやサーバーにグループを割り当てる +### Assigning a license to a group -プロジェクトにインストールされたプラグインへのアクセス権をグループに割り当てることができます。 これには 4D のプラグインと任意のサードパーティープラグインが含まれます。 +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -プラグインへのアクセス権を割り当てると、所有するプラグインライセンスの使用を管理できるようになります。 プラグインのアクセスグループに属さないユーザーは、そのプラグインをロードすることができません。 +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -ツールボックスのグループページにある "プラグイン" エリアには、4Dアプリケーションによりロードされたプラグインがすべて表示されます。 プラグインへのアクセス権をグループに与えるには、該当するオプションをチェックします。 +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -**4D Client Web Server** や **4D Client SOAP Server** 項目を使用し、リモートモードの 4D がそれぞれ Web および SOAP (Webサービス) 公開をおこなえるかどうかを管理することができます。 これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 ### アクセス権の階層構造 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 c1fca2885a8013..d4e900268a6ac7 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 @@ -33,7 +33,7 @@ title: はじめに プロジェクトを再起動すると、4D View Pro コンポーネントは[Github 依存関係](../Project/components.md#githubまたはgitlab依存関係を追加する)としてインストールされます。 -4D View Pro はライセンスを必要とします。 これらの機能を使用するには、アプリケーションにおいて当該ライセンスを有効化しておく必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/command-index.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/command-index.md index 89123b8a806990..345e1450551ba9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/command-index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/command-index.md @@ -66,12 +66,12 @@ title: 4D View Pro コマンド I -[`WP Import document`](../commands/wp-import-document) ***Modified 4D 20 R8***
+[`WP Import document`](../commands/wp-import-document) ***4D 20 R8 で変更***
[`WP IMPORT STYLE SHEETS`](../commands/wp-import-style-sheets)
-[`WP INSERT BREAK`](../commands/wp-insert-break) ***Modified 4D 20 R8***
-[`WP Insert document body`](../commands/wp-insert-document-body) ***Modified 4D 20 R8***
-[`WP Insert formula`](../commands/wp-insert-formula) ***Modified 4D 20 R8***
-[`WP INSERT PICTURE`](../commands/wp-insert-picture) ***Modified 4D 20 R8***
+[`WP INSERT BREAK`](../commands/wp-insert-break) ***4D 20 R8 で変更***
+[`WP Insert document body`](../commands/wp-insert-document-body) ***4D 20 R8 で変更***
+[`WP Insert formula`](../commands/wp-insert-formula) ***4D 20 R8 で変更***
+[`WP INSERT PICTURE`](../commands/wp-insert-picture) ***4D 20 R8 で変更***
[`WP Insert table`](../commands/wp-insert-table)
[`WP Is font style supported`](../commands/wp-is-font-style-supported) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-add-picture.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-add-picture.md index d5542beb9718ae..49dae152a0cd38 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-add-picture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-add-picture.md @@ -47,7 +47,7 @@ displayed_sidebar: docs - ペーパーボックスの左上隅に表示 - 全てのページに表示 -The location, layer (inline, in front/behind text), visibility, and any properties of picture can be modified using the [WP SET ATTRIBUTES](wp-set-attributes.md) command, or via standard actions. +位置、レイヤー(インライン、テキストの前/後)、表示状態、その他ピクチャーのあらゆるプロパティは[WP SET ATTRIBUTES](wp-set-attributes.md) コマンド、または標準アクションを使用して変更することができます。 **注意:** [WP Selection range](../commands/wp-selection-range) コマンドは、アンカーされたピクチャーが選択されていた場合には *ピクチャー参照* を、インラインピクチャーが選択されていた場合には *レンジオブジェクト* を返します。 選択されたオブジェクトがピクチャーオブジェクトであるかどうかは、`wk type` 属性をチェックすることで確認できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user/user-new.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user/user-new.md index 1b31a7d3f10573..9283499bf57c56 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user/user-new.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user/user-new.md @@ -10,22 +10,22 @@ to import ## リスト -4D Write Pro supports flat lists (single-level) and multi-level lists. +4D Write Pro はフラットなリスト(単一レベル) と複数レベルのリストをサポートしています。 -### Single-level lists +### 単一レベルのリスト -4D Write Pro supports two main types of single-level lists: +4D Write Pro は主に2つのタイプの単一レベルのリストをサポートします: -- unordered lists: where list items are marked with bullets, custom bullets, or images used as markers. -- ordered lists: where list items are marked with numbers or letters +- 順番なしリスト: リストの項目は箇条書き記号、カスタムの箇条書き記号、あるいはマーカーとして使用される画像でマークされます。 +- 順番付きリスト: リストの項目は番号または文字でマークされます。 -They can be created using: +これらは以下の方法で作成することができます: -- the toolbar or sidebar of the [4D Write Pro interface](https://doc.4d.com/4Dv20/4D/20.2/Entry-areas.300-6750367.en.html#5865253) -- the `listStyleType` or `listStyleImage` [standard actions](./standard-actions) , -- or [programmatically](../commands-legacy/4d-write-pro-attributes.md#lists) using [WP SET ATTRIBUTE](../commands/wp-set-attributes). +- [4D Write Pro インターフェース](https://doc.4d.com/4Dv20/4D/20.2/Entry-areas.300-6750367.ja.html#5865253) のツールバーまたはサイドバー +- `listStyleType` あるいは `listStyleImage` の[標準アクション](./standard-actions) +- あるいは[WP SET ATTRIBUTE](../commands/wp-set-attributes) コマンドを使用して[プログラムで作成する](../commands-legacy/4d-write-pro-attributes.md#リスト)。 -When a list is created using a standard action (`listStyleType` or `listStyleImage`) or the toolbar/sidebar, 4D Write Pro automatically inserts a margin before the text so that the marker is positioned inside it. The value of the inserted margin corresponds to the offset of the default tab (`wk tab default`). +標準アクション(`listStyleType` あるいは `listStyleImage`) あるいはツールバー/サイドバーを使用してリストが作成された場合、4D Write Pro はマーカーがテキストの内側に表示されるように、自動的にテキストの前に余白を挿入します。 挿入される余白の値は、デフォルトタブのオフセット(`wk tab default`) に対応します。 ![](../../assets/en/WritePro/margin-bullets.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/ai.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/ai.md index c0948050e4ff82..b9cfcb25caa1c7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/ai.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/ai.md @@ -75,7 +75,7 @@ AI プロバイダーを追加するには: :::warning -The *AIProviders.json* file contains your provider API keys. If your project is [stored on a source control repository tool](../Project/overview.md#source-control) such as GitHub or GitLab, make sure the *AIProviders.json* file is [registered in the .gitignore file](../Project/architecture.md#gitignore-file-optional), otherwise **your keys could be publicly exposed**. +*AIProviders.json* ファイルにはあなたのプロバイダーAPI キーが格納されます。 あなたのプロジェクトがGitHub やGitLab などの[ソース管理レポジトリツールに保存されている](../Project/overview.md#ソース管理) 場合、*AIProviders.json* ファイルが[.gitignore ファイル内に登録されている](../Project/architecture.md#gitignore-ファイル-任意) ようにしてください。そうでない場合、**あなたのキーが公開されてしまう可能性があり得ます**。 ::: 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 28db5871802b29..7c006b6a2a61ec 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 @@ -56,11 +56,11 @@ TCPプロトコルを使用して、1台のマシン上で複数の 4Dアプリ #### ドメインサーバーによるユーザーの認証 -このオプションは Windows上の 4D Server データベースにおいて SSO (*Single Sign On*) 機能の実装を可能にします。 このオプションを有効にすると、4D はバックグラウンドで Windows ドメインサーバーの Active Directory に接続し、提供されている認証トークンを取得します。 This option is described in the [Single Sign On (SSO) on Windows](../server/sso.md) page. +このオプションは Windows上の 4D Server データベースにおいて SSO (*Single Sign On*) 機能の実装を可能にします。 このオプションを有効にすると、4D はバックグラウンドで Windows ドメインサーバーの Active Directory に接続し、提供されている認証トークンを取得します。 このオプションの詳細については[Windows でのシングルサインオン(SSO)](../server/sso.md) のページをご参照ください。 #### サービスプリンシパル名 (SPN) -Single Sign On (SSO) が有効になっている場合 (上述参照)、認証プロトコルにケルベロスを使用するには、このフィールドを設定する必要があります。 This option is described in the [Enablig Kerberos](../server/sso.md#enabling-kerberos) section. +Single Sign On (SSO) が有効になっている場合 (上述参照)、認証プロトコルにケルベロスを使用するには、このフィールドを設定する必要があります。 このオプションの詳細については[ケルベロスの有効化](../server/sso.md#ケルベロスの有効化) の章にて説明されています。 #### ネットワークレイヤー @@ -115,17 +115,17 @@ Single Sign On (SSO) が有効になっている場合 (上述参照)、認証 #### Execute On Clientのために起動時にクライアント登録 -このオプションが選択されていると、データベースに接続するすべての 4Dリモートマシン上でメソッドをリモート実行できます。 This mechanism is detailed in the section [Stored procedures on client machines](../Desktop/clientServer.md#stored-procedures-on-client-machines). +このオプションが選択されていると、データベースに接続するすべての 4Dリモートマシン上でメソッドをリモート実行できます。 このメカニズムについては[クライアントマシン上でのストアドプロシージャー](../Desktop/clientServer.md#クライアントマシン上でのストアドプロシージャー)に詳細な説明があります。 #### クライアント-サーバー通信の暗号化 :::note -このオプションは、 [QUIC](#ネットワークレイヤー) ネットワークレイヤーオプションが選択されている場合には利用できません。 QUIC communications are always in TLS, whatever your secured mode is. +このオプションは、 [QUIC](#ネットワークレイヤー) ネットワークレイヤーオプションが選択されている場合には利用できません。 QUIC 通信は、セキュアモードの設定に関わらず常にTLS で行われます。 ::: -This option activates the [secured mode for communications](../Admin/tls.md#enabling-tls-with-the-other-servers) between the server machine and the 4D remote machines with ServerNet netword layer. +このオプションを有効化するとサーバーマシンと4D リモートマシン間でServerNet ネットワークレイヤーを使用している場合に[その通信のセキュアモード](../Admin/tls.md#他のサーバーで-tls-を有効にする) が有効化されます。 #### セッション中に "Resources" フォルダーを更新 @@ -133,7 +133,7 @@ This option activates the [secured mode for communications](../Admin/tls.md#enab - **しない**: ローカルの **Resources** フォルダーはセッション中に更新されません。 サーバーから送信される通知は無視されます。 **ローカルリソースを更新** アクションメニューコマンド [(リソースエクスプローラーを使用する](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.ja.html) 参照) を使用すれば、ローカルの **Resources**フォルダーを手動で更新することができます。 - **常に**: セッション中にサーバーから通知が送信されると、ローカルの **Resources** フォルダーは自動で同期されます。 -- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインターフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 For more information, please refer to the [Managing the Resources folder](../Desktop/clientServer.md#managing-the-resources-folder) section. +- **その都度指定**: サーバーから通知を受け取ると、クライアントマシン上でダイアログボックスが表示されます。 ユーザーはローカルの **Resources** フォルダーの同期を受け入れ、あるいは拒否できます。\ **Resources** フォルダーは、データベースインターフェースで使用されるカスタムファイルを格納しています (翻訳ファイルやピクチャーなど)。 このフォルダーの内容が更新されたときには、自動又は手動メカニズムを使用して各クライアントに通知できます。 詳細な情報については、[Resources フォルダーの管理](../Desktop/clientServer.md#resources-フォルダー) の章を参照してください。 ## IP設定ページ @@ -154,20 +154,20 @@ This option activates the [secured mode for communications](../Admin/tls.md#enab デフォルトでは、4D Server にアクセス制限はありません。 最初の行には \* (すべてのアドレス) に対する許可ルールが設定されています。 -### Support of IPv6 +### IPv6のサポート -4D application server supports IPv6 address notation. Support of IPv6 is transparent for users and 4D developers: 4D Server accepts either IPv6 or IPv4 connections without distinction. The following table lists supported combinations: +4D のアプリケーションサーバーは IPv6 のアドレス表記をサポートします。 IPv6へのサポートはユーザーに対しても4Dデベロッパーに対しても透過的で、IPv6とIPv4を区別することなく4D Server は接続を受け入れます。 以下の表はサポートされる組み合わせをまとめたものです: -| | 4D remote IPv4 only | 4D remote IPv6 only | 4D remote both | -| ------------------- | ------------------- | ------------------- | -------------- | -| 4D Server IPv4 only | IPv4 | *サポートされていません* | IPv4 | -| 4D Server IPv6 only | *サポートされていません* | IPv6 | IPv6 | -| 4D Server both | IPv4 | IPv6 | IPv6 | +| | IPv4 のみの4D リモート | IPv6 のみの4D リモート | 両方を使用する4D リモート | +| ----------------- | --------------- | --------------- | -------------- | +| 4D Server IPv4 のみ | IPv4 | *サポートされていません* | IPv4 | +| 4D Server IPv6 のみ | *サポートされていません* | IPv6 | IPv6 | +| 両方を使用する4D Server | IPv4 | IPv6 | IPv6 | -For detailed information about IPv6, please refer to the [RFC 2460 specification](https://datatracker.ietf.org/doc/html/rfc2460). +IPv6 についての詳細な情報については、[RFC 2460 specification](https://datatracker.ietf.org/doc/html/rfc2460) を参照してください。 :::note 互換性 -IPv6 support is only available with the ServerNet and QUIC [network layers](#network-layer). +IPv6 のサポートについては、ServerNet またはQUIC [ネットワークレイヤー](#ネットワークレイヤー) の場合にのみサポートされます。 ::: 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 352ec6dc096914..f856f64d5bc3f9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/database.md @@ -122,26 +122,26 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 :::note -You can modify temporary the cache flush frequency using the [`Cache flush periodicity` selector of the `SET DATABASE PARAMETER` command](../commands/set-database-parameter#cache-flush-periodicity-95). +[`SET DATABASE PARAMETER` コマンドの`Cache flush periodicity` セレクター](../commands/set-database-parameter#cache-flush-periodicity-95)を使用することで、キャッシュのフラッシュ頻度を一時的に変更することができます。 ::: -### Managing priorities in database cache +### データベースキャッシュの優先度を管理する -The 4D database cache includes an automatic priority management mechanism that provides a high level of efficiency and performance for data access. Thanks to this mechanism, when space is needed to load new data in the cache, low priority cached data are released first, while higher priority cached data remain loaded. +4D データベースキャッシュには、パフォーマンスとデータアクセスにおいて高い効率とパフォーマンスを提供する、自動優先度管理機構が含まれています。 この機構のおかげで、新しいデータをロードするためにキャッシュが必要になったとき、優先度の低いキャッシュデータから先に解放され、優先度の高いキャッシュデータはロードされたままになります。 -This mechanism is fully automatic and usually, you will not have to worry about it. However, for specific cases it can be customized using a [set of dedicated commands from the "Cache Management" theme](../commands/theme/Cache_Management.md), which allow changing the priority of objects for the entire time the database is running, or temporarily for the current process. Note that these commands must be used carefully since they affect database performance. +この機構は完全に自動的であり、通常は何も心配をする必要はありません。 しかしながら特定の場合においては["Cache Management" テーマにある専用のコマンド群](../commands/theme/Cache_Management.md) を使用してこれをカスタマイズすることが可能です。これによってデータベースが実行している間中、あるいはカレントプロセスにおいて一時的にオブジェクトの優先順位を変更することができます。 ただしこれらのコマンドはデータベースのパフォーマンスに影響を与えるため使用に際して注意が必要であるという点に注意してください。 -#### Priority management overview +#### 優先度管理の概要 -The Cache manager selects data to remove from the cache as necessary using a priority system. The three kinds of objects that can be loaded in the cache have a different priority: +キャッシュマネージャーは優先度システムを使用して必要に応じてキャッシュから削除するデータを選択します。 キャッシュにロードできる三つの種類のオブジェクトには、異なった優先度がつけられます: -- **tables**: all standard field data (numeric, dates, etc.), excluding blobs (see below). Default priority is medium. -- **blobs**: all binary field data (text, picture, object and blobs) stored in the data file. Default priority is the lowest. -- **indexes**: all field indexes, including keyword indexes and composite indexes. Since indexes are frequently accessed, they have a special status in the cache. Default priority is the highest. +- **テーブル**: 全ての標準のフィールドデータ(数値、日付、など)、ただしBlobを除く(以下参照)。 デフォルトの優先度は「中」です。 +- **Blob**: データファイルに保存されている全てのバイナリーフィールドデータ(テキスト、ピクチャー、オブジェクトおよびBlob)。 デフォルトの優先度は「低」です。 +- **インデックス**: キーワードインデックスと複合インデックスも含めた全てのフィールドインデックス。 インデックスは頻繁にアクセスされるため、これはキャッシュ内で特殊なステータスを持ちます。 デフォルトの優先度は「最高」です。 -Default priorities usually provide the best performances. However, for specific cases you can customize the cache priorities using two sets of 4D commands: +デフォルトの優先度だけで通常は最高のパフォーマンスを引き出すことができます。 しかしながら特定の場合においては二種類の4D コマンドを使用することでキャッシュ優先度をカスタマイズすることができます: -- Commands that change the priorities for the whole session and all processes: [`SET TABLE CACHE PRIORITY`](../commands/set-table-cache-priority), [`SET INDEX CACHE PRIORITY`](../commands/set-index-cache-priority), and [`SET BLOBS CACHE PRIORITY`](../commands/set-blobs-cache-priority). These commands should be used in a startup database method. -- Commands that change the priorities only for the current process: [`ADJUST TABLE CACHE PRIORITY`](../commands/adjust-table-cache-priority), [`ADJUST INDEX CACHE PRIORITY`](../commands/adjust-index-cache-priority), and [`ADJUST BLOBS CACHE PRIORITY`](../commands/adjust-blobs-cache-priority). Use these commands to improve the performance of a temporary operation on your database and go back to initial priorities after the operation is finished. These commands are available only on 4D Server or 4D in local mode. +- セッション全体と全てのプロセスにおいて優先度を変更するコマンド: [`SET TABLE CACHE PRIORITY`](../commands/set-table-cache-priority)、[`SET INDEX CACHE PRIORITY`](../commands/set-index-cache-priority)、および [`SET BLOBS CACHE PRIORITY`](../commands/set-blobs-cache-priority)。 これらのコマンドはデータベース起動時のメソッドで使用されなければなりません。 +- カレントプロセスにおいてのみ優先度を変更するコマンド: [`ADJUST TABLE CACHE PRIORITY`](../commands/adjust-table-cache-priority)、 [`ADJUST INDEX CACHE PRIORITY`](../commands/adjust-index-cache-priority)、および [`ADJUST BLOBS CACHE PRIORITY`](../commands/adjust-blobs-cache-priority)。 これらのコマンドを使用することでデータベース上の一時的な操作のパフォーマンスを向上させ、その操作が終了したあとは初期プロパティに戻るようにすることができます。 これらのコマンドは4D Server とローカルモードの4D においてのみ利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md index 72e0745db3cbd9..6d18b810065f0f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md @@ -284,7 +284,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス * `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: * CSS カラーネーム: `fill: red;` - * 16進数カラーコード: `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * `rgb()` 関数: `fill:rgb(255,0,0)` * CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md index f3035ca6836039..436b1569feaa68 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md @@ -138,15 +138,15 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### プラグインやサーバーにグループを割り当てる +### Assigning a license to a group -プロジェクトにインストールされたプラグインへのアクセス権をグループに割り当てることができます。 これには 4D のプラグインと任意のサードパーティプラグインが含まれます。 +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -プラグインへのアクセス権を割り当てると、所有するプラグインライセンスの使用を管理できるようになります。 プラグインのアクセスグループに属さないユーザーは、そのプラグインをロードすることができません。 +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -ツールボックスのグループページにある "プラグイン" エリアには、4Dアプリケーションによりロードされたプラグインがすべて表示されます。 プラグインへのアクセス権をグループに与えるには、該当するオプションをチェックします。 +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md index d670b88e7eaaa9..1815c7f28cb948 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md @@ -24,7 +24,7 @@ title: はじめに 4D View Pro 機能は 4D に直接含まれているため、配布と運用が容易です。 追加のインストールは必要ありません。 -しかしながら、4D View Pro はライセンスを必要とします。 これらの機能を使用するには、アプリケーションにおいて当該ライセンスを有効化しておく必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +しかしながら、4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/API/FunctionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/API/FunctionClass.md index 42dfbdb02324f2..ef10ad6f8e2fa7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/API/FunctionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/API/FunctionClass.md @@ -129,7 +129,7 @@ $f:={message: $message} #### 説明 -`.call()` 関数は、対象の function オブジェクトを、一つまたはそれ以上の引数を直接渡して実行し、その結果の値を返します。 +`.call()` 関数は、対象の function オブジェクトを、一つまたはそれ以上の引数を直接渡して実行し、その結果の値を返します。 *thisObj* には、関数内で `This` として使用されるオブジェクトへの参照を渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md index 034baabfe16c77..b9f0e098a15cd0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md @@ -752,7 +752,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md index 7fe59184b4d328..1a5eec2bdb3794 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md @@ -18,15 +18,15 @@ title: ライセンスリスト 運用ライセンスは、以下の表で説明されているように、開発者によって開発段階で埋め込むか、あるいは初回起動時にエンドユーザーによって入力される必要があります: -| 運用ライセンス | 説明 | 入力する場所 | -| ------------------------ | ------------------------------------------------ | --------------------------------------------------------- | -| *4D OEM Desktop* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Unlimited Desktop* | **販売終了** - 埋め込まれたカスタムのライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Desktop* | ユーザーごとのライセンスで、スタンドアロンの4D アプリケーションを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | -| *4D Desktop Business* | スタンドアロン4D アプリケーション用の埋め込みカスタムライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Server OEM* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D XML Keys Activation* | 非自動埋め込みモードの4D Server OEM ライセンスをアクティベートするのに使用されます | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Server* | 各ユーザーごとに必要なライセンスで、4D Server とクライアントを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| 運用ライセンス | 説明 | 入力する場所 | +| ----------------------------- | ------------------------------------------------ | --------------------------------------------------------- | +| *4D Server* | 各ユーザーごとに必要なライセンスで、4D Server とクライアントを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| *4D Desktop* | コンピューターごとのライセンス、スタンドアロン4D アプリケーションを使用するのに必要 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| *4D Desktop Business Edition* | スタンドアロン4D アプリケーション用の埋め込みカスタムライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D Server OEM* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D OEM Desktop* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D XML Keys Activation* | 非自動埋め込みモードの4D Server OEM ライセンスをアクティベートするのに使用されます | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D Unlimited Desktop* | **販売終了** - 埋め込まれたカスタムのライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | ### 期限切れ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md index 90487eff2a29f1..e987092ca76028 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: - CSS カラーネーム: `fill: red;` - - 16進数カラーコード: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - `rgb()` 関数: `fill:rgb(255,0,0)` - CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md index c6f87f839441d2..70c1bdb83bf2bb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md @@ -212,7 +212,7 @@ Fluent UI レンダリングモードは、アプリケーションレベルま Fluent UI で4D フォームを使用する場合、以下の点に注意を払う必要があります: -- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 取り得る値: "Classic" あるいは "FluentUI"。 カレントフォームがない場合、あるいはコマンドがmacOS 上で呼ばれた場合、空の文字列が返されます。 +- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 Possible values: "Classic", "FluentUI" or "LiquidGlass". - [`Application info`](../commands/application-info) コマンドを使用することで、Fluent UI が使用できるかどうか(`canUseFluentUI` プロパティ) あるいは使用されているかどうか(`useFluentUI` プロパティ) を知ることができます。 - [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) がフォームのコンテキストで呼び出された場合、返された情報はフォームのカレントのアピアランス(クラシックあるいはFluent UI)に関連したものです。 コマンドがフォームのコンテキスト外から呼ばれた場合、返された情報は[グローバルプロジェクト設定](#アプリケーション設定) に関連したものです。 - [`SET MENU ITEM STYLE`](../commands/set-menu-item-style) の*itemStyle* 引数での `Underline` はポップアップメニューではサポートされていません(無視されます)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md index 7162818d5bb529..2afa5428676b59 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md @@ -77,7 +77,7 @@ title: リリースノート | libZip | 1.11.4 | 21 | Zip クラス、4D Write Pro、svg および serverNet コンポーネントによって使用。 | | LZMA | 5.8.1 | 21 | | | ngtcp2 | 1.18.0 | 21 | QUIC に使用 | -| OpenSSL | 3.5.2 | 21 | | +| OpenSSL | 3.5.7 | 21 | | | PDFWriter | 4.7.0 | 21 | [`WP Export document`](../WritePro/commands/wp-export-document.md) および [`WP Export variable`](../WritePro/commands/wp-export-variable.md) において使用されます | | SpreadJS | 18.2.0 | 21 R2 | 新機能の概要については、 [このブログ記事](https://blog.4d.com/4d-view-pro-whats-new-in-4d-21-r2/) を参照してください。 | | webKit | WKWebView | 19 | | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md index 26017d27d64636..dd3b0103baf00e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md @@ -7,7 +7,7 @@ title: 4Dユーザー&グループの管理 ## プロジェクトにおけるユーザー&グループ -プロジェクトアプリケーション (.4DProject および .4dz ファイル) では、シングルユーザーおよびマルチユーザー環境の両方でユーザーとグループを設定することができます。 ただし、**アクセスシステム** は 4D Server でのみ有効です。 次の表は、主なユーザーとグループの機能と、それらが利用かどうかを一覧に示します: +プロジェクトアプリケーション (.4DProject および .4dz ファイル) では、シングルユーザーおよびマルチユーザー環境の両方でユーザーとグループを設定することができます。 ただし、**アクセスコントロール** は 4D Server でのみ有効です。 次の表は、主なユーザーとグループの機能と、それらが利用かどうかを一覧に示します: | | 4D (シングルユーザー) | 4D Server | | ---------------------------- | --------------------------------------- | --------- | @@ -103,9 +103,9 @@ title: 4Dユーザー&グループの管理 ### ユーザープロパティ -- **ユーザーの種類**: "デザイナー"、"管理者"、または (それ以外のすべてのユーザーの場合にあ) "ユーザー" +- **ユーザーの種類**: "デザイナー"、"管理者"、または (それ以外のすべてのユーザーの場合に) "ユーザー" -- **開始メソッド**: ユーザーがアプリケーションを開いたときに自動実行されるメソッドの名称 (任意) このメソッドを使って、たとえばユーザー設定をロードできます。 このメソッドを使って、たとえばユーザー設定をロードできます。 +- **開始メソッド**: ユーザーがアプリケーションを開いたときに自動実行されるメソッドの名称 (任意) このメソッドを使って、たとえばユーザー設定をロードできます。 ## グループエディター @@ -149,19 +149,19 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### プラグインやサーバーにグループを割り当てる +### Assigning a license to a group -プロジェクトにインストールされたプラグインへのアクセス権をグループに割り当てることができます。 これには 4D のプラグインと任意のサードパーティープラグインが含まれます。 +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -プラグインへのアクセス権を割り当てると、所有するプラグインライセンスの使用を管理できるようになります。 プラグインのアクセスグループに属さないユーザーは、そのプラグインをロードすることができません。 +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -ツールボックスのグループページにある "プラグイン" エリアには、4Dアプリケーションによりロードされたプラグインがすべて表示されます。 プラグインへのアクセス権をグループに与えるには、該当するオプションをチェックします。 +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -**4D Client Web Server** や **4D Client SOAP Server** 項目を使用し、リモートモードの 4D がそれぞれ Web および SOAP (Webサービス) 公開をおこなえるかどうかを管理することができます。 これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 ### アクセス権の階層構造 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md index c1fca2885a8013..d4e900268a6ac7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md @@ -33,7 +33,7 @@ title: はじめに プロジェクトを再起動すると、4D View Pro コンポーネントは[Github 依存関係](../Project/components.md#githubまたはgitlab依存関係を追加する)としてインストールされます。 -4D View Pro はライセンスを必要とします。 これらの機能を使用するには、アプリケーションにおいて当該ライセンスを有効化しておく必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/command-index.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/command-index.md index 89123b8a806990..345e1450551ba9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/command-index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/command-index.md @@ -66,12 +66,12 @@ title: 4D View Pro コマンド I -[`WP Import document`](../commands/wp-import-document) ***Modified 4D 20 R8***
+[`WP Import document`](../commands/wp-import-document) ***4D 20 R8 で変更***
[`WP IMPORT STYLE SHEETS`](../commands/wp-import-style-sheets)
-[`WP INSERT BREAK`](../commands/wp-insert-break) ***Modified 4D 20 R8***
-[`WP Insert document body`](../commands/wp-insert-document-body) ***Modified 4D 20 R8***
-[`WP Insert formula`](../commands/wp-insert-formula) ***Modified 4D 20 R8***
-[`WP INSERT PICTURE`](../commands/wp-insert-picture) ***Modified 4D 20 R8***
+[`WP INSERT BREAK`](../commands/wp-insert-break) ***4D 20 R8 で変更***
+[`WP Insert document body`](../commands/wp-insert-document-body) ***4D 20 R8 で変更***
+[`WP Insert formula`](../commands/wp-insert-formula) ***4D 20 R8 で変更***
+[`WP INSERT PICTURE`](../commands/wp-insert-picture) ***4D 20 R8 で変更***
[`WP Insert table`](../commands/wp-insert-table)
[`WP Is font style supported`](../commands/wp-is-font-style-supported) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/wp-add-picture.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/wp-add-picture.md index a35f97350acfb7..36506b5657dab4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/wp-add-picture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/wp-add-picture.md @@ -47,7 +47,7 @@ displayed_sidebar: docs - ペーパーボックスの左上隅に表示 - 全てのページに表示 -The location, layer (inline, in front/behind text), visibility, and any properties of picture can be modified using the [WP SET ATTRIBUTES](wp-set-attributes.md) command, or via standard actions. +位置、レイヤー(インライン、テキストの前/後)、表示状態、その他ピクチャーのあらゆるプロパティは[WP SET ATTRIBUTES](wp-set-attributes.md) コマンド、または標準アクションを使用して変更することができます。 **注意:** [WP Selection range](../commands/wp-selection-range) コマンドは、アンカーされたピクチャーが選択されていた場合には *ピクチャー参照* を、インラインピクチャーが選択されていた場合には *レンジオブジェクト* を返します。 選択されたオブジェクトがピクチャーオブジェクトであるかどうかは、`wk type` 属性をチェックすることで確認できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user/user-new.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user/user-new.md index 47107cc3e1289c..32e53a03db48fa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user/user-new.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user/user-new.md @@ -12,20 +12,20 @@ to import 4D Write Pro はフラットなリスト(単一レベル) と階層リスト(マルチレベル) をサポートしています。 -### Single-level lists +### 単一レベルのリスト -4D Write Pro supports two main types of single-level lists: +4D Write Pro は主に2つのタイプの単一レベルのリストをサポートします: -- unordered lists: where list items are marked with bullets, custom bullets, or images used as markers. -- ordered lists: where list items are marked with numbers or letters +- 順番なしリスト: リストの項目は箇条書き記号、カスタムの箇条書き記号、あるいはマーカーとして使用される画像でマークされます。 +- 順番付きリスト: リストの項目は番号または文字でマークされます。 -They can be created using: +これらは以下の方法で作成することができます: -- the toolbar or sidebar of the [4D Write Pro interface](https://doc.4d.com/4Dv20/4D/20.2/Entry-areas.300-6750367.en.html#5865253) -- the `listStyleType` or `listStyleImage` [standard actions](./standard-actions) , -- or [programmatically](../commands-legacy/4d-write-pro-attributes.md#lists) using [WP SET ATTRIBUTE](../commands/wp-set-attributes). +- [4D Write Pro インターフェース](https://doc.4d.com/4Dv20/4D/20.2/Entry-areas.300-6750367.ja.html#5865253) のツールバーまたはサイドバー +- `listStyleType` あるいは `listStyleImage` の[標準アクション](./standard-actions) +- あるいは[WP SET ATTRIBUTE](../commands/wp-set-attributes) コマンドを使用して[プログラムで作成する](../commands-legacy/4d-write-pro-attributes.md#リスト)。 -When a list is created using a standard action (`listStyleType` or `listStyleImage`) or the toolbar/sidebar, 4D Write Pro automatically inserts a margin before the text so that the marker is positioned inside it. The value of the inserted margin corresponds to the offset of the default tab (`wk tab default`). +標準アクション(`listStyleType` あるいは `listStyleImage`) あるいはツールバー/サイドバーを使用してリストが作成された場合、4D Write Pro はマーカーがテキストの内側に表示されるように、自動的にテキストの前に余白を挿入します。 挿入される余白の値は、デフォルトタブのオフセット(`wk tab default`) に対応します。 ![](../../assets/en/WritePro/margin-bullets.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/settings/ai.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/settings/ai.md index c0948050e4ff82..b9cfcb25caa1c7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/settings/ai.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/settings/ai.md @@ -75,7 +75,7 @@ AI プロバイダーを追加するには: :::warning -The *AIProviders.json* file contains your provider API keys. If your project is [stored on a source control repository tool](../Project/overview.md#source-control) such as GitHub or GitLab, make sure the *AIProviders.json* file is [registered in the .gitignore file](../Project/architecture.md#gitignore-file-optional), otherwise **your keys could be publicly exposed**. +*AIProviders.json* ファイルにはあなたのプロバイダーAPI キーが格納されます。 あなたのプロジェクトがGitHub やGitLab などの[ソース管理レポジトリツールに保存されている](../Project/overview.md#ソース管理) 場合、*AIProviders.json* ファイルが[.gitignore ファイル内に登録されている](../Project/architecture.md#gitignore-ファイル-任意) ようにしてください。そうでない場合、**あなたのキーが公開されてしまう可能性があり得ます**。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/FunctionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/FunctionClass.md index 42dfbdb02324f2..ef10ad6f8e2fa7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/FunctionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/FunctionClass.md @@ -129,7 +129,7 @@ $f:={message: $message} #### 説明 -`.call()` 関数は、対象の function オブジェクトを、一つまたはそれ以上の引数を直接渡して実行し、その結果の値を返します。 +`.call()` 関数は、対象の function オブジェクトを、一つまたはそれ以上の引数を直接渡して実行し、その結果の値を返します。 *thisObj* には、関数内で `This` として使用されるオブジェクトへの参照を渡すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md index 45bb28a5c059a9..31089e6ab0c8d9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md @@ -21,10 +21,10 @@ title: QuotaManager | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [](#currentvalues)
| +| [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| -| [](#nbentitysets)
| +| [](#nbentitysets)
| @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### 説明 -`.nbEntitySets` プロパティにはカレントセッション中にメモリ内で許可されるREST エンティティセットの最大数 が格納されています。 +The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. デフォルトでは、エンティティセットが[REST リクエストによってメモリに保存される数](../REST/$info.md) には制約はありません(値は 0 に設定されています)。 特定のセッションに対して、サーバーのペイロードを抑えるために、上限を設定することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md index a9aec66c10d510..59221b2aeca387 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md @@ -809,7 +809,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md index 7fe59184b4d328..1a5eec2bdb3794 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md @@ -18,15 +18,15 @@ title: ライセンスリスト 運用ライセンスは、以下の表で説明されているように、開発者によって開発段階で埋め込むか、あるいは初回起動時にエンドユーザーによって入力される必要があります: -| 運用ライセンス | 説明 | 入力する場所 | -| ------------------------ | ------------------------------------------------ | --------------------------------------------------------- | -| *4D OEM Desktop* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Unlimited Desktop* | **販売終了** - 埋め込まれたカスタムのライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Desktop* | ユーザーごとのライセンスで、スタンドアロンの4D アプリケーションを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | -| *4D Desktop Business* | スタンドアロン4D アプリケーション用の埋め込みカスタムライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Server OEM* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D XML Keys Activation* | 非自動埋め込みモードの4D Server OEM ライセンスをアクティベートするのに使用されます | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Server* | 各ユーザーごとに必要なライセンスで、4D Server とクライアントを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| 運用ライセンス | 説明 | 入力する場所 | +| ----------------------------- | ------------------------------------------------ | --------------------------------------------------------- | +| *4D Server* | 各ユーザーごとに必要なライセンスで、4D Server とクライアントを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| *4D Desktop* | コンピューターごとのライセンス、スタンドアロン4D アプリケーションを使用するのに必要 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| *4D Desktop Business Edition* | スタンドアロン4D アプリケーション用の埋め込みカスタムライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D Server OEM* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D OEM Desktop* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D XML Keys Activation* | 非自動埋め込みモードの4D Server OEM ライセンスをアクティベートするのに使用されます | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D Unlimited Desktop* | **販売終了** - 埋め込まれたカスタムのライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | ### 期限切れ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md index 90487eff2a29f1..e987092ca76028 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: - CSS カラーネーム: `fill: red;` - - 16進数カラーコード: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - `rgb()` 関数: `fill:rgb(255,0,0)` - CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md index 7cdcf3fcc193b1..54259f24cd8f0a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md @@ -338,7 +338,7 @@ Fluent UI レンダリングモードは、アプリケーションレベルま Fluent UI で4D フォームを使用する場合、以下の点に注意を払う必要があります: -- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 取り得る値: "Classic" あるいは "FluentUI"。 カレントフォームがない場合、あるいはコマンドがmacOS 上で呼ばれた場合、空の文字列が返されます。 +- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 Possible values: "Classic", "FluentUI" or "LiquidGlass". - [`Application info`](../commands/application-info) コマンドを使用することで、Fluent UI が使用できるかどうか(`canUseFluentUI` プロパティ) あるいは使用されているかどうか(`useFluentUI` プロパティ) を知ることができます。 - [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) がフォームのコンテキストで呼び出された場合、返された情報はフォームのカレントのアピアランス(クラシックあるいはFluent UI)に関連したものです。 コマンドがフォームのコンテキスト外から呼ばれた場合、返された情報は[グローバルプロジェクト設定](#アプリケーション設定) に関連したものです。 - [`SET MENU ITEM STYLE`](../commands/set-menu-item-style) の*itemStyle* 引数での `Underline` はポップアップメニューではサポートされていません(無視されます)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md index 26017d27d64636..dd3b0103baf00e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md @@ -7,7 +7,7 @@ title: 4Dユーザー&グループの管理 ## プロジェクトにおけるユーザー&グループ -プロジェクトアプリケーション (.4DProject および .4dz ファイル) では、シングルユーザーおよびマルチユーザー環境の両方でユーザーとグループを設定することができます。 ただし、**アクセスシステム** は 4D Server でのみ有効です。 次の表は、主なユーザーとグループの機能と、それらが利用かどうかを一覧に示します: +プロジェクトアプリケーション (.4DProject および .4dz ファイル) では、シングルユーザーおよびマルチユーザー環境の両方でユーザーとグループを設定することができます。 ただし、**アクセスコントロール** は 4D Server でのみ有効です。 次の表は、主なユーザーとグループの機能と、それらが利用かどうかを一覧に示します: | | 4D (シングルユーザー) | 4D Server | | ---------------------------- | --------------------------------------- | --------- | @@ -103,9 +103,9 @@ title: 4Dユーザー&グループの管理 ### ユーザープロパティ -- **ユーザーの種類**: "デザイナー"、"管理者"、または (それ以外のすべてのユーザーの場合にあ) "ユーザー" +- **ユーザーの種類**: "デザイナー"、"管理者"、または (それ以外のすべてのユーザーの場合に) "ユーザー" -- **開始メソッド**: ユーザーがアプリケーションを開いたときに自動実行されるメソッドの名称 (任意) このメソッドを使って、たとえばユーザー設定をロードできます。 このメソッドを使って、たとえばユーザー設定をロードできます。 +- **開始メソッド**: ユーザーがアプリケーションを開いたときに自動実行されるメソッドの名称 (任意) このメソッドを使って、たとえばユーザー設定をロードできます。 ## グループエディター @@ -149,19 +149,19 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### プラグインやサーバーにグループを割り当てる +### Assigning a license to a group -プロジェクトにインストールされたプラグインへのアクセス権をグループに割り当てることができます。 これには 4D のプラグインと任意のサードパーティープラグインが含まれます。 +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -プラグインへのアクセス権を割り当てると、所有するプラグインライセンスの使用を管理できるようになります。 プラグインのアクセスグループに属さないユーザーは、そのプラグインをロードすることができません。 +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -ツールボックスのグループページにある "プラグイン" エリアには、4Dアプリケーションによりロードされたプラグインがすべて表示されます。 プラグインへのアクセス権をグループに与えるには、該当するオプションをチェックします。 +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -**4D Client Web Server** や **4D Client SOAP Server** 項目を使用し、リモートモードの 4D がそれぞれ Web および SOAP (Webサービス) 公開をおこなえるかどうかを管理することができます。 これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 ### アクセス権の階層構造 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md index c1fca2885a8013..d4e900268a6ac7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md @@ -33,7 +33,7 @@ title: はじめに プロジェクトを再起動すると、4D View Pro コンポーネントは[Github 依存関係](../Project/components.md#githubまたはgitlab依存関係を追加する)としてインストールされます。 -4D View Pro はライセンスを必要とします。 これらの機能を使用するには、アプリケーションにおいて当該ライセンスを有効化しておく必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/command-index.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/command-index.md index 89123b8a806990..345e1450551ba9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/command-index.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/command-index.md @@ -66,12 +66,12 @@ title: 4D View Pro コマンド I -[`WP Import document`](../commands/wp-import-document) ***Modified 4D 20 R8***
+[`WP Import document`](../commands/wp-import-document) ***4D 20 R8 で変更***
[`WP IMPORT STYLE SHEETS`](../commands/wp-import-style-sheets)
-[`WP INSERT BREAK`](../commands/wp-insert-break) ***Modified 4D 20 R8***
-[`WP Insert document body`](../commands/wp-insert-document-body) ***Modified 4D 20 R8***
-[`WP Insert formula`](../commands/wp-insert-formula) ***Modified 4D 20 R8***
-[`WP INSERT PICTURE`](../commands/wp-insert-picture) ***Modified 4D 20 R8***
+[`WP INSERT BREAK`](../commands/wp-insert-break) ***4D 20 R8 で変更***
+[`WP Insert document body`](../commands/wp-insert-document-body) ***4D 20 R8 で変更***
+[`WP Insert formula`](../commands/wp-insert-formula) ***4D 20 R8 で変更***
+[`WP INSERT PICTURE`](../commands/wp-insert-picture) ***4D 20 R8 で変更***
[`WP Insert table`](../commands/wp-insert-table)
[`WP Is font style supported`](../commands/wp-is-font-style-supported) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/wp-add-picture.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/wp-add-picture.md index a35f97350acfb7..36506b5657dab4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/wp-add-picture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/wp-add-picture.md @@ -47,7 +47,7 @@ displayed_sidebar: docs - ペーパーボックスの左上隅に表示 - 全てのページに表示 -The location, layer (inline, in front/behind text), visibility, and any properties of picture can be modified using the [WP SET ATTRIBUTES](wp-set-attributes.md) command, or via standard actions. +位置、レイヤー(インライン、テキストの前/後)、表示状態、その他ピクチャーのあらゆるプロパティは[WP SET ATTRIBUTES](wp-set-attributes.md) コマンド、または標準アクションを使用して変更することができます。 **注意:** [WP Selection range](../commands/wp-selection-range) コマンドは、アンカーされたピクチャーが選択されていた場合には *ピクチャー参照* を、インラインピクチャーが選択されていた場合には *レンジオブジェクト* を返します。 選択されたオブジェクトがピクチャーオブジェクトであるかどうかは、`wk type` 属性をチェックすることで確認できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user/user-new.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user/user-new.md index 1b31a7d3f10573..9283499bf57c56 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user/user-new.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user/user-new.md @@ -10,22 +10,22 @@ to import ## リスト -4D Write Pro supports flat lists (single-level) and multi-level lists. +4D Write Pro はフラットなリスト(単一レベル) と複数レベルのリストをサポートしています。 -### Single-level lists +### 単一レベルのリスト -4D Write Pro supports two main types of single-level lists: +4D Write Pro は主に2つのタイプの単一レベルのリストをサポートします: -- unordered lists: where list items are marked with bullets, custom bullets, or images used as markers. -- ordered lists: where list items are marked with numbers or letters +- 順番なしリスト: リストの項目は箇条書き記号、カスタムの箇条書き記号、あるいはマーカーとして使用される画像でマークされます。 +- 順番付きリスト: リストの項目は番号または文字でマークされます。 -They can be created using: +これらは以下の方法で作成することができます: -- the toolbar or sidebar of the [4D Write Pro interface](https://doc.4d.com/4Dv20/4D/20.2/Entry-areas.300-6750367.en.html#5865253) -- the `listStyleType` or `listStyleImage` [standard actions](./standard-actions) , -- or [programmatically](../commands-legacy/4d-write-pro-attributes.md#lists) using [WP SET ATTRIBUTE](../commands/wp-set-attributes). +- [4D Write Pro インターフェース](https://doc.4d.com/4Dv20/4D/20.2/Entry-areas.300-6750367.ja.html#5865253) のツールバーまたはサイドバー +- `listStyleType` あるいは `listStyleImage` の[標準アクション](./standard-actions) +- あるいは[WP SET ATTRIBUTE](../commands/wp-set-attributes) コマンドを使用して[プログラムで作成する](../commands-legacy/4d-write-pro-attributes.md#リスト)。 -When a list is created using a standard action (`listStyleType` or `listStyleImage`) or the toolbar/sidebar, 4D Write Pro automatically inserts a margin before the text so that the marker is positioned inside it. The value of the inserted margin corresponds to the offset of the default tab (`wk tab default`). +標準アクション(`listStyleType` あるいは `listStyleImage`) あるいはツールバー/サイドバーを使用してリストが作成された場合、4D Write Pro はマーカーがテキストの内側に表示されるように、自動的にテキストの前に余白を挿入します。 挿入される余白の値は、デフォルトタブのオフセット(`wk tab default`) に対応します。 ![](../../assets/en/WritePro/margin-bullets.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/ai.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/ai.md index c0948050e4ff82..b9cfcb25caa1c7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/ai.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/ai.md @@ -75,7 +75,7 @@ AI プロバイダーを追加するには: :::warning -The *AIProviders.json* file contains your provider API keys. If your project is [stored on a source control repository tool](../Project/overview.md#source-control) such as GitHub or GitLab, make sure the *AIProviders.json* file is [registered in the .gitignore file](../Project/architecture.md#gitignore-file-optional), otherwise **your keys could be publicly exposed**. +*AIProviders.json* ファイルにはあなたのプロバイダーAPI キーが格納されます。 あなたのプロジェクトがGitHub やGitLab などの[ソース管理レポジトリツールに保存されている](../Project/overview.md#ソース管理) 場合、*AIProviders.json* ファイルが[.gitignore ファイル内に登録されている](../Project/architecture.md#gitignore-ファイル-任意) ようにしてください。そうでない場合、**あなたのキーが公開されてしまう可能性があり得ます**。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/database.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/database.md index e6dcb6f2feb047..f856f64d5bc3f9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/database.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/database.md @@ -35,9 +35,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 ::: -### テンポラリフォルダーの場所 +### テンポラリーフォルダーの場所 -このエリアでは、4D 実行中に作成されるテンポラリーファイルの場所を設定できます。 テンポラリファイルのフォルダーは、一時的にメモリ中のデータをディスクに保存するために必要に応じてアプリケーションが使用します。 +このエリアでは、4D 実行中に作成されるテンポラリーファイルの場所を設定できます。 テンポラリーファイルのフォルダーは、一時的にメモリ中のデータをディスクに保存するために必要に応じてアプリケーションが使用します。 現在のフォルダーの場所は "現在:" エリアに表示されます。 このエリアをクリックするとパス名がスクロールダウンリスト形式で表示されます: @@ -45,8 +45,8 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 3つのオプションから選択できます: -- **システム**: このオプションが選択されると、4D のテンポラリファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 システムが指定する場所は [`Temporary folder`](../commands/temporary-folder) 4D コマンドで知ることができます。 ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 -- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 +- **システム**: このオプションが選択されると、4D のテンポラリーファイルは Windows または macOS が指定する場所に配置されたフォルダーに作成されます。 システムが指定する場所は [`Temporary folder`](../commands/temporary-folder) 4D コマンドで知ることができます。 ファイルは、データベース名とユニークな識別子からなるサブフォルダーに置かれます。 +- **データファイルフォルダー** (デフォルト): このオプションが選択されると、4D のテンポラリーファイルはデータベースのデータファイルと同階層に配置される "temporary files" フォルダーに作成されます。 - **ユーザー指定**: このオプションは、場所をカスタマイズするのに使用します。 場所のオプションを変更した場合、新しい設定を反映するにはデータベースを再起動する必要があります。 4D は選択されたフォルダーに書き込みアクセス権があるかを確認します。 アクセス権がなければ、使用できるフォルダーが見つかるまで 4D は他のオプションを試します。 > このオプションは、ストラクチャー定義がXML形式で書き出されたとき、ストラクチャーの "extra properties" に格納されます ([ストラクチャー定義の書き出しと読み込み](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.ja.html) 参照)。 @@ -82,9 +82,9 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 #### MeCab のサポート (日本語版) -日本語版の 4D では、 *MeCab* ライブラリーがサポートされており、日本語用に調整されたキーワードのインデックスアルゴリズムを兼ね備えています。 +日本語版の 4D では、 *MeCab* ライブラリがサポートされており、日本語用に調整されたキーワードのインデックスアルゴリズムを兼ね備えています。 -日本語版の 4D ではこのアルゴリズムがデフォルトで使用されています。 必要であれば *MeCab* アルゴリズムを無効にして、以前と同じ *ICU* ライブラリーを使用することもできます。 +日本語版の 4D ではこのアルゴリズムがデフォルトで使用されています。 必要であれば *MeCab* アルゴリズムを無効にして、以前と同じ *ICU* ライブラリを使用することもできます。 *MeCab* を無効化するには、**非文字・非数字のみをキーワード区切り文字とする** のオプションにチェックを入れます: @@ -122,26 +122,26 @@ UUID バージョン7の詳細な情報については、 [こちらのblog記 :::note -You can modify temporary the cache flush frequency using the [`Cache flush periodicity` selector of the `SET DATABASE PARAMETER` command](../commands/set-database-parameter#cache-flush-periodicity-95). +[`SET DATABASE PARAMETER` コマンドの`Cache flush periodicity` セレクター](../commands/set-database-parameter#cache-flush-periodicity-95)を使用することで、キャッシュのフラッシュ頻度を一時的に変更することができます。 ::: -### Managing priorities in database cache +### データベースキャッシュの優先度を管理する -The 4D database cache includes an automatic priority management mechanism that provides a high level of efficiency and performance for data access. Thanks to this mechanism, when space is needed to load new data in the cache, low priority cached data are released first, while higher priority cached data remain loaded. +4D データベースキャッシュには、パフォーマンスとデータアクセスにおいて高い効率とパフォーマンスを提供する、自動優先度管理機構が含まれています。 この機構のおかげで、新しいデータをロードするためにキャッシュが必要になったとき、優先度の低いキャッシュデータから先に解放され、優先度の高いキャッシュデータはロードされたままになります。 -This mechanism is fully automatic and usually, you will not have to worry about it. However, for specific cases it can be customized using a [set of dedicated commands from the "Cache Management" theme](../commands/theme/Cache_Management.md), which allow changing the priority of objects for the entire time the database is running, or temporarily for the current process. Note that these commands must be used carefully since they affect database performance. +この機構は完全に自動的であり、通常は何も心配をする必要はありません。 しかしながら特定の場合においては["Cache Management" テーマにある専用のコマンド群](../commands/theme/Cache_Management.md) を使用してこれをカスタマイズすることが可能です。これによってデータベースが実行している間中、あるいはカレントプロセスにおいて一時的にオブジェクトの優先順位を変更することができます。 ただしこれらのコマンドはデータベースのパフォーマンスに影響を与えるため使用に際して注意が必要であるという点に注意してください。 -#### Priority management overview +#### 優先度管理の概要 -The Cache manager selects data to remove from the cache as necessary using a priority system. The three kinds of objects that can be loaded in the cache have a different priority: +キャッシュマネージャーは優先度システムを使用して必要に応じてキャッシュから削除するデータを選択します。 キャッシュにロードできる三つの種類のオブジェクトには、異なった優先度がつけられます: -- **tables**: all standard field data (numeric, dates, etc.), excluding blobs (see below). Default priority is medium. -- **blobs**: all binary field data (text, picture, object and blobs) stored in the data file. Default priority is the lowest. -- **indexes**: all field indexes, including keyword indexes and composite indexes. Since indexes are frequently accessed, they have a special status in the cache. Default priority is the highest. +- **テーブル**: 全ての標準のフィールドデータ(数値、日付、など)、ただしBlobを除く(以下参照)。 デフォルトの優先度は「中」です。 +- **Blob**: データファイルに保存されている全てのバイナリーフィールドデータ(テキスト、ピクチャー、オブジェクトおよびBlob)。 デフォルトの優先度は「低」です。 +- **インデックス**: キーワードインデックスと複合インデックスも含めた全てのフィールドインデックス。 インデックスは頻繁にアクセスされるため、これはキャッシュ内で特殊なステータスを持ちます。 デフォルトの優先度は「最高」です。 -Default priorities usually provide the best performances. However, for specific cases you can customize the cache priorities using two sets of 4D commands: +デフォルトの優先度だけで通常は最高のパフォーマンスを引き出すことができます。 しかしながら特定の場合においては二種類の4D コマンドを使用することでキャッシュ優先度をカスタマイズすることができます: -- Commands that change the priorities for the whole session and all processes: [`SET TABLE CACHE PRIORITY`](../commands/set-table-cache-priority), [`SET INDEX CACHE PRIORITY`](../commands/set-index-cache-priority), and [`SET BLOBS CACHE PRIORITY`](../commands/set-blobs-cache-priority). These commands should be used in a startup database method. -- Commands that change the priorities only for the current process: [`ADJUST TABLE CACHE PRIORITY`](../commands/adjust-table-cache-priority), [`ADJUST INDEX CACHE PRIORITY`](../commands/adjust-index-cache-priority), and [`ADJUST BLOBS CACHE PRIORITY`](../commands/adjust-blobs-cache-priority). Use these commands to improve the performance of a temporary operation on your database and go back to initial priorities after the operation is finished. These commands are available only on 4D Server or 4D in local mode. +- セッション全体と全てのプロセスにおいて優先度を変更するコマンド: [`SET TABLE CACHE PRIORITY`](../commands/set-table-cache-priority)、[`SET INDEX CACHE PRIORITY`](../commands/set-index-cache-priority)、および [`SET BLOBS CACHE PRIORITY`](../commands/set-blobs-cache-priority)。 これらのコマンドはデータベース起動時のメソッドで使用されなければなりません。 +- カレントプロセスにおいてのみ優先度を変更するコマンド: [`ADJUST TABLE CACHE PRIORITY`](../commands/adjust-table-cache-priority)、 [`ADJUST INDEX CACHE PRIORITY`](../commands/adjust-index-cache-priority)、および [`ADJUST BLOBS CACHE PRIORITY`](../commands/adjust-blobs-cache-priority)。 これらのコマンドを使用することでデータベース上の一時的な操作のパフォーマンスを向上させ、その操作が終了したあとは初期プロパティに戻るようにすることができます。 これらのコマンドは4D Server とローカルモードの4D においてのみ利用可能です。 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 e4768b0ff2d0d5..908300241cdd92 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 @@ -748,7 +748,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/licenses.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/licenses.md index 7fe59184b4d328..1a5eec2bdb3794 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/licenses.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/licenses.md @@ -18,15 +18,15 @@ title: ライセンスリスト 運用ライセンスは、以下の表で説明されているように、開発者によって開発段階で埋め込むか、あるいは初回起動時にエンドユーザーによって入力される必要があります: -| 運用ライセンス | 説明 | 入力する場所 | -| ------------------------ | ------------------------------------------------ | --------------------------------------------------------- | -| *4D OEM Desktop* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Unlimited Desktop* | **販売終了** - 埋め込まれたカスタムのライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Desktop* | ユーザーごとのライセンスで、スタンドアロンの4D アプリケーションを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | -| *4D Desktop Business* | スタンドアロン4D アプリケーション用の埋め込みカスタムライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Server OEM* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D XML Keys Activation* | 非自動埋め込みモードの4D Server OEM ライセンスをアクティベートするのに使用されます | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | -| *4D Server* | 各ユーザーごとに必要なライセンスで、4D Server とクライアントを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| 運用ライセンス | 説明 | 入力する場所 | +| ----------------------------- | ------------------------------------------------ | --------------------------------------------------------- | +| *4D Server* | 各ユーザーごとに必要なライセンスで、4D Server とクライアントを使用するのに必要です。 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| *4D Desktop* | コンピューターごとのライセンス、スタンドアロン4D アプリケーションを使用するのに必要 | ユーザーマシン上での[初回起動時](#初回のアクティベーション) のダイアログボックス | +| *4D Desktop Business Edition* | スタンドアロン4D アプリケーション用の埋め込みカスタムライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D Server OEM* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D OEM Desktop* | 埋め込まれたカスタムのライセンス。 詳細は 4D 営業部にお問い合わせ下さい。 | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D XML Keys Activation* | 非自動埋め込みモードの4D Server OEM ライセンスをアクティベートするのに使用されます | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | +| *4D Unlimited Desktop* | **販売終了** - 埋め込まれたカスタムのライセンス | ビルドアプリケーションダイアログの[ライセンスページ](../Desktop/building.md#ライセンス) | ### 期限切れ 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 469e1a9b038624..b53b0379a94257 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 @@ -284,7 +284,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: - CSS カラーネーム: `fill: red;` - - 16進数カラーコード: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - `rgb()` 関数: `fill:rgb(255,0,0)` - CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md index 985af773c20c83..17fff70a2c759e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md @@ -7,7 +7,7 @@ title: 4Dユーザー&グループの管理 ## プロジェクトにおけるユーザー&グループ -プロジェクトアプリケーション (.4DProject および .4dz ファイル) では、シングルユーザーおよびマルチユーザー環境の両方でユーザーとグループを設定することができます。 ただし、**アクセスシステム** は 4D Server でのみ有効です。 次の表は、主なユーザーとグループの機能と、それらが利用かどうかを一覧に示します: +プロジェクトアプリケーション (.4DProject および .4dz ファイル) では、シングルユーザーおよびマルチユーザー環境の両方でユーザーとグループを設定することができます。 ただし、**アクセスコントロール** は 4D Server でのみ有効です。 次の表は、主なユーザーとグループの機能と、それらが利用かどうかを一覧に示します: | | 4D (シングルユーザー) | 4D Server | | ---------------------------- | --------------------------------------- | --------- | @@ -104,9 +104,9 @@ title: 4Dユーザー&グループの管理 ### ユーザープロパティ -- **ユーザーの種類**: "デザイナー"、"管理者"、または (それ以外のすべてのユーザーの場合にあ) "ユーザー" +- **ユーザーの種類**: "デザイナー"、"管理者"、または (それ以外のすべてのユーザーの場合に) "ユーザー" -- **開始メソッド**: ユーザーがアプリケーションを開いたときに自動実行されるメソッドの名称 (任意) このメソッドを使って、たとえばユーザー設定をロードできます。 このメソッドを使って、たとえばユーザー設定をロードできます。 +- **開始メソッド**: ユーザーがアプリケーションを開いたときに自動実行されるメソッドの名称 (任意) このメソッドを使って、たとえばユーザー設定をロードできます。 ## グループエディター @@ -150,19 +150,19 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### プラグインやサーバーにグループを割り当てる +### Assigning a license to a group -プロジェクトにインストールされたプラグインへのアクセス権をグループに割り当てることができます。 これには 4D のプラグインと任意のサードパーティープラグインが含まれます。 +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -プラグインへのアクセス権を割り当てると、所有するプラグインライセンスの使用を管理できるようになります。 プラグインのアクセスグループに属さないユーザーは、そのプラグインをロードすることができません。 +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -ツールボックスのグループページにある "プラグイン" エリアには、4Dアプリケーションによりロードされたプラグインがすべて表示されます。 プラグインへのアクセス権をグループに与えるには、該当するオプションをチェックします。 +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -**4D Client Web Server** や **4D Client SOAP Server** 項目を使用し、リモートモードの 4D がそれぞれ Web および SOAP (Webサービス) 公開をおこなえるかどうかを管理することができます。 これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 ### アクセス権の階層構造 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 a57fa3a21dca80..b6df49c9bd67f8 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 @@ -33,7 +33,7 @@ title: はじめに プロジェクトを再起動すると、4D View Pro コンポーネントは[Github 依存関係](../Project/components.md#githubの依存関係の追加)としてインストールされます。 -4D View Pro はライセンスを必要とします。 これらの機能を使用するには、アプリケーションにおいて当該ライセンスを有効化しておく必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) 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 f192083942dec2..43e52e24dbb46c 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 @@ -47,7 +47,7 @@ displayed_sidebar: docs - ペーパーボックスの左上隅に表示 - 全てのページに表示 -The location, layer (inline, in front/behind text), visibility, and any properties of picture can be modified using the [WP SET ATTRIBUTES](wp-set-attributes.md) command, or via standard actions. +位置、レイヤー(インライン、テキストの前/後)、表示状態、その他ピクチャーのあらゆるプロパティは[WP SET ATTRIBUTES](wp-set-attributes.md) コマンド、または標準アクションを使用して変更することができます。 **注意:** [WP Selection range](../commands-legacy/wp-selection-range.md) コマンドは、アンカーされたピクチャーが選択されていた場合には *ピクチャー参照* を、インラインピクチャーが選択されていた場合には *レンジオブジェクト* を返します。 選択されたオブジェクトがピクチャーオブジェクトであるかどうかは、`wk type` 属性をチェックすることで確認できます。 選択されたオブジェクトがピクチャーオブジェクトであるかどうかは、`wk type` 属性をチェックすることで確認できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md index f70218e010e262..e1e396b27303a3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md @@ -31,7 +31,7 @@ displayed_sidebar: docs ## 説明 -`HTTP Parse message` コマンドは、multipart/form-*data* のテキストまたは Blob (HTTP "response" メッセージ) をパースし、コンテンツをオブジェクトに抽出します。 戻り値のオブジェクトの各プロパティは、マルチパートの各データに対応します。 戻り値のオブジェクトの各プロパティは、マルチパートの各データに対応します。 +`HTTP Parse message` コマンドは、multipart/form-*data* のテキストまたは Blob (HTTP "response" メッセージ) をパースし、コンテンツをオブジェクトに抽出します。 戻り値のオブジェクトの各プロパティは、マルチパートの各データに対応します。 :::info @@ -90,4 +90,4 @@ var $parsedMessage : Object:=HTTP Parse message($message) | | | | ------- | ---- | | コマンド番号 | 1824 | -| スレッドセーフ | × | +| スレッドセーフ | ◯ | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md index 9a8b44f700af70..7251f8d15072f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/wa-set-context.md @@ -31,7 +31,7 @@ displayed_sidebar: docs ### 説明 -`WA SET CONTEXT` コマンドは、 \* および *object* 引数で指定されたWeb エリア内の `$4d` に対して *contextObj* 引数で指定したコンテキストオブジェクトを定義します。 このコマンドが使用されると、 `$4d` は提供された *contextObj* 内で宣言されたコンテンツのみにアクセスできます。 コンテキストオブジェクトが何も設定されていない場合、 `$4d` はすべての4D メソッドにアクセスできますが、ユーザークラスにはアクセスできません。 このコマンドが使用されると、 `$4d` は提供された *contextObj* 内で宣言されたコンテンツのみにアクセスできます。 コンテキストオブジェクトが何も設定されていない場合、 `$4d` はすべての4D メソッドにアクセスできますが、ユーザークラスにはアクセスできません。 +`WA SET CONTEXT` コマンドは、 \* および *object* 引数で指定されたWeb エリア内の `$4d` に対して *contextObj* 引数で指定したコンテキストオブジェクトを定義します。 このコマンドが使用されると、 `$4d` は提供された *contextObj* 内で宣言されたコンテンツのみにアクセスできます。 コンテキストオブジェクトが何も設定されていない場合、 `$4d` はすべての4D メソッドにアクセスできますが、ユーザークラスにはアクセスできません。 :::note diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index 11d3e85631d3da..d76ea5ddf0a642 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -21,7 +21,7 @@ The `4D.QuotaManager` class provides you with an interface to configure and moni | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [](#currentvalues)
| +| [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| | [](#nbentitysets)
| diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/mirror.md b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/mirror.md index 7248a3cb58b83a..ec898e6f95df69 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Backup/mirror.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Backup/mirror.md @@ -3,7 +3,7 @@ id: mirror title: Logical mirror --- -4D Server offers an integrated solution that allows the setting up of a backup system via a logical mirror. This solution is based on two commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). +4D Server offers an integrated solution that allows the setting up of a backup system via a logical mirror. ## What is a logical mirror? @@ -27,7 +27,7 @@ A mirror solution only reflects changes made to the **data**. This backup mode i ## Como funciona -Setting up a backup system using a logical mirror is based on two new commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). +Setting up a backup system using a logical mirror is based on two commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). The following principles are implemented: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md index 3ded833639fd01..04559b9b674e7e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md @@ -322,7 +322,7 @@ icon: url("edit.png"); /* rota relativa ao arquivo de formulário */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Valor hexadécimal: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - función `rgb()`: `fill:rgb(255,0,0)` - Se uma string utilizar caracteres proibidos em CSS, pode rodear a string com aspas simples ou duplas. Por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md b/i18n/pt/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md index ba597b53443b43..76b6f1e03d4eb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md @@ -151,19 +151,19 @@ A colocação de grupos noutros grupos permite-lhe criar uma hierarquia de usuá Para remover um usuário ou grupo de outro grupo, você só precisa desmarcar a opção correspondente na área de atribuição de membros. -### Atribuição de um grupo a um plug-in ou a um servidor +### Assigning a license to a group -Você pode atribuir privilégios de grupo a qualquer plug-in instalado no projeto. Isto inclui todos os plug-ins 4D e de terceiros. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -A distribuição de acesso ao plug-ins permite que você controle o uso das licenças que você possui para esses plug-ins. Qualquer usuário que não pertence ao grupo de acesso de um plug-in não pode carregar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Licenças utilizadas permanecem anexadas a contas de usuário 4D no grupo para toda a sessão 4D. -A área "Plug-in" na página de grupos da caixa de ferramentas lista todos os plug-ins carregados pela aplicação 4D. Para dar acesso a um grupo a um plug-in, você precisa simplesmente marcar a opção correspondente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Las líneas **4D Client Web Server** y **4D Client SOAP Server** permiten controlar la posibilidad de publicación Web y SOAP (Web Services) de cada 4D en modo remoto. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. ### Um esquema de acesso hierárquico 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 014689d5f56f27..9d8919cf895692 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 @@ -32,7 +32,7 @@ The easiest way to install 4D View Pro in an opened project is to use the Depend Once you restart the project, the 4D View Pro component is installed as a [Github dependency](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requires a license. Você precisa ativar essa licença em seu aplicativo para usar seus recursos. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: +4D View Pro requires a license. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md index a2377ca0f9d626..69bfc9be3c987a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md @@ -282,7 +282,7 @@ icon: url("edit.png"); /* rota relativa ao arquivo de formulário */ * Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` e `verticalLineStroke`, três sintaxes são compatíveis: * css color name: `fill: red;` - * valor hexadécimal: `fill: #FF0000;` + * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) * función `rgb()`: `fill:rgb(255,0,0)` * Se uma string utilizar caracteres proibidos em CSS, pode rodear a string com aspas simples ou duplas. Por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md index 0a5b1bc5a90066..b45b36e4983fd4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md @@ -138,15 +138,15 @@ A colocação de grupos noutros grupos permite-lhe criar uma hierarquia de usuá Para remover um usuário ou grupo de outro grupo, você só precisa desmarcar a opção correspondente na área de atribuição de membros. -### Atribuição de um grupo a um plug-in ou a um servidor +### Assigning a license to a group -Você pode atribuir privilégios de grupo a qualquer plug-in instalado no projeto. Isto inclui todos os plug-ins 4D e de terceiros. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -A distribuição de acesso ao plug-ins permite que você controle o uso das licenças que você possui para esses plug-ins. Qualquer usuário que não pertence ao grupo de acesso de um plug-in não pode carregar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Licenças utilizadas permanecem anexadas a contas de usuário 4D no grupo para toda a sessão 4D. -A área "Plug-in" na página de grupos da caixa de ferramentas lista todos os plug-ins carregados pela aplicação 4D. Para dar acesso a um grupo a um plug-in, você precisa simplesmente marcar a opção correspondente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md index 0b282eca6149ac..5b6955f147edb4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md @@ -24,7 +24,7 @@ A incorporação de áreas do 4D View Pro em seus formulários permite importar Os recursos do 4D View Pro estão incluídos diretamente no 4D, o que facilita a implementação e o gerenciamento. Não é necessária qualquer instalação adicional. -No entanto, 4D View Pro requer uma licença. Você precisa ativar essa licença em seu aplicativo para usar seus recursos. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: +No entanto, 4D View Pro requer uma licença. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md index 18e86823d388d6..0944ec40cd2a36 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/API/SessionClass.md @@ -752,7 +752,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md index 834c20704eb57b..b939408690ede1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Admin/licenses.md @@ -18,15 +18,15 @@ As licenças de desenvolvimento são necessárias para acessar o ambiente e os r As licenças de implementação podem ser incorporadas na etapa de compilação pelo desenvolvedor ou inseridas no primeiro lançamento pelo usuário, conforme descrito na tabela a seguir: -| Licença de implantação | Descrição | Onde entrar | -| ------------------------ | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Unlimited Desktop* | **Descontinuado** - Licença personalizada incorporada | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Desktop* | Licença por usuário, permitindo-lhes utilizar aplicativos 4D autônomos | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | -| *4D Desktop Business* | Embedded custom license for stand-alone 4D applications | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Server OEM* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D XML Keys Activation* | Used to activate 4D Server OEM licenses in non-automatic embedding mode | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Server* | Licença por usuário, permitindo que eles usem 4D Server e clientes | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| Licença de implantação | Descrição | Onde entrar | +| ----------------------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| *4D Server* | Licença por usuário, permitindo que eles usem 4D Server e clientes | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| *4D Desktop* | Per-computer license, allowing to use stand-alone 4D applications | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| *4D Desktop Business Edition* | Embedded custom license for stand-alone 4D applications | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D Server OEM* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D OEM Desktop* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D XML Keys Activation* | Used to activate 4D Server OEM licenses in non-automatic embedding mode | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D Unlimited Desktop* | **Descontinuado** - Licença personalizada incorporada | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | ### Vencimento diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md index 026feeb111bc37..03d998c4b5e6ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md @@ -322,7 +322,7 @@ icon: url("edit.png"); /* rota relativa ao arquivo de formulário */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Valor hexadécimal: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - función `rgb()`: `fill:rgb(255,0,0)` - Se uma string utilizar caracteres proibidos em CSS, pode rodear a string com aspas simples ou duplas. Por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md index 3c047e706fb262..5d04d674f3d6ca 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md @@ -211,7 +211,7 @@ The [**form-theme** CSS media query](./createStylesheet.md#media-queries) allows When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The [`FORM theme`](../commands/form-theme) command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or if the command is called on macOS, and empty string is returned. +- The [`FORM theme`](../commands/form-theme) command returns the actual display theme of the current form. Possible values: "Classic", "FluentUI" or "LiquidGlass". - The [`Application info`](../commands/application-info) command allows you to know if Fluent UI can be used (`canUseFluentUI` property) or is being used (`useFluentUI` property). - If [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md index cf1d39d1674b03..edcbaf71889979 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Notes/updates.md @@ -77,7 +77,7 @@ Leia [**O que há de novo no 4D v21 R2**](https://blog.4d.com/whats-new-in-4d-21 | libZip | 1.11.4 | 21 | Utilizado pelos componentes zip class, 4D Write Pro, svg e serverNet | | LZMA | 5.8.1 | 21 | | | ngtcp2 | 1.18.0 | 21 | Usado para QUIC | -| OpenSSL | 3.5.2 | 21 | | +| OpenSSL | 3.5.7 | 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) | | SpreadJS | 18.2.0 | 21 R2 | Veja [este post de blog](https://blog.4d.com/4d-view-pro-whats-new-in-4d-21-r2/) para uma visão geral dos novos recursos | | webKit | WKWebView | 19 | | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md index ba597b53443b43..76b6f1e03d4eb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md @@ -151,19 +151,19 @@ A colocação de grupos noutros grupos permite-lhe criar uma hierarquia de usuá Para remover um usuário ou grupo de outro grupo, você só precisa desmarcar a opção correspondente na área de atribuição de membros. -### Atribuição de um grupo a um plug-in ou a um servidor +### Assigning a license to a group -Você pode atribuir privilégios de grupo a qualquer plug-in instalado no projeto. Isto inclui todos os plug-ins 4D e de terceiros. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -A distribuição de acesso ao plug-ins permite que você controle o uso das licenças que você possui para esses plug-ins. Qualquer usuário que não pertence ao grupo de acesso de um plug-in não pode carregar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Licenças utilizadas permanecem anexadas a contas de usuário 4D no grupo para toda a sessão 4D. -A área "Plug-in" na página de grupos da caixa de ferramentas lista todos os plug-ins carregados pela aplicação 4D. Para dar acesso a um grupo a um plug-in, você precisa simplesmente marcar a opção correspondente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Las líneas **4D Client Web Server** y **4D Client SOAP Server** permiten controlar la posibilidad de publicación Web y SOAP (Web Services) de cada 4D en modo remoto. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. ### Um esquema de acesso hierárquico diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md index 014689d5f56f27..9d8919cf895692 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md @@ -32,7 +32,7 @@ The easiest way to install 4D View Pro in an opened project is to use the Depend Once you restart the project, the 4D View Pro component is installed as a [Github dependency](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requires a license. Você precisa ativar essa licença em seu aplicativo para usar seus recursos. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: +4D View Pro requires a license. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md index 2f0c26a0f6e5e9..d76ea5ddf0a642 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md @@ -21,10 +21,10 @@ The `4D.QuotaManager` class provides you with an interface to configure and moni | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [](#currentvalues)
| +| [](#currentvalues)
| | [](#defaultentitysettimeout)
| | [](#maxentitysettimeout)
| -| [](#nbentitysets)
| +| [](#nbentitysets)
| @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### Descrição -The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session (in seconds). +The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. By default, there is no limit for entity sets [stored in memory by REST requests](../REST/$info.md) (the value is 0). You can set a limit to control the server payload for a specific session. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md index aaaff8b8110e0a..c662483947e6c5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/API/SessionClass.md @@ -809,7 +809,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md index 834c20704eb57b..b939408690ede1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Admin/licenses.md @@ -18,15 +18,15 @@ As licenças de desenvolvimento são necessárias para acessar o ambiente e os r As licenças de implementação podem ser incorporadas na etapa de compilação pelo desenvolvedor ou inseridas no primeiro lançamento pelo usuário, conforme descrito na tabela a seguir: -| Licença de implantação | Descrição | Onde entrar | -| ------------------------ | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Unlimited Desktop* | **Descontinuado** - Licença personalizada incorporada | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Desktop* | Licença por usuário, permitindo-lhes utilizar aplicativos 4D autônomos | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | -| *4D Desktop Business* | Embedded custom license for stand-alone 4D applications | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Server OEM* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D XML Keys Activation* | Used to activate 4D Server OEM licenses in non-automatic embedding mode | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Server* | Licença por usuário, permitindo que eles usem 4D Server e clientes | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| Licença de implantação | Descrição | Onde entrar | +| ----------------------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| *4D Server* | Licença por usuário, permitindo que eles usem 4D Server e clientes | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| *4D Desktop* | Per-computer license, allowing to use stand-alone 4D applications | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| *4D Desktop Business Edition* | Embedded custom license for stand-alone 4D applications | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D Server OEM* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D OEM Desktop* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D XML Keys Activation* | Used to activate 4D Server OEM licenses in non-automatic embedding mode | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D Unlimited Desktop* | **Descontinuado** - Licença personalizada incorporada | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | ### Vencimento diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md index 026feeb111bc37..03d998c4b5e6ba 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md @@ -322,7 +322,7 @@ icon: url("edit.png"); /* rota relativa ao arquivo de formulário */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Valor hexadécimal: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - función `rgb()`: `fill:rgb(255,0,0)` - Se uma string utilizar caracteres proibidos em CSS, pode rodear a string com aspas simples ou duplas. Por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md index d3918b25e424d2..1c3f933fa1627a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md @@ -337,7 +337,7 @@ The [**form-theme** CSS media query](./createStylesheet.md#media-queries) allows When using 4D forms with Fluent UI rendering, you need to pay attention to the following points: -- The [`FORM theme`](../commands/form-theme) command returns the actual display theme of the current form. Possible values: "Classic" or "FluentUI". If there is no current form or if the command is called on macOS, and empty string is returned. +- The [`FORM theme`](../commands/form-theme) command returns the actual display theme of the current form. Possible values: "Classic", "FluentUI" or "LiquidGlass". - The [`Application info`](../commands/application-info) command allows you to know if Fluent UI can be used (`canUseFluentUI` property) or is being used (`useFluentUI` property). - If [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) 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/set-menu-item-style) with `Underline` *itemStyle* parameter is not supported (ignored) for pop up menus. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md index ba597b53443b43..76b6f1e03d4eb1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md @@ -151,19 +151,19 @@ A colocação de grupos noutros grupos permite-lhe criar uma hierarquia de usuá Para remover um usuário ou grupo de outro grupo, você só precisa desmarcar a opção correspondente na área de atribuição de membros. -### Atribuição de um grupo a um plug-in ou a um servidor +### Assigning a license to a group -Você pode atribuir privilégios de grupo a qualquer plug-in instalado no projeto. Isto inclui todos os plug-ins 4D e de terceiros. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -A distribuição de acesso ao plug-ins permite que você controle o uso das licenças que você possui para esses plug-ins. Qualquer usuário que não pertence ao grupo de acesso de um plug-in não pode carregar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Licenças utilizadas permanecem anexadas a contas de usuário 4D no grupo para toda a sessão 4D. -A área "Plug-in" na página de grupos da caixa de ferramentas lista todos os plug-ins carregados pela aplicação 4D. Para dar acesso a um grupo a um plug-in, você precisa simplesmente marcar a opção correspondente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Las líneas **4D Client Web Server** y **4D Client SOAP Server** permiten controlar la posibilidad de publicación Web y SOAP (Web Services) de cada 4D en modo remoto. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. ### Um esquema de acesso hierárquico diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md index 014689d5f56f27..9d8919cf895692 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md @@ -32,7 +32,7 @@ The easiest way to install 4D View Pro in an opened project is to use the Depend Once you restart the project, the 4D View Pro component is installed as a [Github dependency](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requires a license. Você precisa ativar essa licença em seu aplicativo para usar seus recursos. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: +4D View Pro requires a license. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: ![](../assets/en/ViewPro/licenseError.png) 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 97b50b6d109d8e..9c58d3bdf840df 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 @@ -748,7 +748,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage -**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection )
**.setPrivileges**( *settings* : Object ) : Boolean +**.setPrivileges**( *privilege* : Text ) : Boolean
**.setPrivileges**( *privileges* : Collection ) : Boolean
**.setPrivileges**( *settings* : Object ) : Boolean diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Admin/licenses.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Admin/licenses.md index 834c20704eb57b..b939408690ede1 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Admin/licenses.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Admin/licenses.md @@ -18,15 +18,15 @@ As licenças de desenvolvimento são necessárias para acessar o ambiente e os r As licenças de implementação podem ser incorporadas na etapa de compilação pelo desenvolvedor ou inseridas no primeiro lançamento pelo usuário, conforme descrito na tabela a seguir: -| Licença de implantação | Descrição | Onde entrar | -| ------------------------ | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| *4D OEM Desktop* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Unlimited Desktop* | **Descontinuado** - Licença personalizada incorporada | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Desktop* | Licença por usuário, permitindo-lhes utilizar aplicativos 4D autônomos | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | -| *4D Desktop Business* | Embedded custom license for stand-alone 4D applications | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Server OEM* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D XML Keys Activation* | Used to activate 4D Server OEM licenses in non-automatic embedding mode | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | -| *4D Server* | Licença por usuário, permitindo que eles usem 4D Server e clientes | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| Licença de implantação | Descrição | Onde entrar | +| ----------------------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| *4D Server* | Licença por usuário, permitindo que eles usem 4D Server e clientes | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| *4D Desktop* | Per-computer license, allowing to use stand-alone 4D applications | Caixa de diálogo [Primeira ativação](#first-activation) na máquina do usuário | +| *4D Desktop Business Edition* | Embedded custom license for stand-alone 4D applications | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D Server OEM* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D OEM Desktop* | Licença personalizada incorporada, entre em contato com 4D Sales para obter informações | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D XML Keys Activation* | Used to activate 4D Server OEM licenses in non-automatic embedding mode | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | +| *4D Unlimited Desktop* | **Descontinuado** - Licença personalizada incorporada | [Página de licenças](../Desktop/building.md#licenses) da caixa de diálogo do Gerador de aplicações | ### Vencimento 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..2bfd15ddb257d9 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 @@ -283,7 +283,7 @@ icon: url("edit.png"); /* rota relativa ao arquivo de formulário */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Valor hexadécimal: `fill: #FF0000;` + - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) - función `rgb()`: `fill:rgb(255,0,0)` - Se uma string utilizar caracteres proibidos em CSS, pode rodear a string com aspas simples ou duplas. Por exemplo: diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md index e63c3ec043f57a..722a78e39db44b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md @@ -151,19 +151,19 @@ A colocação de grupos noutros grupos permite-lhe criar uma hierarquia de usuá Para remover um usuário ou grupo de outro grupo, você só precisa desmarcar a opção correspondente na área de atribuição de membros. -### Atribuição de um grupo a um plug-in ou a um servidor +### Assigning a license to a group -Você pode atribuir privilégios de grupo a qualquer plug-in instalado no projeto. Isto inclui todos os plug-ins 4D e de terceiros. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -A distribuição de acesso ao plug-ins permite que você controle o uso das licenças que você possui para esses plug-ins. Qualquer usuário que não pertence ao grupo de acesso de um plug-in não pode carregar este plug-in. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. > Licenças utilizadas permanecem anexadas a contas de usuário 4D no grupo para toda a sessão 4D. -A área "Plug-in" na página de grupos da caixa de ferramentas lista todos os plug-ins carregados pela aplicação 4D. Para dar acesso a um grupo a um plug-in, você precisa simplesmente marcar a opção correspondente. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -Las líneas **4D Client Web Server** y **4D Client SOAP Server** permiten controlar la posibilidad de publicación Web y SOAP (Web Services) de cada 4D en modo remoto. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. +The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. ### Um esquema de acesso hierárquico 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 c7e3845de96c2a..1d3b24ce6eba97 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 @@ -32,7 +32,7 @@ The easiest way to install 4D View Pro in an opened project is to use the Depend Once you restart the project, the 4D View Pro component is installed as a [Github dependency](../Project/components.md#adding-a-github-dependency). -4D View Pro requires a license. Você precisa ativar essa licença em seu aplicativo para usar seus recursos. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: +4D View Pro requires a license. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Ao usar esse componente sem uma licença, o conteúdo de um objeto que requer um recurso do 4D View Pro não é exibido em tempo de execução; em vez disso, é exibida uma mensagem de erro: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md index 67f0d788d68d64..240ae284ab00dd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/http-parse-message.md @@ -90,4 +90,4 @@ var $parsedMessage : Object:=HTTP Parse message($message) | | | | ----------------- | ---- | | Número de comando | 1824 | -| Thread safe | não | +| Thread safe | sim | From 0623e50a0ae13d4ddbe6579f28478b20d7317443 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 3 Sep 2026 17:44:18 +0900 Subject: [PATCH 15/60] Update get-list-item-font.md (#3407) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/get-list-item-font.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-font.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-font.md index a0ec08b11912c3..bb9bcedc8207ed 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-font.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-font.md @@ -5,7 +5,7 @@ slug: /commands/get-list-item-font displayed_sidebar: docs --- -**Get list item font** ( {* ;} *list* : Integer, Text ; *itemRef* : 倍長整数, 演算子 ) : Text
**Get list item font** ( * ; *list* : Integer, Text ; * ) : Text +**Get list item font** ( * ; *list* : Text ; *itemRef* : 倍長整数, 演算子 ) : Text
**Get list item font** ( *list* : 倍長整数 ; *itemRef* : 倍長整数, 演算子 ) : Text
@@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | * | 演算子 | → | 指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号 | | list | Integer, Text | → | リスト参照番号 (* 省略時) または リストオブジェクト名 (* 指定時) | -| itemRef | * | 倍長整数, 演算子 | → | 項目参照番号 または 0 の場合最後に追加された項目 または *の場合リストのカレント項目 | +| itemRef | 倍長整数, 演算子 | → | 項目参照番号 または 0 の場合最後に追加された項目 または * の場合リストのカレント項目 | | 戻り値 | Text | ← | フォント名 |
@@ -34,9 +34,10 @@ displayed_sidebar: docs 一番目のオプション引数 \* を渡すと、*list* 引数はフォーム上のリストオブジェクトのオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数は階層リスト参照 ([ListRef](# "階層リストへの参照")) です。フォーム上に1つしかリストオブジェクトがない場合や (2番目の \* を省略して) リストのストラクチャを対象に処理を行う場合、いずれのシンタックスも使用できます。同じリストを複数のリストオブジェクトで使用する場合で、 (2番目の \* を渡して) 選択されている項目を対象に処理を行う場合、選択されている項目はオブジェクトごとに異なるので、オブジェクト名のシンタックスを使用しなければなりません。 -**Note:** オブジェクト名に@文字を使用し、フォーム上にこれに合致するリストオブジェクトが複数ある場合、Get list item font コマンドは最初に見つけたリストオブジェクトを検索の対象とします。 +**注意:** オブジェクト名に@文字を使用し、フォーム上にこれに合致するリストオブジェクトが複数ある場合、**Get list item font** コマンドは最初に見つけたリストオブジェクトを検索の対象とします。 + +*itemRef*には項目参照番号を渡すことができます。この番号に対応する項目がない場合、コマンドは何も行いません。*itemRef*に0を渡すと ([APPEND TO LIST](append-to-list.md "APPEND TO LIST")を使用して) リストに最後に追加された項目のフォントを返します。 -*itemRef*には項目参照番号を渡すことができます。この番号に対応する項目がない場合、コマンドは何も行いません。*itemRef*に0を渡すと ([APPEND TO LIST](append-to-list.md "APPEND TO LIST")を使用して) リストに最後に追加された項目のフォントを返します。 *itemRef*に \* を渡した場合、コマンドはリスト中のカレントの項目のフォントを返します。複数の項目がユーザにより選択されている場合、最後に選択された項目がカレントの項目です。項目が選択されていない場合、コマンドは何も行いません。 ## 参照 From 6a4e5a9c5362f3d5e77386cd80d1c8c1f5bb5e8c Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 3 Sep 2026 17:44:31 +0900 Subject: [PATCH 16/60] Update get-list-item-icon.md (#3408) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/get-list-item-icon.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-icon.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-icon.md index 30f78f05bde40b..e8f34075ef5a2c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-icon.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-icon.md @@ -5,7 +5,7 @@ slug: /commands/get-list-item-icon displayed_sidebar: docs --- -**GET LIST ITEM ICON** ( {* ;} *list* : Integer, Text ; *itemRef* : 演算子, 倍長整数 ; *icon* : Picture )
**GET LIST ITEM ICON** ( * ; *list* : Integer, Text ; * ; *icon* : Picture +**GET LIST ITEM ICON** ( * ; *list* : Text ; *itemRef* : 演算子, 倍長整数 ; *icon* : Picture )
**GET LIST ITEM ICON** ( *list* : Integer ; *itemRef* : 演算子, 倍長整数 ; *icon* : Picture )
@@ -30,19 +30,19 @@ displayed_sidebar: docs ## 説明 -GET LIST ITEM ICON コマンドは、*list*に参照番号またはオブジェクト名を渡したリスト内の、*itemRef*項目参照の項目に割り当てられたアイコンを*icon*に返します。 +GET LIST ITEM ICON コマンドは、*list* に参照番号またはオブジェクト名を渡したリスト内の、*itemRef* 項目参照の項目に割り当てられたアイコンを*icon* に返します。 オプションの第一引数 *\** を渡すと、*list* 引数はフォーム上のリストオブジェクトに対応するオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数は階層リスト参照 ([ListRef](# "階層リストへの参照")) です。リストオブジェクトを一つしか使わない場合や、2番目の *\** を使用しない場合は、両方のシンタックスを使用できます。他方フォーム上に同じ階層リストを参照する複数のオブジェクトがある場合で、2番目の *\** を渡して現在選択されている項目を参照する場合、それぞれのオブジェクトが個別に選択された項目をもつので、オブジェクト名に基づくシンタックスを使用しなければなりません。 -**Note:** オブジェクト名に @ 文字を使用することで、名前に対応するオブジェクトが複数検索された場合、GET LIST ITEM ICON コマンドは最初に見つけたオブジェクトを処理の対象とします。 +**注意:** オブジェクト名に @ 文字を使用することで、名前に対応するオブジェクトが複数検索された場合、**GET LIST ITEM ICON** コマンドは最初に見つけたオブジェクトを処理の対象とします。 -*itemRef*に項目参照番号を渡すことができます。対応する項目がない場合、コマンドは何も行いません。0を渡した場合、リストに最後に追加された項目が処理の対象となります。*\** を渡した場合、コマンドは現在選択されている項目を処理の対象とします。複数の項目が選択されている場合、カレントの項目は最後に選択された項目です。項目が選択されていない場合、コマンドは何も行いません。 +*itemRef* に項目参照番号を渡すことができます。対応する項目がない場合、コマンドは何も行いません。*itemRef* に0 を渡した場合、リストに最後に([APPEND TO LIST](../commands/append-to-list)を使用して)追加された項目が処理の対象となります。*itemRef* に*\** を渡した場合、コマンドは現在選択されている項目を処理の対象とします。複数の項目が選択されている場合、カレントの項目は最後に選択された項目です。項目が選択されていない場合、コマンドは何も行いません。 -iconにはピクチャ変数を渡します。コマンド実行後、(スタティックピクチャ、リソース、ピクチャ式になどの) ソースに関わらず、引数には項目に割り当てられたアイコンが返されます。 +*icon* 引数にはピクチャ変数を渡します。コマンド実行後、(スタティックピクチャ、リソース、ピクチャ式になどの) ソースに関わらず、引数には項目に割り当てられたアイコンが返されます。 -項目にアイコンが割り当てられていない場合、*icon*変数は空となります。 +項目にアイコンが割り当てられていない場合、*icon* 変数は空となります。 -**Note:** 項目に割り当てられたアイコンがスタティックな参照 (リソース参照またはピクチャライブラリのピクチャ) で定義されている場合、その番号は[GET LIST ITEM PROPERTIES](get-list-item-properties.md "GET LIST ITEM PROPERTIES") コマンドで取得できます。 +**注意:** 項目に割り当てられたアイコンがスタティックな参照 (リソース参照またはピクチャライブラリのピクチャ) で定義されている場合、その番号は[GET LIST ITEM PROPERTIES](get-list-item-properties.md "GET LIST ITEM PROPERTIES") コマンドで取得できます。 ## 参照 From 3dd412cfe84bc1e645bc4be5451a829d253698f6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 3 Sep 2026 14:25:42 +0200 Subject: [PATCH 17/60] fixed license all lang --- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../WritePro/user-legacy/presentation.md | 2 +- .../version-21/Users/handling_users_groups.md | 9 ++++----- .../version-21/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes 14 files changed, 16 insertions(+), 17 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md index dfe9eec7731539..c8b976fb6b3974 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md @@ -27,7 +27,7 @@ Las funcionalidades principales del producto son las siguientes: 4D Write Pro está totalmente integrado en el propio 4D, por lo que es más fácil de desplegar y administrar. No se requiere ninguna instalación adicional, puede agregar áreas 4D Write Pro en sus formularios y manejar las variables 4D Write Pro en sus aplicaciones 4D directamente. -Sin embargo, es necesario tener instalada una licencia de 4D Write Pro en la aplicación para poder habilitar la función. +Sin embargo, es necesario tener [una licencia de 4D Write Pro instalada en la aplicación](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) para poder habilitar la función. ## Creación de un área 4D Write Pro diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md index dfe9eec7731539..c8b976fb6b3974 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md @@ -27,7 +27,7 @@ Las funcionalidades principales del producto son las siguientes: 4D Write Pro está totalmente integrado en el propio 4D, por lo que es más fácil de desplegar y administrar. No se requiere ninguna instalación adicional, puede agregar áreas 4D Write Pro en sus formularios y manejar las variables 4D Write Pro en sus aplicaciones 4D directamente. -Sin embargo, es necesario tener instalada una licencia de 4D Write Pro en la aplicación para poder habilitar la función. +Sin embargo, es necesario tener [una licencia de 4D Write Pro instalada en la aplicación](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) para poder habilitar la función. ## Creación de un área 4D Write Pro diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md index dfe9eec7731539..c8b976fb6b3974 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md @@ -27,7 +27,7 @@ Las funcionalidades principales del producto son las siguientes: 4D Write Pro está totalmente integrado en el propio 4D, por lo que es más fácil de desplegar y administrar. No se requiere ninguna instalación adicional, puede agregar áreas 4D Write Pro en sus formularios y manejar las variables 4D Write Pro en sus aplicaciones 4D directamente. -Sin embargo, es necesario tener instalada una licencia de 4D Write Pro en la aplicación para poder habilitar la función. +Sin embargo, es necesario tener [una licencia de 4D Write Pro instalada en la aplicación](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) para poder habilitar la función. ## Creación de un área 4D Write Pro diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md index dfe9eec7731539..c8b976fb6b3974 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md @@ -27,7 +27,7 @@ Las funcionalidades principales del producto son las siguientes: 4D Write Pro está totalmente integrado en el propio 4D, por lo que es más fácil de desplegar y administrar. No se requiere ninguna instalación adicional, puede agregar áreas 4D Write Pro en sus formularios y manejar las variables 4D Write Pro en sus aplicaciones 4D directamente. -Sin embargo, es necesario tener instalada una licencia de 4D Write Pro en la aplicación para poder habilitar la función. +Sin embargo, es necesario tener [una licencia de 4D Write Pro instalada en la aplicación](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) para poder habilitar la función. ## Creación de un área 4D Write Pro diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md index 3620ecf5aa6f14..cd8153e19ec314 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md @@ -26,7 +26,7 @@ Les fonctions majeures de 4D Write Pro sont : 4D Write Pro est entièrement intégré à 4D lui-même, ce qui le rend plus facile à gérer et à déployer. Aucune installation supplémentaire n'est requise, vous pouvez directement ajouter des zones 4D Write Pro dans vos formulaires et gérer les variables 4D Write Pro dans vos applications 4D. -Cependant, vous devez disposer d'une licence 4D Write Pro installée dans votre application afin d'activer cette fonctionnalité. +Cependant, vous devez disposer d'une [licence 4D Write Pro installée dans votre application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) afin d'activer cette fonctionnalité. ## Création d'une zone 4D Write Pro diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md index 3620ecf5aa6f14..cd8153e19ec314 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md @@ -26,7 +26,7 @@ Les fonctions majeures de 4D Write Pro sont : 4D Write Pro est entièrement intégré à 4D lui-même, ce qui le rend plus facile à gérer et à déployer. Aucune installation supplémentaire n'est requise, vous pouvez directement ajouter des zones 4D Write Pro dans vos formulaires et gérer les variables 4D Write Pro dans vos applications 4D. -Cependant, vous devez disposer d'une licence 4D Write Pro installée dans votre application afin d'activer cette fonctionnalité. +Cependant, vous devez disposer d'une [licence 4D Write Pro installée dans votre application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) afin d'activer cette fonctionnalité. ## Création d'une zone 4D Write Pro diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md index 3620ecf5aa6f14..cd8153e19ec314 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md @@ -26,7 +26,7 @@ Les fonctions majeures de 4D Write Pro sont : 4D Write Pro est entièrement intégré à 4D lui-même, ce qui le rend plus facile à gérer et à déployer. Aucune installation supplémentaire n'est requise, vous pouvez directement ajouter des zones 4D Write Pro dans vos formulaires et gérer les variables 4D Write Pro dans vos applications 4D. -Cependant, vous devez disposer d'une licence 4D Write Pro installée dans votre application afin d'activer cette fonctionnalité. +Cependant, vous devez disposer d'une [licence 4D Write Pro installée dans votre application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) afin d'activer cette fonctionnalité. ## Création d'une zone 4D Write Pro diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md index 3620ecf5aa6f14..cd8153e19ec314 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md @@ -26,7 +26,7 @@ Les fonctions majeures de 4D Write Pro sont : 4D Write Pro est entièrement intégré à 4D lui-même, ce qui le rend plus facile à gérer et à déployer. Aucune installation supplémentaire n'est requise, vous pouvez directement ajouter des zones 4D Write Pro dans vos formulaires et gérer les variables 4D Write Pro dans vos applications 4D. -Cependant, vous devez disposer d'une licence 4D Write Pro installée dans votre application afin d'activer cette fonctionnalité. +Cependant, vous devez disposer d'une [licence 4D Write Pro installée dans votre application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) afin d'activer cette fonctionnalité. ## Création d'une zone 4D Write Pro diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md index e7189fb2560b99..7c9867f75e3311 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user-legacy/presentation.md @@ -26,7 +26,7 @@ slug: /WritePro/getting-started 4D Write Pro はプラグインではなく、4D自身に完全に統合されており、配布と管理がより簡単になっています。追加のインストールは何も必要なく、フォーム内に4D Write Proエリアを追加するだけで、4Dアプリケーション内において4D Write Pro変数を直接管理することができます。 -ただし、この機能を有効にするには、アプリケーションに4D Write Proライセンスがインストールされている必要があります。 +ただし、この機能を有効にするには、[アプリケーションに4D Write Proライセンスがインストールされている](../../Users/handling_users_groups.md#assigning-a-license-to-a-group)必要があります。 ## Creating a 4D Write Pro area diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md index e7189fb2560b99..7c9867f75e3311 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user-legacy/presentation.md @@ -26,7 +26,7 @@ slug: /WritePro/getting-started 4D Write Pro はプラグインではなく、4D自身に完全に統合されており、配布と管理がより簡単になっています。追加のインストールは何も必要なく、フォーム内に4D Write Proエリアを追加するだけで、4Dアプリケーション内において4D Write Pro変数を直接管理することができます。 -ただし、この機能を有効にするには、アプリケーションに4D Write Proライセンスがインストールされている必要があります。 +ただし、この機能を有効にするには、[アプリケーションに4D Write Proライセンスがインストールされている](../../Users/handling_users_groups.md#assigning-a-license-to-a-group)必要があります。 ## Creating a 4D Write Pro area diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md index e7189fb2560b99..7c9867f75e3311 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user-legacy/presentation.md @@ -26,7 +26,7 @@ slug: /WritePro/getting-started 4D Write Pro はプラグインではなく、4D自身に完全に統合されており、配布と管理がより簡単になっています。追加のインストールは何も必要なく、フォーム内に4D Write Proエリアを追加するだけで、4Dアプリケーション内において4D Write Pro変数を直接管理することができます。 -ただし、この機能を有効にするには、アプリケーションに4D Write Proライセンスがインストールされている必要があります。 +ただし、この機能を有効にするには、[アプリケーションに4D Write Proライセンスがインストールされている](../../Users/handling_users_groups.md#assigning-a-license-to-a-group)必要があります。 ## Creating a 4D Write Pro area diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md index e7189fb2560b99..7c9867f75e3311 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/WritePro/user-legacy/presentation.md @@ -26,7 +26,7 @@ slug: /WritePro/getting-started 4D Write Pro はプラグインではなく、4D自身に完全に統合されており、配布と管理がより簡単になっています。追加のインストールは何も必要なく、フォーム内に4D Write Proエリアを追加するだけで、4Dアプリケーション内において4D Write Pro変数を直接管理することができます。 -ただし、この機能を有効にするには、アプリケーションに4D Write Proライセンスがインストールされている必要があります。 +ただし、この機能を有効にするには、[アプリケーションに4D Write Proライセンスがインストールされている](../../Users/handling_users_groups.md#assigning-a-license-to-a-group)必要があります。 ## Creating a 4D Write Pro area diff --git a/versioned_docs/version-21/Users/handling_users_groups.md b/versioned_docs/version-21/Users/handling_users_groups.md index 1bf4264f443ba0..9f7b08c64791cb 100644 --- a/versioned_docs/version-21/Users/handling_users_groups.md +++ b/versioned_docs/version-21/Users/handling_users_groups.md @@ -59,7 +59,7 @@ The editor for users is located in the Toolbox of 4D. ![](../assets/en/Users/editor.png) -> Users and groups editor can be displayed at runtime using the [EDIT ACCESS](../commands-legacy/edit-access.md) command. +> Users and groups editor can be displayed at runtime using the [EDIT ACCESS](../commands/edit-access) command. > The whole users and groups configuration can also be edited during application execution using 4D language commands of the `Users and Groups` theme. ### Adding and modifying users @@ -157,16 +157,14 @@ To remove a user or group from another group, you just need to deselect the corr You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Used licenses remain attached to 4D user accounts in the group for the whole 4D session. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. These licenses are considered as plug-in licenses by 4D Server. Therefore, in the same way as for plug-ins, you can restrict the right to use these licenses to a specific group of users. - ### An access hierarchy scheme @@ -216,3 +214,4 @@ This file can be stored at the following locations, depending on your needs: > To allow for safe changes of passwords and group memberships in a deployed environment, you can include your **directory.json** file in the server application during the build, using the [corresponding build application option](../Desktop/building.md#embed-the-project-users-and-groups-in-built-server-application). + diff --git a/versioned_docs/version-21/assets/en/Users/plugins.png b/versioned_docs/version-21/assets/en/Users/plugins.png index dd3dc15bb2c6dfdd647473fb694a5d6b3976eda2..cbef1608509485e138f3c0d68ae2e60a0f0ddcc1 100644 GIT binary patch literal 7464 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 A$^ZZW literal 3237 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 F{{kQDHT(bo From c1b6a78f002b209f55f2bc3a213fc46f07a9d1b6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 3 Sep 2026 14:36:04 +0200 Subject: [PATCH 18/60] detail area support --- docs/FormEditor/properties_Markers.md | 2 +- versioned_docs/version-21-R4/FormEditor/properties_Markers.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/FormEditor/properties_Markers.md b/docs/FormEditor/properties_Markers.md index f374f908098145..657cd25d2d1633 100644 --- a/docs/FormEditor/properties_Markers.md +++ b/docs/FormEditor/properties_Markers.md @@ -34,7 +34,7 @@ The form Detail area is displayed on the screen and printed once for each record You can make the Detail area smaller or larger. Whatever you place in the Detail area is displayed or printed once for each record. Most often you place fields or variables in the Detail area so that the information in each record is displayed or printed, but you can place other elements in the Detail area as well. -The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). +The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), [subforms](../FormObjects/subform_overview.md), and [plug-in areas](../FormObjects/pluginArea_overview.md). #### JSON Grammar diff --git a/versioned_docs/version-21-R4/FormEditor/properties_Markers.md b/versioned_docs/version-21-R4/FormEditor/properties_Markers.md index c96f04e6f91f17..657cd25d2d1633 100644 --- a/versioned_docs/version-21-R4/FormEditor/properties_Markers.md +++ b/versioned_docs/version-21-R4/FormEditor/properties_Markers.md @@ -34,6 +34,8 @@ The form Detail area is displayed on the screen and printed once for each record You can make the Detail area smaller or larger. Whatever you place in the Detail area is displayed or printed once for each record. Most often you place fields or variables in the Detail area so that the information in each record is displayed or printed, but you can place other elements in the Detail area as well. +The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), [subforms](../FormObjects/subform_overview.md), and [plug-in areas](../FormObjects/pluginArea_overview.md). + #### JSON Grammar |Name|Data Type|Possible Values| From bc6392f4a2aaecd47886f9d80d318bbfad341c9e Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:02:47 +0900 Subject: [PATCH 19/60] Update get-list-item-parameter-arrays.md (#3409) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/get-list-item-parameter-arrays.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-parameter-arrays.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-parameter-arrays.md index aa2ac733878c4e..6dca0852a3ba2d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-parameter-arrays.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-parameter-arrays.md @@ -5,7 +5,7 @@ slug: /commands/get-list-item-parameter-arrays displayed_sidebar: docs --- -**GET LIST ITEM PARAMETER ARRAYS** ( {* ;} *list* : Integer, Text ; *itemRef* : 倍長整数, 演算子 ; *arrSelection* : Text array {; *arrValues* : Text array} )
**GET LIST ITEM PARAMETER ARRAYS** ( * ; *list* : Integer, Text ; * ; *arrSelection* : Text array {; *arrValues* : Text array} ) +**GET LIST ITEM PARAMETER ARRAYS** ( * ; *list* : Text ; *itemRef* : 倍長整数, 演算子 ; *arrSelection* : Text array {; *arrValues* : Text array} )
**GET LIST ITEM PARAMETER ARRAYS** ( *list* : Integer ; *itemRef* : 倍長整数, 演算子 ; *arrSelection* : Text array {; *arrValues* : Text array} )
@@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | * | 演算子 | → | 指定時listはオブジェクト名 (文字列)省略時listはリスト参照番号 | | list | Integer, Text | → | リストタイプのオブジェクト名 (* 指定時)またはリスト参照番号 (* 省略時) | -| itemRef | * | 倍長整数, 演算子 | → | 項目参照番号、または0 = リストに最後に追加された項目、または* = カレントリスト項目 | +| itemRef | 倍長整数, 演算子 | → | 項目参照番号、または0 = リストに最後に追加された項目、または* = カレントリスト項目 | | arrSelection | Text array | ← | パラメーター名配列 | | arrValues | Text array | ← | パラメーター値配列 |
@@ -37,7 +37,7 @@ displayed_sidebar: docs 一番目のオプションの引数 *\** を渡すと、*list* はフォーム中でリストを表示するリストオブジェクトに対応するオブジェクト名 (文字列) です。この引数を渡さない場合、*list* は階層リスト参照 ([ListRef](# "階層リストへの参照")) です。ひとつのリストオブジェクトだけ、あるいは (二番目の *\** を使用しないで) 項目を構造的に選択する場合、どちらのシンタックスでも使用できます。しかし同じリストを複数のリストオブジェクトに表示し、かつ (二番目の *\** を使用して) 現在選択されている項目に対してコマンドを適用する場合、各リストオブジェクトは異なるカレント項目を持つことができるため、オブジェクト名に基づくシンタックスを使用しなければなりません。 -**GET LIST ITEM PARAMETER ARRAYS**は*itemRef*項目に設定されたパラメーターを*arrSelectors*テキスト配列に返します。*arrValues*テキスト配列が渡された場合、これらのパラメーターに設定された値も返します。 +**GET LIST ITEM PARAMETER ARRAYS**は*itemRef* 項目に設定されたパラメーターを*arrSelectors* テキスト配列に返します。*arrValues* テキスト配列が渡された場合、これらのパラメーターに設定された値も返します。 *arrValues* はテキスト配列でなければなりません。関連付けた値がテキストでない (数値やブール) の場合、文字に変換されます (True="1", False="0")。 From ba6dec2a96671f298110470bc29dbfa9cccf452d Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:03:31 +0900 Subject: [PATCH 20/60] Update get-list-item-parameter.md (#3410) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/get-list-item-parameter.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-parameter.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-parameter.md index 4a799de26a0d7f..2cfaf9015c8efa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-parameter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-parameter.md @@ -5,7 +5,7 @@ slug: /commands/get-list-item-parameter displayed_sidebar: docs --- -**GET LIST ITEM PARAMETER** ( {* ;} *list* : Integer, Text ; *itemRef* : 倍長整数, 演算子 ; *selector* : Text ; *value* : Text, Boolean, Real )
**GET LIST ITEM PARAMETER** ( * ; *list* : Integer, Text ; * ; *selector* : Text ; *value* : Text, Boolean, Real ) +**GET LIST ITEM PARAMETER** ( * ; *list* : Text ; *itemRef* : 倍長整数, 演算子 ; *selector* : Text ; *value* : Variable )
**GET LIST ITEM PARAMETER** ( *list* : Integer ; *itemRef* : 倍長整数, 演算子 ; *selector* : Text ; *value* : Variable )
@@ -13,9 +13,9 @@ displayed_sidebar: docs | --- | --- | --- | --- | | * | 演算子 | → | 指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号 | | list | Integer, Text | → | リスト参照番号 (* 省略時) または リストオブジェクト名 (* 指定時) | -| itemRef | * | 倍長整数, 演算子 | → | 項目参照番号 または 0: リストに最後に追加された項目 または *: カレントのリスト項目 | +| itemRef | 倍長整数, 演算子 | → | 項目参照番号 または 0: リストに最後に追加された項目 または *: カレントのリスト項目 | | selector | Text | → | パラメタ定数 | -| value | Text, Boolean, Real | ← | パラメタの現在値 | +| value | Variable | ← | パラメタの現在値(テキスト、ブール、実数型の変数) |
@@ -36,15 +36,15 @@ displayed_sidebar: docs オプションの第一引数 *\** を渡すと、*list* 引数はフォーム上のリストオブジェクトに対応するオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数は階層リスト参照 ([ListRef](# "階層リストへの参照")) です。リストオブジェクトを一つしか使わない場合や、2番目の *\** を使用しない場合は、両方のシンタックスを使用できます。他方フォーム上に同じ階層リストを参照する複数のオブジェクトがある場合で、2番目の *\** を渡して現在選択されている項目を参照する場合、それぞれのオブジェクトが個別に選択された項目をもつので、オブジェクト名に基づくシンタックスを使用しなければなりません。 -**Note:** オブジェクト名に @ 文字を使用することで、名前に対応するオブジェクトが複数検索された場合、**GET LIST ITEM PARAMETER** コマンドは最初に見つけたオブジェクトを処理の対象とします。 +**注意:** オブジェクト名に @ 文字を使用することで、名前に対応するオブジェクトが複数検索された場合、**GET LIST ITEM PARAMETER** コマンドは最初に見つけたオブジェクトを処理の対象とします。 -*itemRef*に項目参照番号を渡すことができます。対応する項目がない場合、コマンドは何も行いません。0を渡した場合、リストに最後に追加された項目が処理の対象となります。*\** を渡した場合、コマンドは現在選択されている項目を処理の対象とします。複数の項目が選択されている場合、カレントの項目は最後に選択された項目です。項目が選択されていない場合、コマンドは何も行いません。 +*itemRef* に項目参照番号を渡すことができます。対応する項目がない場合、コマンドは何も行いません。0 を渡した場合、([APPEND TO LIST](../commands/append-to-list)を使用して)リストに最後に追加された項目が処理の対象となります。*\** を渡した場合、コマンドは現在選択されている項目を処理の対象とします。複数の項目が選択されている場合、カレントの項目は最後に選択された項目です。項目が選択されていない場合、コマンドは何も行いません。 -*selector*には“*Hierarchical Lists*”テーマのAdditional text 定数またはStandard action 定数、あるいは任意のカスタム値を渡すことができます。*selector* と *value* 引数に関する詳細は、[SET LIST ITEM PARAMETER](../commands/set-list-item-parameter) コマンドの説明を参照してください。 +*selector* には“*Hierarchical Lists*” テーマのAdditional text 定数またはStandard action 定数、あるいは任意のカスタム値を渡すことができます。*selector* と *value* 引数に関する詳細は、[SET LIST ITEM PARAMETER](../commands/set-list-item-parameter) コマンドの説明を参照してください。 ## 参照 -*Hierarchical Lists* +[階層リスト](../../FormObjects/list_overview.md) [SET LIST ITEM PARAMETER](../commands/set-list-item-parameter) ## プロパティ From 417613376b256db7df7dc2682f35d4b1a62013f5 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:04:02 +0900 Subject: [PATCH 21/60] Update get-list-item-properties.md (#3411) JA fixing old info (mainly parameters info) --- .../get-list-item-properties.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-properties.md index 5fa5b067654a00..0e5abd2c115e64 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item-properties.md @@ -5,7 +5,7 @@ slug: /commands/get-list-item-properties displayed_sidebar: docs --- -**GET LIST ITEM PROPERTIES** ( {* ;} *list* : Integer, Text ; *itemRef* : 演算子, 倍長整数 ; *enterable* : Boolean {; *styles* : Integer {; *icon* : Text, Integer {; *color* : Integer}}} )
**GET LIST ITEM PROPERTIES** ( * ; *list* : Integer, Text ; * ; *enterable* : Boolean {; *styles* : Integer {; *icon* : Text, Integer {; *color* : Integer}}} ) +**GET LIST ITEM PROPERTIES** ( * ; *list* : Text ; *itemRef* : 倍長整数, 演算子 ; *enterable* : Boolean {; *styles* : Integer {; *icon* : Text, Integer {; *color* : Integer}}} )
**GET LIST ITEM PROPERTIES** ( *list* : Integer ; *itemRef* : 倍長整数, 演算子 ; *enterable* : Boolean {; *styles* : Integer {; *icon* : Text, Integer {; *color* : Integer}}} )
@@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | * | 演算子 | → | 指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号 | | list | Integer, Text | → | リスト参照番号 (* 省略時), または リストオブジェクト名 (* 指定時) | -| itemRef | * | 演算子, 倍長整数 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: カレントのリスト項目 | +| itemRef | 倍長整数, 演算子 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: カレントのリスト項目 | | enterable | Boolean | ← | TRUE = 入力可, FALSE = 入力不可 | | styles | Integer | ← | 項目のフォントスタイル | | icon | Text, Integer | ← | ピクチャー名または番号 | @@ -35,16 +35,16 @@ displayed_sidebar: docs ## 説明 -**GET LIST ITEM PROPERTIES** コマンドは、引数*list*に渡されたリスト参照番号またはオブジェクト名のリスト内で、引数*itemRef*によって指定された項目のプロパティを返します。 +**GET LIST ITEM PROPERTIES** コマンドは、引数*list* に渡されたリスト参照番号またはオブジェクト名のリスト内で、引数*itemRef* によって指定された項目のプロパティを返します。 オプションの第一引数 *\** を渡した場合、*list* 引数はフォーム上のリストオブジェクトに対応するオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数は階層リスト参照 ([ListRef](# "階層リストへの参照")) です。リストオブジェクトを一つしか使わない場合や、2番目の *\** を使用しない場合は、両方のシンタックスを使用できます。他方フォーム上に同じ階層リストを参照する複数のオブジェクトがある場合で、2番目の *\** を渡して現在選択されている項目を参照する場合、それぞれのオブジェクトが個別に選択された項目をもつので、オブジェクト名に基づくシンタックスを使用しなければなりません。 -**Note:** オブジェクト名に @ 文字を使用することで、名前に対応するオブジェクトが複数検索された場合、 **GET LIST ITEM PROPERTIES** コマンドは最初に見つけたオブジェクトを処理の対象とします。 +**注意:** オブジェクト名に @ 文字を使用することで、名前に対応するオブジェクトが複数検索された場合、 **GET LIST ITEM PROPERTIES** コマンドは最初に見つけたオブジェクトを処理の対象とします。 -*itemRef* に項目参照番号を渡すことができます。0を渡した場合、リストに最後に追加された項目が処理の対象となります。*\** を渡した場合、コマンドは現在選択されている項目を処理の対象とします。複数の項目が選択されている場合、カレントの項目は最後に選択された項目です。 +*itemRef* に項目参照番号を渡すことができます。0 を渡した場合、リストに最後に追加された項目が処理の対象となります。*\** を渡した場合、コマンドは現在選択されている項目を処理の対象とします。複数の項目が選択されている場合、カレントの項目は最後に選択された項目です。 \* を渡して項目が選択されていない場合や項目参照番号を渡してその項目が存在しない場合、コマンドはパラメーターを変更しません。 -項目参照番号を使用して作業を実行する場合、項目がユニークな参照番号を持つリストを作成します。そうでなければ、項目を区別できません。詳細については[APPEND TO LIST](../commands/append-to-list)の説明を参照してください。 +項目参照番号を使用して作業を実行する場合、項目がユニークな参照番号を持つリストを作成します。そうでなければ、項目を区別できません。詳細については[APPEND TO LIST](../commands/append-to-list) の説明を参照してください。 呼出し後に、以下の値を取得できます: @@ -52,10 +52,10 @@ displayed_sidebar: docs * *styles* には項目のフォントスタイルが返されます。 * *icon* には項目に割り当てられたピクチャーが返されます。 * ピクチャーファイルを使用してアイコンが指定されていた場合、コマンドは *icon* にピクチャーのパス名 ( **path:** ) を返します。 - * アイコンがライブラリピクチャー (バイナリデータベースのみ) を使用して指定されていた場合、コマンドはこの引数に渡された変数の型に応じ、ピクチャー名 ( **pictlib:**) あるいは番号のいずれかを返します。なお、*icon* 変数の型を指定しなかった場合は、デフォルトでピクチャー名が返されます (テキスト)。アイコンが割り当てられていない場合、コマンドは空値を返します。 + * アイコンがライブラリピクチャー (バイナリデータベースのみ) を使用して指定されていた場合、コマンドはこの引数に渡された変数の型に応じ、ピクチャー名 ( **pictlib:** ) あるいは番号のいずれかを返します。なお、*icon* 変数の型を指定しなかった場合は、デフォルトでピクチャー名が返されます (テキスト)。アイコンが割り当てられていない場合、コマンドは空値を返します。 **注:** [GET LIST ITEM ICON](../commands/get-list-item-icon) コマンドを使用すれば、ピクチャー変数にアイコンを取得できます。 -* *color*には項目のテキストカラーが返されます。 +* *color* には項目のテキストカラーが返されます。 これらのプロパティに関する詳細は、[SET LIST ITEM PROPERTIES](../commands/set-list-item-properties) コマンドの説明を参照してください。 From 4e6f7bc2af604f95faffa66328af2b596eea4924 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:04:20 +0900 Subject: [PATCH 22/60] Update get-list-item.md (#3412) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/get-list-item.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item.md index 9ef60df0960e7c..37b901c1d4f9b8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/get-list-item.md @@ -5,15 +5,15 @@ slug: /commands/get-list-item displayed_sidebar: docs --- -**GET LIST ITEM** ( {* ;} *list* : Integer, Text ; *itemPos* : 演算子, 倍長整数 ; *itemRef* : Integer ; *itemText* : Text {; *sublist* : Integer ; *expanded* : Boolean} )
**GET LIST ITEM** ( {* ;} *list* : Integer, Text ; * ; *itemRef* : Integer ; *itemText* : Text {; *sublist* : Integer ; *expanded* : Boolean} ) +**GET LIST ITEM** ( * ; *list* : Text ; *itemPos* : 倍長整数, 演算子 ; *itemRef* : Integer ; *itemText* : Text {; *sublist* : Integer } {; *expanded* : Boolean} )
**GET LIST ITEM** ( *list* : Integer ; *itemPos* : 倍長整数, 演算子 ; *itemRef* : Integer ; *itemText* : Text {; *sublist* : Integer } {; *expanded* : Boolean} )
| 引数 | 型 | | 説明 | | --- | --- | --- | --- | | * | 演算子 | → | 指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号 | -| list | Integer, Text | → | リスト参照番号 (* 省略時), または リストオブジェクト名 (* 指定時) | -| itemPos | * | 演算子, 倍長整数 | → | 展開/折りたたまれたリスト中の項目位置 * の場合、リスト中のカレント項目 | +| list | Text, Integer | → | リスト参照番号 (* 省略時), または リストオブジェクト名 (* 指定時) | +| itemPos | 倍長整数, 演算子 | → | 展開/折りたたまれたリスト中の項目位置 * の場合、リスト中のカレント項目 | | itemRef | Integer | ← | 項目参照番号 | | itemText | Text | ← | リスト項目テキスト | | sublist | Integer | ← | サブリストリスト参照番号 (サブリストがある場合) | @@ -34,23 +34,23 @@ displayed_sidebar: docs ## 説明 -GET LIST ITEM コマンドは、リスト参照番号またはオブジェクト名が*list*であるリスト中、*itemPos*で指定した項目に関する情報を返します。 +GET LIST ITEM コマンドは、リスト参照番号またはオブジェクト名が*list* であるリスト中、*itemPos* で指定した項目に関する情報を返します。 1番目の \* 引数を渡した場合、*list* 引数はフォーム中のリストオブジェクトのオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数はリスト参照番号 ([ListRef](# "階層リストへの参照")) です。1つしかフォーム上でリストオブジェクトを使用しない場合、いずれのシンタックスも使用できます。同じリストの複数のリストオブジェクトがフォーム上にある場合は、リストオブジェクトごとに展開/折りたたみが異なるため、オブジェクト名に基づくシンタックスを使用しなければなりません。 -**Note:** オブジェクト名に@文字を使用し、フォーム上にこれに合致するリストオブジェクトが複数ある場合、GET LIST ITEM コマンドは最初に見つけたリストオブジェクトを検索の対象とします。 +**注意:** オブジェクト名に@文字を使用し、フォーム上にこれに合致するリストオブジェクトが複数ある場合、**GET LIST ITEM** コマンドは最初に見つけたリストオブジェクトを検索の対象とします。 -項目位置は、リストの現在の展開/折りたたみ状況に基づき、相対的に示されなければなりません。1 から [Count list items](count-list-items.md "Count list items")で返される値までの数値を渡します。この範囲外の数値を渡すと、GET LIST ITEMは空の値 (0, "", など) を返します。 +項目位置は、リストの現在の展開/折りたたみ状況に基づき、相対的に示されなければなりません。1 から [Count list items](count-list-items.md "Count list items")で返される値までの数値を渡します。この範囲外の数値を渡すと、**GET LIST ITEM** は空の値 (0, "", など) を返します。 コマンドの呼出し後、以下の情報が返されます: -* *itemRef*に項目参照番号。 -* *itemText*に項目テキスト。 +* *itemRef* に項目参照番号。 +* *itemText* に項目テキスト。 オプションの引数 *sublist* と *expanded* を渡した場合: -* *subList*に、その項目に添付されたサブリストのリスト参照番号。項目にサブリストが添付されていない場合、*subList*には0が返されます。 -* 項目にサブリストが添付されているとき、*expanded*にはサブリストが展開されていればTRUEが、折りたたまれていればFALSEが返されます。 +* *subList* に、その項目に添付されたサブリストのリスト参照番号。項目にサブリストが添付されていない場合、*subList* には0が返されます。 +* 項目にサブリストが添付されているとき、*expanded* にはサブリストが展開されていればTRUE が、折りたたまれていればFALSE が返されます。 ## 例題 1 From 46a5119bc3b1139dec7cc83ea54d54645c8d0caf Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:04:49 +0900 Subject: [PATCH 23/60] Update insert-in-list.md (#3413) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/insert-in-list.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/insert-in-list.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/insert-in-list.md index b34df42ee09a56..7d59ceda7db170 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/insert-in-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/insert-in-list.md @@ -5,7 +5,7 @@ slug: /commands/insert-in-list displayed_sidebar: docs --- -**INSERT IN LIST** ( {* ;} *list* : Integer, Text ; *beforeItemRef* : 倍長整数, 演算子 ; *itemText* : Text ; *itemRef* : Integer {; *sublist* : Integer ; *expanded* : Boolean} )
**INSERT IN LIST** ( * ; *list* : Integer, Text ; * ; *itemText* : Text ; *itemRef* : Integer {; *sublist* : Integer ; *expanded* : Boolean} ) +**INSERT IN LIST** ( {* ;} *list* : Integer, Text ; *beforeItemRef* : 倍長整数, 演算子 ; *itemText* : Text ; *itemRef* : Integer {; *sublist* : Integer ; *expanded* : Boolean} )
@@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | * | 演算子 | → | 指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号 | | list | Integer, Text | → | リスト参照番号 (* 省略時), または リストオブジェクト名 (* 指定時) | -| beforeItemRef | * | 倍長整数, 演算子 | → | 項目参照番号 または 0: リストに最後に追加された項目 または *: 現在選択されている項目 | +| beforeItemRef | 倍長整数, 演算子 | → | 項目参照番号 または 0: リストに最後に追加された項目 または *: 現在選択されている項目 | | itemText | Text | → | 新しいリスト項目のテキスト | | itemRef | Integer | → | 新しいリスト項目のユニークな参照番号 | | sublist | Integer | → | 新しいリスト項目に添付するオプションのサブリスト | @@ -35,7 +35,7 @@ displayed_sidebar: docs ## 説明 -INSERT IN LIST コマンドは、*list*に渡されたリスト参照番号またはオブジェクト名のリストに *itemRef*が指定する新規項目を挿入します。 +INSERT IN LIST コマンドは、*list* に渡されたリスト参照番号またはオブジェクト名のリストに *itemRef* が指定する新規項目を挿入します。 オプションの第一引数 *\** を渡すと、*list* 引数はフォーム上のリストオブジェクトに対応するオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数は階層リスト参照 ([ListRef](# "階層リストへの参照")) です。リストオブジェクトを一つしか使わない場合や、2番目の *\** を使用しない場合は、両方のシンタックスを使用できます。他方フォーム上に同じ階層リストを参照する複数のオブジェクトがある場合で、2番目の *\** を渡して現在選択されている項目を参照する場合、それぞれのオブジェクトが個別に選択された項目をもつので、オブジェクト名に基づくシンタックスを使用しなければなりません。 @@ -45,15 +45,15 @@ displayed_sidebar: docs * 現在選択されている項目の前に新しい項目を挿入するには *\** を指定します。そして新しく挿入された項目が選択されます。 * 特定の項目の前に挿入するには、その項目の参照番号を渡します。この場合新しく挿入された項目は自動的には選択されません。項目参照番号に対応する項目がない場合、コマンドは何もしません。 -新規項目のテキストを*itemText*に渡します。4D v16 R4以降で、項目に標準アクションが設定されている場合には、 ak standard action title定数を*itemText*に受け渡すとローカライズされたアクション名が自動的に採用されます。詳細については *標準アクション* を参照ください。 +新規項目のテキストを*itemText* に渡します。4D v16 R4 以降で、項目に標準アクションが設定されている場合には、 ak standard action title 定数を*itemText* に受け渡すとローカライズされたアクション名が自動的に採用されます。詳細については *標準アクション* を参照ください。 -*itemRef*には新規項目の項目参照番号を渡します。この番号はユニーク値と見なされますが、実際には任意の値を渡すことができます。*itemRef*についての詳細は *階層リストの管理*を参照ください。 +*itemRef* には新規項目の項目参照番号を渡します。この番号はユニーク値と見なされますが、実際には任意の値を渡すことができます。*itemRef* についての詳細は *階層リストの管理* を参照ください。 -項目にサブ項目を設定する場合は、*sublist* に有効なリスト参照を渡します。この場合サブリストを展開または縮小を指定する*expanded*引数を渡さなければなりません。[True](../commands/true)または[False](../commands/false)の指定に従い、サブリストは展開または折りたたまれます。 +項目にサブ項目を設定する場合は、*sublist* に有効なリスト参照を渡します。この場合サブリストを展開または縮小を指定する*expanded* 引数を渡さなければなりません。[True](../commands/true) または[False](../commands/false) の指定に従い、サブリストは展開または折りたたまれます。 ## 例題 -以下のコードは、リスト*hList*の現在選択されている項目の直前に項目を挿入します(サブリストは添付されていません): +以下のコードは、リスト*hList* の現在選択されている項目の直前に項目を挿入します(サブリストは添付されていません): ```4d  vlUniqueRef:=vlUniqueRef+1 From cad7d674e96fc908ff6ccc66261afc103f8a1c46 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Fri, 4 Sep 2026 17:05:12 +0900 Subject: [PATCH 24/60] Update list-item-parent.md (#3414) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/list-item-parent.md | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/list-item-parent.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/list-item-parent.md index e50fea3a21c1d2..06488d01d30425 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/list-item-parent.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/list-item-parent.md @@ -5,7 +5,7 @@ slug: /commands/list-item-parent displayed_sidebar: docs --- -**List item parent** ( {* ;} *list* : Integer, Text ; *itemRef* : 演算子, 倍長整数 ) : Integer
**List item parent** ( * ; *list* : Integer, Text ; * ) : Integer +**List item parent** ( {* ;} *list* : Integer, Text ; *itemRef* : 倍長整数, 演算子 ) : Integer
@@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | * | 演算子 | → | 指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号 | | list | Integer, Text | → | リスト参照番号 (* 省略時), または リストオブジェクト名 (* 指定時) | -| itemRef | * | 演算子, 倍長整数 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: カレントのリスト項目 | +| itemRef | 倍長整数, 演算子 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: カレントのリスト項目 | | 戻り値 | Integer | ← | 親項目の項目参照番号 または ない場合0 |
@@ -31,21 +31,21 @@ displayed_sidebar: docs ## 説明 -List item parent コマンドは、親項目の項目参照番号を返します。 +**List item parent** コマンドは、親項目の項目参照番号を返します。 *list*にはリスト参照番号またはオブジェクト名を渡します。 オプションの第一引数 *\** を渡すと、*list* 引数はフォーム上のリストオブジェクトに対応するオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数は階層リスト参照 ([ListRef](# "階層リストへの参照")) です。リストオブジェクトを一つしか使わない場合や、2番目の *\** を使用しない場合は、両方のシンタックスを使用できます。他方フォーム上に同じ階層リストを参照する複数のオブジェクトがある場合で、2番目の *\** を渡して現在選択されている項目を参照する場合、それぞれのオブジェクトが個別に選択された項目をもつので、オブジェクト名に基づくシンタックスを使用しなければなりません。 -**Note:** オブジェクト名に @ 文字を使用することで、名前に対応するオブジェクトが複数検索された場合、List item parent コマンドは最初に見つけたオブジェクトを処理の対象とします。 +**注意:** オブジェクト名に @ 文字を使用することで、名前に対応するオブジェクトが複数検索された場合、List item parent コマンドは最初に見つけたオブジェクトを処理の対象とします。 -*itemRef*にはリスト中の項目参照番号、あるいは0、または \* を渡します。0を渡した場合、コマンドはリストに最後に追加した項目に適用されます。\* を渡した場合、コマンドはリストのカレント項目に適用されます。複数の項目が選択されている場合、最後に選択された項目がカレントの項目となります。 +*itemRef* にはリスト中の項目参照番号、あるいは0 、または \* を渡します。0 を渡した場合、コマンドはリストに最後に追加した項目に適用されます。\* を渡した場合、コマンドはリストのカレント項目に適用されます。複数の項目が選択されている場合、最後に選択された項目がカレントの項目となります。 戻り値として、対応する項目がリスト上に存在し、かつその項目がサブリスト上にある場合(つまり親項目を持つ)、親項目の項目参照番号が返されます。 -渡した項目参照番号を持つ項目が存在しない場合や、\* を渡したが選択項目が存在しない場合、または項目が親を持たない場合は、List item parentは0を返します。 +渡した項目参照番号を持つ項目が存在しない場合や、\* を渡したが選択項目が存在しない場合、または項目が親を持たない場合は、**List item parent** は0を返します。 -項目参照番号を使用して作業を実行する場合、項目がユニークな参照番号を持つリストを作成します。そうでなければ、項目を区別できません。詳細については、[APPEND TO LIST](append-to-list.md "APPEND TO LIST")の説明を参照してください。 +項目参照番号を使用して作業を実行する場合、項目がユニークな参照番号を持つリストを作成します。そうでなければ、項目を区別できません。詳細については、[APPEND TO LIST](append-to-list.md "APPEND TO LIST") の説明を参照してください。 ## 例題 @@ -69,11 +69,13 @@ displayed_sidebar: docs * 項目“b - 3”が選択されているとき、以下のコードで*$vlParentItemRef*には200が返されます。これは項目“b”の項目参照番号です: ```4d - $vlItemPos:=Selected list items(hList)GET LIST ITEM(hList;$vlItemPos;$vlItemRef;$vsItemText)$vlParentItemRef:=List item parent(hList;$vlItemRef) // $vlParentItemRef gets 200 + $vlItemPos:=Selected list items(hList) + GET LIST ITEM(hList;$vlItemPos;$vlItemRef;$vsItemText) + $vlParentItemRef:=List item parent(hList;$vlItemRef) // $vlParentItemRef は 200 を受け取る ``` * “a - 1”が選択されていると、“a”.の項目参照番号である100が*$vlParentItemRef* に返されます。 -* “a” または “b”が選択されていると、これらの項目には親項目がないため*$vlParentItemRef*には0が返されます。 +* “a” または “b”が選択されていると、これらの項目には親項目がないため*$vlParentItemRef* には0が返されます。 ## 参照 From 7d728ef9b2ea160e99fe4c1c33abbf11f76ecaf9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 4 Sep 2026 13:00:41 +0200 Subject: [PATCH 25/60] fix buildappsettings --- .../current/language-legacy/4D Environment/build-application.md | 2 +- .../language-legacy/4D Environment/build-application.md | 2 +- .../language-legacy/4D Environment/build-application.md | 2 +- .../version-21/commands-legacy/build-application.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/build-application.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/build-application.md index 68318c04c6a7c1..ba5d9c74a848b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/build-application.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/build-application.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Paramètre | Type | | Description | | --- | --- | --- | --- | -| nomProjet | Text | → | Chemin d’accès complet du projet à utiliser | +| buildAppSettings | Text | → | Chemin d’accès complet du fichier de configuration xml |
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/4D Environment/build-application.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/4D Environment/build-application.md index f69734818a5530..eb609beffb8585 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/4D Environment/build-application.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/4D Environment/build-application.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Paramètre | Type | | Description | | --- | --- | --- | --- | -| nomProjet | Text | → | Chemin d’accès complet du projet à utiliser | +| buildAppSettings | Text | → | Chemin d’accès complet du fichier de configuration xml |
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/4D Environment/build-application.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/4D Environment/build-application.md index 68318c04c6a7c1..ba5d9c74a848b5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/4D Environment/build-application.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/4D Environment/build-application.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Paramètre | Type | | Description | | --- | --- | --- | --- | -| nomProjet | Text | → | Chemin d’accès complet du projet à utiliser | +| buildAppSettings | Text | → | Chemin d’accès complet du fichier de configuration xml |
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/build-application.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/build-application.md index e3c97a5e452d80..32b6e17dfaa152 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/build-application.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/build-application.md @@ -11,7 +11,7 @@ displayed_sidebar: docs | Paramètre | Type | | Description | | --- | --- | --- | --- | -| nomProjet | Text | → | Chemin d’accès complet du projet à utiliser | +| buildAppSettings | Text | → | Chemin d’accès complet du fichier de configuration xml |
From 9f92e3c2e9a979ae535cdeba1068a157c9eb5abd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 4 Sep 2026 13:02:30 +0200 Subject: [PATCH 26/60] fix suite --- .../current/language-legacy/4D Environment/build-application.md | 2 +- .../language-legacy/4D Environment/build-application.md | 2 +- .../language-legacy/4D Environment/build-application.md | 2 +- .../version-21/commands-legacy/build-application.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/build-application.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/build-application.md index ba5d9c74a848b5..5054ff6741f181 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/build-application.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/build-application.md @@ -5,7 +5,7 @@ slug: /commands/build-application displayed_sidebar: docs --- -**BUILD APPLICATION** ({ *nomProjet* : Text }) +**BUILD APPLICATION** ({ *buildAppSettings* : Text })
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/4D Environment/build-application.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/4D Environment/build-application.md index eb609beffb8585..5b13680492daec 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/4D Environment/build-application.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/4D Environment/build-application.md @@ -5,7 +5,7 @@ slug: /commands/build-application displayed_sidebar: docs --- -**BUILD APPLICATION** {( *nomProjet* )} +**BUILD APPLICATION** {( *buildAppSettings* )}
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/4D Environment/build-application.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/4D Environment/build-application.md index ba5d9c74a848b5..5054ff6741f181 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/4D Environment/build-application.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/4D Environment/build-application.md @@ -5,7 +5,7 @@ slug: /commands/build-application displayed_sidebar: docs --- -**BUILD APPLICATION** ({ *nomProjet* : Text }) +**BUILD APPLICATION** ({ *buildAppSettings* : Text })
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/build-application.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/build-application.md index 32b6e17dfaa152..e5642054e2cc64 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/build-application.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/build-application.md @@ -5,7 +5,7 @@ slug: /commands/build-application displayed_sidebar: docs --- -**BUILD APPLICATION** {( *nomProjet* )} +**BUILD APPLICATION** {( *buildAppSettings* )}
From cd31fd338ffa6afccabf3b4f2eb2dcb45fd539e4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 7 Sep 2026 10:09:22 +0200 Subject: [PATCH 27/60] New Crowdin updates (#3415) * handling_users_groups.md French * handling_users_groups.md Spanish * error-handling.md Spanish * createstylesheet.md Spanish * listbox-get-property.md Spanish * listbox-set-property.md Spanish * handling_users_groups.md Spanish * getting-started.md Spanish * wp-add-picture.md Spanish * managing-formulas.md Spanish * error-handling.md Spanish * createstylesheet.md Spanish * project-method-properties.md Spanish * handling_users_groups.md Spanish * getting-started.md Spanish * wp-add-picture.md Spanish * managing-formulas.md Spanish * quotamanagerclass.md Spanish * createstylesheet.md Spanish * project-method-properties.md Spanish * authusers.md Spanish * handling_users_groups.md Spanish * getting-started.md Spanish * wp-add-picture.md Spanish * managing-formulas.md Spanish * handling_users_groups.md Japanese * managing-formulas.md Japanese * handling_users_groups.md Japanese * managing-formulas.md Japanese * user-new.md Japanese * handling_users_groups.md Japanese * managing-formulas.md Japanese * user-new.md Japanese * writeprointerface.md Japanese * handling_users_groups.md Portuguese, Brazilian * handling_users_groups.md Portuguese, Brazilian * handling_users_groups.md Portuguese, Brazilian --- .../version-20/Users/handling_users_groups.md | 8 +-- .../version-21-R3/Concepts/error-handling.md | 2 +- .../FormEditor/createStylesheet.md | 2 +- .../Project/project-method-properties.md | 2 +- .../Users/handling_users_groups.md | 10 ++-- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../WritePro/commands/wp-add-picture.md | 2 +- .../WritePro/managing-formulas.md | 6 +- .../version-21-R4/API/QuotaManagerClass.md | 2 +- .../FormEditor/createStylesheet.md | 2 +- .../Project/project-method-properties.md | 2 +- .../version-21-R4/REST/authUsers.md | 4 +- .../Users/handling_users_groups.md | 10 ++-- .../version-21-R4/ViewPro/getting-started.md | 2 +- .../WritePro/commands/wp-add-picture.md | 2 +- .../WritePro/managing-formulas.md | 6 +- .../version-21/Concepts/error-handling.md | 2 +- .../version-21/FormEditor/createStylesheet.md | 2 +- .../version-21/Users/handling_users_groups.md | 13 ++--- .../version-21/ViewPro/getting-started.md | 2 +- .../WritePro/commands/wp-add-picture.md | 2 +- .../version-21/WritePro/managing-formulas.md | 6 +- .../commands/listbox-get-property.md | 12 ++-- .../commands/listbox-set-property.md | 10 ++-- .../Users/handling_users_groups.md | 6 +- .../Users/handling_users_groups.md | 6 +- .../WritePro/managing-formulas.md | 16 ++--- .../version-21-R3/WritePro/user/user-new.md | 38 ++++++------ .../Users/handling_users_groups.md | 6 +- .../WritePro/managing-formulas.md | 16 ++--- .../version-21-R4/WritePro/user/user-new.md | 58 +++++++++---------- .../WritePro/writeprointerface.md | 12 ++-- .../version-21/Users/handling_users_groups.md | 10 ++-- .../version-21/WritePro/managing-formulas.md | 14 ++--- .../Users/handling_users_groups.md | 6 +- .../Users/handling_users_groups.md | 6 +- .../version-21/Users/handling_users_groups.md | 9 ++- 37 files changed, 149 insertions(+), 167 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md index aef7213c3c0730..bb2c6ad0bdb4ef 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md @@ -138,15 +138,15 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Assigning a license to a group +### Asignación de una licencia a un grupo -Puede asignar privilegios de grupo a cualquiera de las [extensiones](../Extensions/overview.md) instaladas en el proyecto. This includes all the 4D and third-party plug-ins and components. +Puede asignar privilegios de grupo a cualquiera de las [extensiones](../Extensions/overview.md) instaladas en el proyecto. Esto incluye todos los plug-ins y componentes de 4D y de terceros. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distribuir el acceso a las extensiones le permite controlar el uso de las licencias que posee para estas extensiones. Los usuarios que no pertenezcan al grupo de acceso de una extensión no podrán cargar dicha extensión. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +El área “Plug-in” en la página Grupos de la caja de herramientas lista todas las extensiones cargadas por la aplicación 4D que requieren una licencia. Para dar acceso a un grupo a una extensión, basta con marcar la opción correspondiente. ![](../assets/en/Users/plugins.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md index 62870bec0caff1..733ba81a6a15df 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md @@ -293,7 +293,7 @@ Excepciones que interrumpen la ejecución de código son devueltas por 4D pero p - un **mensaje**, que explica por qué se ha producido el error - un **código**, que es un número arbitrario devuelto por el componente -La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Click on the **Copy** button to store detailed information related to the error in the pasteboard. +La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Haga clic en el botón **Copiar** para almacenar información detallada relacionada con el error en el portapapeles. Para tener una descripción completa de un error y especialmente su origen, necesita llamar al comando [`Last errors`](../commands/last-errors). Cuando intercepta y maneja errores usando un [método de gestión de errores](#installing-an-error-handling-method) en sus aplicaciones finales, use [`Last errors`](../commands/last-errors) y asegúrese de registrar todas las propiedades del objeto *error* ya que los códigos de error dependen de los componentes. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md index aad524b8003064..4d3670ea10b2d5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* ruta relativa al archivo del formulario */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) + - Valor hexadecimal: `fill: #FF0000;` (solo 6 caracteres; no admite transparencia) - función `rgb()`: `fill:rgb(255,0,0)` - Si una cadena utiliza caracteres prohibidos en CSS, puede rodear la cadena con comillas simples o dobles. Por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Project/project-method-properties.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Project/project-method-properties.md index 912fafaa749ea6..d2cd3105d48869 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Project/project-method-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Project/project-method-properties.md @@ -95,7 +95,7 @@ Para más información, vea la [descripción de la clase `4D.Formula`](../API/Fo Un método de menú se llama cuando se selecciona el comando de menú personalizado al que está asociado. Un método de menú se llama cuando se selecciona el comando de menú personalizado al que está asociado. El método se ejecuta cuando se elige el comando del menú. Al crear menús personalizados con métodos de menú que realizan acciones específicas, usted crea interfaces personalizadas para sus aplicaciones de escritorio. -Los comandos de menú personalizados pueden hacer que se realicen una o varias actividades. For example, a menu command for entering records might call a method that performs two tasks: displaying the appropriate input form, and calling the [`ADD RECORD`](../commands/add-record) command until the user cancels the data entry activity. +Los comandos de menú personalizados pueden hacer que se realicen una o varias actividades. Por ejemplo, un comando de menú de entrada de registros puede llamar a un método que realice dos tareas: mostrar el formulario de entrada apropiado y llamar al comando [`ADD RECORD`](../commands/add-record) hasta que el usuario cancele la actividad de entrada de datos. La automatización de secuencias de actividades es una capacidad muy poderosa del lenguaje de programación 4D. Utilizando los menús personalizados, se pueden automatizar las secuencias de tareas y, por lo tanto, ofrecer más orientación a los usuarios de la aplicación. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md index fbb5ffbc40eb2f..2232798f84e1e8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md @@ -147,20 +147,18 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Assigning a license to a group +### Asignación de una licencia a un grupo -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. +Puede asignar privilegios de grupo a todas las [extensiones](../Extensions/overview.md) instaladas en el proyecto. Esto incluye todos los plug-ins y componentes de 4D y de terceros. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distribuir el acceso a las extensiones le permite controlar el uso de las licencias que tenga para estas extensiones en un entorno cliente/servidor. Los usuarios que no pertenezcan al grupo de acceso de una extensión no podrán cargar dicha extensión. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +El área "Plugin" en la página de Grupos de la caja de herramientas muestra todas las extensiones [que requieren una licencia](../Admin/licenses.md) cargadas por la aplicación 4D. Para dar acceso a un grupo a una extensión, basta con marcar la opción correspondiente. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. - ### Un esquema de acceso jerárquico La mejor manera de garantizar la seguridad de su aplicación y ofrecer a los usuarios diferentes niveles de acceso es utilizar un esquema de jerarquía de acceso. Los usuarios pueden ser asignados a los grupos apropiados y los grupos pueden ser anidados para crear una jerarquía de derechos de acceso. Esta sección describe varios enfoques de este esquema. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md index a80d02c0a1e81d..66a0189c6a3b21 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md @@ -32,7 +32,7 @@ La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar Una vez reiniciado el proyecto, el componente 4D View Pro se instala como una [dependencia Github](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requiere una licencia. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: +4D View Pro requiere una licencia. Debe activar y [asignar esta licencia en su aplicación](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) para poder utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/wp-add-picture.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/wp-add-picture.md index cd5d9f59ecda25..495689e37c6f45 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/wp-add-picture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/commands/wp-add-picture.md @@ -47,7 +47,7 @@ Por defecto, la imagen añadida es: - Aparece en la esquina superior izquierda de la papelera - Mostrar en todas las páginas -The location, layer (inline, in front/behind text), visibility, and any properties of picture can be modified using the [WP SET ATTRIBUTES](wp-set-attributes.md) command, or via standard actions. +La ubicación, la capa (en línea, delante o detrás del texto), la visibilidad y todas las propiedades de la imagen se pueden modificar mediante el comando [WP SET ATTRIBUTES](wp-set-attributes.md) o a través de las acciones estándar. **Nota:** el comando [WP Selection range](../commands/wp-selection-range) devuelve un objeto *referencia a imagen* si se selecciona una imagen anclada y un objeto *rango* si se selecciona una imagen en línea. Puede determinar si un objeto seleccionado es un objeto imagen comprobando el atributo `wk type`: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/managing-formulas.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/managing-formulas.md index fd81c0afd6bdd9..745e66ce1cc99c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/managing-formulas.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/WritePro/managing-formulas.md @@ -204,10 +204,10 @@ Si asigna nombres a las fórmulas, se mostrarán en lugar de los textos: Para asignar un nombre a una fórmula, debe utilizar el comando [WP Insert formula](commands/wp-insert-formula.md) con un parámetro objeto. Por ejemplo: ```4d - //inserts the previous day in the document - $o:=New object("formula";Formula(Current date-1);"name";"Yesterday") + //inserta el día anterior en el documento + $o:=New object("formula";Formula(Current date-1); "name"; "Yesterday") $range:=WP Text range(WPArea;wk start text;wk end text) - WP Insert formula($range;$o;wk append) + WP INSERT FORMULA($range;$o;wk append) ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md index 4a56dff3cc6013..65c8efc42adf81 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### Descripción -The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. +La propiedad `.nbEntitySets` contiene el número máximo de conjuntos de entidades REST permitidos en memoria para la sesión actual. Por defecto, no hay límite para conjuntos de entidades [almacenados en memoria por solicitudes REST](../REST/$info.md) (el valor es 0). Puede definir un límite para controlar la carga útil del servidor para una sesión específica. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md index aad524b8003064..4d3670ea10b2d5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* ruta relativa al archivo del formulario */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) + - Valor hexadecimal: `fill: #FF0000;` (solo 6 caracteres; no admite transparencia) - función `rgb()`: `fill:rgb(255,0,0)` - Si una cadena utiliza caracteres prohibidos en CSS, puede rodear la cadena con comillas simples o dobles. Por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Project/project-method-properties.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Project/project-method-properties.md index 912fafaa749ea6..d2cd3105d48869 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Project/project-method-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Project/project-method-properties.md @@ -95,7 +95,7 @@ Para más información, vea la [descripción de la clase `4D.Formula`](../API/Fo Un método de menú se llama cuando se selecciona el comando de menú personalizado al que está asociado. Un método de menú se llama cuando se selecciona el comando de menú personalizado al que está asociado. El método se ejecuta cuando se elige el comando del menú. Al crear menús personalizados con métodos de menú que realizan acciones específicas, usted crea interfaces personalizadas para sus aplicaciones de escritorio. -Los comandos de menú personalizados pueden hacer que se realicen una o varias actividades. For example, a menu command for entering records might call a method that performs two tasks: displaying the appropriate input form, and calling the [`ADD RECORD`](../commands/add-record) command until the user cancels the data entry activity. +Los comandos de menú personalizados pueden hacer que se realicen una o varias actividades. Por ejemplo, un comando de menú de entrada de registros puede llamar a un método que realice dos tareas: mostrar el formulario de entrada apropiado y llamar al comando [`ADD RECORD`](../commands/add-record) hasta que el usuario cancele la actividad de entrada de datos. La automatización de secuencias de actividades es una capacidad muy poderosa del lenguaje de programación 4D. Utilizando los menús personalizados, se pueden automatizar las secuencias de tareas y, por lo tanto, ofrecer más orientación a los usuarios de la aplicación. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md index c69efa74fe2948..1b32560267f5d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md @@ -30,9 +30,9 @@ La secuencia de inicio de sesión del usuario es la siguiente: Las solicitudes REST descriptivas siempre son procesadas por el servidor, aunque no se abra ninguna sesión de usuario web que utilice una licencia. En este caso, son procesados por sesiones "invitado". 2. `authentify()` debe ser una [función datastore class](../ORDA/ordaClasses.md#datastore-class). Llama a su [función `authentify()`](#function-authentify) (creada previamente), en la que revisa las credenciales de usuario y llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) con los privilegios apropiados. - The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). + La función se puede invocar directamente desde su código 4D (ver el ejemplo de [`Open datastore`](../commands/open-datastore)) o mediante una solicitud `/rest/$catalog/authentify` junto con las credenciales de usuario. Este paso solo requiere un formulario de inicio de sesión básico que no tenga acceso a datos; puede ser, por ejemplo, una [página Qodly](https://developer.4d.com/qodly/) (llamada a través de la solicitud `/rest/$getWebForm`). -3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. +3. Si el usuario se autentica correctamente, se consume una licencia 4D en el servidor y se aceptan todas las solicitudes REST en cuanto se llama a la función [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges). ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md index fbb5ffbc40eb2f..2232798f84e1e8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md @@ -147,20 +147,18 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Assigning a license to a group +### Asignación de una licencia a un grupo -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. +Puede asignar privilegios de grupo a todas las [extensiones](../Extensions/overview.md) instaladas en el proyecto. Esto incluye todos los plug-ins y componentes de 4D y de terceros. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distribuir el acceso a las extensiones le permite controlar el uso de las licencias que tenga para estas extensiones en un entorno cliente/servidor. Los usuarios que no pertenezcan al grupo de acceso de una extensión no podrán cargar dicha extensión. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +El área "Plugin" en la página de Grupos de la caja de herramientas muestra todas las extensiones [que requieren una licencia](../Admin/licenses.md) cargadas por la aplicación 4D. Para dar acceso a un grupo a una extensión, basta con marcar la opción correspondiente. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. - ### Un esquema de acceso jerárquico La mejor manera de garantizar la seguridad de su aplicación y ofrecer a los usuarios diferentes niveles de acceso es utilizar un esquema de jerarquía de acceso. Los usuarios pueden ser asignados a los grupos apropiados y los grupos pueden ser anidados para crear una jerarquía de derechos de acceso. Esta sección describe varios enfoques de este esquema. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md index a80d02c0a1e81d..66a0189c6a3b21 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md @@ -32,7 +32,7 @@ La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar Una vez reiniciado el proyecto, el componente 4D View Pro se instala como una [dependencia Github](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requiere una licencia. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: +4D View Pro requiere una licencia. Debe activar y [asignar esta licencia en su aplicación](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) para poder utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/wp-add-picture.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/wp-add-picture.md index cd5d9f59ecda25..495689e37c6f45 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/wp-add-picture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/commands/wp-add-picture.md @@ -47,7 +47,7 @@ Por defecto, la imagen añadida es: - Aparece en la esquina superior izquierda de la papelera - Mostrar en todas las páginas -The location, layer (inline, in front/behind text), visibility, and any properties of picture can be modified using the [WP SET ATTRIBUTES](wp-set-attributes.md) command, or via standard actions. +La ubicación, la capa (en línea, delante o detrás del texto), la visibilidad y todas las propiedades de la imagen se pueden modificar mediante el comando [WP SET ATTRIBUTES](wp-set-attributes.md) o a través de las acciones estándar. **Nota:** el comando [WP Selection range](../commands/wp-selection-range) devuelve un objeto *referencia a imagen* si se selecciona una imagen anclada y un objeto *rango* si se selecciona una imagen en línea. Puede determinar si un objeto seleccionado es un objeto imagen comprobando el atributo `wk type`: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/managing-formulas.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/managing-formulas.md index fd81c0afd6bdd9..745e66ce1cc99c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/managing-formulas.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/WritePro/managing-formulas.md @@ -204,10 +204,10 @@ Si asigna nombres a las fórmulas, se mostrarán en lugar de los textos: Para asignar un nombre a una fórmula, debe utilizar el comando [WP Insert formula](commands/wp-insert-formula.md) con un parámetro objeto. Por ejemplo: ```4d - //inserts the previous day in the document - $o:=New object("formula";Formula(Current date-1);"name";"Yesterday") + //inserta el día anterior en el documento + $o:=New object("formula";Formula(Current date-1); "name"; "Yesterday") $range:=WP Text range(WPArea;wk start text;wk end text) - WP Insert formula($range;$o;wk append) + WP INSERT FORMULA($range;$o;wk append) ``` 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 8f42fbbb8a8ad0..0cf2155b6d9d19 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 @@ -293,6 +293,6 @@ Excepciones que interrumpen la ejecución de código son devueltas por 4D pero p - un **mensaje**, que explica por qué se ha producido el error - un **código**, que es un número arbitrario devuelto por el componente -La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Click on the **Copy** button to store detailed information related to the error in the pasteboard. +La [caja de diálogo de error 4D](../Debugging/basics.md) muestra el código y el mensaje al usuario. Haga clic en el botón **Copiar** para almacenar información detallada relacionada con el error en el portapapeles. Para tener una descripción completa de un error y especialmente su origen, necesita llamar al comando [`Last errors`](../commands/last-errors.md). Cuando intercepta y maneja errores usando un [método de gestión de errores](#installing-an-error-handling-method) en sus aplicaciones finales, use [`Last errors`](../commands/last-errors.md) y asegúrese de registrar todas las propiedades del objeto *error* ya que los códigos de error dependen de los componentes. 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 18db098d58b129..cac5dec181f703 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 @@ -284,7 +284,7 @@ icon: url("edit.png"); /* ruta relativa al archivo del formulario */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) + - Valor hexadecimal: `fill: #FF0000;` (solo 6 caracteres; no admite transparencia) - función `rgb()`: `fill:rgb(255,0,0)` - Si una cadena utiliza caracteres prohibidos en CSS, puede rodear la cadena con comillas simples o dobles. Por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md index 02ad2091eddb08..2232798f84e1e8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md @@ -58,7 +58,7 @@ El editor de usuarios se encuentran en la caja de herramientas de 4D. ![](../assets/en/Users/editor.png) -> El editor de usuarios y grupos se puede mostrar en tiempo de ejecución utilizando el comando [EDIT ACCESS](../commands-legacy/edit-access.md). +> El editor de usuarios y grupos se puede mostrar en tiempo de ejecución utilizando el comando [EDIT ACCESS](../commands/edit-access). > Toda la configuración de usuarios y grupos también puede editarse durante la ejecución de la aplicación utilizando los comandos del lenguaje 4D del tema `Usuarios y Grupos`. ### Añadir y modificar usuarios @@ -147,20 +147,18 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Assigning a license to a group +### Asignación de una licencia a un grupo -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. +Puede asignar privilegios de grupo a todas las [extensiones](../Extensions/overview.md) instaladas en el proyecto. Esto incluye todos los plug-ins y componentes de 4D y de terceros. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distribuir el acceso a las extensiones le permite controlar el uso de las licencias que tenga para estas extensiones en un entorno cliente/servidor. Los usuarios que no pertenezcan al grupo de acceso de una extensión no podrán cargar dicha extensión. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +El área "Plugin" en la página de Grupos de la caja de herramientas muestra todas las extensiones [que requieren una licencia](../Admin/licenses.md) cargadas por la aplicación 4D. Para dar acceso a un grupo a una extensión, basta con marcar la opción correspondiente. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. - ### Un esquema de acceso jerárquico La mejor manera de garantizar la seguridad de su aplicación y ofrecer a los usuarios diferentes niveles de acceso es utilizar un esquema de jerarquía de acceso. Los usuarios pueden ser asignados a los grupos apropiados y los grupos pueden ser anidados para crear una jerarquía de derechos de acceso. Esta sección describe varios enfoques de este esquema. @@ -208,3 +206,4 @@ Este archivo puede ser almacenado en las siguientes ubicaciones, dependiendo de > Para permitir cambios seguros de contraseñas y pertenencias a grupos en un entorno desplegado, puede incluir su archivo **directory.json** en la aplicación del servidor durante la creación, utilizando la [opción correspondiente a la aplicación de creación](../Desktop/building.md#embed-the-project-users-and-groups-in-built-server-application). + 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 2fc53f436fc5ea..41bcd520bd877e 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 @@ -32,7 +32,7 @@ La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar Una vez reiniciado el proyecto, el componente 4D View Pro se instala como una [dependencia Github](../Project/components.md#adding-a-github-dependency). -4D View Pro requiere una licencia. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: +4D View Pro requiere una licencia. Debe activar y [asignar esta licencia en su aplicación](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) para poder utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md index db2bc4d0cb3e9c..096898bfc4e2f9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-add-picture.md @@ -47,7 +47,7 @@ Por defecto, la imagen añadida es: - Aparece en la esquina superior izquierda de la papelera - Mostrar en todas las páginas -The location, layer (inline, in front/behind text), visibility, and any properties of picture can be modified using the [WP SET ATTRIBUTES](wp-set-attributes.md) command, or via standard actions. +La ubicación, la capa (en línea, delante o detrás del texto), la visibilidad y todas las propiedades de la imagen se pueden modificar mediante el comando [WP SET ATTRIBUTES](wp-set-attributes.md) o a través de las acciones estándar. **Nota:** el comando [WP Selection range](../commands-legacy/wp-selection-range.md) devuelve un objeto *referencia a imagen* si se selecciona una imagen anclada y un objeto *rango* si se selecciona una imagen en línea. Puede determinar si un objeto seleccionado es un objeto imagen comprobando el atributo `wk type`: 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 7c453d2e7fc0a7..20cc7b98e4c766 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 @@ -220,10 +220,10 @@ Si asigna nombres a las fórmulas, se mostrarán en lugar de los textos: Para asignar un nombre a una fórmula, debe utilizar el comando [WP Insert formula](commands/wp-insert-formula.md) con un parámetro objeto. Por ejemplo: ```4d - //inserts the previous day in the document - $o:=New object("formula";Formula(Current date-1);"name";"Yesterday") + //inserta el día anterior en el documento + $o:=New object("formula";Formula(Current date-1); "name"; "Yesterday") $range:=WP Text range(WPArea;wk start text;wk end text) - WP Insert formula($range;$o;wk append) + WP INSERT FORMULA($range;$o;wk append) ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-get-property.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-get-property.md index d7dea11951cbf3..3c015097876d04 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-get-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-get-property.md @@ -23,12 +23,12 @@ displayed_sidebar: docs
Historia -| Lanzamiento | Modificaciones | -| --------------------------- | --------------------------------------------------------------------------------------------------- | -| 20 R10 | Support of lk current item expression, lk current item pos expression, lk selected items expression | -| 19 R6 | Modificado | -| 16 R2 | Renombrado (Get Listbox information) | -| <6 | Created | +| Lanzamiento | Modificaciones | +| --------------------------- | ---------------------------------------------------------------------------------------------- | +| 20 R10 | Soporte de las expresiones lk current item, lk current item pos y lk selected items expression | +| 19 R6 | Modificado | +| 16 R2 | Renombrado (Get Listbox information) | +| <6 | Created |
diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md index 7bbd5fa8a4b81a..8d7b1293500f50 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md @@ -23,11 +23,11 @@ displayed_sidebar: docs
Historia -| Lanzamiento | Modificaciones | -| ----------- | --------------------------------------------------------------------------------------------------- | -| 20 R10 | Support of lk current item expression, lk current item pos expression, lk selected items expression | -| 19 R6 | Modificado | -| 16 R2 | Created | +| Lanzamiento | Modificaciones | +| ----------- | ---------------------------------------------------------------------------------------------- | +| 20 R10 | Soporte de las expresiones lk current item, lk current item pos y lk selected items expression | +| 19 R6 | Modificado | +| 16 R2 | Created |
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md index ec0e0e3a72b5de..f61319b001189f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md @@ -154,16 +154,14 @@ Pour supprimer un utilisateur ou un groupe d’un autre groupe, il suffit de dé You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Les licences utilisées demeurent associées aux comptes utilisateurs 4D dans le groupe, durant toute la session 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. - ### Un schéma d’accès hiérarchique Le meilleur moyen d’assurer la sécurité de votre application et de proposer différents niveaux d’accès aux utilisateurs est d’utiliser un schéma hiérarchique des accès. Les utilisateurs peuvent être affectés à différents groupes et les groupes peuvent être hiérarchisés pour créer des niveaux de droits d’accès. Cette section décrit différentes approches de ce thème. diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md index dd3b0103baf00e..b4f2eefcd2d5ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md @@ -153,16 +153,14 @@ title: 4Dユーザー&グループの管理 You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 - ### アクセス権の階層構造 アプリケーションのセキュリティを確保し、ユーザーに異なるアクセスレベルを提供する最も効果的な方法は、アクセス権の階層構造を利用することです。 ユーザーを適切なグループに割り振り、各グループをネストすることで、アクセス権の階層構造を形成できます。 この節では、このような構造の取り扱い方について説明します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/managing-formulas.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/managing-formulas.md index 0df5578b3c4073..2d3e4d76dba5c5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/managing-formulas.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/managing-formulas.md @@ -6,9 +6,9 @@ slug: /WritePro/formulas ## 概要 -4D Write Pro ドキュメントには、変数、フィールド、式、プロジェクトメソッドあるいは4D コマンドなどの4D フォーミュラへの参照を含めることができます。 Specific information such as the page number can also be referenced through formulas (see below). +4D Write Pro ドキュメントには、変数、フィールド、式、プロジェクトメソッドあるいは4D コマンドなどの4D フォーミュラへの参照を含めることができます。 ページ番号などの特定の情報もフォーミュラを通して参照することができます(以下参照)。 -Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula**](commands/wp-insert-formula.md) command and can be read using the [**WP Get formulas**](commands-legacy/wp-get-formulas.md) command. また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 +4D Write Pro エリアへのフォーミュラの挿入には [**WP Insert formula**](commands/wp-insert-formula.md) コマンドを使用し、フォーミュラの読み出しには[**WP Get formulas**](commands-legacy/wp-get-formulas.md) コマンドを使用します。 また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 ### フォーミュラの評価 @@ -89,13 +89,13 @@ Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula** ```4d $footer:=WP Get footer(4DWP;1) WP Insert formula($footer;Formula(This.pageNumber);wk append) - //Using Formula(myMethod) with myMethod processing This.pageNumber - //would not work correctly + // ただしFormula(myMethod) と書いてmyMethod にThis.pageNumber を処理させようとした場合 + // これは正常には動作しません ``` :::note -For more information about formula insertion, see [WP Insert formula](../commands/wp-insert-formula). +これらのフォーミュラ挿入についての詳細な情報については、[WP Insert formula](../commands/wp-insert-formula) を参照してください。 ::: @@ -186,7 +186,7 @@ For more information about formula insertion, see [WP Insert formula](../command フォーミュラ参照を記号として表示するためには、以下の方法があります: - プロパティリスト内の**フォーミュラのソースを記号として表示** オブションをチェックする(*ビュープロパティの設定* 参照) -- use the displayFormulaAsSymbol standard action , or +- `displayFormulaAsSymbol` 標準アクションを使用する - [**WP SET VIEW PROPERTIES**](commands-legacy/wp-set-view-properties.md) コマンドを、`wk display formula as symbol` セレクターを**True** にして使用する ### 参照を名前で表示 @@ -201,10 +201,10 @@ For more information about formula insertion, see [WP Insert formula](../command ![](../assets/en/WritePro/wp-formulas6.png) -フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。 例: 例: +フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。 例: ```4d - //inserts the previous day in the document + // ドキュメント内に昨日の日付を挿入する $o:=New object("formula";Formula(Current date-1);"name";"Yesterday") $range:=WP Text range(WPArea;wk start text;wk end text) WP Insert formula($range;$o;wk append) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user/user-new.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user/user-new.md index 32e53a03db48fa..cab83eafd68cb7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user/user-new.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/WritePro/user/user-new.md @@ -29,7 +29,7 @@ to import ![](../../assets/en/WritePro/margin-bullets.png) -When the list is created using [the WP SET ATTRIBUTE command](../commands-legacy/4d-write-pro-attributes.md#lists), no specific margin is managed, by default the marker is added at the left boundary of the paragraph. The developer can add a custom margin if necessary. +[WP SET ATTRIBUTE コマンド](../commands-legacy/4d-write-pro-attributes.md#リスト)コマンドを使用してリストが作成された場合、具体的な余白は設定されておらず、デフォルトでマーカーは段落の左端に追加されます。 必要であれば開発者はカスタムの余白を追加することができます。 :::tip 関連したblog 記事 @@ -37,21 +37,21 @@ When the list is created using [the WP SET ATTRIBUTE command](../commands-legacy ::: -### Multi-level lists +### 複数レベルのリスト -マルチレベルリストは、[階層リストスタイルシート](../user-legacy/stylesheets.md#hierarchical-list-style-sheets) に基づいています。 Multi-level lists contain a root-level style sheet and one or more sub-level style sheet(s). 各レベルは階層リストスタイルシートに関連づけられており、またリスト内での深さを表します(レベル 1、 レベル 2、レベル 3、など)。 +マルチレベルリストは、[階層リストスタイルシート](../user-legacy/stylesheets.md#hierarchical-list-style-sheets) に基づいています。 マルチレベルリストにはルートレベルのスタイルシートが一つと、一つ以上のサブレベルスタイルシートが含まれています。 各レベルは階層リストスタイルシートに関連づけられており、またリスト内での深さを表します(レベル 1、 レベル 2、レベル 3、など)。 -When a new sub-level is created, the level numbering restarts at 1. When you add or remove an element in your multi-level list, the numbers are automatically adjusted. +新しいサブレベルが作成されると、レベルの番号振り分けは1 から再スタートします。 マルチレベルリスト内で要素を追加または削除した場合、番号は自動的に調整されます。 ![](../../assets/en/WritePro/multilevel-lists.png) -Multi-level lists are created with command [WP New style sheet](../commands/wp-new-style-sheet.md) and can be applied to a paragraph using [WP SET ATTRIBUTE](../commands/wp-set-attributes.md). +[WP New style sheet](../commands/wp-new-style-sheet.md) コマンドで作成され、[WP SET ATTRIBUTE](../commands/wp-set-attributes.md) を使用して段落に適用することができます。 -Multi-level lists can be managed using: +マルチレベルリストは以下の方法で管理することができます: -- paragraph [style sheet attributes](../commands-legacy/4d-write-pro-attributes.md#style-sheets) (such as `wk list level index`, `wk list level count`, and `wk list concat string format`) -- dedicated [standard actions](../user-legacy/standard-actions.md) for level management (`listLevelAppend`, `listLevelInc`, `listLevelDec`) -- dedicated standard actions for numbering marker management (`listConcatStringFormat`, `listNumberFormat`). +- 段落[スタイルシート属性](../commands-legacy/4d-write-pro-attributes.md#スタイルシート) (例えば`wk list level index`、 `wk list level count`、および `wk list concat string format` など) +- レベル管理専用の[標準アクション](../user-legacy/standard-actions.md) (`listLevelAppend`、 `listLevelInc`、 `listLevelDec` など) +- マーカー管理の番号管理専用の標準アクション(`listConcatStringFormat`、 `listNumberFormat`)。 :::tip 関連したblog 記事 @@ -67,7 +67,7 @@ Multi-level lists can be managed using: 階層リストスタイルシートは、[マルチレベルリスト](../user-legacy/using-a-4d-write-pro-area.md#multi-level-lists) を作成するために使用されます。 -階層リストスタイルシートを作成するためには、[WP New style sheet](../commands/wp-new-style-sheet.md) を使用し、必要な階層の数を *listLevelCount* 引数に渡します。 You then define a hierarchy of related paragraph style sheets: one **root-level** style sheet and one or more **sub-level** style sheets linked to it. Each level represents a depth in the list (level 1, level 2, level 3, etc.) and is automatically named "root-level name + lvl + index", for example "Mylist lvl 2". +階層リストスタイルシートを作成するためには、[WP New style sheet](../commands/wp-new-style-sheet.md) を使用し、必要な階層の数を *listLevelCount* 引数に渡します。 次に関連した段落スタイルシートの階層を定義します: 一つの**ルートレベル** スタイルシートと、それにリンクした一つ以上の**サブレベル** スタイルシートです。 各レベルはリスト内の深さ(レベル1、レベル2、レベル3、など)を表し、 それぞれ自動的に"ルートレベル名 + lvl + インデックス"という形式の名前が付けられます。例えば"Mylist lvl 2" といった具合です。 階層リストスタイルをカスタマイズするために、段落スタイルシートオブジェクトは[スタイルシート属性](../commands-legacy/4d-write-pro-attributes.md#スタイルシート) を使用してカスタマイズすることが可能です。 @@ -101,34 +101,34 @@ WP SET ATTRIBUTES($paragraphs[1]; wk style sheet; $level2) WP SET ATTRIBUTES($paragraphs[2]; wk style sheet; $level3) ``` -result: +実行結果: ![](../../assets/en/WritePro/hierarchical-paragraph-stylesheets-1.png) -To delete the first sub-leve: +最初のサブレベルを削除するには以下を実行します: ```4d WP DELETE STYLE SHEET(wpArea; "MyList"; 2) ``` -result: +実行結果: ![](../../assets/en/WritePro/hierarchical-paragraph-stylesheets-2.png) -### Predefined attribute values +### 定義済属性値 階層リストスタイルシートを作成すると、それらは定義済みの値を使用します: -- `wk margin left` = 0.75 cm \* (number of previous levels) or 0.25 inches \* (number of previous levels), depending on current layout unit +- カレントのレイアウト単位によって、`wk margin left` = 0.75 cm \* (そこまでのレベルの数) あるいは 0.25 インチ \* (そこまでのレベルの数) - `wk list type` = `wk decimal` -- `wk name` is derived from the root style sheet name (Read-only for sub-levels) +- `wk name` は、ルートレベルのスタイルシート名から取られます(サブレベルにおいては読み取り専用になります) - `wk list level count` は、指定された値が全てのレベルに対して設定されます - 例: - - Root level: `"MyList"` - - First sub-level: `"MyList lvl 2"` - - Second sub-level: `"MyList lvl 3"` + - ルートレベル: `"MyList"` + - 最初のサブレベル: `"MyList lvl 2"` + - 二つ目のサブレベル: `"MyList lvl 3"` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md index dd3b0103baf00e..b4f2eefcd2d5ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md @@ -153,16 +153,14 @@ title: 4Dユーザー&グループの管理 You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 - ### アクセス権の階層構造 アプリケーションのセキュリティを確保し、ユーザーに異なるアクセスレベルを提供する最も効果的な方法は、アクセス権の階層構造を利用することです。 ユーザーを適切なグループに割り振り、各グループをネストすることで、アクセス権の階層構造を形成できます。 この節では、このような構造の取り扱い方について説明します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/managing-formulas.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/managing-formulas.md index 0df5578b3c4073..2d3e4d76dba5c5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/managing-formulas.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/managing-formulas.md @@ -6,9 +6,9 @@ slug: /WritePro/formulas ## 概要 -4D Write Pro ドキュメントには、変数、フィールド、式、プロジェクトメソッドあるいは4D コマンドなどの4D フォーミュラへの参照を含めることができます。 Specific information such as the page number can also be referenced through formulas (see below). +4D Write Pro ドキュメントには、変数、フィールド、式、プロジェクトメソッドあるいは4D コマンドなどの4D フォーミュラへの参照を含めることができます。 ページ番号などの特定の情報もフォーミュラを通して参照することができます(以下参照)。 -Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula**](commands/wp-insert-formula.md) command and can be read using the [**WP Get formulas**](commands-legacy/wp-get-formulas.md) command. また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 +4D Write Pro エリアへのフォーミュラの挿入には [**WP Insert formula**](commands/wp-insert-formula.md) コマンドを使用し、フォーミュラの読み出しには[**WP Get formulas**](commands-legacy/wp-get-formulas.md) コマンドを使用します。 また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 ### フォーミュラの評価 @@ -89,13 +89,13 @@ Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula** ```4d $footer:=WP Get footer(4DWP;1) WP Insert formula($footer;Formula(This.pageNumber);wk append) - //Using Formula(myMethod) with myMethod processing This.pageNumber - //would not work correctly + // ただしFormula(myMethod) と書いてmyMethod にThis.pageNumber を処理させようとした場合 + // これは正常には動作しません ``` :::note -For more information about formula insertion, see [WP Insert formula](../commands/wp-insert-formula). +これらのフォーミュラ挿入についての詳細な情報については、[WP Insert formula](../commands/wp-insert-formula) を参照してください。 ::: @@ -186,7 +186,7 @@ For more information about formula insertion, see [WP Insert formula](../command フォーミュラ参照を記号として表示するためには、以下の方法があります: - プロパティリスト内の**フォーミュラのソースを記号として表示** オブションをチェックする(*ビュープロパティの設定* 参照) -- use the displayFormulaAsSymbol standard action , or +- `displayFormulaAsSymbol` 標準アクションを使用する - [**WP SET VIEW PROPERTIES**](commands-legacy/wp-set-view-properties.md) コマンドを、`wk display formula as symbol` セレクターを**True** にして使用する ### 参照を名前で表示 @@ -201,10 +201,10 @@ For more information about formula insertion, see [WP Insert formula](../command ![](../assets/en/WritePro/wp-formulas6.png) -フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。 例: 例: +フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。 例: ```4d - //inserts the previous day in the document + // ドキュメント内に昨日の日付を挿入する $o:=New object("formula";Formula(Current date-1);"name";"Yesterday") $range:=WP Text range(WPArea;wk start text;wk end text) WP Insert formula($range;$o;wk append) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user/user-new.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user/user-new.md index 9283499bf57c56..ca189cb3138096 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user/user-new.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/user/user-new.md @@ -29,7 +29,7 @@ to import ![](../../assets/en/WritePro/margin-bullets.png) -When the list is created using [the WP SET ATTRIBUTE command](../commands-legacy/4d-write-pro-attributes.md#lists), no specific margin is managed, by default the marker is added at the left boundary of the paragraph. The developer can add a custom margin if necessary. +[WP SET ATTRIBUTE コマンド](../commands-legacy/4d-write-pro-attributes.md#リスト)コマンドを使用してリストが作成された場合、具体的な余白は設定されておらず、デフォルトでマーカーは段落の左端に追加されます。 必要であれば開発者はカスタムの余白を追加することができます。 :::tip 関連したblog 記事 @@ -37,21 +37,21 @@ When the list is created using [the WP SET ATTRIBUTE command](../commands-legacy ::: -### Multi-level lists +### 複数レベルのリスト -Multi-level lists are based on [multi-level list style sheets](../user-legacy/stylesheets.md#multi-level-list-style-sheets). Multi-level lists contain a root-level style sheet and one or more sub-level style sheet(s). Each level is attached to a multi-level list style sheet and represents a depth in the list (level 1, level 2, level 3, etc.). +マルチレベルリスト(複数レベルのリスト)は、[マルチレベルスタイルシート](../user-legacy/stylesheets.md#multi-level-list-style-sheets) に基づいています。 マルチレベルリストにはルートレベルのスタイルシートが一つと、一つ以上のサブレベルスタイルシートが含まれています。 各レベルはマルチレベルスタイルシートに関連づけられており、またリスト内での深さを表します(レベル1、レベル2、レベル3、など)。 -When a new sub-level is created, the level numbering restarts at 1. When you add or remove an element in your multi-level list, the numbers are automatically adjusted. +新しいサブレベルが作成されると、レベルの番号振り分けは1 から再スタートします。 マルチレベルリスト内で要素を追加または削除した場合、番号は自動的に調整されます。 ![](../../assets/en/WritePro/multilevel-lists.png) -Multi-level lists are created with command [WP New style sheet](../commands/wp-new-style-sheet.md) and can be applied to a paragraph using [WP SET ATTRIBUTE](../commands/wp-set-attributes.md). +[WP New style sheet](../commands/wp-new-style-sheet.md) コマンドで作成され、[WP SET ATTRIBUTE](../commands/wp-set-attributes.md) を使用して段落に適用することができます。 -Multi-level lists can be managed using: +マルチレベルリストは以下の方法で管理することができます: -- paragraph [style sheet attributes](../commands-legacy/4d-write-pro-attributes.md#style-sheets) (such as `wk list level index`, `wk list level count`, and `wk list concat string format`) -- dedicated [standard actions](../user-legacy/standard-actions.md) for level management (`listLevelAppend`, `listLevelInc`, `listLevelDec`) -- dedicated standard actions for numbering marker management (`listConcatStringFormat`, `listNumberFormat`). +- 段落[スタイルシート属性](../commands-legacy/4d-write-pro-attributes.md#スタイルシート) (例えば`wk list level index`、 `wk list level count`、および `wk list concat string format` など) +- レベル管理専用の[標準アクション](../user-legacy/standard-actions.md) (`listLevelAppend`、 `listLevelInc`、 `listLevelDec` など) +- マーカー管理の番号管理専用の標準アクション(`listConcatStringFormat`、 `listNumberFormat`)。 :::tip 関連したblog 記事 @@ -63,36 +63,36 @@ Multi-level lists can be managed using: -## Multi-level list style sheets +## 複数レベルリストスタイルシート -Multi-level list style sheets are used to create [multi-level lists](../user-legacy/using-a-4d-write-pro-area.md#multi-level-lists). +複数レベル(マルチレベル)リストスタイルシートは、[マルチレベルリスト](../user-legacy/using-a-4d-write-pro-area.md#multi-level-lists) を作成するために使用されます。 -To create a multi-level list style sheet, use [WP New style sheet](../commands/wp-new-style-sheet.md) and pass in *listLevelCount* the desired number of levels. You then define a hierarchy of related paragraph style sheets: one **root-level** style sheet and one or more **sub-level** style sheets linked to it. Each level represents a depth in the list (level 1, level 2, level 3, etc.) and is automatically named "root-level name + lvl + index", for example "Mylist lvl 2". +マルチレベルリストスタイルシートを作成するためには、[WP New style sheet](../commands/wp-new-style-sheet.md) を使用し、必要な階層の数を*listLevelCount* 引数に渡します。 次に関連した段落スタイルシートの階層を定義します: 一つの**ルートレベル** スタイルシートと、それにリンクした一つ以上の**サブレベル** スタイルシートです。 各レベルはリスト内の深さ(レベル1、レベル2、レベル3、など)を表し、 それぞれ自動的に"ルートレベル名 + lvl + インデックス"という形式の名前が付けられます。例えば"Mylist lvl 2" といった具合です。 -To customize multi-level list styles, the paragraph style sheet object can be customized using [style sheet attributes](../commands-legacy/4d-write-pro-attributes.md#style-sheets). +マルチレベルリストスタイルをカスタマイズするために、段落スタイルシートオブジェクトは[スタイルシート属性](../commands-legacy/4d-write-pro-attributes.md#スタイルシート)を使用してカスタマイズすることが可能です。 -Multi-level list style sheets are fully supported by the following commands: [`WP Get style sheet`](../commands/wp-get-style-sheet.md), [`WP SET ATTRIBUTES`](../commands/wp-set-attributes.md), [`WP DELETE STYLE SHEET`](../commands/wp-delete-style-sheet.md). +マルチレベルリストスタイルシートは、以下のコマンドによって完全にサポートされています: [`WP Get style sheet`](../commands/wp-get-style-sheet.md)、 [`WP SET ATTRIBUTES`](../commands/wp-set-attributes.md)、 [`WP DELETE STYLE SHEET`](../commands/wp-delete-style-sheet.md)。 ### 例題 -The following example creates a three-level multi-level list style sheet and applies it to paragraphs. +以下の例は3階層のマルチレベルリストスタイルシートを作成し、それを段落へと割り当てます。 ```4d -// Create 3 multi-level list style sheets +// 3階層のマルチレベルリストスタイルシートを作成 WP New style sheet(wpArea; wk type paragraph; "MyList"; 3) -// Retrieve each level +// 各階層を取得 var $level1; $level2; $level3 : Object $level1:=WP Get style sheet(wpArea; "MyList"; 1) // Root level $level2:=WP Get style sheet(wpArea; "MyList"; 2) // 1st sub-level $level3:=WP Get style sheet(wpArea; "MyList"; 3) // 2nd sub-level -// Customize styles +// スタイルをカスタマイズする WP SET ATTRIBUTES($level1; {listStyleType: wk upper latin; fontBold: wk true}) WP SET ATTRIBUTES($level2; {listConcatStringFormat: True}) WP SET ATTRIBUTES($level3; {listStringFormatLtr: "(#)"}) -// Apply multi-level style sheets to paragraphs +// マルチレベルスタイルシートを段落に適用する var $paragraphs : Collection $paragraphs:=WP Get elements(wpArea; wk type paragraph) @@ -101,34 +101,34 @@ WP SET ATTRIBUTES($paragraphs[1]; wk style sheet; $level2) WP SET ATTRIBUTES($paragraphs[2]; wk style sheet; $level3) ``` -result: +実行結果: ![](../../assets/en/WritePro/multi-level-paragraph-stylesheets-1.png) -To delete the first sub-leve: +最初のサブレベルを削除するには以下を実行します: ```4d WP DELETE STYLE SHEET(wpArea; "MyList"; 2) ``` -result: +実行結果: ![](../../assets/en/WritePro/multi-level-paragraph-stylesheets-2.png) -### Predefined attribute values +### 定義済属性値 -When created, multi-level list style sheets use predefined values: +マルチレベルリストスタイルシートを作成すると、それらは定義済みの値を使用します: -- `wk margin left` = 0.75 cm \* (number of previous levels) or 0.25 inches \* (number of previous levels), depending on current layout unit +- カレントのレイアウト単位によって、`wk margin left` = 0.75 cm \* (そこまでのレベルの数) あるいは 0.25 インチ \* (そこまでのレベルの数) - `wk list type` = `wk decimal` -- `wk name` is derived from the root style sheet name (Read-only for sub-levels) +- `wk name` は、ルートレベルのスタイルシート名から取られます(サブレベルにおいては読み取り専用になります) - `wk list level count` は、指定された値が全てのレベルに対して設定されます - 例: - - Root level: `"MyList"` - - First sub-level: `"MyList lvl 2"` - - Second sub-level: `"MyList lvl 3"` + - ルートレベル: `"MyList"` + - 最初のサブレベル: `"MyList lvl 2"` + - 二つ目のサブレベル: `"MyList lvl 3"` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md index 90214d5832eed4..fcf17e698eef61 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md @@ -319,7 +319,7 @@ AI 機能を有効化すると、4D Write Pro ドキュメント上にチャッ :::note ライティングツール(macOS) -On macOS, if you want to provide your users with Apple Intelligence Writing Tools so that they can proofread, rewrite, summarize, or change the tone of text directly within their documents, you might consider using the [Writing Tools feature](../FormObjects/properties_Entry.md#writing-tools). +macOS におてい、Apple Intelligence のライティングツールをユーザーに提供してテキストの校正、書き直し、要約、あるいは文調の変更をドキュメント内で直接行えるようにしたい場合には、[ライティングツール機能](../FormObjects/properties_Entry.md#ライティングツール) を使用することを検討してください。 ::: @@ -420,19 +420,19 @@ AI に質問を送信するためには、送信ボタンをクリックしま 消去ボタンを使用すると全てのやりとりを消去しウィンドウ全体をリセットすることができます。 これはAI ダイアログボックスを閉じて再度開くのと同じです。 -## Multi-level list style sheets +## 複数レベルリストスタイルシート -4D Write Pro Interface allows users to create and manage [multi-level lists](./user-legacy/using-a-4d-write-pro-area.md#multi-level-lists) directly from both the toolbar and widget sidebar. +4D Write Pro インターフェースを使用すると、ユーザーがツールバーまたはウィジェットサイドバーの両方から[マルチレベルリスト](./user-legacy/using-a-4d-write-pro-area.md#複数レベルリスト) を直接作成・管理できるようにすることができます。 -**Toolbar:** +**ツールバー:** ![](../assets/en/WritePro/wp-multi-level-list-stylesheets1.png) -**Sidebar:** +**サイドバー:** ![](../assets/en/WritePro/wp-multi-level-list-stylesheets2.png) -To manage multi-level list style sheets, click the ![](../assets/en/WritePro/wp-multi-level-list-button.png) multi-level list button. +マルチレベルリストスタイルシーツを管理するためには、マルチレベルリストボタン![](../assets/en/WritePro/wp-multi-level-list-button.png) をクリックします。 When the multi-level list mode is enabled, the Style Sheets panel displays the [multi-level list style sheets](./user-legacy/stylesheets.md#multi-level-list-style-sheets) defined in the document as well as [predefined templates](#predefined-templates). diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md index 17fff70a2c759e..b4f2eefcd2d5ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md @@ -58,8 +58,7 @@ title: 4Dユーザー&グループの管理 ![](../assets/en/Users/editor.png) -> ユーザーとグループのエディターは、[EDIT ACCESS](../commands-legacy/edit-access.md) コマンドを使用することでランタイムで表示することもできます。 -> ユーザーとグループの設定は、アプリケーション実行中でも `Users and Groups` テーマの 4Dランゲージコマンドを使って編集することができます。 +> ユーザーとグループのエディターは、[EDIT ACCESS](../commands/edit-access) コマンドを使用することでランタイムで表示することもできます。 > ユーザーとグループの設定は、アプリケーション実行中でも `Users and Groups` テーマの 4Dランゲージコマンドを使って編集することができます。 ### ユーザーの追加と変更 @@ -154,16 +153,14 @@ title: 4Dユーザー&グループの管理 You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 - ### アクセス権の階層構造 アプリケーションのセキュリティを確保し、ユーザーに異なるアクセスレベルを提供する最も効果的な方法は、アクセス権の階層構造を利用することです。 ユーザーを適切なグループに割り振り、各グループをネストすることで、アクセス権の階層構造を形成できます。 この節では、このような構造の取り扱い方について説明します。 @@ -214,3 +211,4 @@ The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Ser > パスワードやグループメンバーシップを運用環境において安全に変更できるようにするには、ビルド時に [対応するビルドアプリケーションオプション](../Desktop/building.md#ビルドしたサーバーアプリケーションにプロジェクトのユーザーとグループを埋め込む) を使用して、サーバーアプリケーションに **directory.json** ファイルを含めることができます。 + 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 146f2701e1d8b2..2aae6e67e799df 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 @@ -6,9 +6,9 @@ slug: /WritePro/formulas ## 概要 -4D Write Pro ドキュメントには、変数、フィールド、式、プロジェクトメソッドあるいは4D コマンドなどの4D フォーミュラへの参照を含めることができます。 Specific information such as the page number can also be referenced through formulas (see below). +4D Write Pro ドキュメントには、変数、フィールド、式、プロジェクトメソッドあるいは4D コマンドなどの4D フォーミュラへの参照を含めることができます。 ページ番号などの特定の情報もフォーミュラを通して参照することができます(以下参照)。 -Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula**](commands/wp-insert-formula.md) command and can be read using the [**WP Get formulas**](commands-legacy/wp-get-formulas.md) command. また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 +4D Write Pro エリアへのフォーミュラの挿入には [**WP Insert formula**](commands/wp-insert-formula.md) コマンドを使用し、フォーミュラの読み出しには[**WP Get formulas**](commands-legacy/wp-get-formulas.md) コマンドを使用します。 また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 フォーミュラは以下のタイミングで評価されます: @@ -87,8 +87,8 @@ Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula** ```4d $footer:=WP Get footer(4DWP;1) WP Insert formula($footer;Formula(This.pageNumber);wk append) - //Using Formula(myMethod) with myMethod processing This.pageNumber - //would not work correctly + // ただしFormula(myMethod) と書いてmyMethod にThis.pageNumber を処理させようとした場合 + // これは正常には動作しません ``` ## テキストフォーミュラコンテキストオブジェクト @@ -202,7 +202,7 @@ Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula** フォーミュラ参照を記号として表示するためには、以下の方法があります: - プロパティリスト内の**フォーミュラのソースを記号として表示** オブションをチェックする(*ビュープロパティの設定* 参照) -- use the displayFormulaAsSymbol standard action , or +- `displayFormulaAsSymbol` 標準アクションを使用する - [**WP SET VIEW PROPERTIES**](commands-legacy/wp-set-view-properties.md) コマンドを、`wk display formula as symbol` セレクターを**True** にして使用する ### 参照を名前で表示 @@ -217,10 +217,10 @@ Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula** ![](../assets/en/WritePro/wp-formulas6.png) -フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。 例: 例: +フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。 例: ```4d - //inserts the previous day in the document + // ドキュメント内に昨日の日付を挿入する $o:=New object("formula";Formula(Current date-1);"name";"Yesterday") $range:=WP Text range(WPArea;wk start text;wk end text) WP Insert formula($range;$o;wk append) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md index 76b6f1e03d4eb1..fe2564590d3f33 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md @@ -155,16 +155,14 @@ Para remover um usuário ou grupo de outro grupo, você só precisa desmarcar a You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Licenças utilizadas permanecem anexadas a contas de usuário 4D no grupo para toda a sessão 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. - ### Um esquema de acesso hierárquico A melhor maneira de garantir a segurança da sua aplicação e fornecer aos usuários diferentes níveis de acesso é usar um esquema de hierarquia de acesso. Os usuários podem ser atribuídos a grupos e grupos apropriados podem ser aninhados para criar uma hierarquia de direitos de acesso. Esta secção discute várias abordagens a esse esquema. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md index 76b6f1e03d4eb1..fe2564590d3f33 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md @@ -155,16 +155,14 @@ Para remover um usuário ou grupo de outro grupo, você só precisa desmarcar a You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Licenças utilizadas permanecem anexadas a contas de usuário 4D no grupo para toda a sessão 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. - ### Um esquema de acesso hierárquico A melhor maneira de garantir a segurança da sua aplicação e fornecer aos usuários diferentes níveis de acesso é usar um esquema de hierarquia de acesso. Os usuários podem ser atribuídos a grupos e grupos apropriados podem ser aninhados para criar uma hierarquia de direitos de acesso. Esta secção discute várias abordagens a esse esquema. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md index 722a78e39db44b..fe2564590d3f33 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md @@ -58,7 +58,7 @@ O editor de usuários está na Barra de Ferramentas de 4D. ![](../assets/en/Users/editor.png) -> El editor de usuarios y grupos se puede mostrar en tiempo de ejecución utilizando el comando [EDIT ACCESS](../commands-legacy/edit-access.md). +> Users and groups editor can be displayed at runtime using the [EDIT ACCESS](../commands/edit-access) command. > Toda la configuración de usuarios y grupos también puede editarse durante la ejecución de la aplicación utilizando los comandos del lenguaje 4D del tema `Usuarios y Grupos`. ### Adicionar e modificar usuários @@ -155,16 +155,14 @@ Para remover um usuário ou grupo de outro grupo, você só precisa desmarcar a You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Licenças utilizadas permanecem anexadas a contas de usuário 4D no grupo para toda a sessão 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. - ### Um esquema de acesso hierárquico A melhor maneira de garantir a segurança da sua aplicação e fornecer aos usuários diferentes níveis de acesso é usar um esquema de hierarquia de acesso. Os usuários podem ser atribuídos a grupos e grupos apropriados podem ser aninhados para criar uma hierarquia de direitos de acesso. Esta secção discute várias abordagens a esse esquema. @@ -212,3 +210,4 @@ Esse arquivo pode ser armazenado nos seguintes locais, dependendo de suas necess > To allow for safe changes of passwords and group memberships in a deployed environment, you can include your **directory.json** file in the server application during the build, using the [corresponding build application option](../Desktop/building.md#embed-the-project-users-and-groups-in-built-server-application). + From dcd85fcc28a6e53b3433bab3f0aa062c5d6d13d3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 7 Sep 2026 11:14:54 +0200 Subject: [PATCH 28/60] fixes from Keisuke's IA --- docs/language-legacy/BLOB/blob-to-list.md | 2 +- docs/language-legacy/Language/action-info.md | 2 +- docs/language-legacy/Web Server/web-get-body-part.md | 2 +- .../current/language-legacy/BLOB/blob-to-list.md | 2 +- .../current/language-legacy/Language/action-info.md | 2 +- .../current/language-legacy/Web Server/web-get-body-part.md | 2 +- .../version-21-R3/language-legacy/BLOB/blob-to-list.md | 2 +- .../version-21-R3/language-legacy/Language/action-info.md | 2 +- .../language-legacy/Web Server/web-get-body-part.md | 2 +- .../version-21-R4/language-legacy/BLOB/blob-to-list.md | 2 +- .../version-21-R4/language-legacy/Language/action-info.md | 2 +- .../language-legacy/Web Server/web-get-body-part.md | 2 +- .../version-21/commands-legacy/action-info.md | 2 +- .../version-21/commands-legacy/blob-to-list.md | 2 +- .../version-21/commands-legacy/web-get-body-part.md | 2 +- .../current/language-legacy/BLOB/blob-to-list.md | 2 +- .../current/language-legacy/Language/action-info.md | 2 +- .../current/language-legacy/Web Server/web-get-body-part.md | 2 +- .../version-21-R3/language-legacy/BLOB/blob-to-list.md | 2 +- .../version-21-R3/language-legacy/Language/action-info.md | 2 +- .../language-legacy/Web Server/web-get-body-part.md | 2 +- .../version-21-R4/language-legacy/BLOB/blob-to-list.md | 2 +- .../version-21-R4/language-legacy/Language/action-info.md | 2 +- .../language-legacy/Web Server/web-get-body-part.md | 2 +- .../version-21/commands-legacy/action-info.md | 2 +- .../version-21/commands-legacy/blob-to-list.md | 2 +- .../version-21/commands-legacy/web-get-body-part.md | 2 +- .../current/language-legacy/BLOB/blob-to-list.md | 2 +- .../current/language-legacy/Language/action-info.md | 2 +- .../version-21-R3/language-legacy/BLOB/blob-to-list.md | 2 +- .../version-21-R3/language-legacy/Language/action-info.md | 2 +- .../version-21-R4/language-legacy/BLOB/blob-to-list.md | 2 +- .../version-21-R4/language-legacy/Language/action-info.md | 2 +- .../version-21/commands-legacy/action-info.md | 2 +- .../version-21/commands-legacy/blob-to-list.md | 2 +- .../current/language-legacy/Web Server/web-get-body-part.md | 2 +- .../language-legacy/Web Server/web-get-body-part.md | 2 +- .../language-legacy/Web Server/web-get-body-part.md | 2 +- .../version-21/commands-legacy/web-get-body-part.md | 2 +- .../version-21-R3/language-legacy/BLOB/blob-to-list.md | 2 +- .../version-21-R3/language-legacy/Language/action-info.md | 2 +- .../language-legacy/Web Server/web-get-body-part.md | 2 +- .../version-21-R4/language-legacy/BLOB/blob-to-list.md | 2 +- .../version-21-R4/language-legacy/Language/action-info.md | 2 +- .../language-legacy/Web Server/web-get-body-part.md | 2 +- versioned_docs/version-21/commands-legacy/action-info.md | 2 +- versioned_docs/version-21/commands-legacy/blob-to-list.md | 2 +- versioned_docs/version-21/commands-legacy/web-get-body-part.md | 2 +- 48 files changed, 48 insertions(+), 48 deletions(-) diff --git a/docs/language-legacy/BLOB/blob-to-list.md b/docs/language-legacy/BLOB/blob-to-list.md index effcecbf4c249e..ada6be44d7b6a4 100644 --- a/docs/language-legacy/BLOB/blob-to-list.md +++ b/docs/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Parameter | Type | | Description | | --- | --- | --- | --- | | Blob | Blob | → | BLOB containing a hierarchical list | -| offset | Integer | ↔ | Offset within the BLOB (expressed in bytes) | +| offset | Variable | ↔ | Offset within the BLOB (expressed in bytes) | |||| New offset after reading | | Function result | Integer | ← | Reference to newly created list |
diff --git a/docs/language-legacy/Language/action-info.md b/docs/language-legacy/Language/action-info.md index 6312d487d8e0c0..240bc274a7aa1b 100644 --- a/docs/language-legacy/Language/action-info.md +++ b/docs/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Standard action name or pattern including parameter if required | | target | Integer | → | Defines the target of the action to get information: main form or current form | -| Function result | Object | ← | Object containing action status as boolean properties: isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Function result | Object | ← | Object containing action status as properties |
diff --git a/docs/language-legacy/Web Server/web-get-body-part.md b/docs/language-legacy/Web Server/web-get-body-part.md index 19830ba5745d1c..ac613bb721ec65 100644 --- a/docs/language-legacy/Web Server/web-get-body-part.md +++ b/docs/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ The *contents* parameter receives the contents of the part. When the parts to be The *name* parameter receives the variable name of the HTTP input field. -The *mimeType* and *name* parameters receive the Mime type and the name of the original file, if any. A *name* is only received when the file was submitted as ****. +The *mimeType* and *name* parameters receive the Mime type and the name of the original file, if any. A *name* is only received when the file was submitted as ``. *mimeType* and *name* are optional but must be passed together. **Note:** In the context of a multi-part request, the first array of the [WEB GET VARIABLES](../commands/web-get-variables) command returns all parts of the form, in the same order as the **WEB GET BODY PART** command. You can use it in order to get the position of the parts of the form directly. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md index 87e94c2098da40..413b1f44467ec2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | | Blob | Blob | → | BLOB que contiene una lista jerárquica | -| offset | Integer | ↔ | Offset en el BLOB (expresado en bytes) | +| offset | Variable | ↔ | Offset en el BLOB (expresado en bytes) | | | | | Nuevo offset después de la lectura | | Resultado | Integer | ← | Referencia de la lista creada recientemente |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md index 4a2b54a5c01d6d..b6d790766da89b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Nombre o patrón de acción estándar incluyendo el parámetro si es necesario | | objetivo | Integer | → | Define el objetivo de la acción para obtener información: forma principal o forma actual | -| Resultado | Object | ← | Objeto que contiene el estado de la acción como propiedades booleanas: isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Resultado | Object | ← | Objeto que contiene el estado de la acción como propiedades |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md index f8d0db594a7da8..a2c50c144ca8cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ El parámetro *contenido* recibe el contenido de la parte. Cuando las partes a r El parámetro *nombre* recupera el nombre de la variable del campo input HTTP. -Los parámetros *tipoMime* y *nomArchivo* reciben el tipo Mime y el nombre del archivo original, si lo hay. nomArchivo solo se recibe cuando el archivo se envio como ****. +Los parámetros *tipoMime* y *nomArchivo* reciben el tipo Mime y el nombre del archivo original, si lo hay. nomArchivo solo se recibe cuando el archivo se envio como ``. *tipoMime* y *nomArchivo* son opcionales pero deben pasarse juntos. **Nota**: en el contexto de una petición multi-part, el primer de array del comando [WEB GET VARIABLES](../commands/web-get-variables) devuelve todas las partes del formulario, en el mismo orden que el comando **WEB GET BODY PART**. Puede utilizarlo para obtener directamente la posición de una parte de un formulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md index 87e94c2098da40..413b1f44467ec2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | | Blob | Blob | → | BLOB que contiene una lista jerárquica | -| offset | Integer | ↔ | Offset en el BLOB (expresado en bytes) | +| offset | Variable | ↔ | Offset en el BLOB (expresado en bytes) | | | | | Nuevo offset después de la lectura | | Resultado | Integer | ← | Referencia de la lista creada recientemente | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md index 4a2b54a5c01d6d..b6d790766da89b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Nombre o patrón de acción estándar incluyendo el parámetro si es necesario | | objetivo | Integer | → | Define el objetivo de la acción para obtener información: forma principal o forma actual | -| Resultado | Object | ← | Objeto que contiene el estado de la acción como propiedades booleanas: isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Resultado | Object | ← | Objeto que contiene el estado de la acción como propiedades | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md index f8d0db594a7da8..a2c50c144ca8cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ El parámetro *contenido* recibe el contenido de la parte. Cuando las partes a r El parámetro *nombre* recupera el nombre de la variable del campo input HTTP. -Los parámetros *tipoMime* y *nomArchivo* reciben el tipo Mime y el nombre del archivo original, si lo hay. nomArchivo solo se recibe cuando el archivo se envio como ****. +Los parámetros *tipoMime* y *nomArchivo* reciben el tipo Mime y el nombre del archivo original, si lo hay. nomArchivo solo se recibe cuando el archivo se envio como ``. *tipoMime* y *nomArchivo* son opcionales pero deben pasarse juntos. **Nota**: en el contexto de una petición multi-part, el primer de array del comando [WEB GET VARIABLES](../commands/web-get-variables) devuelve todas las partes del formulario, en el mismo orden que el comando **WEB GET BODY PART**. Puede utilizarlo para obtener directamente la posición de una parte de un formulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md index 87e94c2098da40..413b1f44467ec2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | | Blob | Blob | → | BLOB que contiene una lista jerárquica | -| offset | Integer | ↔ | Offset en el BLOB (expresado en bytes) | +| offset | Variable | ↔ | Offset en el BLOB (expresado en bytes) | | | | | Nuevo offset después de la lectura | | Resultado | Integer | ← | Referencia de la lista creada recientemente | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md index 4a2b54a5c01d6d..b6d790766da89b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Nombre o patrón de acción estándar incluyendo el parámetro si es necesario | | objetivo | Integer | → | Define el objetivo de la acción para obtener información: forma principal o forma actual | -| Resultado | Object | ← | Objeto que contiene el estado de la acción como propiedades booleanas: isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Resultado | Object | ← | Objeto que contiene el estado de la acción como propiedades | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md index f8d0db594a7da8..a2c50c144ca8cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ El parámetro *contenido* recibe el contenido de la parte. Cuando las partes a r El parámetro *nombre* recupera el nombre de la variable del campo input HTTP. -Los parámetros *tipoMime* y *nomArchivo* reciben el tipo Mime y el nombre del archivo original, si lo hay. nomArchivo solo se recibe cuando el archivo se envio como ****. +Los parámetros *tipoMime* y *nomArchivo* reciben el tipo Mime y el nombre del archivo original, si lo hay. nomArchivo solo se recibe cuando el archivo se envio como ``. *tipoMime* y *nomArchivo* son opcionales pero deben pasarse juntos. **Nota**: en el contexto de una petición multi-part, el primer de array del comando [WEB GET VARIABLES](../commands/web-get-variables) devuelve todas las partes del formulario, en el mismo orden que el comando **WEB GET BODY PART**. Puede utilizarlo para obtener directamente la posición de una parte de un formulario. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md index f46107094c2fb2..bc3cfd3600fcab 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Nombre o patrón de acción estándar incluyendo el parámetro si es necesario | | objetivo | Integer | → | Define el objetivo de la acción para obtener información: forma principal o forma actual | -| Resultado | Object | ← | Objeto que contiene el estado de la acción como propiedades booleanas: isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Resultado | Object | ← | Objeto que contiene el estado de la acción como propiedades | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md index fd6f2ff44c9f1c..c623363daf5a24 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Parámetro | Tipo | | Descripción | | --- | --- | --- | --- | | Blob | Blob | → | BLOB que contiene una lista jerárquica | -| offset | Integer | ↔ | Offset en el BLOB (expresado en bytes) | +| offset | Variable | ↔ | Offset en el BLOB (expresado en bytes) | ||| | Nuevo offset después de la lectura | | Resultado | Integer | ← | Referencia de la lista creada recientemente | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md index 7e9887c29d8741..63d5dcec8d7a50 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md @@ -39,7 +39,7 @@ El parámetro *contenido* recibe el contenido de la parte. Cuando las partes a r El parámetro *nombre* recupera el nombre de la variable del campo input HTTP. -Los parámetros *tipoMime* y *nomArchivo* reciben el tipo Mime y el nombre del archivo original, si lo hay. nomArchivo solo se recibe cuando el archivo se envio como ****. +Los parámetros *tipoMime* y *nomArchivo* reciben el tipo Mime y el nombre del archivo original, si lo hay. nomArchivo solo se recibe cuando el archivo se envio como ``. *tipoMime* y *nomArchivo* son opcionales pero deben pasarse juntos. **Nota**: en el contexto de una petición multi-part, el primer de array del comando [WEB GET VARIABLES](web-get-variables.md) devuelve todas las partes del formulario, en el mismo orden que el comando **WEB GET BODY PART**. Puede utilizarlo para obtener directamente la posición de una parte de un formulario. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md index cb72d465c99662..0b14547a002337 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Paramètre | Type | | Description | | --- | --- | --- | --- | | blob | Blob | → | BLOB contenant la liste hiérarchique | -| offset | Integer | ↔ | Offset (en octets) dans le BLOB | +| offset | Variable | ↔ | Offset (en octets) dans le BLOB | | ||| Nouvel offset après la lecture | | Résultat | Integer | ← | Référence de la liste nouvellement créée | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md index 7d46eec1e6f634..27bb6f747571b3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Nom de l'action standard ou syntaxe incluant un paramètre si celui-ci est requis | | cible | Integer | → | Définit la cible de l'action où lire les informations : formulaire principal ou formulaire courant | -| Résultat | Object | ← | Objet contenant le statut de l'action sous forme de booléens : isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Résultat | Object | ← | Objet contenant le statut de l'action sous forme de propriétés | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md index b9bdc212c4c747..857594055ae15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ Le paramètre *contenuParti*e récupère le contenu de la partie. Lorsque les pa Le paramètre *nomPartie* récupère le nom de la variable du champ input HTTP. -Les paramètres *typeMime* et *nomFichier* permettent de récupérer le type Mime et le nom du fichier d’origine, le cas échéant. *nomFichier* n’est renseigné que dans le cas où le fichier a été posté dans ****. +Les paramètres *typeMime* et *nomFichier* permettent de récupérer le type Mime et le nom du fichier d’origine, le cas échéant. *nomFichier* n’est renseigné que dans le cas où le fichier a été posté dans ``. *typeMime* et *nomFichier* sont optionnels mais ne peuvent pas être passés séparément. **Note :** Dans le cadre d’une requête multi-part, le premier tableau de la commande [WEB GET VARIABLES](../commands/web-get-variables) retourne toutes les parties du formulaire, dans le même ordre que la commande **WEB GET BODY PART**. Vous pouvez l’utiliser par exemple afin d’obtenir directement la position d'une partie du formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md index f2dcea09f7e20c..95d6c48573b3b2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Paramètre | Type | | Description | | --- | --- | --- | --- | | blob | Blob | → | BLOB contenant la liste hiérarchique | -| offset | Integer | ↔ | Offset (en octets) dans le BLOB | +| offset | Variable | ↔ | Offset (en octets) dans le BLOB | | ||| Nouvel offset après la lecture | | Résultat | Integer | ← | Référence de la liste nouvellement créée | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md index 6d20dea7b54071..e03301270d4d77 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Nom de l'action standard ou syntaxe incluant un paramètre si celui-ci est requis | | cible | Integer | → | Définit la cible de l'action où lire les informations : formulaire principal ou formulaire courant | -| Résultat | Object | ← | Objet contenant le statut de l'action sous forme de booléens : isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Résultat | Object | ← | Objet contenant le statut de l'action sous forme de propriétés | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md index 32b71cbfb20fd6..dda5ddd75e3a62 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ Le paramètre *contenuParti*e récupère le contenu de la partie. Lorsque les pa Le paramètre *nomPartie* récupère le nom de la variable du champ input HTTP. -Les paramètres *typeMime* et *nomFichier* permettent de récupérer le type Mime et le nom du fichier d’origine, le cas échéant. *nomFichier* n’est renseigné que dans le cas où le fichier a été posté dans ****. +Les paramètres *typeMime* et *nomFichier* permettent de récupérer le type Mime et le nom du fichier d’origine, le cas échéant. *nomFichier* n’est renseigné que dans le cas où le fichier a été posté dans ``. *typeMime* et *nomFichier* sont optionnels mais ne peuvent pas être passés séparément. **Note :** Dans le cadre d’une requête multi-part, le premier tableau de la commande [WEB GET VARIABLES](../commands/web-get-variables) retourne toutes les parties du formulaire, dans le même ordre que la commande **WEB GET BODY PART**. Vous pouvez l’utiliser par exemple afin d’obtenir directement la position d'une partie du formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md index cb72d465c99662..0b14547a002337 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Paramètre | Type | | Description | | --- | --- | --- | --- | | blob | Blob | → | BLOB contenant la liste hiérarchique | -| offset | Integer | ↔ | Offset (en octets) dans le BLOB | +| offset | Variable | ↔ | Offset (en octets) dans le BLOB | | ||| Nouvel offset après la lecture | | Résultat | Integer | ← | Référence de la liste nouvellement créée | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md index 7d46eec1e6f634..27bb6f747571b3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Nom de l'action standard ou syntaxe incluant un paramètre si celui-ci est requis | | cible | Integer | → | Définit la cible de l'action où lire les informations : formulaire principal ou formulaire courant | -| Résultat | Object | ← | Objet contenant le statut de l'action sous forme de booléens : isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Résultat | Object | ← | Objet contenant le statut de l'action sous forme de propriétés | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md index b9bdc212c4c747..857594055ae15f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ Le paramètre *contenuParti*e récupère le contenu de la partie. Lorsque les pa Le paramètre *nomPartie* récupère le nom de la variable du champ input HTTP. -Les paramètres *typeMime* et *nomFichier* permettent de récupérer le type Mime et le nom du fichier d’origine, le cas échéant. *nomFichier* n’est renseigné que dans le cas où le fichier a été posté dans ****. +Les paramètres *typeMime* et *nomFichier* permettent de récupérer le type Mime et le nom du fichier d’origine, le cas échéant. *nomFichier* n’est renseigné que dans le cas où le fichier a été posté dans ``. *typeMime* et *nomFichier* sont optionnels mais ne peuvent pas être passés séparément. **Note :** Dans le cadre d’une requête multi-part, le premier tableau de la commande [WEB GET VARIABLES](../commands/web-get-variables) retourne toutes les parties du formulaire, dans le même ordre que la commande **WEB GET BODY PART**. Vous pouvez l’utiliser par exemple afin d’obtenir directement la position d'une partie du formulaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md index 034c05a9583775..2b89b2f1daede8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Nom de l'action standard ou syntaxe incluant un paramètre si celui-ci est requis | | cible | Integer | → | Définit la cible de l'action où lire les informations : formulaire principal ou formulaire courant | -| Résultat | Object | ← | Objet contenant le statut de l'action sous forme de booléens : isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Résultat | Object | ← | Objet contenant le statut de l'action sous forme de propriétés | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md index ffdea25eb24d77..4fc833c55cedde 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Paramètre | Type | | Description | | --- | --- | --- | --- | | blob | Blob | → | BLOB contenant la liste hiérarchique | -| offset | Integer | ↔ | Offset (en octets) dans le BLOB | +| offset | Variable | ↔ | Offset (en octets) dans le BLOB | | ||| Nouvel offset après la lecture | | Résultat | Integer | ← | Référence de la liste nouvellement créée | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md index 858d77e16bbc11..970c3897a12831 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md @@ -39,7 +39,7 @@ Le paramètre *contenuParti*e récupère le contenu de la partie. Lorsque les pa Le paramètre *nomPartie* récupère le nom de la variable du champ input HTTP. -Les paramètres *typeMime* et *nomFichier* permettent de récupérer le type Mime et le nom du fichier d’origine, le cas échéant. *nomFichier* n’est renseigné que dans le cas où le fichier a été posté dans ****. +Les paramètres *typeMime* et *nomFichier* permettent de récupérer le type Mime et le nom du fichier d’origine, le cas échéant. *nomFichier* n’est renseigné que dans le cas où le fichier a été posté dans ``. *typeMime* et *nomFichier* sont optionnels mais ne peuvent pas être passés séparément. **Note :** Dans le cadre d’une requête multi-part, le premier tableau de la commande [WEB GET VARIABLES](web-get-variables.md) retourne toutes les parties du formulaire, dans le même ordre que la commande **WEB GET BODY PART**. Vous pouvez l’utiliser par exemple afin d’obtenir directement la position d'une partie du formulaire. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md index 0684d2e14f784b..1ac13c06058128 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | 引数 | 型 | | 説明 | | --- | --- | --- | --- | | Blob | Blob | → | 階層リストが格納されたBLOB | -| offset | Integer | ↔ | BLOB内のオフセット (バイト単位) | +| offset | Variable | ↔ | BLOB内のオフセット (バイト単位) | | | | | 読み込み後の新しいオフセット | | 戻り値 | Integer | ← | 新しく作成されたリスト参照 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md index a7ebeb20fc427b..42d31443b60b81 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | 標準アクション名、あるいは(必要であれば)引数を含めたパターン | | target | Integer | → | アクションの情報を取得するターゲットを定義します。メインフォームあるいはカレントフォーム | -| 戻り値 | Object | ← | アクションのステータスを表したブール型のプロパティを格納するオブジェクト: isEnabled、isVisible、isChecked、isMixed、isUnknownState | +| 戻り値 | Object | ← | アクションのステータスを表したプロパティを格納するオブジェクト | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md index 0684d2e14f784b..1ac13c06058128 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | 引数 | 型 | | 説明 | | --- | --- | --- | --- | | Blob | Blob | → | 階層リストが格納されたBLOB | -| offset | Integer | ↔ | BLOB内のオフセット (バイト単位) | +| offset | Variable | ↔ | BLOB内のオフセット (バイト単位) | | | | | 読み込み後の新しいオフセット | | 戻り値 | Integer | ← | 新しく作成されたリスト参照 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md index a7ebeb20fc427b..42d31443b60b81 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | 標準アクション名、あるいは(必要であれば)引数を含めたパターン | | target | Integer | → | アクションの情報を取得するターゲットを定義します。メインフォームあるいはカレントフォーム | -| 戻り値 | Object | ← | アクションのステータスを表したブール型のプロパティを格納するオブジェクト: isEnabled、isVisible、isChecked、isMixed、isUnknownState | +| 戻り値 | Object | ← | アクションのステータスを表したプロパティを格納するオブジェクト | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md index 0684d2e14f784b..1ac13c06058128 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | 引数 | 型 | | 説明 | | --- | --- | --- | --- | | Blob | Blob | → | 階層リストが格納されたBLOB | -| offset | Integer | ↔ | BLOB内のオフセット (バイト単位) | +| offset | Variable | ↔ | BLOB内のオフセット (バイト単位) | | | | | 読み込み後の新しいオフセット | | 戻り値 | Integer | ← | 新しく作成されたリスト参照 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md index a7ebeb20fc427b..42d31443b60b81 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | 標準アクション名、あるいは(必要であれば)引数を含めたパターン | | target | Integer | → | アクションの情報を取得するターゲットを定義します。メインフォームあるいはカレントフォーム | -| 戻り値 | Object | ← | アクションのステータスを表したブール型のプロパティを格納するオブジェクト: isEnabled、isVisible、isChecked、isMixed、isUnknownState | +| 戻り値 | Object | ← | アクションのステータスを表したプロパティを格納するオブジェクト | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md index 8df2d15f929ccb..e5128d87e01554 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | 標準アクション名、あるいは(必要であれば)引数を含めたパターン | | target | Integer | → | アクションの情報を取得するターゲットを定義します。メインフォームあるいはカレントフォーム | -| 戻り値 | Object | ← | アクションのステータスを表したブール型のプロパティを格納するオブジェクト: isEnabled、isVisible、isChecked、isMixed、isUnknownState | +| 戻り値 | Object | ← | アクションのステータスを表したプロパティを格納するオブジェクト | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md index 118d43b3df1632..2c64cdd2346739 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | 引数 | 型 | | 説明 | | --- | --- | --- | --- | | Blob | Blob | → | 階層リストが格納されたBLOB | -| offset | Integer | ↔ | BLOB内のオフセット (バイト単位) | +| offset | Variable | ↔ | BLOB内のオフセット (バイト単位) | | || | 読み込み後の新しいオフセット | | 戻り値 | Integer | ← | 新しく作成されたリスト参照 | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md index baa5c595597daa..59066664d8580a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ No parâmetro *conteudo* recebe o conteúdo da parte. Quando as partes a recuper O parâmetro *nome* recupera o nome da variável do campo input HTTP. -Os parâmetros *tipoMime* e *nomArquivo* recebem o tipo Mime e o nome do arquivo original, se houver. *nomArquivo* só é recebido quando o arquivo se enviou como ****. +Os parâmetros *tipoMime* e *nomArquivo* recebem o tipo Mime e o nome do arquivo original, se houver. *nomArquivo* só é recebido quando o arquivo se enviou como ``. *tipoMime* e *nomArquivo* são opcionais mas devem ser passados juntos. **Nota**: No contexto de uma petição multi-part, o primeiro de array do comando [WEB GET VARIABLES](../commands/web-get-variables) devolve todas as partes do formulário, na mesma ordem que o comando **WEB GET BODY PART**. Pode utilizar-lo para obter diretamente a posição de uma parte de um formulário. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md index baa5c595597daa..59066664d8580a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ No parâmetro *conteudo* recebe o conteúdo da parte. Quando as partes a recuper O parâmetro *nome* recupera o nome da variável do campo input HTTP. -Os parâmetros *tipoMime* e *nomArquivo* recebem o tipo Mime e o nome do arquivo original, se houver. *nomArquivo* só é recebido quando o arquivo se enviou como ****. +Os parâmetros *tipoMime* e *nomArquivo* recebem o tipo Mime e o nome do arquivo original, se houver. *nomArquivo* só é recebido quando o arquivo se enviou como ``. *tipoMime* e *nomArquivo* são opcionais mas devem ser passados juntos. **Nota**: No contexto de uma petição multi-part, o primeiro de array do comando [WEB GET VARIABLES](../commands/web-get-variables) devolve todas as partes do formulário, na mesma ordem que o comando **WEB GET BODY PART**. Pode utilizar-lo para obter diretamente a posição de uma parte de um formulário. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md index baa5c595597daa..59066664d8580a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ No parâmetro *conteudo* recebe o conteúdo da parte. Quando as partes a recuper O parâmetro *nome* recupera o nome da variável do campo input HTTP. -Os parâmetros *tipoMime* e *nomArquivo* recebem o tipo Mime e o nome do arquivo original, se houver. *nomArquivo* só é recebido quando o arquivo se enviou como ****. +Os parâmetros *tipoMime* e *nomArquivo* recebem o tipo Mime e o nome do arquivo original, se houver. *nomArquivo* só é recebido quando o arquivo se enviou como ``. *tipoMime* e *nomArquivo* são opcionais mas devem ser passados juntos. **Nota**: No contexto de uma petição multi-part, o primeiro de array do comando [WEB GET VARIABLES](../commands/web-get-variables) devolve todas as partes do formulário, na mesma ordem que o comando **WEB GET BODY PART**. Pode utilizar-lo para obter diretamente a posição de uma parte de um formulário. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md index 5cdce4f4ca8acd..81b7b6039b9b3f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands-legacy/web-get-body-part.md @@ -39,7 +39,7 @@ No parâmetro *conteudo* recebe o conteúdo da parte. Quando as partes a recuper O parâmetro *nome* recupera o nome da variável do campo input HTTP. -Os parâmetros *tipoMime* e *nomArquivo* recebem o tipo Mime e o nome do arquivo original, se houver. *nomArquivo* só é recebido quando o arquivo se enviou como ****. +Os parâmetros *tipoMime* e *nomArquivo* recebem o tipo Mime e o nome do arquivo original, se houver. *nomArquivo* só é recebido quando o arquivo se enviou como ``. *tipoMime* e *nomArquivo* são opcionais mas devem ser passados juntos. **Nota**: No contexto de uma petição multi-part, o primeiro de array do comando [WEB GET VARIABLES](web-get-variables.md) devolve todas as partes do formulário, na mesma ordem que o comando **WEB GET BODY PART**. Pode utilizar-lo para obter diretamente a posição de uma parte de um formulário. diff --git a/versioned_docs/version-21-R3/language-legacy/BLOB/blob-to-list.md b/versioned_docs/version-21-R3/language-legacy/BLOB/blob-to-list.md index effcecbf4c249e..ada6be44d7b6a4 100644 --- a/versioned_docs/version-21-R3/language-legacy/BLOB/blob-to-list.md +++ b/versioned_docs/version-21-R3/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Parameter | Type | | Description | | --- | --- | --- | --- | | Blob | Blob | → | BLOB containing a hierarchical list | -| offset | Integer | ↔ | Offset within the BLOB (expressed in bytes) | +| offset | Variable | ↔ | Offset within the BLOB (expressed in bytes) | |||| New offset after reading | | Function result | Integer | ← | Reference to newly created list | diff --git a/versioned_docs/version-21-R3/language-legacy/Language/action-info.md b/versioned_docs/version-21-R3/language-legacy/Language/action-info.md index 6312d487d8e0c0..240bc274a7aa1b 100644 --- a/versioned_docs/version-21-R3/language-legacy/Language/action-info.md +++ b/versioned_docs/version-21-R3/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Standard action name or pattern including parameter if required | | target | Integer | → | Defines the target of the action to get information: main form or current form | -| Function result | Object | ← | Object containing action status as boolean properties: isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Function result | Object | ← | Object containing action status as properties | diff --git a/versioned_docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md b/versioned_docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md index 19830ba5745d1c..ac613bb721ec65 100644 --- a/versioned_docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md +++ b/versioned_docs/version-21-R3/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ The *contents* parameter receives the contents of the part. When the parts to be The *name* parameter receives the variable name of the HTTP input field. -The *mimeType* and *name* parameters receive the Mime type and the name of the original file, if any. A *name* is only received when the file was submitted as ****. +The *mimeType* and *name* parameters receive the Mime type and the name of the original file, if any. A *name* is only received when the file was submitted as ``. *mimeType* and *name* are optional but must be passed together. **Note:** In the context of a multi-part request, the first array of the [WEB GET VARIABLES](../commands/web-get-variables) command returns all parts of the form, in the same order as the **WEB GET BODY PART** command. You can use it in order to get the position of the parts of the form directly. diff --git a/versioned_docs/version-21-R4/language-legacy/BLOB/blob-to-list.md b/versioned_docs/version-21-R4/language-legacy/BLOB/blob-to-list.md index effcecbf4c249e..ada6be44d7b6a4 100644 --- a/versioned_docs/version-21-R4/language-legacy/BLOB/blob-to-list.md +++ b/versioned_docs/version-21-R4/language-legacy/BLOB/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Parameter | Type | | Description | | --- | --- | --- | --- | | Blob | Blob | → | BLOB containing a hierarchical list | -| offset | Integer | ↔ | Offset within the BLOB (expressed in bytes) | +| offset | Variable | ↔ | Offset within the BLOB (expressed in bytes) | |||| New offset after reading | | Function result | Integer | ← | Reference to newly created list | diff --git a/versioned_docs/version-21-R4/language-legacy/Language/action-info.md b/versioned_docs/version-21-R4/language-legacy/Language/action-info.md index 6312d487d8e0c0..240bc274a7aa1b 100644 --- a/versioned_docs/version-21-R4/language-legacy/Language/action-info.md +++ b/versioned_docs/version-21-R4/language-legacy/Language/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Standard action name or pattern including parameter if required | | target | Integer | → | Defines the target of the action to get information: main form or current form | -| Function result | Object | ← | Object containing action status as boolean properties: isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Function result | Object | ← | Object containing action status as properties | diff --git a/versioned_docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md b/versioned_docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md index 19830ba5745d1c..ac613bb721ec65 100644 --- a/versioned_docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md +++ b/versioned_docs/version-21-R4/language-legacy/Web Server/web-get-body-part.md @@ -39,7 +39,7 @@ The *contents* parameter receives the contents of the part. When the parts to be The *name* parameter receives the variable name of the HTTP input field. -The *mimeType* and *name* parameters receive the Mime type and the name of the original file, if any. A *name* is only received when the file was submitted as ****. +The *mimeType* and *name* parameters receive the Mime type and the name of the original file, if any. A *name* is only received when the file was submitted as ``. *mimeType* and *name* are optional but must be passed together. **Note:** In the context of a multi-part request, the first array of the [WEB GET VARIABLES](../commands/web-get-variables) command returns all parts of the form, in the same order as the **WEB GET BODY PART** command. You can use it in order to get the position of the parts of the form directly. diff --git a/versioned_docs/version-21/commands-legacy/action-info.md b/versioned_docs/version-21/commands-legacy/action-info.md index 9a7e81c8cc29c2..2992176a3b521c 100644 --- a/versioned_docs/version-21/commands-legacy/action-info.md +++ b/versioned_docs/version-21/commands-legacy/action-info.md @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | action | Text | → | Standard action name or pattern including parameter if required | | target | Integer | → | Defines the target of the action to get information: main form or current form | -| Function result | Object | ← | Object containing action status as boolean properties: isEnabled, isVisible, isChecked, isMixed, isUnknownState | +| Function result | Object | ← | Object containing action status as properties | diff --git a/versioned_docs/version-21/commands-legacy/blob-to-list.md b/versioned_docs/version-21/commands-legacy/blob-to-list.md index 09a622fc3c0884..3afe513816b052 100644 --- a/versioned_docs/version-21/commands-legacy/blob-to-list.md +++ b/versioned_docs/version-21/commands-legacy/blob-to-list.md @@ -12,7 +12,7 @@ displayed_sidebar: docs | Parameter | Type | | Description | | --- | --- | --- | --- | | Blob | Blob | → | BLOB containing a hierarchical list | -| offset | Integer | ↔ | Offset within the BLOB (expressed in bytes) | +| offset | Variable | ↔ | Offset within the BLOB (expressed in bytes) | |||| New offset after reading | | Function result | Integer | ← | Reference to newly created list | diff --git a/versioned_docs/version-21/commands-legacy/web-get-body-part.md b/versioned_docs/version-21/commands-legacy/web-get-body-part.md index 0848df2dfb1d49..8db0483ae6ae1e 100644 --- a/versioned_docs/version-21/commands-legacy/web-get-body-part.md +++ b/versioned_docs/version-21/commands-legacy/web-get-body-part.md @@ -39,7 +39,7 @@ The *contents* parameter receives the contents of the part. When the parts to be The *name* parameter receives the variable name of the HTTP input field. -The *mimeType* and *name* parameters receive the Mime type and the name of the original file, if any. A *name* is only received when the file was submitted as ****. +The *mimeType* and *name* parameters receive the Mime type and the name of the original file, if any. A *name* is only received when the file was submitted as ``. *mimeType* and *name* are optional but must be passed together. **Note:** In the context of a multi-part request, the first array of the [WEB GET VARIABLES](web-get-variables.md) command returns all parts of the form, in the same order as the **WEB GET BODY PART** command. You can use it in order to get the position of the parts of the form directly. From 1697a7261819a827cd9f16feef5b43b2c901e81d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 7 Sep 2026 17:30:36 +0200 Subject: [PATCH 29/60] New Crowdin updates (#3416) * handling_users_groups.md French * createstylesheet.md Spanish * forms.md Spanish * properties_markers.md Spanish * updates.md Spanish * remotedatastores.md Spanish * authusers.md Spanish * handling_users_groups.md Spanish * getting-started.md Spanish * managing-formulas.md Spanish * wp-add-picture.md Spanish * field-properties.md Spanish * project-method-properties.md Spanish * quotamanagerclass.md Spanish * mirror.md Spanish * exit.md Spanish * smtptransporterclass.md Japanese * error-handling.md Japanese * createstylesheet.md Japanese * forms.md Japanese * properties_markers.md Japanese * updates.md Japanese * handling_users_groups.md Japanese * writeprointerface.md Japanese * managing-formulas.md Japanese * error-handling.md Japanese * createstylesheet.md Japanese * user-new.md Japanese * error-handling.md Japanese * createstylesheet.md Japanese * forms.md Japanese * quotamanagerclass.md Japanese * quotamanagerclass.md Japanese * error-handling.md Japanese * createstylesheet.md Japanese * forms.md Japanese * mirror.md Japanese * handling_users_groups.md Portuguese, Brazilian --- .../current/API/QuotaManagerClass.md | 2 +- .../current/Backup/mirror.md | 46 +++++++-------- .../current/Develop/field-properties.md | 2 +- .../current/FormEditor/createStylesheet.md | 2 +- .../current/FormEditor/forms.md | 8 +-- .../current/FormEditor/properties_Markers.md | 2 +- .../current/Notes/updates.md | 4 +- .../current/ORDA/remoteDatastores.md | 8 +-- .../Project/project-method-properties.md | 2 +- .../current/REST/authUsers.md | 4 +- .../current/Users/handling_users_groups.md | 10 ++-- .../current/ViewPro/getting-started.md | 2 +- .../WritePro/commands/wp-add-picture.md | 2 +- .../current/WritePro/managing-formulas.md | 6 +- .../current/server/exit.md | 6 +- .../current/Users/handling_users_groups.md | 6 +- .../current/API/QuotaManagerClass.md | 2 +- .../current/API/SMTPTransporterClass.md | 2 +- .../current/Backup/mirror.md | 2 +- .../current/Concepts/error-handling.md | 16 ++--- .../current/FormEditor/createStylesheet.md | 2 +- .../current/FormEditor/forms.md | 4 +- .../current/FormEditor/properties_Markers.md | 2 +- .../current/Notes/updates.md | 4 +- .../current/Users/handling_users_groups.md | 6 +- .../current/WritePro/managing-formulas.md | 16 ++--- .../current/WritePro/user/user-new.md | 58 +++++++++---------- .../current/WritePro/writeprointerface.md | 12 ++-- .../version-21-R3/Concepts/error-handling.md | 2 +- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R3/FormEditor/forms.md | 2 +- .../version-21-R4/API/QuotaManagerClass.md | 2 +- .../version-21-R4/Concepts/error-handling.md | 16 ++--- .../FormEditor/createStylesheet.md | 2 +- .../version-21-R4/FormEditor/forms.md | 2 +- .../version-21/Concepts/error-handling.md | 2 +- .../version-21/FormEditor/createStylesheet.md | 2 +- .../current/Users/handling_users_groups.md | 6 +- 38 files changed, 134 insertions(+), 142 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index 4a56dff3cc6013..65c8efc42adf81 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### Descripción -The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. +La propiedad `.nbEntitySets` contiene el número máximo de conjuntos de entidades REST permitidos en memoria para la sesión actual. Por defecto, no hay límite para conjuntos de entidades [almacenados en memoria por solicitudes REST](../REST/$info.md) (el valor es 0). Puede definir un límite para controlar la carga útil del servidor para una sesión específica. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Backup/mirror.md b/i18n/es/docusaurus-plugin-content-docs/current/Backup/mirror.md index 8053ad5ef3601f..0e263157217029 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Backup/mirror.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Backup/mirror.md @@ -9,56 +9,56 @@ title: Espejo lógico Un espejo lógico es un modo de copia de seguridad sofisticado, principalmente destinado a bases de datos críticas o de alta carga. -Using a logical mirror consists in operating a project on one machine and keeping a copy of it that is periodically updated on a second machine. Both machines communicate via the network with the machine in operation regularly transmitting any changes made in the data to the mirror machine via the intermediary of the log file. +El uso de un espejo lógico consiste en operar un proyecto en una máquina y mantener una copia que se actualiza periódicamente en una segunda máquina. Las dos máquinas se comunican a través de la red, y la máquina en funcionamiento transmite periódicamente a la máquina espejo cualquier cambio realizado en los datos a través del archivo de historial. -In this way, when there is an incident affecting the operational database, the mirror database can be used to get things back in working order quickly without any data loss. Moreover, the operational database is never “blocked” by backup operations. +De esta manera, cuando hay un incidente que afecta a la base de datos operativa, la base de datos espejo se puede utilizar para restablecer el funcionamiento rápidamente y sin pérdida de datos. Además, la base de datos operativa nunca está “bloqueada” por operaciones de copia de seguridad. -## Why choose to back up using a logical mirror? +## ¿Por qué elegir hacer una copia de seguridad utilizando un espejo lógico? -The use of a logical mirror corresponds to specific needs. The standard strategy based on periodic backups and the use of a log file in most cases offers a simple, reliable and inexpensive solution. The database is backed up regularly (every 24 hours in general). During backup, all processes are frozen. This period of partial unavailability is very short, and even in the case of large databases (greater than 2 GB), it lasts no longer than 5 minutes. This operation can be programmed to take place outside of normal periods of database usage. +El uso de un espejo lógico responde a necesidades específicas. La estrategia estándar, basada en copias de seguridad periódicas y en el uso de un archivo de registro, ofrece en la mayoría de los casos una solución sencilla, fiable y económica. Se realizan copias de seguridad de la base de datos con regularidad (por lo general, cada 24 horas). Durante la copia de seguridad, todos los procesos se detienen. Este periodo de indisponibilidad parcial es muy breve e incluso en el caso de bases de datos de gran tamaño (superiores a 2 GB), no dura más de 5 minutos. Esta operación se puede programar para que se realice fuera de los horarios habituales de uso de la base de datos. -Nevertheless, for certain kinds of organizations, such as hospitals for instance, critical databases must be entirely operational 24 hours a day. The database cannot be "being backed up" (and thus unavailable), even for a very short period of time. In this case, setting up a logical mirror is an appropriate solution. +No obstante, en el caso de determinados tipos de organizaciones, como los hospitales, por ejemplo, las bases de datos críticas deben estar plenamente operativas las 24 horas del día. La base de datos no puede estar en proceso de copia de seguridad (y, por lo tanto, no estar disponible), ni siquiera durante un período muy corto. En este caso, configurar un espejo lógico es la solución adecuada. :::note -A mirror solution only reflects changes made to the **data**. This backup mode is not suitable for projects in the process of development, where frequent structural modifications will make the mirror rapidly obsolete or will require repeated updating of the mirror database structure. +Una solución espejo solo refleja los cambios realizados en los **datos**. Este modo de copia de seguridad no es adecuado para proyectos en proceso de desarrollo, donde las frecuentes modificaciones estructurales harán que el espejo quede rápidamente obsoleto o requerirán actualizar repetidamente la estructura de la base de datos espejo. ::: ## Principios de funcionamiento -Setting up a backup system using a logical mirror is based on two commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). +La configuración de un sistema de copia de seguridad mediante un espejo lógico se basa en dos comandos: [`New log file`](../commands/new-log-file) y [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). Se aplican los siguientes principios: -- The application is installed on the main 4D Server machine (operational machine) and an identical copy of the application is installed on the 4D Server mirror machine. -- A test on startup of the application (for instance, for the presence of a specific file in a subfolder of the 4D Server application) is used to distinguish between the two versions (operational and mirror) and thus execute the appropriate operations. -- On the 4D Server machine in operation, the log file is “segmented” at regular intervals using the [`New log file`](../commands/new-log-file) command. Since no backup is carried out on the main server, the application remains permanently available in read-write mode. -- Each "segment" of the log file is sent to the mirror machine, where it is integrated into the mirror application using the [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file) command. +- La aplicación se instala en la máquina principal 4D Server (máquina operativa) y se instala una copia idéntica de la aplicación en la máquina espejo 4D Server. +- Una prueba al inicio de la aplicación (por ejemplo, para la presencia de un archivo específico en una subcarpeta de la aplicación 4D Server) se utiliza para distinguir entre las dos versiones (operativas y réplicas) y así ejecutar las operaciones apropiadas. +- En la máquina 4D Server en funcionamiento, el archivo de historial se "segmenta" en intervalos regulares utilizando el comando [`New log file`](../commands/new-log-file). Dado que no se realiza ninguna copia de seguridad en el servidor principal, la aplicación permanece disponible en todo momento en modo de lectura y escritura. +- Cada "segmento" del archivo de historial se envía a la máquina espejo, donde se integra en la aplicación de espejo utilizando el comando [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). -Setting up this system requires programming specific code, in particular: +La configuración de este sistema requiere la programación de código específico, en concreto: -- A timer on the main server for managing the execution cycles of the [`New log file`](../commands/new-log-file) command, -- A transfer system for the "segments" of the log file between the operational machine and the mirror machine (using HTTP, Web Services, etc.), -- A process on the mirror machine intended to supervise the arrival of new "segments" of the log file and to integrate them using the [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file) command, -- A communication and error-handling system between the main server and the mirror server. +- Un temporizador en el servidor principal para gestionar los ciclos de ejecución del comando [`New log file`](../commands/new-log-file), +- Un sistema de transferencia de los "segmentos" del archivo de historial entre la máquina operativa y la máquina espejo (utilizando HTTP, Servicios Web, etc.), +- Un proceso en la máquina espejo destinado a supervisar la llegada de nuevos "segmentos" del archivo de historial e integrarlos utilizando el comando [`INTEGRATE MIROR LOG FILE`](../commands/integrate-mirror-log-file) +- Un sistema de comunicación y de gestión de errores entre el servidor principal y el servidor espejo. :::warning -A backup system using a logical mirror is not compatible with [regular backups](./backup.md) on a running application in use since the simultaneous use of these two backup modes would lead to the desynchronization of the operational and mirror applications. Consequently, you must be sure that no backups, whether automatic or manual, are carried out on the operational application. On the other hand, it is possible to back up the mirror application or to set up a "mirror-mirror". +Un sistema de copia de seguridad que utiliza un espejo lógico no es compatible con las [copias de seguridad normales](./backup.md) en una aplicación en ejecución en uso, ya que el uso simultáneo de estos dos modos de copia de seguridad provocaría la desincronización de las aplicaciones operativa y espejo. Por consiguiente, debe asegurarse de que no se realizan copias de seguridad, ya sean automáticas o manuales, sobre la aplicación operativa. En cambio, es posible realizar una copia de seguridad de la aplicación espejo o configurar un "espejo-espejo". ::: -## Backup of a mirror and mirror-mirror +## Copia de seguridad de un espejo y espejo del espejo -4D Server can be used to carry out backups of the application on the mirror machine. +4D Server se puede utilizar para realizar copias de seguridad de la aplicación en el servidor espejo. -Any conventional means can be used to carry out backups on the mirror machine: manual backups using the command in the **File** menu, [scheduled backups set in the Settings](./settings.md#scheduler) or programmed backups using language commands. +Cualquier medio convencional puede utilizarse para realizar copias de seguridad en la máquina espejo: copias de seguridad manuales utilizando el comando del menú **Archivo**, [copias de seguridad programadas establecidas en las Propiedades](./settings.md#scheduler) o copias de seguridad por código utilizando comandos del lenguaje. -To avoid risks of desynchronization with the operational machine, 4D automatically locks the mirror machine when it is carrying out one of two basic operations: the integration of the log file from the operational machine and the backup of the mirror application. +Para evitar riesgos de desincronización con la máquina operativa, 4D bloquea automáticamente la máquina espejo cuando está llevando a cabo una de dos operaciones básicas: la integración del archivo de registro desde la máquina operativa y la copia de seguridad de la aplicación espejo. -- When a log file is being integrated, it is not possible to carry out a backup. If the [`BACKUP`](../commands/backup) command is used, error 1417 is generated. -- When a backup is underway, all the processes are frozen and it is not possible to launch the integration of a log file. +- Cuando un archivo de historial se está integrando, no es posible realizar una copia de seguridad. Si el comando [`BACKUP`](../commands/backup) se utiliza, se produce el error 1417. +- Cuando se está realizando una copia de seguridad, todos los procesos se bloquean y no es posible iniciar la integración de un archivo de registro. Puede activar el archivo de historial actual en el servidor espejo, lo que le permite configurar un "espejo-espejo" (o incluso una serie de servidores espejo), o bien una arquitectura de espejos de tipo "hub-and-spoke" (varios servidores espejo para la misma aplicación operativa). En el primer caso, el archivo de historial actual del servidor espejo se envía a su vez a otro servidor espejo (el "espejo-espejo") para su integración, y así sucesivamente si utiliza una serie de servidores espejo. En el segundo caso, el archivo de historial actual se envía directamente a varios servidores espejo idénticos. Este tipo de redundancia garantiza la disponibilidad continua del servidor, incluso en caso de que se produzca un fallo simultáneo del servidor y del servidor espejo principal. 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 ff64e87659610c..63a9952bd01d11 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 @@ -21,7 +21,7 @@ Si introduce un nombre de clase inválido, se activa una advertencia y se rechaz :::note -[**Non-streamable classes**](../Concepts/dt_object.md#streaming-support) such as [ORDA Data Model classes](../ORDA/ordaClasses.md), [file handles](../API/FileHandleClass.md), [web server](../API/WebServerClass.md)... no pueden asociarse a campos objeto. +Las [**clases no transmisibles**](../Concepts/dt_object.md#streaming-support), como [las clases del modelo de datos ORDA](../ORDA/ordaClasses.md), [los identificadores de archivo](../API/FileHandleClass.md), [el servidor web](../API/WebServerClass.md)... no pueden asociarse a campos objeto. ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md index 3b316bea2933cd..cd0429f30f6228 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* ruta relativa al archivo del formulario */ - Para `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` y `verticalLineStroke`, se soportan tres sintaxis: - Nombre del color CSS: `fill: red;` - - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) + - Valor hexadecimal: `fill: #FF0000;` (solo 6 caracteres; no admite transparencia) - función `rgb()`: `fill:rgb(255,0,0)` - Si una cadena utiliza caracteres prohibidos en CSS, puede rodear la cadena con comillas simples o dobles. Por ejemplo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md index d6075123709833..900afcba12c197 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -281,9 +281,9 @@ Esta funcionalidad puede utilizarse **en proyectos 4D en Windows**. No está dis :::tip Entradas de blog relacionadas -[Modernize your 4D interfaces with Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
-[Deploy Fluent UI effortlessly in your 4D applications](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) -[Fluent UI Comes to List Forms](https://blog.4d.com/fluent-ui-comes-to-list-forms) +[Modernice sus interfaces 4D con Fluent UI](https://blog.4d.com/modernize-your-4d-interfaces-with-fluent-ui)
+[Implemente Fluent UI sin esfuerzo en sus aplicaciones 4D](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications) +[Fluent UI llega a los formularios lista](https://blog.4d.com/fluent-ui-comes-to-list-forms) ::: @@ -340,7 +340,7 @@ Cuando utilice los formularios 4D con el renderizado Fluent UI, debe prestar ate - Los [botones circulares](../FormObjects/button_overview.md#circle) son soportados (como en macOS). - Los comandos [`WA ZOOM IN`](../commands/wa-zoom-in) / [`WA ZOOM OUT`](../commands/wa-zoom-out) 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. -- In [list forms](../FormEditor/properties_FormProperties.md#form-type), objects located in the [Header or Footer areas](./properties_Markers.md) are always displayed on a background layer, while those in the Detail area are displayed in the foreground. Unlike in the Classic rendering, an object that extends beyond the Header boundaries will always be drawn under the objects in the Detail area. +- En los [formularios lista](../FormEditor/properties_FormProperties.md#form-type), los objetos situados en las [áreas de encabezado o pie de página](./properties_Markers.md) siempre se muestran en una capa de fondo, mientras que los del área de detalle se muestran en primer plano. A diferencia de la representación clásica, un objeto que se extienda más allá de los límites del encabezado siempre se dibujará debajo de los objetos del área de detalle. ## Formularios heredados diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index 19f8602d7c7a8d..7215dd6cb0b487 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,7 +33,7 @@ El área Detalle del formulario se muestra en la pantalla y se imprime una vez p Puede hacer el área Detalle más pequeña o más grande. Lo que coloque en el área Detalle se muestra o imprime una vez por cada registro. Lo más habitual es colocar campos o variables en el área Detalle para que se muestre o imprima la información de cada registro, pero también se pueden colocar otros elementos en el área Detalle. -The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). +Los siguientes objetos de formulario **no son compatibles** en el área Detalle (i.e. no se repiten para cada registro): [Áreas Web](../FormObjects/webArea_overview.md), [Áreas 4D View Pro](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [listas jerárquicas](../FormObjects/list_overview.md), [separadores](../FormObjects/splitters.md) y [subformularios](../FormObjects/subform_overview.md). #### Gramática JSON 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 ba7cced046382e..1fddf731f4095f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,9 +9,9 @@ Lea [**Las novedades en 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Lo más destacado -- Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- Soporte de la firma de correo electrónico de S/MIME a través de las nuevas propiedades de clase [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md): [`.certificate`](../API/SMTPTransporterClass.md#certificate) o [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (suministro del certificado) y [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). -- Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. +- Soporte de formularios lista en la [renderización **Fluent UI**](../FormEditor/forms.md#fluent-ui-rendering) en Windows. - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos los bugs que se han corregido en 4D 21 R5. 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 c80c6243cd6f6e..d35abe5da8604b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -7,7 +7,7 @@ Un **datastore remoto** es una referencia, en una aplicación 4D local (4D o 4D La aplicación 4D local se conecta y hace referencia al datastore remoto a través de una llamada al comando [`Open datastore`](../commands/open-datastore). -En la máquina remota, 4D abre una [sesión](../WebServer/sessions.md) para gestionar las peticiones de la aplicación que llaman a `Open datastore`. Requests internally use the [REST API](../REST/gettingStarted.md), which means that they require [**authentication** and **available licenses**](../REST/authUsers.md). +En la máquina remota, 4D abre una [sesión](../WebServer/sessions.md) para gestionar las peticiones de la aplicación que llaman a `Open datastore`. Las peticiones utilizan internamente la [API REST](../REST/gettingStarted.md), lo que significa que requieren [**autenticación** y **licencias disponibles**](../REST/authUsers.md). ## Utilizando sesiones web @@ -27,11 +27,11 @@ Estos principios se ilustran en los gráficos siguientes: ### Visualización de las sesiones -Sessions for datastore access are shown in the 4D Server administration window as [**REST sessions**](../ServerWindow/sessions.md#rest-web-and-soap-sessions) with **4D** as user agent. +Las sesiones de acceso al almacén de datos aparecen en la ventana de administración de 4D Server como [**Sesiones REST**](../ServerWindow/sessions.md#rest-web-and-soap-sessions) con **4D** como agente de usuario. ## Cierre de las sesiones -Como se describe en el párrafo [tiempo de vida de la sesión](../WebServer/sessions.md#session-lifetime) una sesión web es cerrada automáticamente por 4D cuando no ha habido actividad durante su periodo de tiempo de espera. The default timeout is 60 mn, but this value can be modified using the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore) command. +Como se describe en el párrafo [tiempo de vida de la sesión](../WebServer/sessions.md#session-lifetime) una sesión web es cerrada automáticamente por 4D cuando no ha habido actividad durante su periodo de tiempo de espera. El tiempo de espera predeterminado es de 60 minutos, pero este valor se puede modificar mediante el parámetro *connectionInfo* del comando [`Open datastore`](../commands/open-datastore). Si se envía una solicitud al almacén de datos remoto después de haber cerrado la sesión, ésta se vuelve a crear automáticamente si es posible (licencia disponible, servidor no detenido...). Sin embargo, hay que tener en cuenta que se pierde el contexto de la sesión en cuanto a bloqueos y transacciones (ver abajo). @@ -40,7 +40,7 @@ Si se envía una solicitud al almacén de datos remoto después de haber cerrado Las funcionalidades ORDA relacionadas con el bloqueo de entidades y transacciones se gestionan a nivel del proceso en los datastores remotos, igual que en el modo cliente/servidor ORDA: - Si un proceso bloquea una entidad de un datastores remoto, la entidad se bloquea para todos los otros procesos, incluso cuando estos procesos comparten la misma sesión (ver [Bloqueo de entidades](entities.md#entity-locking)). Si varias entidades que apuntan a un mismo registro han sido bloqueadas en un proceso, todas deben ser desbloqueadas en el proceso para eliminar el bloqueo. Si se ha puesto un bloqueo en una entidad, el bloqueo se elimina cuando ya no hay ninguna referencia a esta entidad en la memoria. -- Transactions can be started, validated or cancelled separately on each remote datastore using the [`dataStore.startTransaction()`](../API/DataStoreClass.md#starttransaction), [`dataStore.cancelTransaction()`](../API/DataStoreClass.md#canceltransaction), and [`dataStore.validateTransaction()`](../API/DataStoreClass.md#starttransaction) functions. No afectan a otros almacenes de datos. +- Las transacciones se pueden iniciar, validar o cancelar por separado en cada almacén de datos remoto mediante las funciones [`dataStore.startTransaction()`](../API/DataStoreClass.md#starttransaction), [`dataStore.cancelTransaction()`](../API/DataStoreClass.md#canceltransaction) y [`dataStore.validateTransaction()`](../API/DataStoreClass.md#starttransaction). No afectan a otros almacenes de datos. - Los comandos clásicos del lenguaje 4D ([`START TRANSACTION`](../commands/start-transaction), [`VALIDATE TRANSACTION`](../commands/validate-transaction), [`CANCEL TRANSACTION`](../commands/cancel-transaction)) sólo se aplican al datastore principal (devuelto por `ds`). Si una entidad de un datastore remoto es retenida por una transacción en un proceso, los otros procesos no pueden actualizarla, incluso si estos procesos comparten la misma sesión. - Los bloqueos en las entidades son eliminados y las transacciones son anuladas: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/project-method-properties.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/project-method-properties.md index 6c27a4ddf01f38..0bab4f12245888 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/project-method-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/project-method-properties.md @@ -95,7 +95,7 @@ Para más información, vea la [descripción de la clase `4D.Formula`](../API/Fo Un método de menú se llama cuando se selecciona el comando de menú personalizado al que está asociado. Un método de menú se llama cuando se selecciona el comando de menú personalizado al que está asociado. El método se ejecuta cuando se elige el comando del menú. Al crear menús personalizados con métodos de menú que realizan acciones específicas, usted crea interfaces personalizadas para sus aplicaciones de escritorio. -Los comandos de menú personalizados pueden hacer que se realicen una o varias actividades. For example, a menu command for entering records might call a method that performs two tasks: displaying the appropriate input form, and calling the [`ADD RECORD`](../commands/add-record) command until the user cancels the data entry activity. +Los comandos de menú personalizados pueden hacer que se realicen una o varias actividades. Por ejemplo, un comando de menú de entrada de registros puede llamar a un método que realice dos tareas: mostrar el formulario de entrada apropiado y llamar al comando [`ADD RECORD`](../commands/add-record) hasta que el usuario cancele la actividad de entrada de datos. La automatización de secuencias de actividades es una capacidad muy poderosa del lenguaje de programación 4D. Utilizando los menús personalizados, se pueden automatizar las secuencias de tareas y, por lo tanto, ofrecer más orientación a los usuarios de la aplicación. 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 c69efa74fe2948..1b32560267f5d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -30,9 +30,9 @@ La secuencia de inicio de sesión del usuario es la siguiente: Las solicitudes REST descriptivas siempre son procesadas por el servidor, aunque no se abra ninguna sesión de usuario web que utilice una licencia. En este caso, son procesados por sesiones "invitado". 2. `authentify()` debe ser una [función datastore class](../ORDA/ordaClasses.md#datastore-class). Llama a su [función `authentify()`](#function-authentify) (creada previamente), en la que revisa las credenciales de usuario y llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) con los privilegios apropiados. - The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). + La función se puede invocar directamente desde su código 4D (ver el ejemplo de [`Open datastore`](../commands/open-datastore)) o mediante una solicitud `/rest/$catalog/authentify` junto con las credenciales de usuario. Este paso solo requiere un formulario de inicio de sesión básico que no tenga acceso a datos; puede ser, por ejemplo, una [página Qodly](https://developer.4d.com/qodly/) (llamada a través de la solicitud `/rest/$getWebForm`). -3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. +3. Si el usuario se autentica correctamente, se consume una licencia 4D en el servidor y se aceptan todas las solicitudes REST en cuanto se llama a la función [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges). ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md b/i18n/es/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md index fbb5ffbc40eb2f..2232798f84e1e8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md @@ -147,20 +147,18 @@ La colocación de grupos dentro de otros grupos permite crear una jerarquía de Para eliminar un usuario o grupo de otro grupo, basta con deseleccionar la opción correspondiente en el área de asignación de miembros. -### Assigning a license to a group +### Asignación de una licencia a un grupo -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. +Puede asignar privilegios de grupo a todas las [extensiones](../Extensions/overview.md) instaladas en el proyecto. Esto incluye todos los plug-ins y componentes de 4D y de terceros. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distribuir el acceso a las extensiones le permite controlar el uso de las licencias que tenga para estas extensiones en un entorno cliente/servidor. Los usuarios que no pertenezcan al grupo de acceso de una extensión no podrán cargar dicha extensión. > Las licencias utilizadas permanecen vinculadas a las cuentas de usuario 4D del grupo durante toda la sesión 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +El área "Plugin" en la página de Grupos de la caja de herramientas muestra todas las extensiones [que requieren una licencia](../Admin/licenses.md) cargadas por la aplicación 4D. Para dar acceso a un grupo a una extensión, basta con marcar la opción correspondiente. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Estas licencias son consideradas por 4D Server como licencias de plug-in. Por lo tanto, al igual que en el caso de los plug-ins, puede restringir el derecho de uso de estas licencias a un grupo específico de usuarios. - ### Un esquema de acceso jerárquico La mejor manera de garantizar la seguridad de su aplicación y ofrecer a los usuarios diferentes niveles de acceso es utilizar un esquema de jerarquía de acceso. Los usuarios pueden ser asignados a los grupos apropiados y los grupos pueden ser anidados para crear una jerarquía de derechos de acceso. Esta sección describe varios enfoques de este esquema. 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 a80d02c0a1e81d..66a0189c6a3b21 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 @@ -32,7 +32,7 @@ La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar Una vez reiniciado el proyecto, el componente 4D View Pro se instala como una [dependencia Github](../Project/components.md#adding-a-github-or-gitlab-dependency). -4D View Pro requiere una licencia. You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: +4D View Pro requiere una licencia. Debe activar y [asignar esta licencia en su aplicación](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) para poder utilizar sus funcionalidades. Cuando se utiliza este componente sin licencia, el contenido de un objeto que requiere una función de 4D View Pro no se muestra en tiempo de ejecución, sino que se muestra un mensaje de error: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-add-picture.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-add-picture.md index cd5d9f59ecda25..495689e37c6f45 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-add-picture.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-add-picture.md @@ -47,7 +47,7 @@ Por defecto, la imagen añadida es: - Aparece en la esquina superior izquierda de la papelera - Mostrar en todas las páginas -The location, layer (inline, in front/behind text), visibility, and any properties of picture can be modified using the [WP SET ATTRIBUTES](wp-set-attributes.md) command, or via standard actions. +La ubicación, la capa (en línea, delante o detrás del texto), la visibilidad y todas las propiedades de la imagen se pueden modificar mediante el comando [WP SET ATTRIBUTES](wp-set-attributes.md) o a través de las acciones estándar. **Nota:** el comando [WP Selection range](../commands/wp-selection-range) devuelve un objeto *referencia a imagen* si se selecciona una imagen anclada y un objeto *rango* si se selecciona una imagen en línea. Puede determinar si un objeto seleccionado es un objeto imagen comprobando el atributo `wk type`: 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 52996a406d8988..c46c0656eee5bd 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 @@ -204,10 +204,10 @@ Si asigna nombres a las fórmulas, se mostrarán en lugar de los textos: Para asignar un nombre a una fórmula, debe utilizar el comando [WP Insert formula](commands/wp-insert-formula.md) con un parámetro objeto. Por ejemplo: ```4d - //inserts the previous day in the document - $o:=New object("formula";Formula(Current date-1);"name";"Yesterday") + //inserta el día anterior en el documento + $o:=New object("formula";Formula(Current date-1); "name"; "Yesterday") $range:=WP Text range(WPArea;wk start text;wk end text) - WP Insert formula($range;$o;wk append) + WP INSERT FORMULA($range;$o;wk append) ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/exit.md b/i18n/es/docusaurus-plugin-content-docs/current/server/exit.md index 4b9326eb159a8f..4f8db431cf56ce 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/exit.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/exit.md @@ -27,11 +27,11 @@ Aparecerá una ventana idéntica en cada máquina 4D remota. Esta ventana se rep - **Espere a que todos los clientes se desconecten.** -El servidor solo se cerrará una vez que todos los clientes, incluidos los que estén en modo de suspensión, se hayan desconectado. This option could be inappropriate for maintenance operations run during lunch time, for instance, since there are likely to be clients in [sleep mode](../ServerWindow/users.md#managing-sleeping-users). +El servidor solo se cerrará una vez que todos los clientes, incluidos los que estén en modo de suspensión, se hayan desconectado. Esta opción podría ser inadecuada para operaciones de mantenimiento durante el almuerzo, por ejemplo, ya que es probable que haya clientes en [modo inactivo](../ServerWindow/users.md#managing-sleeping-users). -- **Wait for active clients to disconnect. (Ignore sleeping clients)** +- **Espere a que los clientes activos se desconecten. (Ignorar a los clientes inactivos)** -The server will only quit after all active clients have disconnected (in other words, all client machines that are not in [sleep mode](../ServerWindow/users.md#managing-sleeping-users)). With this option, any clients in sleep mode are not considered as connected. Use this option if you want to perform maintenance operations during lunch time, for example. When this option is used, any clients in sleep mode will have a connection error when they wake up. +El servidor solo se cerrará después de que todos los clientes activos se hayan desconectado (en otras palabras, todas las máquinas cliente que no están en [modo inactivo](../ServerWindow/users.md#managing-sleeping-users)). Con esta opción, los clientes que se encuentren en modo inactivo no se consideran conectados. Utilice esta opción si desea realizar operaciones de mantenimiento durante el almuerzo, por ejemplo. Cuando se utiliza esta opción, cualquier cliente que se encuentre en modo inactivo experimentará un error de conexión al reactivarse. :::note diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md b/i18n/fr/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md index ec0e0e3a72b5de..f61319b001189f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md @@ -154,16 +154,14 @@ Pour supprimer un utilisateur ou un groupe d’un autre groupe, il suffit de dé You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Les licences utilisées demeurent associées aux comptes utilisateurs 4D dans le groupe, durant toute la session 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. En effet, ces licences sont considérées par 4D Server comme des licences de plug-ins. Ainsi, comme pour un plug-in, vous pouvez restreindre le droit d’utiliser ces licences à un groupe d’utilisateurs spécifique. - ### Un schéma d’accès hiérarchique Le meilleur moyen d’assurer la sécurité de votre application et de proposer différents niveaux d’accès aux utilisateurs est d’utiliser un schéma hiérarchique des accès. Les utilisateurs peuvent être affectés à différents groupes et les groupes peuvent être hiérarchisés pour créer des niveaux de droits d’accès. Cette section décrit différentes approches de ce thème. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index 31089e6ab0c8d9..83b465d6f38514 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### 説明 -The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. +`.nbEntitySets` プロパティにはカレントのセッション内においてメモリ内に許可されているREST エンティティセットの最大数 が格納されています。 デフォルトでは、エンティティセットが[REST リクエストによってメモリに保存される数](../REST/$info.md) には制約はありません(値は 0 に設定されています)。 特定のセッションに対して、サーバーのペイロードを抑えるために、上限を設定することができます。 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 54d0acd9f69bac..352edbb2687427 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -121,7 +121,7 @@ $result:=$transporter.send($email) `.certificateName` プロパティは S/MIME (Secure/MIME) を使用してEメールを署名するために使用される、システム証明書ストア(*keychain*) に登録されている証明書の名前 を格納しています。 証明書には秘密鍵が含まれています。 -The certificate can also be provided directly as a file or blob using the [`.certificate`](#certificate) property. ただし両方のプロパティを同時に使用することはできないという点に注意してください。その場合にはエラーが返されます。 +この証明書は[`.certificate`](#certificate) プロパティを使用することで、ファイルまたはblob として直接提供することもできます。 ただし両方のプロパティを同時に使用することはできないという点に注意してください。その場合にはエラーが返されます。 :::tip 関連したblog 記事 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md index 2e2cb348edbadd..c2c6c00bb32cd4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md @@ -27,7 +27,7 @@ title: 論理ミラー ## 動作 -Setting up a backup system using a logical mirror is based on two commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). +論理ミラーを使⽤したバックアップシステムの設定は、2つのコマンド [`New log file`](../commands/new-log-file) および [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file) を使⽤して⾏います。 以下のような原則が実装されています: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/error-handling.md index 71c7ac627f984e..10cf3e7a451d68 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/error-handling.md @@ -193,7 +193,7 @@ function test() ``` -3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. [予測可能なエラーと予測不可能なエラー](#predictable-vs-unpredictable-errors) の両方を管理したい場合を考えます: ```4d var $e:=ds.Employee.new() @@ -293,21 +293,21 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo - **メッセージ**。エラーがなぜ起きたかを説明します。 - **コード**。コンポーネントによって返される任意の数値です。 -To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. +エラーと特にその原因の完全な詳細を取得するには、[4D エラーダイアログボックス](../Debugging/basics.md) あるいは[`Last errors`](../commands/last-errors.md) コマンドを使用することができます。 -### Error dialog box +### エラーダイアログボックス -[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 Expand the **Details** area and click on the **Save...** or **Copy** button: +[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 **詳細** エリアを展開し、**保存...** あるいは **コピー** ボランをクリックします: ![copy-button](../assets/en/Concepts/error.png) -Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: +するとエラーに関連した詳細な情報は、コンテキストやコンポーネントといった情報も含めて、テキストファイルに保存されるかペーストボードにコピーされます: ![pasted-error](../assets/en/Concepts/error2.png) -### `Last errors` command +### `Last errors`コマンド -You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. +コード内で[`Last errors`](../commands/last-errors) コマンドを呼び出すことで、エラーに関する情報を取得することができます。 このコマンドは[`ON ERR CALL`](../commands/on-err-call) コマンドで実装されたエラー処理メソッドから、あるいは[`Try` または `Try/Catch`](#trycatchend-try) コンテキスト内から呼び出す必要があります。 -When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. +最終アプリケーションにおいてエラーへの割り込みと処理をする場合、[`Last errors`](../commands/last-errors) を使用して必ず*error* オブジェクトの全てのプロパティを記録するようにしてください。エラーコードはコンポーネントによって異なるからです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md index 02b36a0b581c51..ba75cffec3f6d7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: - CSS カラーネーム: `fill: red;` - - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) + - 16 進数表記値: `fill: #FF0000;` (6 文字のみ、透明度はサポートされていません) - `rgb()` 関数: `fill:rgb(255,0,0)` - CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: 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 269b390ecce8dd..afa927d177e788 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -333,7 +333,7 @@ Fluent UI レンダリングモードは、アプリケーションレベルま Fluent UI で4D フォームを使用する場合、以下の点に注意を払う必要があります: -- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 Possible values: "Classic", "FluentUI" or "LiquidGlass". +- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 取りうる値: "Classic"、 "FluentUI" あるいは "LiquidGlass"。 - [`Application info`](../commands/application-info) コマンドを使用することで、Fluent UI が使用できるかどうか(`canUseFluentUI` プロパティ) あるいは使用されているかどうか(`useFluentUI` プロパティ) を知ることができます。 - [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) がフォームのコンテキストで呼び出された場合、返された情報はフォームのカレントのアピアランス(クラシックあるいはFluent UI)に関連したものです。 コマンドがフォームのコンテキスト外から呼ばれた場合、返された情報は[グローバルプロジェクト設定](#アプリケーション設定) に関連したものです。 - [`SET MENU ITEM STYLE`](../commands/set-menu-item-style) の*itemStyle* 引数での `Underline` はポップアップメニューではサポートされていません(無視されます)。 @@ -341,7 +341,7 @@ Fluent UI で4D フォームを使用する場合、以下の点に注意を払 - [サークルボタン](../FormObjects/button_overview.md#サークル) はサポートされています(macOS と同様)。 - [`WA ZOOM IN`](../commands/wa-zoom-in) / [`WA ZOOM OUT`](../commands/wa-zoom-out) コマンドは、システムレンダリングエンジンを使用したWeb エリアではサポートされません。 - フォーカスの四角はピクチャーおよびテキストの[入力](../FormObjects/input_overview.md) に追加することができます。 -- In [list forms](../FormEditor/properties_FormProperties.md#form-type), objects located in the [Header or Footer areas](./properties_Markers.md) are always displayed on a background layer, while those in the Detail area are displayed in the foreground. Unlike in the Classic rendering, an object that extends beyond the Header boundaries will always be drawn under the objects in the Detail area. +- [リストフォーム](../FormEditor/properties_FormProperties.md#フォームタイプ) においては、[ヘッダーまたはフッターエリア](./properties_Markers.md) に配置されているオブジェクトは常に背景レイヤーに表示されますが、詳細エリアの配置されたものは常に前面に表示されます。 クラシックレンダリングとは異なり、ヘッダーの境界線からはみ出したオブジェクトは、詳細エリア内のオブジェクトの下部分に描画されます。 ## 継承フォーム diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index 05a0940a18a55b..8ecf1b6cacaafc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,7 +33,7 @@ title: マーカー 詳細エリアの大きさは変更することができます。 詳細エリアに配置したオブジェクトはレコード毎に表示または印刷されます。 主にフィールドや変数を配置して、各レコードの情報を表示/印刷しますが、他のオブジェクトを配置することもできます。 -The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). +以下のフォームオブジェクトは詳細エリアでは**サポートされていません** (つまり各レコードに対しては繰り返されません): [Web エリア](../FormObjects/webArea_overview.md)、[4D View Pro エリア](../FormObjects/viewProArea_overview.md)、[リストボックス](../FormObjects/listbox_overview.md)、[階層リスト](../FormObjects/list_overview.md)、[スプリッター](../FormObjects/splitters.md)、および[サブフォーム](../FormObjects/subform_overview.md)。 #### JSON 文法 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 56ed42c9aebfd9..f7f2c5995fe32b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -9,9 +9,9 @@ title: リリースノート #### ハイライト -- Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) クラスの新しいクラスプロパティを使用したS/MIME Eメール署名のサポート: [`.certificate`](../API/SMTPTransporterClass.md#certificate) または [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (証明書の提供)、および[`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword)。 -- Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. +- Windows 上での [**fluent UI** レンダリング](../FormEditor/forms.md#fluent-ui-レンダリング) でのリストフォームのサポート。 - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21_R5): 4D 21 R5 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r5/))。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md index dd3b0103baf00e..b4f2eefcd2d5ae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md @@ -153,16 +153,14 @@ title: 4Dユーザー&グループの管理 You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. これらのライセンスは 4D Server 側ではプラグインライセンスとしてみなされます。 したがって、プラグインと同じ方法で、これらのライセンスの使用権を特定のユーザーグループに限定することができます。 - ### アクセス権の階層構造 アプリケーションのセキュリティを確保し、ユーザーに異なるアクセスレベルを提供する最も効果的な方法は、アクセス権の階層構造を利用することです。 ユーザーを適切なグループに割り振り、各グループをネストすることで、アクセス権の階層構造を形成できます。 この節では、このような構造の取り扱い方について説明します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md index fc7936f413a612..5b3417a7cdfc65 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md @@ -6,9 +6,9 @@ slug: /WritePro/formulas ## 概要 -4D Write Pro ドキュメントには、変数、フィールド、式、プロジェクトメソッドあるいは4D コマンドなどの4D フォーミュラへの参照を含めることができます。 Specific information such as the page number can also be referenced through formulas (see below). +4D Write Pro ドキュメントには、変数、フィールド、式、プロジェクトメソッドあるいは4D コマンドなどの4D フォーミュラへの参照を含めることができます。 ページ番号などの特定の情報もフォーミュラを通して参照することができます(以下参照)。 -Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula**](commands/wp-insert-formula.md) command and can be read using the [**WP Get formulas**](commands-legacy/wp-get-formulas.md) command. また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 +4D Write Pro エリアへのフォーミュラの挿入には [**WP Insert formula**](commands/wp-insert-formula.md) コマンドを使用し、フォーミュラの読み出しには[**WP Get formulas**](commands-legacy/wp-get-formulas.md) コマンドを使用します。 また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 また、[**WP Get text**](commands-legacy/wp-get-text.md) コマンドを使用することでも返されます。 ### フォーミュラの評価 @@ -89,13 +89,13 @@ Inserting formulas in 4D Write Pro areas is done with the [**WP Insert formula** ```4d $footer:=WP Get footer(4DWP;1) WP Insert formula($footer;Formula(This.pageNumber);wk append) - //Using Formula(myMethod) with myMethod processing This.pageNumber - //would not work correctly + // ただしFormula(myMethod) と書いてmyMethod にThis.pageNumber を処理させようとした場合 + // これは正常には動作しません ``` :::note -For more information about formula insertion, see [WP Insert formula](../commands/wp-insert-formula). +これらのフォーミュラ挿入についての詳細な情報については、[WP Insert formula](../commands/wp-insert-formula) を参照してください。 ::: @@ -186,7 +186,7 @@ For more information about formula insertion, see [WP Insert formula](../command フォーミュラ参照を記号として表示するためには、以下の方法があります: - プロパティリスト内の**フォーミュラのソースを記号として表示** オブションをチェックする(*ビュープロパティの設定* 参照) -- use the displayFormulaAsSymbol standard action , or +- `displayFormulaAsSymbol` 標準アクションを使用する - [**WP SET VIEW PROPERTIES**](commands-legacy/wp-set-view-properties.md) コマンドを、`wk display formula as symbol` セレクターを**True** にして使用する ### 参照を名前で表示 @@ -201,10 +201,10 @@ For more information about formula insertion, see [WP Insert formula](../command ![](../assets/en/WritePro/wp-formulas6.png) -フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。 例: 例: +フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。 例: ```4d - //inserts the previous day in the document + // ドキュメント内に昨日の日付を挿入する $o:=New object("formula";Formula(Current date-1);"name";"Yesterday") $range:=WP Text range(WPArea;wk start text;wk end text) WP Insert formula($range;$o;wk append) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user/user-new.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user/user-new.md index 9283499bf57c56..ca189cb3138096 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user/user-new.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/user/user-new.md @@ -29,7 +29,7 @@ to import ![](../../assets/en/WritePro/margin-bullets.png) -When the list is created using [the WP SET ATTRIBUTE command](../commands-legacy/4d-write-pro-attributes.md#lists), no specific margin is managed, by default the marker is added at the left boundary of the paragraph. The developer can add a custom margin if necessary. +[WP SET ATTRIBUTE コマンド](../commands-legacy/4d-write-pro-attributes.md#リスト)コマンドを使用してリストが作成された場合、具体的な余白は設定されておらず、デフォルトでマーカーは段落の左端に追加されます。 必要であれば開発者はカスタムの余白を追加することができます。 :::tip 関連したblog 記事 @@ -37,21 +37,21 @@ When the list is created using [the WP SET ATTRIBUTE command](../commands-legacy ::: -### Multi-level lists +### 複数レベルのリスト -Multi-level lists are based on [multi-level list style sheets](../user-legacy/stylesheets.md#multi-level-list-style-sheets). Multi-level lists contain a root-level style sheet and one or more sub-level style sheet(s). Each level is attached to a multi-level list style sheet and represents a depth in the list (level 1, level 2, level 3, etc.). +マルチレベルリスト(複数レベルのリスト)は、[マルチレベルスタイルシート](../user-legacy/stylesheets.md#multi-level-list-style-sheets) に基づいています。 マルチレベルリストにはルートレベルのスタイルシートが一つと、一つ以上のサブレベルスタイルシートが含まれています。 各レベルはマルチレベルスタイルシートに関連づけられており、またリスト内での深さを表します(レベル1、レベル2、レベル3、など)。 -When a new sub-level is created, the level numbering restarts at 1. When you add or remove an element in your multi-level list, the numbers are automatically adjusted. +新しいサブレベルが作成されると、レベルの番号振り分けは1 から再スタートします。 マルチレベルリスト内で要素を追加または削除した場合、番号は自動的に調整されます。 ![](../../assets/en/WritePro/multilevel-lists.png) -Multi-level lists are created with command [WP New style sheet](../commands/wp-new-style-sheet.md) and can be applied to a paragraph using [WP SET ATTRIBUTE](../commands/wp-set-attributes.md). +[WP New style sheet](../commands/wp-new-style-sheet.md) コマンドで作成され、[WP SET ATTRIBUTE](../commands/wp-set-attributes.md) を使用して段落に適用することができます。 -Multi-level lists can be managed using: +マルチレベルリストは以下の方法で管理することができます: -- paragraph [style sheet attributes](../commands-legacy/4d-write-pro-attributes.md#style-sheets) (such as `wk list level index`, `wk list level count`, and `wk list concat string format`) -- dedicated [standard actions](../user-legacy/standard-actions.md) for level management (`listLevelAppend`, `listLevelInc`, `listLevelDec`) -- dedicated standard actions for numbering marker management (`listConcatStringFormat`, `listNumberFormat`). +- 段落[スタイルシート属性](../commands-legacy/4d-write-pro-attributes.md#スタイルシート) (例えば`wk list level index`、 `wk list level count`、および `wk list concat string format` など) +- レベル管理専用の[標準アクション](../user-legacy/standard-actions.md) (`listLevelAppend`、 `listLevelInc`、 `listLevelDec` など) +- マーカー管理の番号管理専用の標準アクション(`listConcatStringFormat`、 `listNumberFormat`)。 :::tip 関連したblog 記事 @@ -63,36 +63,36 @@ Multi-level lists can be managed using: -## Multi-level list style sheets +## 複数レベルリストスタイルシート -Multi-level list style sheets are used to create [multi-level lists](../user-legacy/using-a-4d-write-pro-area.md#multi-level-lists). +複数レベル(マルチレベル)リストスタイルシートは、[マルチレベルリスト](../user-legacy/using-a-4d-write-pro-area.md#multi-level-lists) を作成するために使用されます。 -To create a multi-level list style sheet, use [WP New style sheet](../commands/wp-new-style-sheet.md) and pass in *listLevelCount* the desired number of levels. You then define a hierarchy of related paragraph style sheets: one **root-level** style sheet and one or more **sub-level** style sheets linked to it. Each level represents a depth in the list (level 1, level 2, level 3, etc.) and is automatically named "root-level name + lvl + index", for example "Mylist lvl 2". +マルチレベルリストスタイルシートを作成するためには、[WP New style sheet](../commands/wp-new-style-sheet.md) を使用し、必要な階層の数を*listLevelCount* 引数に渡します。 次に関連した段落スタイルシートの階層を定義します: 一つの**ルートレベル** スタイルシートと、それにリンクした一つ以上の**サブレベル** スタイルシートです。 各レベルはリスト内の深さ(レベル1、レベル2、レベル3、など)を表し、 それぞれ自動的に"ルートレベル名 + lvl + インデックス"という形式の名前が付けられます。例えば"Mylist lvl 2" といった具合です。 -To customize multi-level list styles, the paragraph style sheet object can be customized using [style sheet attributes](../commands-legacy/4d-write-pro-attributes.md#style-sheets). +マルチレベルリストスタイルをカスタマイズするために、段落スタイルシートオブジェクトは[スタイルシート属性](../commands-legacy/4d-write-pro-attributes.md#スタイルシート)を使用してカスタマイズすることが可能です。 -Multi-level list style sheets are fully supported by the following commands: [`WP Get style sheet`](../commands/wp-get-style-sheet.md), [`WP SET ATTRIBUTES`](../commands/wp-set-attributes.md), [`WP DELETE STYLE SHEET`](../commands/wp-delete-style-sheet.md). +マルチレベルリストスタイルシートは、以下のコマンドによって完全にサポートされています: [`WP Get style sheet`](../commands/wp-get-style-sheet.md)、 [`WP SET ATTRIBUTES`](../commands/wp-set-attributes.md)、 [`WP DELETE STYLE SHEET`](../commands/wp-delete-style-sheet.md)。 ### 例題 -The following example creates a three-level multi-level list style sheet and applies it to paragraphs. +以下の例は3階層のマルチレベルリストスタイルシートを作成し、それを段落へと割り当てます。 ```4d -// Create 3 multi-level list style sheets +// 3階層のマルチレベルリストスタイルシートを作成 WP New style sheet(wpArea; wk type paragraph; "MyList"; 3) -// Retrieve each level +// 各階層を取得 var $level1; $level2; $level3 : Object $level1:=WP Get style sheet(wpArea; "MyList"; 1) // Root level $level2:=WP Get style sheet(wpArea; "MyList"; 2) // 1st sub-level $level3:=WP Get style sheet(wpArea; "MyList"; 3) // 2nd sub-level -// Customize styles +// スタイルをカスタマイズする WP SET ATTRIBUTES($level1; {listStyleType: wk upper latin; fontBold: wk true}) WP SET ATTRIBUTES($level2; {listConcatStringFormat: True}) WP SET ATTRIBUTES($level3; {listStringFormatLtr: "(#)"}) -// Apply multi-level style sheets to paragraphs +// マルチレベルスタイルシートを段落に適用する var $paragraphs : Collection $paragraphs:=WP Get elements(wpArea; wk type paragraph) @@ -101,34 +101,34 @@ WP SET ATTRIBUTES($paragraphs[1]; wk style sheet; $level2) WP SET ATTRIBUTES($paragraphs[2]; wk style sheet; $level3) ``` -result: +実行結果: ![](../../assets/en/WritePro/multi-level-paragraph-stylesheets-1.png) -To delete the first sub-leve: +最初のサブレベルを削除するには以下を実行します: ```4d WP DELETE STYLE SHEET(wpArea; "MyList"; 2) ``` -result: +実行結果: ![](../../assets/en/WritePro/multi-level-paragraph-stylesheets-2.png) -### Predefined attribute values +### 定義済属性値 -When created, multi-level list style sheets use predefined values: +マルチレベルリストスタイルシートを作成すると、それらは定義済みの値を使用します: -- `wk margin left` = 0.75 cm \* (number of previous levels) or 0.25 inches \* (number of previous levels), depending on current layout unit +- カレントのレイアウト単位によって、`wk margin left` = 0.75 cm \* (そこまでのレベルの数) あるいは 0.25 インチ \* (そこまでのレベルの数) - `wk list type` = `wk decimal` -- `wk name` is derived from the root style sheet name (Read-only for sub-levels) +- `wk name` は、ルートレベルのスタイルシート名から取られます(サブレベルにおいては読み取り専用になります) - `wk list level count` は、指定された値が全てのレベルに対して設定されます - 例: - - Root level: `"MyList"` - - First sub-level: `"MyList lvl 2"` - - Second sub-level: `"MyList lvl 3"` + - ルートレベル: `"MyList"` + - 最初のサブレベル: `"MyList lvl 2"` + - 二つ目のサブレベル: `"MyList lvl 3"` 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 90214d5832eed4..fcf17e698eef61 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -319,7 +319,7 @@ AI 機能を有効化すると、4D Write Pro ドキュメント上にチャッ :::note ライティングツール(macOS) -On macOS, if you want to provide your users with Apple Intelligence Writing Tools so that they can proofread, rewrite, summarize, or change the tone of text directly within their documents, you might consider using the [Writing Tools feature](../FormObjects/properties_Entry.md#writing-tools). +macOS におてい、Apple Intelligence のライティングツールをユーザーに提供してテキストの校正、書き直し、要約、あるいは文調の変更をドキュメント内で直接行えるようにしたい場合には、[ライティングツール機能](../FormObjects/properties_Entry.md#ライティングツール) を使用することを検討してください。 ::: @@ -420,19 +420,19 @@ AI に質問を送信するためには、送信ボタンをクリックしま 消去ボタンを使用すると全てのやりとりを消去しウィンドウ全体をリセットすることができます。 これはAI ダイアログボックスを閉じて再度開くのと同じです。 -## Multi-level list style sheets +## 複数レベルリストスタイルシート -4D Write Pro Interface allows users to create and manage [multi-level lists](./user-legacy/using-a-4d-write-pro-area.md#multi-level-lists) directly from both the toolbar and widget sidebar. +4D Write Pro インターフェースを使用すると、ユーザーがツールバーまたはウィジェットサイドバーの両方から[マルチレベルリスト](./user-legacy/using-a-4d-write-pro-area.md#複数レベルリスト) を直接作成・管理できるようにすることができます。 -**Toolbar:** +**ツールバー:** ![](../assets/en/WritePro/wp-multi-level-list-stylesheets1.png) -**Sidebar:** +**サイドバー:** ![](../assets/en/WritePro/wp-multi-level-list-stylesheets2.png) -To manage multi-level list style sheets, click the ![](../assets/en/WritePro/wp-multi-level-list-button.png) multi-level list button. +マルチレベルリストスタイルシーツを管理するためには、マルチレベルリストボタン![](../assets/en/WritePro/wp-multi-level-list-button.png) をクリックします。 When the multi-level list mode is enabled, the Style Sheets panel displays the [multi-level list style sheets](./user-legacy/stylesheets.md#multi-level-list-style-sheets) defined in the document as well as [predefined templates](#predefined-templates). diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md index a2c67116790073..2f8c722770ece9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md @@ -193,7 +193,7 @@ function test() ``` -3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. [予測可能なエラーと予測不可能なエラー](#predictable-vs-unpredictable-errors) の両方を管理したい場合を考えます: ```4d var $e:=ds.Employee.new() diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md index e987092ca76028..56e98665534bed 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: - CSS カラーネーム: `fill: red;` - - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) + - 16 進数表記値: `fill: #FF0000;` (6 文字のみ、透明度はサポートされていません) - `rgb()` 関数: `fill:rgb(255,0,0)` - CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md index 70c1bdb83bf2bb..5b3094273a9c78 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/FormEditor/forms.md @@ -212,7 +212,7 @@ Fluent UI レンダリングモードは、アプリケーションレベルま Fluent UI で4D フォームを使用する場合、以下の点に注意を払う必要があります: -- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 Possible values: "Classic", "FluentUI" or "LiquidGlass". +- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 取りうる値: "Classic"、 "FluentUI" あるいは "LiquidGlass"。 - [`Application info`](../commands/application-info) コマンドを使用することで、Fluent UI が使用できるかどうか(`canUseFluentUI` プロパティ) あるいは使用されているかどうか(`useFluentUI` プロパティ) を知ることができます。 - [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) がフォームのコンテキストで呼び出された場合、返された情報はフォームのカレントのアピアランス(クラシックあるいはFluent UI)に関連したものです。 コマンドがフォームのコンテキスト外から呼ばれた場合、返された情報は[グローバルプロジェクト設定](#アプリケーション設定) に関連したものです。 - [`SET MENU ITEM STYLE`](../commands/set-menu-item-style) の*itemStyle* 引数での `Underline` はポップアップメニューではサポートされていません(無視されます)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md index 31089e6ab0c8d9..83b465d6f38514 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/API/QuotaManagerClass.md @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### 説明 -The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. +`.nbEntitySets` プロパティにはカレントのセッション内においてメモリ内に許可されているREST エンティティセットの最大数 が格納されています。 デフォルトでは、エンティティセットが[REST リクエストによってメモリに保存される数](../REST/$info.md) には制約はありません(値は 0 に設定されています)。 特定のセッションに対して、サーバーのペイロードを抑えるために、上限を設定することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md index 71c7ac627f984e..10cf3e7a451d68 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/error-handling.md @@ -193,7 +193,7 @@ function test() ``` -3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. [予測可能なエラーと予測不可能なエラー](#predictable-vs-unpredictable-errors) の両方を管理したい場合を考えます: ```4d var $e:=ds.Employee.new() @@ -293,21 +293,21 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo - **メッセージ**。エラーがなぜ起きたかを説明します。 - **コード**。コンポーネントによって返される任意の数値です。 -To have a full description of an error and especially its origin, you can use the [4D error dialog box](../Debugging/basics.md) or the [`Last errors`](../commands/last-errors) command. +エラーと特にその原因の完全な詳細を取得するには、[4D エラーダイアログボックス](../Debugging/basics.md) あるいは[`Last errors`](../commands/last-errors.md) コマンドを使用することができます。 -### Error dialog box +### エラーダイアログボックス -[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 Expand the **Details** area and click on the **Save...** or **Copy** button: +[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 **詳細** エリアを展開し、**保存...** あるいは **コピー** ボランをクリックします: ![copy-button](../assets/en/Concepts/error.png) -Detailed information related to the error is then saved to a text file or copied to the pasteboard, including the context and the component: +するとエラーに関連した詳細な情報は、コンテキストやコンポーネントといった情報も含めて、テキストファイルに保存されるかペーストボードにコピーされます: ![pasted-error](../assets/en/Concepts/error2.png) -### `Last errors` command +### `Last errors`コマンド -You can call the [`Last errors`](../commands/last-errors) command in your code to get information about errors. This command must be called from an on error call method installed by the [`ON ERR CALL`](../commands/on-err-call) command or within a [`Try or Try/Catch`](#trycatchend-try) context. +コード内で[`Last errors`](../commands/last-errors) コマンドを呼び出すことで、エラーに関する情報を取得することができます。 このコマンドは[`ON ERR CALL`](../commands/on-err-call) コマンドで実装されたエラー処理メソッドから、あるいは[`Try` または `Try/Catch`](#trycatchend-try) コンテキスト内から呼び出す必要があります。 -When you intercept and handle errors in your final applications, use [`Last errors`](../commands/last-errors) and make sure you log all properties of the *error* object since error codes depend on the components. +最終アプリケーションにおいてエラーへの割り込みと処理をする場合、[`Last errors`](../commands/last-errors) を使用して必ず*error* オブジェクトの全てのプロパティを記録するようにしてください。エラーコードはコンポーネントによって異なるからです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md index e987092ca76028..56e98665534bed 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/createStylesheet.md @@ -323,7 +323,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: - CSS カラーネーム: `fill: red;` - - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) + - 16 進数表記値: `fill: #FF0000;` (6 文字のみ、透明度はサポートされていません) - `rgb()` 関数: `fill:rgb(255,0,0)` - CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md index 54259f24cd8f0a..4b6cdcd8cd67fc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/FormEditor/forms.md @@ -338,7 +338,7 @@ Fluent UI レンダリングモードは、アプリケーションレベルま Fluent UI で4D フォームを使用する場合、以下の点に注意を払う必要があります: -- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 Possible values: "Classic", "FluentUI" or "LiquidGlass". +- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 取りうる値: "Classic"、 "FluentUI" あるいは "LiquidGlass"。 - [`Application info`](../commands/application-info) コマンドを使用することで、Fluent UI が使用できるかどうか(`canUseFluentUI` プロパティ) あるいは使用されているかどうか(`useFluentUI` プロパティ) を知ることができます。 - [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) がフォームのコンテキストで呼び出された場合、返された情報はフォームのカレントのアピアランス(クラシックあるいはFluent UI)に関連したものです。 コマンドがフォームのコンテキスト外から呼ばれた場合、返された情報は[グローバルプロジェクト設定](#アプリケーション設定) に関連したものです。 - [`SET MENU ITEM STYLE`](../commands/set-menu-item-style) の*itemStyle* 引数での `Underline` はポップアップメニューではサポートされていません(無視されます)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md index fdfc417cacaa7f..aecb70c3b744ee 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md @@ -193,7 +193,7 @@ function test() ``` -3. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. [予測可能なエラーと予測不可能なエラー](#predictable-vs-unpredictable-errors) の両方を管理したい場合を考えます: ```4d var $e:=ds.Employee.new() 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 b53b0379a94257..1a89a20bea89f8 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 @@ -284,7 +284,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: - CSS カラーネーム: `fill: red;` - - Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) + - 16 進数表記値: `fill: #FF0000;` (6 文字のみ、透明度はサポートされていません) - `rgb()` 関数: `fill:rgb(255,0,0)` - CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md b/i18n/pt/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md index 76b6f1e03d4eb1..fe2564590d3f33 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md @@ -155,16 +155,14 @@ Para remover um usuário ou grupo de outro grupo, você só precisa desmarcar a You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. > Licenças utilizadas permanecem anexadas a contas de usuário 4D no grupo para toda a sessão 4D. -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. ![](../assets/en/Users/plugins.png) -The **4D Client Web Server** (*deprecated as of 4D 21*) and **4D Client SOAP Server** items let you control the possibility of Web and SOAP (Web Services) publication for each 4D in remote mode. Essas licenças são consideradas como licenças de plug-in por 4D Server. Portanto, da mesma forma que para plug-ins, você pode restringir o direito de utilizar essas licenças para um grupo específico de usuários. - ### Um esquema de acesso hierárquico A melhor maneira de garantir a segurança da sua aplicação e fornecer aos usuários diferentes níveis de acesso é usar um esquema de hierarquia de acesso. Os usuários podem ser atribuídos a grupos e grupos apropriados podem ser aninhados para criar uma hierarquia de direitos de acesso. Esta secção discute várias abordagens a esse esquema. From 310ae36015bd79c8d22f1c2c9c07dc02b198460c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 9 Sep 2026 10:04:32 +0200 Subject: [PATCH 30/60] New Crowdin updates (#3417) * handling_users_groups.md Japanese * handling_users_groups.md Japanese * handling_users_groups.md Japanese * writeprointerface.md Japanese * updates.md Japanese * updates.md Japanese * getting-started.md Japanese * getting-started.md Japanese * authusers.md Japanese * getting-started.md Japanese --- .../version-20/Notes/updates.md | 18 ++--- .../Users/handling_users_groups.md | 8 +- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../version-21-R4/REST/authUsers.md | 4 +- .../Users/handling_users_groups.md | 8 +- .../version-21-R4/ViewPro/getting-started.md | 2 +- .../WritePro/writeprointerface.md | 74 +++++++++---------- .../version-21/Notes/updates.md | 46 ++++++------ .../version-21/Users/handling_users_groups.md | 8 +- .../version-21/ViewPro/getting-started.md | 2 +- 10 files changed, 84 insertions(+), 88 deletions(-) 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 935c072e8a9de8..81425a586bb38c 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 @@ -17,7 +17,7 @@ title: リリースノート - 4D 20.8 LTS は Windows 11 25H2 対応です。 - 4D 20.8 LTS は macOS Tahoe (macOS 26) 対応です。 -- [**修正リスト**](https://bugs.4d.com/fixes?version=20.8): 4D 20.8 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 +- [**修正リスト**](https://bugs.4d.com/fixes?version=20.8): 4D 20.8 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2025/252/release-note-version-20/))。 @@ -25,7 +25,7 @@ title: リリースノート #### ハイライト -- [**修正リスト**](https://bugs.4d.com/fixes?version=20.7): 4D 20.7 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 +- [**修正リスト**](https://bugs.4d.com/fixes?version=20.7): 4D 20.7 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2025/98/release-note-version-20/))。 :::caution 4D Server 20.7 以降の最小クライアントバージョンについて @@ -57,7 +57,7 @@ Windows Server 2025 では、新しいWindows 印刷ダイアログボックス ::: - [スタンドアロンの4Dアプリケーションを使用するのに必要なライセンスを埋め込まずに](../Desktop/building.md#ライセンスについて)アプリケーションをビルドできるようになりました。 -- [**修正リスト**](https://bugs.4d.com/fixes?version=20.6): 4D 20.6 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 +- [**修正リスト**](https://bugs.4d.com/fixes?version=20.6): 4D 20.6 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/335/release-note-version-20/))。 @@ -74,14 +74,14 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD ::: -- [**修正リスト**](https://bugs.4d.com/fixes?version=20.5): 4D 20.5 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 +- [**修正リスト**](https://bugs.4d.com/fixes?version=20.5): 4D 20.5 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/245/release-note-version-20/))。 ## 4D 20.4 LTS #### ハイライト -- [**修正リスト**](https://bugs.4d.com/fixes?version=20.4): 4D 20.4 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 +- [**修正リスト**](https://bugs.4d.com/fixes?version=20.4): 4D 20.4 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/158/release-note-version-20/))。 ## 4D 20.3 LTS @@ -89,7 +89,7 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD - CEF が Chromium 5993 にアップデートされました。 - SpreadJS は 4D 20.2 HF1 でバージョン 16.2.6 にアップデートされました。 -- [**修正リスト**](https://bugs.4d.com/fixes?version=20.3): 4D 20.3 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 +- [**修正リスト**](https://bugs.4d.com/fixes?version=20.3): 4D 20.3 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/35/release-note-version-20/))。 #### 動作の変更 @@ -114,7 +114,7 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD ::: -- [**修正リスト**](https://bugs.4d.com/fixes?version=20.2): 4D 20.2 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 +- [**修正リスト**](https://bugs.4d.com/fixes?version=20.2): 4D 20.2 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/292/release-note-version-20/))。 #### 動作の変更 @@ -135,7 +135,7 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD ::: -- [**修正リスト**](https://bugs.4d.com/fixes?version=20.1): 4D 20.1 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 +- [**修正リスト**](https://bugs.4d.com/fixes?version=20.1): 4D 20.1 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/191/release-note-version-20/))。 ## 4D 20 LTS @@ -171,7 +171,7 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD - [`4D.HTTPRequest.new()`](../API/HTTPRequestClass.md#4dhttprequestnew) の新しいオプション `validateTLSCertificate` で、証明書の自動検証を管理できるようになりました。 - 4Dランゲージコマンド: doc.4d.com の [新着](https://doc.4d.com/4Dv20/4D/20/What-s-new.901-6237190.ja.html) ページ。 - 4D Write Pro: doc.4d.com の [新着](https://doc.4d.com/4Dv20/4D/20/What-s-new.901-6229455.ja.html) ページ。 -- [**修正リスト**](https://bugs.4d.com/fixes?version=20): 4D 20 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 +- [**修正リスト**](https://bugs.4d.com/fixes?version=20): 4D 20 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/110/release-note-version-20/))。 #### 動作の変更 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md index b4f2eefcd2d5ae..978359cbd7e8fe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Users/handling_users_groups.md @@ -149,15 +149,15 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### Assigning a license to a group +### グループにライセンスを割り当てる -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. +プロジェクトにインストールされたあらゆる[拡張機能](../Extensions/overview.md) に、グループ権限を割り当てることができます。 これには全ての4D 製/サードパーティ製のプラグインやコンポーネントを含みます。 -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. +アクセス件をこれらの拡張機能に分散させることで、クライアント/サーバー環境においてこれらの拡張機能に対してあなたが所持しているライセンスの使用を管理することができます。 ある拡張機能へのアクセス可能グループに属していないユーザーは、その拡張機能をロードすることができません。 > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +ツールボックス内のグループページの"プラグイン"エリアには、4D アプリケーションによってロードされた拡張機能のうち[ライセンスを必要とする](../Admin/licenses.md) ものが全て一覧表示されています。 拡張機能へのアクセス権をグループに与えるには、該当するオプションをチェックします。 ![](../assets/en/Users/plugins.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md index d4e900268a6ac7..778a244d43a8ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ViewPro/getting-started.md @@ -33,7 +33,7 @@ title: はじめに プロジェクトを再起動すると、4D View Pro コンポーネントは[Github 依存関係](../Project/components.md#githubまたはgitlab依存関係を追加する)としてインストールされます。 -4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +4D View Pro はライセンスを必要とします。 この機能を使用するためには、[アプリケーション内においてライセンスを有効化して割り当てる](../../Users/handling_users_groups.md#グループにライセンスを割り当てる) 必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md index ebc7a1082b7a68..d47962a98c721c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/REST/authUsers.md @@ -28,9 +28,9 @@ title: ユーザーとセッション 記述的RESTリクエスト は、ライセンスを消費する Webユーザーセッションが開かれていなくても、常にサーバーで処理されます。 この場合、それらは "ゲスト" セッションを介して処理されます。 2. 事前に用意した [`authentify()` 関数](#function-authentify) を呼び出し、ユーザーの資格情報をチェックして、適切な権限で[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出します。 `authentify()` は公開された [データストアクラス関数](../ORDA/ordaClasses.md#datastore-クラス) でなければなりません。 - The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). + この関数は、4D コードから直接([`Open datastore`](../commands/open-datastore) の例題参照)、あるいはユーザー認証情報とともに`/rest/$catalog/authentify` リクエストを通して呼び出すことが可能です。 このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。これには例えば`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](https://developer.4d.com/qodly/) を利用できます。 -3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. +3. ユーザーが正常に認証できた場合、サーバー上では4D ライセンスが1つ消費され、また[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) 関数が呼ばれれば、全てのREST リクエストが受け入れられるようになります。 ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md index b4f2eefcd2d5ae..978359cbd7e8fe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Users/handling_users_groups.md @@ -149,15 +149,15 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### Assigning a license to a group +### グループにライセンスを割り当てる -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. +プロジェクトにインストールされたあらゆる[拡張機能](../Extensions/overview.md) に、グループ権限を割り当てることができます。 これには全ての4D 製/サードパーティ製のプラグインやコンポーネントを含みます。 -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. +アクセス件をこれらの拡張機能に分散させることで、クライアント/サーバー環境においてこれらの拡張機能に対してあなたが所持しているライセンスの使用を管理することができます。 ある拡張機能へのアクセス可能グループに属していないユーザーは、その拡張機能をロードすることができません。 > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +ツールボックス内のグループページの"プラグイン"エリアには、4D アプリケーションによってロードされた拡張機能のうち[ライセンスを必要とする](../Admin/licenses.md) ものが全て一覧表示されています。 拡張機能へのアクセス権をグループに与えるには、該当するオプションをチェックします。 ![](../assets/en/Users/plugins.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md index d4e900268a6ac7..778a244d43a8ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ViewPro/getting-started.md @@ -33,7 +33,7 @@ title: はじめに プロジェクトを再起動すると、4D View Pro コンポーネントは[Github 依存関係](../Project/components.md#githubまたはgitlab依存関係を追加する)としてインストールされます。 -4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +4D View Pro はライセンスを必要とします。 この機能を使用するためには、[アプリケーション内においてライセンスを有効化して割り当てる](../../Users/handling_users_groups.md#グループにライセンスを割り当てる) 必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md index fcf17e698eef61..fd9d6fadc2e421 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md @@ -434,55 +434,55 @@ AI に質問を送信するためには、送信ボタンをクリックしま マルチレベルリストスタイルシーツを管理するためには、マルチレベルリストボタン![](../assets/en/WritePro/wp-multi-level-list-button.png) をクリックします。 -When the multi-level list mode is enabled, the Style Sheets panel displays the [multi-level list style sheets](./user-legacy/stylesheets.md#multi-level-list-style-sheets) defined in the document as well as [predefined templates](#predefined-templates). +マルチレベルリストモードが有効化されている場合、スタイルシートパネルにはドキュメント内で定義されている[マルチレベルリストスタイルシート](./user-legacy/stylesheets.md#複数レベルスタイルシート) に加えて、[定義済みのテンプレート](#定義済みテンプレートpredefined-templates) が表示されます。 ![](../assets/en/WritePro/wp-multi-level-list-panel.png) -### Managing multi-level style sheets +### マルチレベルスタイルシートを管理する -The Style Sheets panel allows you in general to: +スタイルシートパネルでは一般的に以下のような操作を行うことができます: -- ![](../assets/en/WritePro/wp-multi-level-list-button1.png) Create a new style sheet. -- ![](../assets/en/WritePro/wp-multi-level-list-button2.png) Delete a style sheet. -- ![](../assets/en/WritePro/wp-multi-level-list-button3.png) Update a style sheet. +- ![](../assets/en/WritePro/wp-multi-level-list-button1.png) 新規スタイルシートを作成する。 +- ![](../assets/en/WritePro/wp-multi-level-list-button2.png) スタイルシートを削除する。 +- ![](../assets/en/WritePro/wp-multi-level-list-button3.png) スタイルシートを更新する。 -Once a multi-level list style sheet is selected, the panel provides also tools to manage the hierarchy and numbering of the list: +マルチレベルリストスタイルシートが選択されると、パネルにはリストの階層や番号振りを管理するためのツールも提供されるようになります: -- ![](../assets/en/WritePro/wp-multi-level-list-button4.png) Increase the list level of selected paragraphs. -- ![](../assets/en/WritePro/wp-multi-level-list-button5.png) Decrease the list level of selected paragraphs. -- ![](../assets/en/WritePro/wp-multi-level-list-button6.png) Append a level to the list and create a new sub-level. -- ![](../assets/en/WritePro/wp-multi-level-list7.png) Modify numbering formats. -- ![](../assets/en/WritePro/wp-multi-level-list-button8.png) Concatenate numbering markers between levels. +- ![](../assets/en/WritePro/wp-multi-level-list-button4.png) 選択された段落のリストレベルを上げる。 +- ![](../assets/en/WritePro/wp-multi-level-list-button5.png) 選択された段落のリストレベルを下げる。 +- ![](../assets/en/WritePro/wp-multi-level-list-button6.png) リストにレベルを追加し新しいサブレベルを作成する。 +- ![](../assets/en/WritePro/wp-multi-level-list7.png) 番号振りのフォーマットを変更する。 +- ![](../assets/en/WritePro/wp-multi-level-list-button8.png) レベル間の番号マーカーを連結する。 -### Creating a style sheet +### スタイルシートの作成 -To create a multi-level list style sheet you can either: +マルチレベルリストのスタイルシートを作成するためには、以下の方法があります: -- Select and apply one of the predefined templates to the paragraph(s), the selected template and all it sub-levels are then displayed on the top part of the sytle sheets panel. You can customize its levels and formatting (such as numbering styles, colors, fonts, or hierarchy), and then create a new style sheet based on the resulting selection. +- 定義済みのテンプレートの一つを選択して段落に適用すると、選択されたテンプレートとその全てのサブレベルはスタイルシートパネルの上部に表示されます。 レベルと書式(番号スタイル、カラー、フォント、階層など)をカスタマイズすることができ、その結果に基づいて新しいスタイルシートを作成することができます。 -- Duplicate one of the existing style sheets via the Duplicate option in the ![](../assets/en/WritePro/wp-multi-level-list-button1.png) bottom menu. +- ![](../assets/en/WritePro/wp-multi-level-list-button1.png) 下部のメニューの複製オブションを使用して既存のスタイルシートの一つを複製します。 -- Click the ![](../assets/en/WritePro/wp-multi-level-list-button1.png) button and then "New style sheet based on selection" after having selected paragraph(s) to use for the style sheet according to the following: - - If the selected paragraph(s) use(s) a list marker, a new multi-level list style sheet made of one level is created based on the current formatting. - - If the selected paragraph(s) already use(s) a root-level or a sub-level of a multi-level list style sheet, the complete hierarchy is duplicated. +- ![](../assets/en/WritePro/wp-multi-level-list-button1.png) ボタンをクリックし、スタイルシートに使用する段落を以下のように選択したあとに"選択に基づいた新規スタイルシート" をクリックします: + - 選択された段落にリストマーカーを使用している場合、カレントの書式に基づいて、単一のレベルから作られた新しいマルチレベルリストスタイルシートが作成されます。 + - 選択された段落が既にルートレベルまたはサブレベルのマルチレベルリストスタイルシートを使用している場合、階層全体が完全に複製されます。 :::note -For detailed information about creating and configuring multi-level list style sheets by programming, see [Multi-level list style sheets](./user-legacy/stylesheets.md#multi-level-list-style-sheets). +プログラミングによってマルチレベルリストスタイルシートを作成・設定する詳細な情報については、[複数レベルリストスタイルシート](./user-legacy/stylesheets.md#複数レベルリストスタイルシート)の章を参照してください。 ::: -### Applying a multi-level list +### マルチレベルリストの適用 -You can apply either a multi-level list style sheet defined in the document or one of the predefined templates to the selected paragraphs using the Style Sheets panel: +スタイルシートパネルを使用することで、ドキュメント内で定義されているマルチレベルリストスタイルシートか、定義済みテンプレートの一つのどちらかを、選択された段落に対して適用することができます: ![](../assets/en/WritePro/wp-multi-level-list-panel2.png) -### Predefined templates +### 定義済みテンプレート -The interface provides the following predefined multi-level list templates: +インターフェースには、以下の定義済みマルチレベルリストテンプレートが提示されています: -**Technical Blueprint** +**テクニカルブループリント** Level 1: 1 Level 2: 1.1 @@ -490,7 +490,7 @@ Level 3: 1.1.1 Level 4: 1.1.1.1 Level 5: 1.1.1.1.1 -**Legal & Governance** +**リーガル & ガバナンス** Level 1: I. Level 2: A. @@ -500,7 +500,7 @@ Level 5: (1) Level 6: (a) Level 7: (i) -**Educational Material** +**教育的素材** Level 1: I. Level 2: 1. @@ -508,22 +508,22 @@ Level 3: 1.1. Level 4: a. Level 5: ● -**Meeting Minutes** +**会議詳細** Level 1: 1. Level 2: ● -**Visual Hierarchy** +**視覚的階層** -Level 1: ♣ (Club) -Level 2: ♦ (Diamond) -Level 3: ■ (Square) -Level 4: □ (Hollow Square) -Level 5: ● (Disc) -Level 6: ○ (Circle) -Level 7: – (Dash) +Level 1: ♣ (クラブ) +Level 2: ♦ (ダイヤ) +Level 3: ■ (黒い四角) +Level 4: □ (白い四角) +Level 5: ● (黒丸) +Level 6: ○ (白丸) +Level 7: – (破線) -### Customizing predefined templates +### 定義済みテンプレートのカスタマイズ You can customize the available templates to provide users with predefined multi-level lists that match the needs of your application. 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 bf45d8fa6b5fc7..ed43ae224fb2c2 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 @@ -13,13 +13,13 @@ title: リリースノート #### ハイライト -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21.2): 4D 21.2 で修正されたバグのリストです(日本語版は [こちら](https://4d-jp.github.io/2025/279/release-note-version-21/))。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21.2): 4D 21.2 で修正されたバグのリストです(日本語版は [こちら](https://4d-jp.github.io/2026/229/release-note-version-21/))。 ## 4D 21.1 LTS #### ハイライト -- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21.1): 4D 21.1 で修正されたバグのリストです(日本語版は [こちら](https://4d-jp.github.io/2025/279/release-note-version-21/))。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21.1): 4D 21.1 で修正されたバグのリストです(日本語版は [こちら](https://4d-jp.github.io/2026/78/release-note-version-21/))。 ## 4D 21 LTS @@ -35,7 +35,7 @@ title: リリースノート - `roles.json` ファイル内での、明確な許可のないアクセスをデフォルトで全てブロックする新しい[`restrictedByDefault` プロパティ](../ORDA/privileges.md#制限モード) のサポート。 - [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) および [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew) クラスにおいて、ローカルの証明書フォルダーの代わりに Windows 証明書ストアからの証明書を使用することを許可する新しいオプション。 - [Sessions API](../API/SessionClass.md) は全ての[デスクトップセッション](../Desktop/sessions.md) をサポートするようになり、[デスクトップセッションとWeb アクセスを共有する](../Desktop/sessions.md#sharing-a-desktop-session-for-web-accesses) ことが可能になりました。これにより、Web エリア内にQodly ページを使用するアプリケーションの開発が容易になりました。 -- [QUIC ネットワークレイヤー](../settings/client-server.md#ネットワークレイヤー) はネットワークインターフェースの変更(例えばラップトップを持って良好するような場合)を透過的に管理できるように改善されました。 [こちらの blog 記事](https://blog.4d.com/work-and-move-with-quic-and-network-switching) をご覧ください。 [こちらの blog 記事](https://blog.4d.com/work-and-move-with-quic-and-network-switching) をご覧ください。 +- [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) 新機能。 @@ -49,23 +49,19 @@ title: リリースノート :::caution インデックスの再構築 -4D 21 では、ICUライブラリのアップデート ([後述参照](#ライブラリの一覧-4d-21-lts)) により、文字列型、テキスト型、オブジェクト型のインデックスの再構築が強制されます。 データファイルのサイズに応じて、この処理には時間がかかることがあるため、計画的なアップグレードが推奨されます。 データファイルのサイズに応じて、この処理には時間がかかることがあるため、計画的なアップグレードが推奨されます。 +4D 21 では、ICUライブラリのアップデート ([後述参照](#ライブラリの一覧-4d-21-lts)) により、文字列型、テキスト型、オブジェクト型のインデックスの再構築が強制されます。 データファイルのサイズに応じて、この処理には時間がかかることがあるため、計画的なアップグレードが推奨されます。 ::: -- Web サービス(SOAP): [スケーラブルセッション](../WebServer/sessions.md#webセッションの有効化) が有効化されている場合、コンパイルモードにおいてはWeb サービスは[**プリエンプティブプロセス**](../Develop/preemptive.md) で実行されます。 SOAP のコードがスレッドセーフであることと、それが実行されるセッションが適切な [権限](../API/SessionClass.md#setprivileges) を持っていることを確認してください。 SOAP のコードがスレッドセーフであることと、それが実行されるセッションが適切な [権限](../API/SessionClass.md#setprivileges) を持っていることを確認してください。 +- Web サービス(SOAP): [スケーラブルセッション](../WebServer/sessions.md#webセッションの有効化) が有効化されている場合、コンパイルモードにおいてはWeb サービスは[**プリエンプティブプロセス**](../Develop/preemptive.md) で実行されます。 SOAP のコードがスレッドセーフであることと、それが実行されるセッションが適切な [権限](../API/SessionClass.md#setprivileges) を持っていることを確認してください。 - Web サーバー: - - 廃止予定だった`4DSYNC/` および `4DCGI/` URL のサポートが削除されました。 これらのURL に対しては、特に何の処理も行われなくなります。 これらのURL に対しては、特に何の処理も行われなくなります。 + - 廃止予定だった`4DSYNC/` および `4DCGI/` URL のサポートが削除されました。 これらのURL に対しては、特に何の処理も行われなくなります。 - Web プロセスは、今後 [スケーラブルセッション](../WebServer/sessions.md#enabling-web-sessions) が有効化されている場合には再利用されないようになりました。 - Web ユーザーセッションは今後[`Process activity`](../commands/process-activity.md) コマンドで返されるようになります。 - 今後PHP は [廃止予定](https://blog.4d.com/deprecation-of-php-commands-removal-of-4d-built-in-php-interpreter/) となり、開発においては今後使用されるべきではありません。 - [`HIGHLIGHT TEXT`](../commands/highlight-text) コマンドは今後サブフォームのコンテキストでサポートされるようになりました。 -- クライアント/サーバーでは、ローカルプロセスという概念が削除されました。 クライアント/サーバーでは、ローカルプロセスという概念が削除されました。 プロセス名に置いて"$"記号をつけることは今後何も特別な意味を持たなくなり、また[`REGISTER CLIENT`](../commands/register-client) コマンドの \* 引数は無視されます。 +- クライアント/サーバーでは、ローカルプロセスという概念が削除されました。 プロセス名に置いて"$"記号をつけることは今後何も特別な意味を持たなくなり、また[`REGISTER CLIENT`](../commands/register-client) コマンドの \* 引数は無視されます。 - **コンポーネントは埋め込まれなくなりました**: 4D 21 以降、4D によって開発されたコンポーネント(4D NetKit、4D SVG、など。詳細は[こちらの一覧](../Extensions/overview.md#4dによって開発されたコンポーネント)を参照) は4Dアプリケーションには埋め込まれなくなりました。 プロジェクトを4D 21 以降にアップグレードする場合、以下のようなダイアログボックスが表示されます:
- ![alt-text](../assets/en/getStart/convert.png)
- \- **すぐにインポートする**: 4D コンポーネントを依存関係としてプロジェクトに自動的にインポートします
- \- **手動で管理する**: コンポーネントをインポートせず、[コンポーネントを手動で管理するようにします](../Project/components.md)
- \- **あとでもう一度聞く**: コンポーネントをインポートせず、次にプロジェクトを開いたときにダイアログを表示させる。 プロジェクトを4D 21 以降にアップグレードする場合、以下のようなダイアログボックスが表示されます:
![alt-text](../assets/en/getStart/convert.png)
\- **すぐにインポートする**: 4D コンポーネントを依存関係としてプロジェクトに自動的にインポートします
\- **手動で管理する**: コンポーネントをインポートせず、[コンポーネントを手動で管理するようにします](../Project/components.md)
@@ -87,7 +83,7 @@ title: リリースノート - [`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 を生成するための新しいオプション。 -- 新しい[`UDPSocket`](../API/UDPSocketClass.md) および [`UDPEvent`](../API/UDPEventClass.md) クラスを使用することでUDP ソケットを使用してデータを送信することができます。 [`4DTCPUDPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) ログファイル(`4DTCPLog.txt` から改名)内でのUDP イベントの詳細なログのサポート。 [`4DTCPUDPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) ログファイル(`4DTCPLog.txt` から改名)内でのUDP イベントの詳細なログのサポート。 +- 新しい[`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 アプリケーションの外部からコピーされたフォーミュラは、今後は常に値のみがペーストされます。 @@ -106,7 +102,7 @@ title: リリースノート - *MeCab* ライブラリは削除されました。 この変更は、日本語テキストの処理のみに影響します。 - ["cs" クラス](../Concepts/classes.md#cs) タイプを使用して宣言されたオブジェクト型変数またはオブジェクト型引数に、異なるクラスのオブジェクトインスタンスを代入した場合にはシンタックスエラーを生成するようになりました。 - [`.hasPrivilege()`](../API/SessionClass.md#hasprivilege) 関数は、Web プロセス内において昇格された権限に対してはTrue を返すようになりました。 -- [`Time`](../commands/time) コマンドは、*timeValue* 引数が負の値の場合には、負の時間式を返すようになりました。 例えば、`Time("-01:02:03")` は **-01:02:03** を返します。 過去のリリースにおいては、負の符号は無視されていました。 例えば、`Time("-01:02:03")` は **-01:02:03** を返します。 過去のリリースにおいては、負の符号は無視されていました。 +- [`Time`](../commands/time) コマンドは、*timeValue* 引数が負の値の場合には、負の時間式を返すようになりました。 例えば、`Time("-01:02:03")` は **-01:02:03** を返します。 過去のリリースにおいては、負の符号は無視されていました。 ### 4D 20 R9 @@ -118,7 +114,7 @@ title: リリースノート - [`Session.createOTP()`](../API/SessionClass.md#createotp) および[`Session.restore()`](../API/SessionClass.md#restore) の新関数を使用して管理することで、[セッショントークン](../WebServer/sessions.md#session-token-otp) がサポートされるようになりました。 - ラベルウィザードは、[ラベルデザインエリア](../Desktop/labels.md#ラベルプレビューエリア) においてフォーミュラを追加または編集する際にフォーミュラエディターを使用するようになりました。 - TCP サーバー接続を作成するための新しい[`TCPListener`](../API/TCPListenerClass.md) クラス。関連クラスに新しいプロパティが追加されました。[`TCPConnection`](../API/TCPConnectionClass.md) クラスに`address`、`listener` および `port`。[`TCPEvent`](../API/TCPEventClass.md) クラスに `address` および `port`。 -- [ライブチェッカーとコンパイラー](../code-editor/write-class-method.md#warnings-and-errors).において、廃止予定のコマンドと定数は、特定の警告を生成するようになりました。 [`Command name`](../commands/command-name.md) コマンドを使用することで、コマンドが廃止予定かどうかを知ることができます。 [`Command name`](../commands/command-name.md) コマンドを使用することで、コマンドが廃止予定かどうかを知ることができます。 +- [ライブチェッカーとコンパイラー](../code-editor/write-class-method.md#warnings-and-errors).において、廃止予定のコマンドと定数は、特定の警告を生成するようになりました。 [`Command name`](../commands/command-name.md) コマンドを使用することで、コマンドが廃止予定かどうかを知ることができます。 - 新しいコマンド[WA SET CONTEXT](../commands/wa-set-context.md) および [WA Get context](../commands/wa-get-context.md) を使用して、Web エリア内の[$4d](../FormObjects/webArea_overview.md#4d-object) コンテンツを管理することができるようになります。 - 新しい[`RDP optimization` データベースパラメーター](../commands-legacy/set-database-parameter.md#rdp-optimization-133) を使用して、例えば4D をリモートデスクトッププロトコルを使用している場合の共有クリップボードを最適化することができます。 - インタープリター版のコンポーネントは今後 [ホストプロジェクトから編集](../Extensions/develop-components.md#editing-components) できるようになりました。 @@ -143,7 +139,7 @@ title: リリースノート - Apple 公証ガイドラインにより合致する[新しくビルトされたコンポーネントアーキテクチャ](../Desktop/building.md#build-component) - ビルドアプリケーションダイアログボックスから、簡単に[評価版アプリケーションをビルド](../Desktop/building.md#評価版アプリケーション) することができるようになりました。 - 依存関係: 依存関係マネージャーを使用して、GitHub 上のコンポーネントの[新バージョンをチェック](../Project/components.md#新バージョンをチェック) したり[更新する](../Project/components.md#依存関係の更新) ことができます。 -- 新しい [`TCPConnection`](../API/TCPConnectionClass.md) および [`TCPEvent`](../API/TCPEventClass.md) クラスを使用してTCP クライアント接続を管理したり、イベントを管理したり、データ転送のコントロールを改善することができます。 追加された[`4DTCPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) を使用することでTCP イベントの詳細なログを取ることができます。 追加された[`4DTCPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) を使用することでTCP イベントの詳細なログを取ることができます。 +- 新しい [`TCPConnection`](../API/TCPConnectionClass.md) および [`TCPEvent`](../API/TCPEventClass.md) クラスを使用してTCP クライアント接続を管理したり、イベントを管理したり、データ転送のコントロールを改善することができます。 追加された[`4DTCPLog.txt`](../Debugging/debugLogFiles.md#4dtcpudplogtxt) を使用することでTCP イベントの詳細なログを取ることができます。 - [VP EXPORT DOCUMENT](../ViewPro/commands/vp-export-document.md) および [VP IMPORT DOCUMENT](../ViewPro/commands/vp-import-document.md) の新しいオプションを使用して、スタイル、フォーミュラ、データ整合性、そしてパスワードによる保護などを管理することができます。 - 4D Write Pro: - 以下のコマンドが、引数としてオブジェクトまたはコレクションを受け取れるようになりました: [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)、および [WP Insert picture](../WritePro/commands/wp-insert-picture.md) @@ -156,7 +152,7 @@ title: リリースノート #### 動作の変更 -- [`SELECT LOG FILE`](../commands/select-log-file.md) コマンドあるいは [バックアップ設定](../Backup/settings.md#ログ管理) を使用してログファイルを変更したあと、[`New log file`](../commands/new-log-file.md) コマンドは、バックアップを待たずに変更を検証するようになりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 エラー -4447 (バックアップが必要です) は発生しなくなりました。 +- [`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 @@ -168,7 +164,7 @@ title: リリースノート - 時間型のリストボックスの列とヘッダーは、["blankIfNull" オプション](../FormObjects/properties_Display.md#時間フォーマット) をサポートするようになりました。 - [`.getBoxInfo()`](../API/IMAPTransporterClass.md#getboxinfo) and [`.getBoxList()`](../API/IMAPTransporterClass.md#getboxlist) に新しいプロパティが追加されました。 - [コンポーネントマネージャーのインターフェースを使用してコンポーネントを追加および削除](../Project/components.md#プロジェクトの依存関係のモニタリング) できるようになりました。 -- コンパイラー設定の新しい [**直接型指定モード**](../Project/compiler.md#直接型指定の有効化): コード内のすべての変数および引数を `var` と `#DECLARE`/`Function` キーワードで宣言します (新規プロジェクトではこのモードのみサポートされます)。 これに伴い、[シンタックスチェック機能](../Project/compiler.md#シンタックスチェック) が強化されました。 これに伴い、[シンタックスチェック機能](../Project/compiler.md#シンタックスチェック) が強化されました。 これに伴い、[シンタックスチェック機能](../Project/compiler.md#シンタックスチェック) が強化されました。 +- コンパイラー設定の新しい [**直接型指定モード**](../Project/compiler.md#直接型指定の有効化): コード内のすべての変数および引数を `var` と `#DECLARE`/`Function` キーワードで宣言します (新規プロジェクトではこのモードのみサポートされます)。 これに伴い、[シンタックスチェック機能](../Project/compiler.md#シンタックスチェック) が強化されました。 - [セッションシングルトン](../Concepts/classes.md#シングルトンクラス) と、新しい [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton) クラスプロパティをサポート。 - 新しい[`onHTTPGet` 関数キーワード](../ORDA/ordaClasses.md#onhttpget-keyword) を使用して[HTTP REST GET requests](../REST/ClassFunctions.md#function-calls) 経由で呼び出し可能なシングルトンまたはORDA 関数を定義できるようになりました。 - 新しい [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) クラスを使用してREST サーバーがあらゆるWeb コンテンツを返すようになりました。 @@ -179,7 +175,7 @@ title: リリースノート - 4Dランゲージ: - 新コマンド: [Process info](../commands/process-info.md)、 [Session info](../commands/session-info.md)、 [SET WINDOW DOCUMENT ICON](../commands/set-window-document-icon.md) - 変更されたコマンド: [Process activity](../commands/process-activity.md)、 [Process number](../commands/process-number.md) - - 廃止予定コマンド(置き換え): `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` 系コマンド ([var](../Concepts/variables.md#declaring-variables) および [#DECLARE/Function](../Concepts/parameters.md#declaring-parameters) 宣言)。 廃止予定のコマンドには"\*o\*" の接頭辞がつけられます。 廃止予定のコマンドには"\*o\*" の接頭辞がつけられます。 + - 廃止予定コマンド(置き換え): `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` 系コマンド ([var](../Concepts/variables.md#declaring-variables) および [#DECLARE/Function](../Concepts/parameters.md#declaring-parameters) 宣言)。 廃止予定のコマンドには"\*o\*" の接頭辞がつけられます。 - 4D Write Pro: - 新コマンド: [WP DELETE SECTION](../WritePro/commands/wp-delete-section.md) - 変更されたコマンド: [WP DELETE SUBSECTION](../WritePro/commands/wp-delete-subsection.md) および [WP RESET ATTRIBUTES](../WritePro/commands/wp-reset-attributes.md) @@ -187,9 +183,9 @@ title: リリースノート #### 動作の変更 -- [4Dランゲージ](../commands/command-index.md) よび [4D Write Pro ランゲージ](../WritePro/commands/command-index.md) のドキュメントが、developer.4d.com で利用できるようになりました。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 これらのドキュメントに関する新機能と変更点については、このリリースノートを参照ください。 +- [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** アクションが削除されました。 [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 Session の *describe* 権限は今後は無視されます。 +- [permission](../ORDA/privileges.md#permission-actions) の利用可能なアクションから、**describe** アクションが削除されました。 [`/rest/$catalog`](../REST/$catalog.md) URL へのアクセスは制御されなくなりました。 Session の *describe* 権限は今後は無視されます。 ### 4D 20 R6 @@ -197,7 +193,7 @@ title: リリースノート #### ハイライト -- [オブジェクト参照](../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#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 [`collection.query()`](../API/CollectionClass.md#query) は、[オブジェクト参照やコレクション参照をクエリの値](../API/CollectionClass.md#オブジェクト参照やコレクション参照で検索する) としてサポートするようになりました。 +- [オブジェクト参照](../Concepts/dt_object.md#オブジェクト演算子) と [コレクション参照](../Concepts/dt_collection.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 が追加されました。これらは、対象のエンティティセレクションから削除済みエンティティを除外したエンティティセレクションを新規に取得します。 @@ -236,7 +232,7 @@ title: リリースノート #### 動作の変更 -- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 +- *4D Internet Commands* および *4D for OCI* プラグインは、4Dインストーラーに含まれなくなりました。 これらのプラグインを入手するには、[**4D製品ダウンロードポータル**](https://product-download.4d.com/) に接続する必要があります。 - ストラクチャーエディターでテーブルやフィールドのグラフィカルな表示 (色、位置、順序など) に加えた変更は、`catalog_editor.json` という個別ファイルに保存されるようになりました。このファイルはプロジェクトの [`Sources`フォルダー](../Project/architecture.md#sources) に保存されます。 ### 4D 20 R4 @@ -261,8 +257,8 @@ title: リリースノート - 引数を宣言するための従来のシンタックス (例: `C_TEXT($1)` や `var $1 : Text`) は非推奨となり、コードの入力時、シンタックスチェック、コンパイル時に警告が生成されます。 - セレクション内レコードの削除後に、別レコードが新規作成された場合でも、セレクションの一貫性が保持されるようになりました ([このブログ記事](https://blog.4d.com/ja/4d-keeps-your-selections-of-records-consistent-regarding-deletion-of-records/) を参照ください)。 -- 更新された [OpenSSL ライブラリ](#ライブラリの一覧-4d-21-lts) では、デフォルトの 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) コマンド参照)。 そのため、"On REST authentication" データベースメソッドがパスワードを平文で扱えるようにすること(そのため第3引数は**False** となります)と、`Open datastore` の*connectionInfo* の"tls" オプションに**True** を渡すことで接続を暗号化するようにすることを忘れないようにして下さい。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../commands/open-datastore.md) コマンド参照)。 +- 更新された [OpenSSL ライブラリ](#ライブラリの一覧-4d-21-lts) では、デフォルトの SSL/TLS セキュリティレベルが 1 から 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 @@ -302,7 +298,7 @@ title: リリースノート - 新しい 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/))。 +- [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R2): 4D 20 R2 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2023/349/release-note-version-20r2/))。 #### 動作の変更 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md index b4f2eefcd2d5ae..978359cbd7e8fe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Users/handling_users_groups.md @@ -149,15 +149,15 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### Assigning a license to a group +### グループにライセンスを割り当てる -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. +プロジェクトにインストールされたあらゆる[拡張機能](../Extensions/overview.md) に、グループ権限を割り当てることができます。 これには全ての4D 製/サードパーティ製のプラグインやコンポーネントを含みます。 -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. +アクセス件をこれらの拡張機能に分散させることで、クライアント/サーバー環境においてこれらの拡張機能に対してあなたが所持しているライセンスの使用を管理することができます。 ある拡張機能へのアクセス可能グループに属していないユーザーは、その拡張機能をロードすることができません。 > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +ツールボックス内のグループページの"プラグイン"エリアには、4D アプリケーションによってロードされた拡張機能のうち[ライセンスを必要とする](../Admin/licenses.md) ものが全て一覧表示されています。 拡張機能へのアクセス権をグループに与えるには、該当するオプションをチェックします。 ![](../assets/en/Users/plugins.png) 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 b6df49c9bd67f8..00b1c73410df7c 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 @@ -33,7 +33,7 @@ title: はじめに プロジェクトを再起動すると、4D View Pro コンポーネントは[Github 依存関係](../Project/components.md#githubの依存関係の追加)としてインストールされます。 -4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +4D View Pro はライセンスを必要とします。 この機能を使用するためには、[アプリケーション内においてライセンスを有効化して割り当てる](../../Users/handling_users_groups.md#グループにライセンスを割り当てる) 必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) From e81fc06a6c3545838ee141af1e14057673be4f20 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 9 Sep 2026 10:11:07 +0200 Subject: [PATCH 31/60] update interface --- i18n/en/code.json | 15 ++++++++ .../current.json | 36 +++++++++++++++++++ .../version-21-R4.json | 16 +++++++++ 3 files changed, 67 insertions(+) diff --git a/i18n/en/code.json b/i18n/en/code.json index f0eb13d43ade55..abd3370c63af26 100644 --- a/i18n/en/code.json +++ b/i18n/en/code.json @@ -882,5 +882,20 @@ "theme.docs.versionDropdown.notAvailable": { "message": "Page not available in this version\nOpening the default page instead", "description": "Tooltip for version dropdown items where the current page does not exist" + }, + "Database Structure": { + "message": "Database Structure" + }, + "Methods": { + "message": "Methods" + }, + "XML Processing": { + "message": "XML Processing" + }, + "Standard actions": { + "message": "Standard actions" + }, + "Drag and Drop": { + "message": "Drag and Drop" } } diff --git a/i18n/en/docusaurus-plugin-content-docs/current.json b/i18n/en/docusaurus-plugin-content-docs/current.json index b4e7b410ce10e9..29e186fa7295f5 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current.json +++ b/i18n/en/docusaurus-plugin-content-docs/current.json @@ -1634,5 +1634,41 @@ "sidebar.docs.doc.Drag and Drop": { "message": "Drag and Drop", "description": "The label for the doc item 'Drag and Drop' in sidebar 'docs', linking to the doc Desktop/drag-and-drop" + }, + "sidebar.docs.category.Records & Selections (legacy data access)": { + "message": "Records & Selections (legacy data access)", + "description": "The label for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.title": { + "message": "Records & Selections (legacy data access)", + "description": "The generated-index page title for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.description": { + "message": "Legacy data access based upon records, selections, and sets.", + "description": "The generated-index page description for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin": { + "message": "Server & Admin", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "Administration", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "How to monitor your 4D applications", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server": { + "message": "4D Server", + "description": "The label for category '4D Server' in sidebar 'docs'" + }, + "sidebar.docs.category.Administration Window": { + "message": "Administration Window", + "description": "The label for category 'Administration Window' in sidebar 'docs'" + }, + "sidebar.docs.category.Windows Features": { + "message": "Windows Features", + "description": "The label for category 'Windows Features' in sidebar 'docs'" } } diff --git a/i18n/en/docusaurus-plugin-content-docs/version-21-R4.json b/i18n/en/docusaurus-plugin-content-docs/version-21-R4.json index e5f599469d9248..b110e32510ba01 100644 --- a/i18n/en/docusaurus-plugin-content-docs/version-21-R4.json +++ b/i18n/en/docusaurus-plugin-content-docs/version-21-R4.json @@ -822,5 +822,21 @@ "sidebar.docs.doc.Data Collection": { "message": "Data Collection", "description": "The label for the doc item 'Data Collection' in sidebar 'docs', linking to the doc Admin/data-collect" + }, + "sidebar.docs.category.Server & Admin": { + "message": "Server & Admin", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "Administration", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "How to monitor your 4D applications", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server Window": { + "message": "4D Server Window", + "description": "The label for category '4D Server Window' in sidebar 'docs'" } } From 34bf95819ea3f9bafa329cd9e98fde53087c3774 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 9 Sep 2026 19:07:11 +0200 Subject: [PATCH 32/60] fixed sax and defer --- docs/commands/theme/Interruptions.md | 2 ++ docs/language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- versioned_docs/version-21-R4/commands/theme/Interruptions.md | 2 ++ .../language-legacy/XML SAX/sax-open-xml-element-arrays.md | 2 +- 13 files changed, 15 insertions(+), 11 deletions(-) diff --git a/docs/commands/theme/Interruptions.md b/docs/commands/theme/Interruptions.md index 98365b7bd2c4c0..70f03074e6d403 100644 --- a/docs/commands/theme/Interruptions.md +++ b/docs/commands/theme/Interruptions.md @@ -11,6 +11,8 @@ slug: /commands/theme/Interruptions |[](../../commands/abort)
| |[](../../commands/assert)
| |[](../../commands/asserted)
| +|[](../../commands/defer)
| +|[](../../commands/deferred-formulas)
| |[](../../commands/filter-event)
| |[](../../commands/get-assert-enabled)
| |[](../../commands/last-errors)
| diff --git a/docs/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/docs/language-legacy/XML SAX/sax-open-xml-element-arrays.md index e24c11ad27c37d..08b703d48496c4 100644 --- a/docs/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/docs/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md index e43138edcad5b1..0b5b77912c21c2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*arrayNomsAtrib* : Text array ; *arrayValoresAtrib* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*arrayNomsAtrib* : Text ; *arrayValoresAtrib* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*arrayNomsAtrib* : Text array ; *arrayValoresAtrib* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*arrayNomsAtrib* : Text ; *arrayValoresAtrib* : Text)} )
diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md index e43138edcad5b1..0b5b77912c21c2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*arrayNomsAtrib* : Text array ; *arrayValoresAtrib* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*arrayNomsAtrib* : Text ; *arrayValoresAtrib* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*arrayNomsAtrib* : Text array ; *arrayValoresAtrib* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*arrayNomsAtrib* : Text ; *arrayValoresAtrib* : Text)} )
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md index 9a7041b5dfd5cf..c7c5e829e4bba0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *balise* : Text {; ...(*tabNomsAttributs* : Text array ; *tabValeursAttributs* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *tabNomsAttributs2* : Time ; *tabValeursAttributs2* : Text {; ...(*tabNomsAttributsN* : Text ; *tabValeursAttributsN* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *balise* : Text {; ...(*tabNomsAttributs* : Text array ; *tabValeursAttributs* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *tabNomsAttributs2* : Time ; *tabValeursAttributs2* : Text {; ...(*tabNomsAttributsN* : Text ; *tabValeursAttributsN* : Text)} )
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md index 9a7041b5dfd5cf..c7c5e829e4bba0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *balise* : Text {; ...(*tabNomsAttributs* : Text array ; *tabValeursAttributs* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *tabNomsAttributs2* : Time ; *tabValeursAttributs2* : Text {; ...(*tabNomsAttributsN* : Text ; *tabValeursAttributsN* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *balise* : Text {; ...(*tabNomsAttributs* : Text array ; *tabValeursAttributs* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *tabNomsAttributs2* : Time ; *tabValeursAttributs2* : Text {; ...(*tabNomsAttributsN* : Text ; *tabValeursAttributsN* : Text)} )
diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md index 3fda0968f80ae6..d3fbe59858b49c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} )
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md index 3fda0968f80ae6..d3fbe59858b49c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} )
diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md index 86161ad71ab6e3..601ed807542638 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*atribNomesArray* : Text array ; *attribValuesArray* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*atribNomesArray* : Text ; *attribValuesArray* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*atribNomesArray* : Text array ; *attribValuesArray* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*atribNomesArray* : Text ; *attribValuesArray* : Text)} )
diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md index 86161ad71ab6e3..601ed807542638 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*atribNomesArray* : Text array ; *attribValuesArray* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*atribNomesArray* : Text ; *attribValuesArray* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*atribNomesArray* : Text array ; *attribValuesArray* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *documento* : Time ; *etiqueta* : Text {; ...(*atribNomesArray* : Text ; *attribValuesArray* : Text)} )
diff --git a/versioned_docs/version-21-R3/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/versioned_docs/version-21-R3/language-legacy/XML SAX/sax-open-xml-element-arrays.md index e24c11ad27c37d..08b703d48496c4 100644 --- a/versioned_docs/version-21-R3/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/versioned_docs/version-21-R3/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} )
diff --git a/versioned_docs/version-21-R4/commands/theme/Interruptions.md b/versioned_docs/version-21-R4/commands/theme/Interruptions.md index 98365b7bd2c4c0..70f03074e6d403 100644 --- a/versioned_docs/version-21-R4/commands/theme/Interruptions.md +++ b/versioned_docs/version-21-R4/commands/theme/Interruptions.md @@ -11,6 +11,8 @@ slug: /commands/theme/Interruptions |[](../../commands/abort)
| |[](../../commands/assert)
| |[](../../commands/asserted)
| +|[](../../commands/defer)
| +|[](../../commands/deferred-formulas)
| |[](../../commands/filter-event)
| |[](../../commands/get-assert-enabled)
| |[](../../commands/last-errors)
| diff --git a/versioned_docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md b/versioned_docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md index e24c11ad27c37d..08b703d48496c4 100644 --- a/versioned_docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md +++ b/versioned_docs/version-21-R4/language-legacy/XML SAX/sax-open-xml-element-arrays.md @@ -5,7 +5,7 @@ slug: /commands/sax-open-xml-element-arrays displayed_sidebar: docs --- -**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
*SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} ) +**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text array ; *attribValuesArray* : Array)} )
**SAX OPEN XML ELEMENT ARRAYS** ( *document* : Time ; *tag* : Text {; ...(*attribNamesArray* : Text ; *attribValuesArray* : Text)} )
From d7f90a587db3553fdd53b68dec1fd09e6b89e939 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 10 Sep 2026 11:59:18 +0200 Subject: [PATCH 33/60] New Crowdin updates (#3418) * handling_users_groups.md Japanese * writeprointerface.md Japanese * properties_markers.md Spanish * exit.md Spanish * properties_markers.md Japanese * handling_users_groups.md Japanese * writeprointerface.md Japanese * properties_markers.md French * menus.md Spanish * remotedatastores.md Japanese * properties_markers.md Portuguese, Brazilian * authusers.md Japanese * getting-started.md Japanese * code.json French * current.json French * version-21-r4.json French * code.json Spanish * current.json Spanish * version-21-r4.json Spanish * code.json Japanese * current.json Japanese * collectionclass.md Japanese * directory.md Japanese * smtptransporterclass.md Japanese * createstylesheet.md Japanese * $filter.md Japanese * version-21-r4.json Japanese * code.json Portuguese, Brazilian * current.json Portuguese, Brazilian * version-21-r4.json Portuguese, Brazilian * menus.md Spanish * code.json Spanish * current.json Spanish * $filter.md Japanese * interruptions.md French * interruptions.md French * interruptions.md Spanish * interruptions.md Spanish * interruptions.md Japanese * interruptions.md Japanese * interruptions.md Portuguese, Brazilian * interruptions.md Portuguese, Brazilian --- i18n/es/code.json | 15 +++ .../current.json | 36 ++++++ .../current/FormEditor/properties_Markers.md | 2 +- .../current/commands/theme/Interruptions.md | 2 + .../current/server/exit.md | 18 +-- .../current/server/menus.md | 98 ++++++++--------- .../version-21-R4.json | 16 +++ .../commands/theme/Interruptions.md | 2 + i18n/fr/code.json | 15 +++ .../current.json | 36 ++++++ .../current/FormEditor/properties_Markers.md | 2 +- .../current/commands/theme/Interruptions.md | 2 + .../version-21-R4.json | 16 +++ .../commands/theme/Interruptions.md | 2 + i18n/ja/code.json | 15 +++ .../current.json | 36 ++++++ .../current/FormEditor/properties_Markers.md | 2 +- .../current/ORDA/remoteDatastores.md | 8 +- .../current/REST/authUsers.md | 4 +- .../current/Users/handling_users_groups.md | 8 +- .../current/ViewPro/getting-started.md | 2 +- .../current/WritePro/writeprointerface.md | 104 +++++++++--------- .../current/commands/theme/Interruptions.md | 2 + .../version-20/API/CollectionClass.md | 4 +- .../version-20/API/Directory.md | 2 +- .../version-20/API/SMTPTransporterClass.md | 2 +- .../version-20/FormEditor/createStylesheet.md | 2 +- .../version-20/REST/$filter.md | 6 +- .../version-20/Users/handling_users_groups.md | 8 +- .../version-21-R4.json | 16 +++ .../WritePro/writeprointerface.md | 30 ++--- .../commands/theme/Interruptions.md | 2 + i18n/pt/code.json | 15 +++ .../current.json | 36 ++++++ .../current/FormEditor/properties_Markers.md | 2 +- .../current/commands/theme/Interruptions.md | 2 + .../version-21-R4.json | 16 +++ .../commands/theme/Interruptions.md | 2 + 38 files changed, 436 insertions(+), 152 deletions(-) diff --git a/i18n/es/code.json b/i18n/es/code.json index 7084eb4d4b7d80..59329629e493d6 100644 --- a/i18n/es/code.json +++ b/i18n/es/code.json @@ -882,5 +882,20 @@ "theme.docs.versionDropdown.notAvailable": { "message": "La página no está disponible en esta versión\nEn su lugar, se abrirá la página predeterminada.", "description": "Tooltip for version dropdown items where the current page does not exist" + }, + "Database Structure": { + "message": "Estructura de la base de datos" + }, + "Methods": { + "message": "Métodos" + }, + "XML Processing": { + "message": "Procesamiento de XML" + }, + "Standard actions": { + "message": "Acciones estándar" + }, + "Drag and Drop": { + "message": "Arrastrar y soltar" } } diff --git a/i18n/es/docusaurus-plugin-content-docs/current.json b/i18n/es/docusaurus-plugin-content-docs/current.json index 46d2e73c0ab0c5..f8beda48c14069 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current.json +++ b/i18n/es/docusaurus-plugin-content-docs/current.json @@ -1634,5 +1634,41 @@ "sidebar.docs.doc.Drag and Drop": { "message": "Arrastrar y soltar", "description": "The label for the doc item 'Drag and Drop' in sidebar 'docs', linking to the doc Desktop/drag-and-drop" + }, + "sidebar.docs.category.Records & Selections (legacy data access)": { + "message": "Registros y selecciones (acceso a datos heredado)", + "description": "The label for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.title": { + "message": "Registros y selecciones (acceso a datos heredado)", + "description": "The generated-index page title for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.description": { + "message": "Acceso a datos heredado basado en registros, selecciones y conjuntos.", + "description": "The generated-index page description for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin": { + "message": "Servidor y administrador", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "Administración", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "Cómo controlar sus aplicaciones 4D", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server": { + "message": "4D Server", + "description": "The label for category '4D Server' in sidebar 'docs'" + }, + "sidebar.docs.category.Administration Window": { + "message": "Ventana de administración", + "description": "The label for category 'Administration Window' in sidebar 'docs'" + }, + "sidebar.docs.category.Windows Features": { + "message": "Características de Windows", + "description": "The label for category 'Windows Features' in sidebar 'docs'" } } diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index 7215dd6cb0b487..652323e6a8d6e2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,7 +33,7 @@ El área Detalle del formulario se muestra en la pantalla y se imprime una vez p Puede hacer el área Detalle más pequeña o más grande. Lo que coloque en el área Detalle se muestra o imprime una vez por cada registro. Lo más habitual es colocar campos o variables en el área Detalle para que se muestre o imprima la información de cada registro, pero también se pueden colocar otros elementos en el área Detalle. -Los siguientes objetos de formulario **no son compatibles** en el área Detalle (i.e. no se repiten para cada registro): [Áreas Web](../FormObjects/webArea_overview.md), [Áreas 4D View Pro](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [listas jerárquicas](../FormObjects/list_overview.md), [separadores](../FormObjects/splitters.md) y [subformularios](../FormObjects/subform_overview.md). +Los siguientes objetos de formulario **no son compatibles** en el área Detalle (i.e. no se repiten para cada registro): [Áreas Web](../FormObjects/webArea_overview.md), [Áreas 4D View Pro](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [listas jerárquicas](../FormObjects/list_overview.md), [separadores](../FormObjects/splitters.md),[subformularios](../FormObjects/subform_overview.md) y [áreas de plug-in](../FormObjects/pluginArea_overview.md). #### Gramática JSON diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md index 74f5e8ccdf1039..1c4519a97ccc50 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md @@ -10,6 +10,8 @@ slug: /commands/theme/Interruptions | [](../../commands/abort)
| | [](../../commands/assert)
| | [](../../commands/asserted)
| +| [](../../commands/defer)
| +| [](../../commands/deferred-formulas)
| | [](../../commands/filter-event)
| | [](../../commands/get-assert-enabled)
| | [](../../commands/last-errors)
| diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/exit.md b/i18n/es/docusaurus-plugin-content-docs/current/server/exit.md index 4f8db431cf56ce..7203df2d4d4348 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/exit.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/exit.md @@ -35,30 +35,30 @@ El servidor solo se cerrará después de que todos los clientes activos se hayan :::note -A *sleeping client* refers to a remote 4D application on a machine that has switched to [sleep mode](../ServerWindow/users.md#managing-sleeping-users) while the connection to the server machine was still active. +Un *cliente inactivo* se refiere a una aplicación 4D remota en una máquina que ha pasado a [modo inactivo](../ServerWindow/users.md#managing-sleeping-users) mientras la conexión a la máquina servidor seguía activa. ::: -When you choose one of these options, the following window appears, which indicates the number of clients that are still connected: +Cuando elige una de estas opciones, aparece la siguiente ventana, lo que indica el número de clientes que todavía están conectados: ![](../assets/en/server/exit-3.png) -On each 4D client machine, the following window appears displaying a default message: +En cada equipo cliente 4D, aparece la siguiente ventana con un mensaje predeterminado: ![](../assets/en/server/exit-4.png) -If you entered a custom message in the 4D Server shutdown dialog box, it is displayed instead of the default message on each client machine. Por ejemplo: +Si introduce un mensaje personalizado en el cuadro de diálogo de apagado de 4D Server, este se mostrará en cada máquina cliente en lugar del mensaje por defecto. Por ejemplo: ![](../assets/en/server/exit-5.png) -- **Disconnect all clients and quit** +- **Desconectar todos los clientes y salir** -The server ends all processes and all connections and quits after a few seconds. +El servidor termina todos los procesos y todas las conexiones y se cierra después de unos segundos. :::note Notas -- In all cases, if no client is connected to the server when the shutting down window is validated, 4D Server quits immediately. -- If you click **Cancel** in the 4D Server shutdown window, the process of shutting down the server is canceled. -- You can close the database (and disconnect the clients) without quitting the 4D Server using the **Close project...** menu command. +- En todos los casos, si no hay ningún cliente conectado al servidor en el momento de validar la ventana de apagado, 4D Server se cierra inmediatamente. +- Si hace clic en **Cancelar** en la ventana de apagado de 4D Server, el proceso de apagado del servidor se cancela. +- Puede cerrar el proyecto (y desconectar los clientes) sin salir de 4D Server utilizando el comando de menú **Cerrar el proyecto...**. ::: \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/menus.md b/i18n/es/docusaurus-plugin-content-docs/current/server/menus.md index da875e43426e9f..32d10d0613a4d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/menus.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/menus.md @@ -3,134 +3,134 @@ id: menus title: Menús --- -The interface of the 4D Server application is made up of the following menus: **File**, **Edit**, **Window**, **Help**. Under macos, certain commands are found in the **4D Server** menu (application menu). +La interfaz de la aplicación 4D Server está compuesta por los siguientes menús: **Archivo**, **Edición**, **Ventana**, **Ayuda**. En macOS, algunos comandos se encuentran en el menú **4D Server** (menú aplicación). ## File ### New -This hierarchical command has submenus that can be used to [create a project](../GettingStarted/creating.md#creating-a-project) or a new data file on the server machine. +Este comando jerárquico cuenta con submenús que se pueden utilizar para [crear un proyecto](../GettingStarted/creating.md#creating-a-project) o un nuevo archivo de datos en la máquina servidor. -### Open.../Open Recent +### Abrir.../Abrir Reciente -These commands can be used to [open a project with 4D Server](../Desktop/clientServer.md#opening-a-remote-project). The **Open Recent>** command displays a submenu listing projects that have been opened recently by 4D Server. To reset this menu, choose the **Clear Menu** command. +Estos comandos se pueden utilizar para [abrir un proyecto con 4D Server](../Desktop/clientServer.md#opening-a-remote-project). El comando **Abrir recientes>** muestra un submenú con la lista de proyectos que 4D Server ha abierto recientemente. Para restablecer este menú, seleccione el comando **Limpiar menú**. -### Close Project... +### Cerrar el proyecto... -This command closes the current project without exiting the 4D Server application. When you choose this command, the server shutdown dialog box appears so that you can [set the disconnection mode](../server/exit.md) for any connected clients. +Este comando cierra el proyecto actual sin salir de la aplicación 4D Server. Al seleccionar este comando, aparece el cuadro de diálogo de apagado del servidor para que pueda [definir el modo de desconexión](../server/exit.md) de los clientes que estén conectados. -### Close Window +### Cerrar ventana -This command closes the window in the foreground of the 4D Server application. +Este comando cierra la ventana que se encuentra en primer plano en la aplicación 4D Server. -### Close All Windows +### Cerrar todas las ventanas -This command closes all the windows of the 4D Server application. Note that in this case only the fact that the **Close Project...** command is activated in the **File** menu will indicate whether the project is still published. +Este comando cierra todas las ventanas de la aplicación 4D Server. Tenga en cuenta que, en este caso, solo el hecho de que el comando **Cerrar el proyecto...** esté habilitado en el menú **Archivo** indicará si el proyecto sigue publicado. -### Register Current Application as Service/Unregister Current Application/Unregister All Server Services +### Registrar la aplicación actual como un servicio / Anular el registro de la aplicación actual / Anular el registro de todos los servicios del servidor -(Commands available under Windows) These commands are used to manage the [registering of the application as a Service](./service.md). +(Comandos disponibles en Windows) Estos comandos permiten gestionar el [registro de la aplicación como servicio](./service.md). -### Flush Data Buffers +### Vaciar los búferes de datos -This command can be used to "force" the saving of data in the cache to the disk. By default, 4D Server automatically flushes the cache after a [time limit set in the Settings](../settings/database.md#database-cache-settings). +Este comando se puede utilizar para "forzar" el guardado de los datos de la caché en el disco. Por defecto, 4D Server vacía automáticamente la caché transcurrido el [límite de tiempo establecido en la configuración](../settings/database.md#database-cache-settings). ### Copia de seguridad -This command lets you launch a back-up of the project at any time. When you select this command, the following dialog box appears: +Este comando permite iniciar una copia de seguridad del proyecto en cualquier momento. Al seleccionar este comando, aparece el siguiente cuadro de diálogo: ![](../assets/en/server/backup.png) -- The **Backup** button immediately launches a backup that takes the [parameters set in the Settings](../settings/backup.md) of the application into account (files to be backed up, location of archives, number of sets kept, etc.). -- The **Database Properties** button opens the [Backup theme of the Settings](../settings/backup.md), which lets you view and, if necessary, modify the current backup settings. -- The **Cancel** button interrupts the backup process. +- El botón **Copia de seguridad** inicia inmediatamente una copia de seguridad que tiene en cuenta las [opciones definidas en la Configuración](../settings/backup.md) de la aplicación (archivos incluidos en la copia de seguridad, ubicación de los archivos, número de conjuntos que se conservan, etc.). +- El botón **Propiedades de la base de datos** abre la [sección Copia de seguridad de la configuración](../settings/backup.md), que le permite ver y, si es necesario, modificar los parámetros actuales de la copia de seguridad. +- El botón **Cancelar** interrumpe el proceso de copia de seguridad. ### Restore... -This command displays an open file dialog box so that you can select the archive to restore. +Este comando muestra un cuadro de diálogo para abrir un archivo, de modo que pueda seleccionar la copia de seguridad que desea restaurar. ### Salir -This command lets you [close the 4D Server application](./exit.md). +Este comando le permite [cerrar la aplicación 4D Server](./exit.md). :::note -Under macos, the **Quit** command is located in the **4D Server** menu (application menu). +Bajo macOS, el comando **Salir** se encuentra en el menú **4D Server** (menú aplicación). ::: ## Acción de edición -The **Edit** menu of 4D Server includes standard copy/paste commands, the **Show Clipboard** command, etc. +El menú **Edición** de 4D Server incluye los comandos clásicos de copiar/pegar, el comando **Mostrar el portapapeles**, etc. -This menu also includes the **Preferences...** (under Windows) and **Settings** command, which display the corresponding dialog boxes of the application. These dialog boxes are used to define developer's [preferences](../Preferences/overview.md) and various [settings](../settings/overview.md) of the project. +Este menú también incluye los comandos **Preferencias...** (en Windows) y **Ajustes**, que muestran los cuadros de diálogo correspondientes de la aplicación. Estos cuadros de diálogo sirven para definir las [preferencias](../Preferences/overview.md) del desarrollador y diversos [ajustes](../settings/overview.md) del proyecto. :::note -Under macos, the **Preferences...** command is located in the **4D Server** menu (application menu). +En macOS, el comando **Preferencias...** se encuentra en el menú **4D Server** (menú aplicación). ::: -The **Edit** menu also includes the **Detach Debugger** and **Attach Debugger At Startup** commands, allowing you to control the debugging of the code: +El menú **Edición** también incluye los comandos **Desconectar depurador** y **Conectar depurador al iniciar**, que le permiten controlar la depuración del código: -### Detach Debugger +### Desconectar depurador -If you select this option, the debugger can be attached to a remote 4D. The menu command becomes **Attach Debugger**, so that you can attach the debugger back to the server (if not still attached to a remote 4D). +Si selecciona esta opción, el depurador se puede adjuntar a un 4D remoto. El comando del menú pasa a ser **Conectar depurador**, de modo que pueda volver a conectar el depurador al servidor (si aún no está conectado a un cliente 4D remoto). -### Attach Debugger At Startup +### Conectar el depurador al iniciar -(selected by default) This option automatically attaches the debugger to the server each time the project is launched. Deselect this option if you want to attach permanently the debugger to a remote 4D. +(seleccionada por defecto) Esta opción conecta automáticamente el depurador al servidor cada vez que se inicia el proyecto. Deseleccione esta opción si desea conectar permanentemente el depurador a un 4D Remote. -*Warning*: If this option is selected for a server which is subsequently launched in headless mode, it will not be possible to use the debugger on this server. +*Advertencia*: si se selecciona esta opción para un servidor que posteriormente se inicie en modo sin interfaz gráfica, no será posible utilizar el depurador en dicho servidor. -For more information, please refer to [Debugging from Remote Machines](../Debugging/debugging-remote.md). +Para más información, consulte [Depuración desde máquinas remotas](../Debugging/debugging-remote.md). -## Window +## Ventana -The first part of the **Window** menu includes standard commands for organizing workspace windows (these commands differ depending on the platform). +La primera parte del menú **Ventana** incluye comandos estándar para organizar las ventanas del espacio de trabajo (estos comandos varían en función de la plataforma). -It also contains display commands for windows specific to 4D Server: +También contiene comandos de visualización para ventanas específicas de 4D Server: ### Administración -This command displays the [4D Server Administration window](../ServerWindow/overview.md) if it has been closed or minimized. +Este comando muestra la [ventana de administración de 4D Server](../ServerWindow/overview.md) si se ha cerrado o minimizado. -### Project Dependencies +### Dependencias del proyecto -Displays the [Dependency manager](../Project/components.md). +Muestra el [Gestor de dependencias](../Project/components.md). ### Explorador de ejecución -This command displays the 4D Server Runtime Explorer window. +Este comando muestra la ventana del Explorador de ejecución de 4D Server. ![](../assets/en/server/runtime-explorer.png) -The Runtime Explorer enables you to view the status of the database various structural elements and to check that the available resources are correctly managed. The Runtime Explorer is particularly useful while developing or analyzing a database. +El Explorador de ejecución le permite ver el estado de los diversos elementos estructurales de la base de datos y comprobar que los recursos disponibles se gestionen correctamente. El Explorador de ejecución es particularmente útil mientras se desarrolla o analiza una base de datos. -The Runtime Explorer window contains four pages that can be accessed by clicking on the following buttons: **Watch**, **Process**, **Break** and **Catch**. The Runtime Explorer works the same way in 4D Server and 4D. +La ventana del Explorador de ejecución contiene cuatro páginas a las que se puede acceder haciendo clic en los siguientes botones: **Evaluación**, **Procesos**, **Puntos de interrupción** y **Comandos interceptados**. El funcionamiento del Explorador de ejecución en 4D Server es idéntico al de 4D. -### Data Explorer in Browser +### Explorador de datos en el navegador -Displays the [Data Explorer](../Admin/dataExplorer.md) in your default browser. +Muestra el [Explorador de datos](../Admin/dataExplorer.md) en su navegador predeterminado. ### Qodly Studio -Displays the [Qodly Studio interface](https://developer.4d.com/qodly/4DQodlyPro/qodlyStudioInterface) in your default browser on the server machine. +Muestra la [interfaz de Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/qodlyStudioInterface) en su navegador predeterminado en el servidor. ### Vista previa de la aplicación Qodly -Displays the start page of your Qodly application in your default browser on the server machine. See [this section](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#preview-qodly-application) for more information. +Muestra la página de inicio de su aplicación Qodly en su navegador predeterminado en la máquina servidor. Ver [esta sección] (https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#preview-qodly-application) para más información. ## Ayuda -### Maintenance Security Center +### Centro de seguridad y mantenimiento -This command displays the [Maintenance and Security Center](../MSC/overview.md) (MSC) which groups together all the tools required for verification, analysis, maintenance, back-up, compacting and encryption of data and structure files. -This command is available even when no project is opened by 4D Server: in this case, it can be used to open a project in "maintenance mode" (it displays the standard open file dialog box so that you can designate the project to be opened). Maintenance mode is used more particularly for operations such as compacting or opening damaged projects. +Este comando muestra el [Centro de mantenimiento y seguridad](../MSC/overview.md) (CSM), que reúne todas las herramientas necesarias para la verificación, el análisis, el mantenimiento, la copia de seguridad, la compactación y el cifrado de los archivos de datos y de estructura. +Este comando está disponible incluso cuando no hay ningún proyecto abierto en 4D Server: en este caso, se puede utilizar para abrir un proyecto en "modo de mantenimiento" (muestra el cuadro de diálogo estándar de apertura de archivos para que pueda seleccionar el proyecto que desea abrir). El modo de mantenimiento se utiliza, en particular, para operaciones como la compactación o la apertura de proyectos dañados. -### Online documentation +### Documentación en línea -Opens the 4D documentation home page. +Abre la página de inicio de la documentación 4D. ### License manager... diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4.json b/i18n/es/docusaurus-plugin-content-docs/version-21-R4.json index c8b81da7adae49..1323acc529ecd4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4.json +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4.json @@ -822,5 +822,21 @@ "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.category.Server & Admin": { + "message": "Servidor y administrador", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "Administración", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "Cómo controlar sus aplicaciones 4D", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server Window": { + "message": "Ventana 4D Server", + "description": "The label for category '4D Server Window' in sidebar 'docs'" } } diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md index 74f5e8ccdf1039..1c4519a97ccc50 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md @@ -10,6 +10,8 @@ slug: /commands/theme/Interruptions | [](../../commands/abort)
| | [](../../commands/assert)
| | [](../../commands/asserted)
| +| [](../../commands/defer)
| +| [](../../commands/deferred-formulas)
| | [](../../commands/filter-event)
| | [](../../commands/get-assert-enabled)
| | [](../../commands/last-errors)
| diff --git a/i18n/fr/code.json b/i18n/fr/code.json index 9e3355825b35d3..8589ac34a3f220 100644 --- a/i18n/fr/code.json +++ b/i18n/fr/code.json @@ -882,5 +882,20 @@ "theme.docs.versionDropdown.notAvailable": { "message": "Page not available in this version\nOpening the default page instead", "description": "Tooltip for version dropdown items where the current page does not exist" + }, + "Database Structure": { + "message": "Structure de la base de données" + }, + "Methods": { + "message": "Méthodes" + }, + "XML Processing": { + "message": "XML Processing" + }, + "Standard actions": { + "message": "Actions standard" + }, + "Drag and Drop": { + "message": "Glisser-Déposer" } } diff --git a/i18n/fr/docusaurus-plugin-content-docs/current.json b/i18n/fr/docusaurus-plugin-content-docs/current.json index cbe20cabfe6da2..ef0520be2de52c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current.json +++ b/i18n/fr/docusaurus-plugin-content-docs/current.json @@ -1634,5 +1634,41 @@ "sidebar.docs.doc.Drag and Drop": { "message": "Glisser-Déposer", "description": "The label for the doc item 'Drag and Drop' in sidebar 'docs', linking to the doc Desktop/drag-and-drop" + }, + "sidebar.docs.category.Records & Selections (legacy data access)": { + "message": "Records & Selections (legacy data access)", + "description": "The label for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.title": { + "message": "Records & Selections (legacy data access)", + "description": "The generated-index page title for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.description": { + "message": "Legacy data access based upon records, selections, and sets.", + "description": "The generated-index page description for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin": { + "message": "Serveur & Admin", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "Administration", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "Comment contrôler vos applications 4D", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server": { + "message": "4D Server", + "description": "The label for category '4D Server' in sidebar 'docs'" + }, + "sidebar.docs.category.Administration Window": { + "message": "Administration Window", + "description": "The label for category 'Administration Window' in sidebar 'docs'" + }, + "sidebar.docs.category.Windows Features": { + "message": "Windows Features", + "description": "The label for category 'Windows Features' in sidebar 'docs'" } } diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index cd4f88dd83c102..b6987cb8820325 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,7 +33,7 @@ La zone de corps (ou de détail) du formulaire est affichée à l'écran et impr Vous agrandissez ou réduisez la taille de cette zone en faisant glisser le taquet C vers le bas ou vers le haut. Tout élément placé dans cette zone est affiché ou imprimé une fois pour chacun des enregistrements. La plupart du temps, vous placez des champs ou des variables dans cette zone afin que les données de chaque enregistrement soient imprimées ou affichées, mais il est aussi possible d’y placer d’autres éléments. -The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). +The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), [subforms](../FormObjects/subform_overview.md), and [plug-in areas](../FormObjects/pluginArea_overview.md). #### Grammaire JSON diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md index f1ed2c2e8abb11..fa11349bc74fb2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md @@ -10,6 +10,8 @@ slug: /commands/theme/Interruptions | [](../../commands/abort)
| | [](../../commands/assert)
| | [](../../commands/asserted)
| +| [](../../commands/defer)
| +| [](../../commands/deferred-formulas)
| | [](../../commands/filter-event)
| | [](../../commands/get-assert-enabled)
| | [](../../commands/last-errors)
| diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4.json b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4.json index 665a401551cd6b..a09db3b79cc9a7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4.json +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4.json @@ -822,5 +822,21 @@ "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.category.Server & Admin": { + "message": "Serveur & Admin", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "Administration", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "Comment contrôler vos applications 4D", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server Window": { + "message": "Fenêtre de 4D Server", + "description": "The label for category '4D Server Window' in sidebar 'docs'" } } diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md index f1ed2c2e8abb11..fa11349bc74fb2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md @@ -10,6 +10,8 @@ slug: /commands/theme/Interruptions | [](../../commands/abort)
| | [](../../commands/assert)
| | [](../../commands/asserted)
| +| [](../../commands/defer)
| +| [](../../commands/deferred-formulas)
| | [](../../commands/filter-event)
| | [](../../commands/get-assert-enabled)
| | [](../../commands/last-errors)
| diff --git a/i18n/ja/code.json b/i18n/ja/code.json index 69733d9e2f1414..4467370385b422 100644 --- a/i18n/ja/code.json +++ b/i18n/ja/code.json @@ -882,5 +882,20 @@ "theme.docs.versionDropdown.notAvailable": { "message": "このバージョンでは、このページは利用できません\n代わりにデフォルトのページが表示されます", "description": "Tooltip for version dropdown items where the current page does not exist" + }, + "Database Structure": { + "message": "データベース・ストラクチャー" + }, + "Methods": { + "message": "メソッド" + }, + "XML Processing": { + "message": "XML Processing" + }, + "Standard actions": { + "message": "標準アクション" + }, + "Drag and Drop": { + "message": "ドラッグ&ドロップ" } } diff --git a/i18n/ja/docusaurus-plugin-content-docs/current.json b/i18n/ja/docusaurus-plugin-content-docs/current.json index ca26d4f99e7bf3..aa3f4bcb389d5f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current.json +++ b/i18n/ja/docusaurus-plugin-content-docs/current.json @@ -1634,5 +1634,41 @@ "sidebar.docs.doc.Drag and Drop": { "message": "ドラッグ&ドロップ", "description": "The label for the doc item 'Drag and Drop' in sidebar 'docs', linking to the doc Desktop/drag-and-drop" + }, + "sidebar.docs.category.Records & Selections (legacy data access)": { + "message": "Records & Selections (legacy data access)", + "description": "The label for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.title": { + "message": "Records & Selections (legacy data access)", + "description": "The generated-index page title for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.description": { + "message": "Legacy data access based upon records, selections, and sets.", + "description": "The generated-index page description for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin": { + "message": "サーバー & 管理", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "管理", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "4Dアプリケーションの管理", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server": { + "message": "4D Server", + "description": "The label for category '4D Server' in sidebar 'docs'" + }, + "sidebar.docs.category.Administration Window": { + "message": "Administration Window", + "description": "The label for category 'Administration Window' in sidebar 'docs'" + }, + "sidebar.docs.category.Windows Features": { + "message": "Windows Features", + "description": "The label for category 'Windows Features' in sidebar 'docs'" } } diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index 8ecf1b6cacaafc..2f341d2dda40ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,7 +33,7 @@ title: マーカー 詳細エリアの大きさは変更することができます。 詳細エリアに配置したオブジェクトはレコード毎に表示または印刷されます。 主にフィールドや変数を配置して、各レコードの情報を表示/印刷しますが、他のオブジェクトを配置することもできます。 -以下のフォームオブジェクトは詳細エリアでは**サポートされていません** (つまり各レコードに対しては繰り返されません): [Web エリア](../FormObjects/webArea_overview.md)、[4D View Pro エリア](../FormObjects/viewProArea_overview.md)、[リストボックス](../FormObjects/listbox_overview.md)、[階層リスト](../FormObjects/list_overview.md)、[スプリッター](../FormObjects/splitters.md)、および[サブフォーム](../FormObjects/subform_overview.md)。 +以下のフォームオブジェクトは詳細エリアでは**サポートされていません** (つまり各レコードに対しては繰り返されません): [Web エリア](../FormObjects/webArea_overview.md)、[4D View Pro エリア](../FormObjects/viewProArea_overview.md)、[リストボックス](../FormObjects/listbox_overview.md)、[階層リスト](../FormObjects/list_overview.md)、[スプリッター](../FormObjects/splitters.md)、[サブフォーム](../FormObjects/subform_overview.md)、および[プラグインエリア](../FormObjects/pluginArea_overview.md)。 #### JSON 文法 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 10e008d139b9b9..a069db6b75d5cc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -7,7 +7,7 @@ title: リモートデータストア ローカルの 4Dアプリケーションは、[`Open datastore`](../commands/open-datastore) コマンドを呼び出すことで、リモートデータストアに接続し参照します。 -リモートマシン上で、4D は [セッション](../WebServer/sessions.md) を開いて、`Open datastore` を呼び出したアプリケーションからのリクエストを処理します。 Requests internally use the [REST API](../REST/gettingStarted.md), which means that they require [**authentication** and **available licenses**](../REST/authUsers.md). +リモートマシン上で、4D は [セッション](../WebServer/sessions.md) を開いて、`Open datastore` を呼び出したアプリケーションからのリクエストを処理します。 リクエストは内部的には [REST API](../REST/gettingStarted.md) を使用し、これには [**認証** および **利用可能なライセンス**](../REST/authUsers.md) が必要となります。 ## Webセッションの使用 @@ -27,11 +27,11 @@ title: リモートデータストア ### セッションの監視 -Sessions for datastore access are shown in the 4D Server administration window as [**REST sessions**](../ServerWindow/sessions.md#rest-web-and-soap-sessions) with **4D** as user agent. +データストアアクセスのセッションは4D Server 管理ウィンドウにて、ユーザーエージェントが **4D** である[**REST セッション**](../ServerWindow/sessions.md#rest-web-and-soap-sessions) として表示されます。 ## セッションの終了 -[セッションの有効期限](../WebServer/sessions.md#セッションの有効期限) の段落で説明されているように、アクティビティなしにタイムアウト時間が経過すると、4D は自動的にセッションを終了します。 The default timeout is 60 mn, but this value can be modified using the *connectionInfo* parameter of the [`Open datastore`](../commands/open-datastore) command. +[セッションの有効期限](../WebServer/sessions.md#セッションの有効期限) の段落で説明されているように、アクティビティなしにタイムアウト時間が経過すると、4D は自動的にセッションを終了します。 デフォルトのタイムアウト時間は60分です。ですが、[`Open datastore`](../commands/open-datastore) コマンドの*connectionInfo* 引数を使用することでこの値を変更することができます。 セッション終了後にリクエストがリモートデータストアに送信された場合、セッションは可能な限り (ライセンスがあり、サーバーが停止していない、など) 再開されます。 ただしセッションが再開しても、ロックやトランザクションに関わるコンテキストは失われていることに留意が必要です (後述参照)。 @@ -40,7 +40,7 @@ Sessions for datastore access are shown in the 4D Server administration window a エンティティロッキングやトランザクションに関連した ORDA 機能は、ORDA のクライアント / サーバーモードと同様に、リモートデータストアにおいてもプロセスレベルで管理されます: - あるプロセスがリモートデータストアのエンティティをロックした場合、セッションの共有如何に関わらず、他のすべてのプロセスに対してそのエンティティはロックされた状態です ([エンティティロッキング](entities.md#エンティティロッキング) 参照)。 同一のレコードに対応する複数のエンティティが 1つのプロセスによってロックされている場合、同プロセス内でそれらがすべてアンロックされないと、ロックは解除されません。 なお、ロックされたエンティティに対する参照がメモリ上に存在しなくなった場合にも、ロックは解除されます。 -- Transactions can be started, validated or cancelled separately on each remote datastore using the [`dataStore.startTransaction()`](../API/DataStoreClass.md#starttransaction), [`dataStore.cancelTransaction()`](../API/DataStoreClass.md#canceltransaction), and [`dataStore.validateTransaction()`](../API/DataStoreClass.md#starttransaction) functions. これらの操作は他のデータストアには影響しません。 +- トランザクションは、 [`dataStore.startTransaction()`](../API/DataStoreClass.md#starttransaction)、[`dataStore.cancelTransaction()`](../API/DataStoreClass.md#canceltransaction)、および [`dataStore.validateTransaction()`](../API/DataStoreClass.md#starttransaction) 関数を使用することで、各リモートデータストアにおいて個別に開始、検証、またはキャンセルすることができます。 これらの操作は他のデータストアには影響しません。 - クラシックな4D ランゲージコマンド([`START TRANSACTION`](../commands/start-transaction)、 [`VALIDATE TRANSACTION`](../commands/validate-transaction)、 [`CANCEL TRANSACTION`](../commands/cancel-transaction)) は(`ds` から返される)メインのデータストアに対してのみ適用されます。 リモートデータストアのエンティティがあるプロセスのトランザクションで使われている場合、セッションの共有如何に関わらず、他のすべてのプロセスはそのエンティティを更新できません。 - 次の場合にエンティティのロックは解除され、トランザクションはキャンセルされます: 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 ebc7a1082b7a68..d47962a98c721c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -28,9 +28,9 @@ title: ユーザーとセッション 記述的RESTリクエスト は、ライセンスを消費する Webユーザーセッションが開かれていなくても、常にサーバーで処理されます。 この場合、それらは "ゲスト" セッションを介して処理されます。 2. 事前に用意した [`authentify()` 関数](#function-authentify) を呼び出し、ユーザーの資格情報をチェックして、適切な権限で[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出します。 `authentify()` は公開された [データストアクラス関数](../ORDA/ordaClasses.md#datastore-クラス) でなければなりません。 - The function can be called either directly from your 4D code (see [`Open datastore`](../commands/open-datastore) example) or through a `/rest/$catalog/authentify` request along with user credentials. This step only requires a basic login form that do not access data; it can be for example a [Qodly page](https://developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). + この関数は、4D コードから直接([`Open datastore`](../commands/open-datastore) の例題参照)、あるいはユーザー認証情報とともに`/rest/$catalog/authentify` リクエストを通して呼び出すことが可能です。 このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。これには例えば`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](https://developer.4d.com/qodly/) を利用できます。 -3. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted as soon as the [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) function is called. +3. ユーザーが正常に認証できた場合、サーバー上では4D ライセンスが1つ消費され、また[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) 関数が呼ばれれば、全てのREST リクエストが受け入れられるようになります。 ![alt-text](../assets/en/REST/force-login-2.jpeg) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md index b4f2eefcd2d5ae..978359cbd7e8fe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Users/handling_users_groups.md @@ -149,15 +149,15 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### Assigning a license to a group +### グループにライセンスを割り当てる -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. +プロジェクトにインストールされたあらゆる[拡張機能](../Extensions/overview.md) に、グループ権限を割り当てることができます。 これには全ての4D 製/サードパーティ製のプラグインやコンポーネントを含みます。 -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions in client/server environment. Any users that do not belong to the access group of an extension cannot load this extension. +アクセス件をこれらの拡張機能に分散させることで、クライアント/サーバー環境においてこれらの拡張機能に対してあなたが所持しているライセンスの使用を管理することができます。 ある拡張機能へのアクセス可能グループに属していないユーザーは、その拡張機能をロードすることができません。 > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions [requiring a license](../Admin/licenses.md) loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +ツールボックス内のグループページの"プラグイン"エリアには、4D アプリケーションによってロードされた拡張機能のうち[ライセンスを必要とする](../Admin/licenses.md) ものが全て一覧表示されています。 拡張機能へのアクセス権をグループに与えるには、該当するオプションをチェックします。 ![](../assets/en/Users/plugins.png) 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 d4e900268a6ac7..778a244d43a8ec 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 @@ -33,7 +33,7 @@ title: はじめに プロジェクトを再起動すると、4D View Pro コンポーネントは[Github 依存関係](../Project/components.md#githubまたはgitlab依存関係を追加する)としてインストールされます。 -4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +4D View Pro はライセンスを必要とします。 この機能を使用するためには、[アプリケーション内においてライセンスを有効化して割り当てる](../../Users/handling_users_groups.md#グループにライセンスを割り当てる) 必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) 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 fcf17e698eef61..62bd372fb30b81 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -434,55 +434,55 @@ AI に質問を送信するためには、送信ボタンをクリックしま マルチレベルリストスタイルシーツを管理するためには、マルチレベルリストボタン![](../assets/en/WritePro/wp-multi-level-list-button.png) をクリックします。 -When the multi-level list mode is enabled, the Style Sheets panel displays the [multi-level list style sheets](./user-legacy/stylesheets.md#multi-level-list-style-sheets) defined in the document as well as [predefined templates](#predefined-templates). +マルチレベルリストモードが有効化されている場合、スタイルシートパネルにはドキュメント内で定義されている[マルチレベルリストスタイルシート](./user-legacy/stylesheets.md#複数レベルスタイルシート) に加えて、[定義済みのテンプレート](#定義済みテンプレートpredefined-templates) が表示されます。 ![](../assets/en/WritePro/wp-multi-level-list-panel.png) -### Managing multi-level style sheets +### マルチレベルスタイルシートを管理する -The Style Sheets panel allows you in general to: +スタイルシートパネルでは一般的に以下のような操作を行うことができます: -- ![](../assets/en/WritePro/wp-multi-level-list-button1.png) Create a new style sheet. -- ![](../assets/en/WritePro/wp-multi-level-list-button2.png) Delete a style sheet. -- ![](../assets/en/WritePro/wp-multi-level-list-button3.png) Update a style sheet. +- ![](../assets/en/WritePro/wp-multi-level-list-button1.png) 新規スタイルシートを作成する。 +- ![](../assets/en/WritePro/wp-multi-level-list-button2.png) スタイルシートを削除する。 +- ![](../assets/en/WritePro/wp-multi-level-list-button3.png) スタイルシートを更新する。 -Once a multi-level list style sheet is selected, the panel provides also tools to manage the hierarchy and numbering of the list: +マルチレベルリストスタイルシートが選択されると、パネルにはリストの階層や番号振りを管理するためのツールも提供されるようになります: -- ![](../assets/en/WritePro/wp-multi-level-list-button4.png) Increase the list level of selected paragraphs. -- ![](../assets/en/WritePro/wp-multi-level-list-button5.png) Decrease the list level of selected paragraphs. -- ![](../assets/en/WritePro/wp-multi-level-list-button6.png) Append a level to the list and create a new sub-level. -- ![](../assets/en/WritePro/wp-multi-level-list7.png) Modify numbering formats. -- ![](../assets/en/WritePro/wp-multi-level-list-button8.png) Concatenate numbering markers between levels. +- ![](../assets/en/WritePro/wp-multi-level-list-button4.png) 選択された段落のリストレベルを上げる。 +- ![](../assets/en/WritePro/wp-multi-level-list-button5.png) 選択された段落のリストレベルを下げる。 +- ![](../assets/en/WritePro/wp-multi-level-list-button6.png) リストにレベルを追加し新しいサブレベルを作成する。 +- ![](../assets/en/WritePro/wp-multi-level-list7.png) 番号振りのフォーマットを変更する。 +- ![](../assets/en/WritePro/wp-multi-level-list-button8.png) レベル間の番号マーカーを連結する。 -### Creating a style sheet +### スタイルシートの作成 -To create a multi-level list style sheet you can either: +マルチレベルリストのスタイルシートを作成するためには、以下の方法があります: -- Select and apply one of the predefined templates to the paragraph(s), the selected template and all it sub-levels are then displayed on the top part of the sytle sheets panel. You can customize its levels and formatting (such as numbering styles, colors, fonts, or hierarchy), and then create a new style sheet based on the resulting selection. +- 定義済みのテンプレートの一つを選択して段落に適用すると、選択されたテンプレートとその全てのサブレベルはスタイルシートパネルの上部に表示されます。 レベルと書式(番号スタイル、カラー、フォント、階層など)をカスタマイズすることができ、その結果に基づいて新しいスタイルシートを作成することができます。 -- Duplicate one of the existing style sheets via the Duplicate option in the ![](../assets/en/WritePro/wp-multi-level-list-button1.png) bottom menu. +- ![](../assets/en/WritePro/wp-multi-level-list-button1.png) 下部のメニューの複製オブションを使用して既存のスタイルシートの一つを複製します。 -- Click the ![](../assets/en/WritePro/wp-multi-level-list-button1.png) button and then "New style sheet based on selection" after having selected paragraph(s) to use for the style sheet according to the following: - - If the selected paragraph(s) use(s) a list marker, a new multi-level list style sheet made of one level is created based on the current formatting. - - If the selected paragraph(s) already use(s) a root-level or a sub-level of a multi-level list style sheet, the complete hierarchy is duplicated. +- ![](../assets/en/WritePro/wp-multi-level-list-button1.png) ボタンをクリックし、スタイルシートに使用する段落を以下のように選択したあとに"選択に基づいた新規スタイルシート" をクリックします: + - 選択された段落にリストマーカーを使用している場合、カレントの書式に基づいて、単一のレベルから作られた新しいマルチレベルリストスタイルシートが作成されます。 + - 選択された段落が既にルートレベルまたはサブレベルのマルチレベルリストスタイルシートを使用している場合、階層全体が完全に複製されます。 :::note -For detailed information about creating and configuring multi-level list style sheets by programming, see [Multi-level list style sheets](./user-legacy/stylesheets.md#multi-level-list-style-sheets). +プログラミングによってマルチレベルリストスタイルシートを作成・設定する詳細な情報については、[複数レベルリストスタイルシート](./user-legacy/stylesheets.md#複数レベルリストスタイルシート)の章を参照してください。 ::: -### Applying a multi-level list +### マルチレベルリストの適用 -You can apply either a multi-level list style sheet defined in the document or one of the predefined templates to the selected paragraphs using the Style Sheets panel: +スタイルシートパネルを使用することで、ドキュメント内で定義されているマルチレベルリストスタイルシートか、定義済みテンプレートの一つのどちらかを、選択された段落に対して適用することができます: ![](../assets/en/WritePro/wp-multi-level-list-panel2.png) -### Predefined templates +### 定義済みテンプレート -The interface provides the following predefined multi-level list templates: +インターフェースには、以下の定義済みマルチレベルリストテンプレートが提示されています: -**Technical Blueprint** +**テクニカルブループリント** Level 1: 1 Level 2: 1.1 @@ -490,7 +490,7 @@ Level 3: 1.1.1 Level 4: 1.1.1.1 Level 5: 1.1.1.1.1 -**Legal & Governance** +**リーガル & ガバナンス** Level 1: I. Level 2: A. @@ -500,7 +500,7 @@ Level 5: (1) Level 6: (a) Level 7: (i) -**Educational Material** +**教育的素材** Level 1: I. Level 2: 1. @@ -508,49 +508,49 @@ Level 3: 1.1. Level 4: a. Level 5: ● -**Meeting Minutes** +**会議詳細** Level 1: 1. Level 2: ● -**Visual Hierarchy** +**視覚的階層** -Level 1: ♣ (Club) -Level 2: ♦ (Diamond) -Level 3: ■ (Square) -Level 4: □ (Hollow Square) -Level 5: ● (Disc) -Level 6: ○ (Circle) -Level 7: – (Dash) +Level 1: ♣ (クラブ) +Level 2: ♦ (ダイヤ) +Level 3: ■ (黒い四角) +Level 4: □ (白い四角) +Level 5: ● (黒丸) +Level 6: ○ (白丸) +Level 7: – (破線) -### Customizing predefined templates +### 定義済みテンプレートのカスタマイズ -You can customize the available templates to provide users with predefined multi-level lists that match the needs of your application. +利用可能なテンプレートをカスタマイズして、ユーザーに、アプリケーションに用途に合致したような定義済みマルチレベルリストを提供することができます。 -The predefined multi-level list templates are defined in a JSON file named `multiLevelStyles.json`. This file is located in the 4D Write Pro Interface component Resources folder. +定義済みのマルチレベルリストテンプレートは、`multiLevelStyles.json` という名前のJSON ファイル内に定義されています。 このファイルは4D Write Pro インターフェースコンポーネントのResources フォルダ内に配置されています。 -You can customize the available templates by adding your own `multiLevelStyles.json` file in either: +以下の場所のいずれかにあなた独自の`multiLevelStyles.json` ファイルを追加することで、利用可能なテンプレートをカスタマイズすることができます: -- the project's local Resources folder directly, -- a `4D WritePro Interface` folder located within the project Resources folder. +- プロジェクトのローカルなResources フォルダに直接追加する +- プロジェクトのResources フォルダ内に配置された`4D WritePro Interface` フォルダ。 -If a `multiLevelStyles.json` file is present in both locations, the file located in the `4D WritePro Interface` folder takes precedence. +`multiLevelStyles.json` ファイルが両方の場所にある場合には、`4D WritePro Interface` フォルダに配置されたファイルの方が優先されます。 -Each template definition includes: +各テンプレートの定義には、以下のものが含まれます: -- a template name, -- one or more list levels, -- the 4D Write Pro attributes applied to each level. Any 4D Write Pro attribute can be used in a template definition. +- テンプレート名 +- 一つまたはそれ以上のリストレベル +- 各レベルに適用された4D Write Pro 属性。 テンプレート定義内ではあらゆる4D Write Pro 属性を使用することができます。 -You can use either the attribute names or the corresponding 4D Write Pro constants as JSON keys and values. -For example, the following definitions are equivalent: +属性名または対応する4D Write Pro 定数をJSON キーと値として使用することができます。 +例えば、以下の定義はどちらも同義です: - `"listStyleType": "wk upper roman"` - `"wk list style type": "wk upper roman"` #### 例題 -Example of a customized JSON file: +カスタマイズされたJSON ファイルの一例: ```json { @@ -569,5 +569,5 @@ Example of a customized JSON file: ### 参照 - [Related blog post: Multi-Level Style Sheets in 4D Write Pro: Now With a Dedicated UI](https://blog.4d.com/multi-level-style-sheets-in-4d-write-pro-now-with-a-dedicated-ui) -- [multi-level list style sheets](./user-legacy/stylesheets.md#multi-level-list-style-sheets) -- [multi-level lists](./user-legacy/using-a-4d-write-pro-area.md#multi-level-lists) +- [複数レベルリストスタイルシート](./user-legacy/stylesheets.md#複数レベルリストスタイルシート) +- [複数レベルリスト](./user-legacy/using-a-4d-write-pro-area.md#複数レベルリスト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md index f3a0b18fd4070d..b4a8177b92c133 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md @@ -10,6 +10,8 @@ slug: /commands/theme/Interruptions | [](../../commands/abort)
| | [](../../commands/assert)
| | [](../../commands/asserted)
| +| [](../../commands/defer)
| +| [](../../commands/deferred-formulas)
| | [](../../commands/filter-event)
| | [](../../commands/get-assert-enabled)
| | [](../../commands/last-errors)
| 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 968f713ed30768..1581c5fc008bfc 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 @@ -1229,7 +1229,7 @@ $colNew:=$col.filter(Formula((Value type($1.value)=Is text) && (Length($1.value) #### 例題 3 -The `.filter()` function can be used to compare two collections and extract the differences between them: +`.filter()` 関数を使用すると、二つのコレクションを比較してその差異を取得することができます: ```4d var $c1:=New collection(12; 45; 78; 99; 156) @@ -2885,7 +2885,7 @@ $r:=$c.reduce(Formula($1.accumulator=$1.value); 1) // 86400 を返す ```4d var $c : Collection $c:=New collection(5;3;5;1;3;4;4;6;2;2) -$r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) //returns 86400 +$r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Directory.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Directory.md index 7f95522fd97cd9..8fc0f3c9a85608 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Directory.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Directory.md @@ -514,7 +514,7 @@ $myPDF:=Folder(fk documents folder).file("Pictures/info.pdf") `.files()` 関数は、 フォルダーに格納されている `File` オブジェクトのコレクションを返します。 > エイリアスまたはシンボリックリンクは解決されません。 -By default, if you omit the *options* parameter, only the files at the first level of the folder are returned in the collection, including invisible files. *options* 引数に以下の定数を一つ以上渡すことで、このふるまいを変更することができます: +*options* 引数を省略した場合、デフォルトで、非表示のファイルを含めてフォルダの第一階層のファイルのみがコレクションに返されます。 *options* 引数に以下の定数を一つ以上渡すことで、このふるまいを変更することができます: | 定数 | 値 | 説明 | | --------------------- | - | ------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SMTPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SMTPTransporterClass.md index 7d9c04abb0305d..c035456aa33f64 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/SMTPTransporterClass.md @@ -141,7 +141,7 @@ SMTP Transporter オブジェクトは [SMTP New transporter](#smtp-new-transpor -For information about SMTP status codes, please refer to [this page](https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml). +SMTP ステータスコードについての詳細な情報については、[こちらのページ](https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml)を参照してください。 #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md index 6d18b810065f0f..7a151e475be4ab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/FormEditor/createStylesheet.md @@ -284,7 +284,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス * `fill`, `stroke` , `alternateFill` , `horizontalLineStroke` および `verticalLineStroke` の属性は 3種類のシンタックスを受け付けます: * CSS カラーネーム: `fill: red;` - * Hexa value: `fill: #FF0000;` (only 6 characters, transparency is not supported) + * 16 進数表記値: `fill: #FF0000;` (6 文字のみ、透明度はサポートされていません) * `rgb()` 関数: `fill:rgb(255,0,0)` * CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/REST/$filter.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/REST/$filter.md index 8457ba4cd53110..a6cf4642d2b0ee 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/REST/$filter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/REST/$filter.md @@ -44,7 +44,7 @@ title: '$filter' :::note -The use of the `eval()` statement is not allowed in REST queries (and thus in [remote datastore](../ORDA/remoteDatastores.md) queries). +REST クエリ内における`eval()` ステートメントの使用は許可されません(そのため[remote datastore](../ORDA/remoteDatastores.md) クエリにおいても同様です)。 ::: @@ -56,10 +56,10 @@ The use of the `eval()` statement is not allowed in REST queries (and thus in [r - 単一引用符 ('): \u0027 - 二重引用符 ("): \u0022 -For example, you can write the following when passing a value with a quote when using the *params* property: +例えば*params* プロパティを使用して、値を二重引用符で括って渡すためには以下のように書くことができます: `http://127.0.0.1:8081/rest/Person/?$filter="lastName=:1"&$params='["O\u0027Reilly"]'` -If you pass the value directly, you can write the following: +値を直接渡す場合は、次のように書けます: `http://127.0.0.1:8081/rest/Person/?$filter="lastName=O'Reilly"` ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md index 436b1569feaa68..a0aa343824a9c3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md @@ -138,15 +138,15 @@ title: 4Dユーザー&グループの管理 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 -### Assigning a license to a group +### グループにライセンスを割り当てる -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. This includes all the 4D and third-party plug-ins and components. +You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. これには全ての4D 製/サードパーティ製のプラグインやコンポーネントを含みます。 -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. Any users that do not belong to the access group of an extension cannot load this extension. +Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. ある拡張機能へのアクセス可能グループに属していないユーザーは、その拡張機能をロードすることができません。 > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. To give a group access to an extension, you simply need to check the corresponding option. +The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. 拡張機能へのアクセス権をグループに与えるには、該当するオプションをチェックします。 ![](../assets/en/Users/plugins.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4.json b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4.json index 23fdf0f0f5ff68..423b50f180fe2a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4.json +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4.json @@ -822,5 +822,21 @@ "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.category.Server & Admin": { + "message": "サーバー & 管理", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "管理", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "4Dアプリケーションの管理", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server Window": { + "message": "4D Server ウィンドウ", + "description": "The label for category '4D Server Window' in sidebar 'docs'" } } diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md index fd9d6fadc2e421..62bd372fb30b81 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/WritePro/writeprointerface.md @@ -525,32 +525,32 @@ Level 7: – (破線) ### 定義済みテンプレートのカスタマイズ -You can customize the available templates to provide users with predefined multi-level lists that match the needs of your application. +利用可能なテンプレートをカスタマイズして、ユーザーに、アプリケーションに用途に合致したような定義済みマルチレベルリストを提供することができます。 -The predefined multi-level list templates are defined in a JSON file named `multiLevelStyles.json`. This file is located in the 4D Write Pro Interface component Resources folder. +定義済みのマルチレベルリストテンプレートは、`multiLevelStyles.json` という名前のJSON ファイル内に定義されています。 このファイルは4D Write Pro インターフェースコンポーネントのResources フォルダ内に配置されています。 -You can customize the available templates by adding your own `multiLevelStyles.json` file in either: +以下の場所のいずれかにあなた独自の`multiLevelStyles.json` ファイルを追加することで、利用可能なテンプレートをカスタマイズすることができます: -- the project's local Resources folder directly, -- a `4D WritePro Interface` folder located within the project Resources folder. +- プロジェクトのローカルなResources フォルダに直接追加する +- プロジェクトのResources フォルダ内に配置された`4D WritePro Interface` フォルダ。 -If a `multiLevelStyles.json` file is present in both locations, the file located in the `4D WritePro Interface` folder takes precedence. +`multiLevelStyles.json` ファイルが両方の場所にある場合には、`4D WritePro Interface` フォルダに配置されたファイルの方が優先されます。 -Each template definition includes: +各テンプレートの定義には、以下のものが含まれます: -- a template name, -- one or more list levels, -- the 4D Write Pro attributes applied to each level. Any 4D Write Pro attribute can be used in a template definition. +- テンプレート名 +- 一つまたはそれ以上のリストレベル +- 各レベルに適用された4D Write Pro 属性。 テンプレート定義内ではあらゆる4D Write Pro 属性を使用することができます。 -You can use either the attribute names or the corresponding 4D Write Pro constants as JSON keys and values. -For example, the following definitions are equivalent: +属性名または対応する4D Write Pro 定数をJSON キーと値として使用することができます。 +例えば、以下の定義はどちらも同義です: - `"listStyleType": "wk upper roman"` - `"wk list style type": "wk upper roman"` #### 例題 -Example of a customized JSON file: +カスタマイズされたJSON ファイルの一例: ```json { @@ -569,5 +569,5 @@ Example of a customized JSON file: ### 参照 - [Related blog post: Multi-Level Style Sheets in 4D Write Pro: Now With a Dedicated UI](https://blog.4d.com/multi-level-style-sheets-in-4d-write-pro-now-with-a-dedicated-ui) -- [multi-level list style sheets](./user-legacy/stylesheets.md#multi-level-list-style-sheets) -- [multi-level lists](./user-legacy/using-a-4d-write-pro-area.md#multi-level-lists) +- [複数レベルリストスタイルシート](./user-legacy/stylesheets.md#複数レベルリストスタイルシート) +- [複数レベルリスト](./user-legacy/using-a-4d-write-pro-area.md#複数レベルリスト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md index f3a0b18fd4070d..b4a8177b92c133 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md @@ -10,6 +10,8 @@ slug: /commands/theme/Interruptions | [](../../commands/abort)
| | [](../../commands/assert)
| | [](../../commands/asserted)
| +| [](../../commands/defer)
| +| [](../../commands/deferred-formulas)
| | [](../../commands/filter-event)
| | [](../../commands/get-assert-enabled)
| | [](../../commands/last-errors)
| diff --git a/i18n/pt/code.json b/i18n/pt/code.json index ff06d30d8aa38d..13841c26122f3b 100644 --- a/i18n/pt/code.json +++ b/i18n/pt/code.json @@ -882,5 +882,20 @@ "theme.docs.versionDropdown.notAvailable": { "message": "Page not available in this version\nOpening the default page instead", "description": "Tooltip for version dropdown items where the current page does not exist" + }, + "Database Structure": { + "message": "Database Structure" + }, + "Methods": { + "message": "Página Métodos" + }, + "XML Processing": { + "message": "XML Processing" + }, + "Standard actions": { + "message": "Ações padrão" + }, + "Drag and Drop": { + "message": "Arrastar e Soltar" } } diff --git a/i18n/pt/docusaurus-plugin-content-docs/current.json b/i18n/pt/docusaurus-plugin-content-docs/current.json index 38feab344a816f..8eb2c89eadeff9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current.json +++ b/i18n/pt/docusaurus-plugin-content-docs/current.json @@ -1634,5 +1634,41 @@ "sidebar.docs.doc.Drag and Drop": { "message": "Arrastar e Soltar", "description": "The label for the doc item 'Drag and Drop' in sidebar 'docs', linking to the doc Desktop/drag-and-drop" + }, + "sidebar.docs.category.Records & Selections (legacy data access)": { + "message": "Records & Selections (legacy data access)", + "description": "The label for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.title": { + "message": "Records & Selections (legacy data access)", + "description": "The generated-index page title for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.description": { + "message": "Legacy data access based upon records, selections, and sets.", + "description": "The generated-index page description for category 'Records & Selections (legacy data access)' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin": { + "message": "Server & Admin", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "Administração", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "Como monitorizar as suas aplicações 4D", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server": { + "message": "4D Server", + "description": "The label for category '4D Server' in sidebar 'docs'" + }, + "sidebar.docs.category.Administration Window": { + "message": "Administration Window", + "description": "The label for category 'Administration Window' in sidebar 'docs'" + }, + "sidebar.docs.category.Windows Features": { + "message": "Windows Features", + "description": "The label for category 'Windows Features' in sidebar 'docs'" } } diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md index 82c41c81825422..0004a94a02ec3a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/FormEditor/properties_Markers.md @@ -33,7 +33,7 @@ A área de dFormulário detalhado é exibida na tela e impressa uma vez para cad É possível aumentar ou diminuir a área Detalhe. O que quer que seja colocado na área Detalhes é exibido ou impresso uma vez para cada registro. Na maioria das vezes, você coloca campos ou variáveis na área Detail para que as informações de cada registro sejam exibidas ou impressas, mas também é possível colocar outros elementos na área Detail. -The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), and [subforms](../FormObjects/subform_overview.md). +The following form objects are **not supported** in the Detail area (i.e. they are not repeated for each record): [Web areas](../FormObjects/webArea_overview.md), [4D View Pro areas](../FormObjects/viewProArea_overview.md), [listboxes](../FormObjects/listbox_overview.md), [hierarchical lists](../FormObjects/list_overview.md), [splitters](../FormObjects/splitters.md), [subforms](../FormObjects/subform_overview.md), and [plug-in areas](../FormObjects/pluginArea_overview.md). #### Gramática JSON diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md index f1ed2c2e8abb11..fa11349bc74fb2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/theme/Interruptions.md @@ -10,6 +10,8 @@ slug: /commands/theme/Interruptions | [](../../commands/abort)
| | [](../../commands/assert)
| | [](../../commands/asserted)
| +| [](../../commands/defer)
| +| [](../../commands/deferred-formulas)
| | [](../../commands/filter-event)
| | [](../../commands/get-assert-enabled)
| | [](../../commands/last-errors)
| diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4.json b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4.json index 79be8c8144cba3..8c51af0b983fe9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4.json +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4.json @@ -822,5 +822,21 @@ "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.category.Server & Admin": { + "message": "Server & Admin", + "description": "The label for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.title": { + "message": "Administração", + "description": "The generated-index page title for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.Server & Admin.link.generated-index.description": { + "message": "Como monitorizar as suas aplicações 4D", + "description": "The generated-index page description for category 'Server & Admin' in sidebar 'docs'" + }, + "sidebar.docs.category.4D Server Window": { + "message": "4D Server Window", + "description": "The label for category '4D Server Window' in sidebar 'docs'" } } diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md index f1ed2c2e8abb11..fa11349bc74fb2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/commands/theme/Interruptions.md @@ -10,6 +10,8 @@ slug: /commands/theme/Interruptions | [](../../commands/abort)
| | [](../../commands/assert)
| | [](../../commands/asserted)
| +| [](../../commands/defer)
| +| [](../../commands/deferred-formulas)
| | [](../../commands/filter-event)
| | [](../../commands/get-assert-enabled)
| | [](../../commands/last-errors)
| From e8445501c992780a39990eb527f82fd8d2c36744 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 10 Sep 2026 18:23:17 +0200 Subject: [PATCH 34/60] Feature/4d corner (#3423) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update links, png, added nex § * Update components.md * after closure * Update components.md --- docs/Concepts/components.md | 4 ++- docs/Extensions/develop-components.md | 3 +- docs/Extensions/overview.md | 4 +-- docs/Notes/updates.md | 2 +- docs/Project/components.md | 33 +++++++++++++++++- docs/assets/en/Project/4d-corner-access.png | Bin 0 -> 6670 bytes docs/assets/en/Project/4d-corner-add.png | Bin 0 -> 14643 bytes docs/assets/en/Project/4d-corner-copy.png | Bin 0 -> 23982 bytes docs/assets/en/Project/4d-corner.png | Bin 0 -> 88436 bytes .../assets/en/Project/check-component-all.png | Bin 8579 -> 9821 bytes docs/assets/en/Project/dependency-add-git.png | Bin 11477 -> 12898 bytes docs/assets/en/Project/dependency-add.png | Bin 10353 -> 11689 bytes docs/assets/en/Project/dependency-default.png | Bin 15616 -> 17180 bytes 13 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 docs/assets/en/Project/4d-corner-access.png create mode 100644 docs/assets/en/Project/4d-corner-add.png create mode 100644 docs/assets/en/Project/4d-corner-copy.png create mode 100644 docs/assets/en/Project/4d-corner.png diff --git a/docs/Concepts/components.md b/docs/Concepts/components.md index 7a7487125280ff..9d1d888819eee5 100644 --- a/docs/Concepts/components.md +++ b/docs/Concepts/components.md @@ -9,7 +9,9 @@ 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/topics/4d-component). 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 are also proposed by the 4D community. Use the [4D Corner platform](https://corner.4d.com/) to get a detailed list of all available 4D components. + +Additionnally, you can [develop your own 4D components](../Extensions/develop-components.md). ## Using components diff --git a/docs/Extensions/develop-components.md b/docs/Extensions/develop-components.md index 1782b7b8af47c7..d4fe0bc7c7b855 100644 --- a/docs/Extensions/develop-components.md +++ b/docs/Extensions/develop-components.md @@ -7,7 +7,7 @@ title: Developing Components A 4D component is a set of 4D functions, methods, and forms representing one or more functionalities that can be [installed and used in 4D applications](Concepts/components.md). For example, you can develop a 4D e-mail component that manages every aspect of sending, receiving and storing e-mails in 4D applications. -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). +You can develop 4D components for your own needs and keep them private. You can also [propose them to 4D Corner](https://corner.4d.com/) and [share them with the 4D community](https://github.com/topics/4d-component). ## Definitions @@ -560,4 +560,5 @@ To protect the code of a component effectively, simply [compile and build](Deskt 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. +Use the [4D Corner platform](https://corner.4d.com/) to browse among existing components, and to register your own 4D components. diff --git a/docs/Extensions/overview.md b/docs/Extensions/overview.md index 76cce22a98b29d..7b6689c99ff908 100644 --- a/docs/Extensions/overview.md +++ b/docs/Extensions/overview.md @@ -11,13 +11,13 @@ The 4D [project architecture](../Project/architecture.md) is open and can be ext - [**SQL commands**](../commands/theme/SQL) allow you to connect and use various SQL data sources. - The [**built-in HTTP client**](../API/HTTPRequestClass.md) can request any HTTP server and process data. - [**Web Areas**](../FormObjects/webArea_overview.md) can give access to web pages or various HTML contents within your forms. -- [**Components**](Concepts/components.md). Components are made of 4D code. 4D proposes a set of utility components (see below) that you can install and use depending on your needs. You can also [develop your own 4D components](develop-components.md), or use third-party components. Many developers from the 4D community have shared 4D components (browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic). +- [**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 the [**4D Corner platform**](https://corner.4d.com/) to get a comprehensive list of published components. - [**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). +4D proposes various components to the 4D community, covering many development needs. All 4D components can be found on the [**4D Corner platform**](https://corner.4d.com/). A subset of these components is listed by default in the Github panel of the [Dependency Manager](../Project/components.md#adding-a-github-or-gitlab-dependency), including: diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index 0c2f7a9e54996b..7a558454b21bf3 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -12,7 +12,7 @@ Read [**What’s new in 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). - Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. - +- Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21_R5): list of all bugs that have been fixed in 4D 21 R5. diff --git a/docs/Project/components.md b/docs/Project/components.md index ee51c82b90e57f..8b773fca02e91c 100644 --- a/docs/Project/components.md +++ b/docs/Project/components.md @@ -7,7 +7,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 for example on GitHub](https://github.com/topics/4d-component). +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. @@ -606,6 +606,37 @@ You can modify the [version setting](#defining-a-dependency-version-range) for a Modifying the version range is useful for example if you use the automatic update feature and want to lock a dependency to a specific version number. +### Using 4D Corner + +The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive list of ready-to-use 4D components, proposed from the 4D company or from the 4D community. You can browse or search the list to find any component meeting to your needs. + +![4d-corner](../assets/en/Project/4d-corner.png) + +You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: + +![4d-corner-access](../assets/en/Project/4d-corner.png) + + +To install a component from the 4D Corner platform: + +1. Click on the "Copy link" button on the top right corner of the component tile: + +![copy button](../assets/en/Project/4d-corner-copy.png) + +2. Open the Dependency manager and click on the **[+]** button. + +The dependency link is automatically added in the address area: + +![add dependency](../assets/en/Project/4d-corner-add.png) + +3. [Configure the dependency reference](#adding-a-github-or-gitlab-dependency) and click **Add**. + + +:::tip Related blog post + +[4D Corner: Easily browse 4D components, add them to your project and share your own](https://blog.4d.com/4d-corner-easily-browse-4d-components-add-them-to-your-project-and-share-your-own/) + +::: ### Updating dependencies diff --git a/docs/assets/en/Project/4d-corner-access.png b/docs/assets/en/Project/4d-corner-access.png new file mode 100644 index 0000000000000000000000000000000000000000..a4173db3bde865cf34f22d614cd8ab452d073076 GIT binary patch literal 6670 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 literal 0 HcmV?d00001 diff --git a/docs/assets/en/Project/4d-corner-add.png b/docs/assets/en/Project/4d-corner-add.png new file mode 100644 index 0000000000000000000000000000000000000000..27cb99f9b25514f7caf4b489bb74369a96574f32 GIT binary patch literal 14643 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�iF?*%FVG&D5IySqCy7^#VDML%XVWEu>#lEu(!oX63~Fn8 z{{;?*7AR6maW4gm1qo6dPD=^y1eX@4SaD0CMH(zP0g4@*BEbnki#rt8V8KhV;`&d| z?>Beuojdo%eY;<+wVyqE&HBvuc?2t93l`SgYr&Q%5c32gJ;{1$wj8^$Z);nIodZ^j zcgc~s*aAG3#lfy;YQUL2m|F7?(&9pRjW`Gt zozbi4;re!8igI}ql%&W>(=5U%(}0?2-M4Z9InJuAsR(9An}dDT$fg!X^(0RLQOCs* z+;1Zl-qBTe8MEOL5B@V|$r078ktCg+NW29+#M@X6qOJ~X`n#dTj+c*3k?IMWc0DVx zM_n0^(7{HK!n|MW^p9HH=nQPFG-!eRy4S5Wb9*$d;_R9Bl(e^N>_*W+<60WUV9wOS zMc-)lT<-vRyMI6XFYZ+0^eb=p?7(lJwYT@TQ66?a0&d&woe%u+<7+K?CyNUs)74s# z!B`=Uf^$&}8{Aiw#=p)vH}9v45B==i`{s;wCBmEctSste8^!D~rUV9!_Ct;13OCOgQmyEGcf6=cByVF`JIx@0B$B?M2&@Z0MBB4ghnpT=CPy9E~&ji)b zbLp|ksy-0Tm<_19$HfkX3Hw54gif~cyN2;&s_=*j>W0gY$;5sP#;B?|y{}wPnwkPn1hN4Boc$*-p<^Frf zJu7M`Cqo~wbi+{tBI}$fBF^H_sDN$VR4FzoVpgOZH# zm{AS1tAy1Y-ME4-CpO=QRgF{9$q(jL4yj@q(%wg8B2wNNuTH(pPQ32;L3;{Lpz8N~ z)PPF511eo|o8!YMcy}Z;%z@oaii+6KyJ$?z$*!%+z7g3 ztaq+~2{!>UEItW(d^v(I9C)m+vBLl{&^2!U$)2v}Wsx=#0Dal+L zUSMn3SW_0rr0c|9gqkpPzojhrNE8wh@^0ep%^&dEej(o&k3U}^9_7w0CP_|Nv(cKB z1;p2Sh&9+OM~+%hG=ADjFR#4a-Vhh0L>o`6}}-t9YL zV`zz;JU*%>R~omJt_cDJ|{xwkNXHJI?$BH?PAW9cHe1I5F_Q7m&gAD%$zB`1C~nCZVl+e8=^-E zd3!%%8C*EGzH?`o=9d`RJBkmp-5QZGdRgC;MHkaOsAZRVN77wyNC&tkqQ-wdn2-=A z>aE}CHTLZMFV#IKPtWQBkG_FET;7F_eyXoYzAg%RL{Vul=c6h-JfLK=gwFVJ^kK!T zKfjKR24s6uLTh*5AUj{LUQnuge*Q+PrHx~`)uJNJrM0qf`?!A7wZbQWs!CP_vmACi zwRV7EGo^>?om(*areFndZjp2kL4_qGw8{M;jFH>Hoox_eURd2-A#krRsbEt%{%7zJ zwpR~p9dgE&9G;L7L6@OFkFe8_+RG3e_4RPtajuG;a6YVj#Bb48*_@94?PP>))cgOZ z4pg@aoE41NX+d*61DaFrRI_;si7D7!(4ftax`RvEgRsl(OU!c zV{WMPT*8w_|DawnS^ct$2be^cXK>ViBM6%+!aPc|s6FrJ{PUoQm`*5A_}YbtT0)J; z>T3JebiAHEdhfhE+MGtUP+nfzls>tYQAx*er8!7UeT5 z;J*ou+E1p*ghGsKj}OnPAlJ6C1X~D8g(Sfb-RD-or1d1V?d{>(SFU4&zx~WAbzlFu zGF${{Y;Ji?%nGA3^UVsJ?GpMgy>QE5E`77f!V*u!VcE#h^`Zy_JApIryktvb<*)vm z?`eSRww~81M61(PmH+%kbIwHO=j8*I!&&a zTG4f~dyCI!7dLL?lp+OnFwUHtWM|(pUfrAym+WR2#a{Dc+>ecgj+8Zhk5?X#)tTC3tRMNs5-u|g zU1e*yANR1??**rqmkcM9506>sIxH0lSCr_Br2OBIP*88$^mF!vR)ta&i<7x9Hke#KSA|+S}ma z7AwH)aWw97>?-=jZq#(4#>C9Ftrsl&jQx1NDNB6%ODcubEV

5<# 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 X%K&K$5yZ||$5B?$c!PNTHu!%4%61qS literal 0 HcmV?d00001 diff --git a/docs/assets/en/Project/4d-corner.png b/docs/assets/en/Project/4d-corner.png new file mode 100644 index 0000000000000000000000000000000000000000..711a3163af3ba282a80f639d9e44dff9d813f798 GIT binary patch literal 88436 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

  • 5Tc-~gK@)3a&70eryt0&8z# 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 literal 0 HcmV?d00001 diff --git a/docs/assets/en/Project/check-component-all.png b/docs/assets/en/Project/check-component-all.png index 4223fab16ec25a1ba47d60f3e9ed306faefae013..be00ef6e9ebabfc750b84348cefc7dabe1e8ee7d 100644 GIT binary patch literal 9821 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 z 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 by|b&R&L7wlnI6jMXS@{U)MQH^8~Obg&sc45 literal 8579 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 a;X%n>MR8X;0sk-o0x2n|$`?E`@&7+5e0qlf diff --git a/docs/assets/en/Project/dependency-add-git.png b/docs/assets/en/Project/dependency-add-git.png index 9e25486b456009062c6c5b2d1f99b14be2afff48..54760f128c02016005491556c01a8eacb0c6002c 100644 GIT binary patch literal 12898 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 literal 11477 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 XGonAm&$f8bI|TX^rc|V8@#en(8GJcY diff --git a/docs/assets/en/Project/dependency-default.png b/docs/assets/en/Project/dependency-default.png index 04746d9b27f7bfd446b4032f65f5ed7c9bcff72c..0ffd83916c5ef8659ee6036af7ee22c1b954a9fb 100644 GIT binary patch literal 17180 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 Date: Fri, 11 Sep 2026 17:01:06 +0900 Subject: [PATCH 35/60] Update set-list-item-font.md (#3419) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/set-list-item-font.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-font.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-font.md index c8f1739e1601a1..482f8ab4b2b66e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-font.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-font.md @@ -5,7 +5,7 @@ slug: /commands/set-list-item-font displayed_sidebar: docs --- -**SET LIST ITEM FONT** ( {* ;} *list* : Integer, Text ; *itemRef* : 倍長整数, 演算子 ; *font* : Text, Integer )
    **SET LIST ITEM FONT** ( * ; *list* : Integer, Text ; * ; *font* : Text, Integer ) +**SET LIST ITEM FONT** ( * ; *list* : Text ; *itemRef* : 倍長整数, 演算子 ; *font* : Text, Integer )
    **SET LIST ITEM FONT** ( *list* : Integer ; *itemRef* : 倍長整数, 演算子 ; *font* : Text, Integer )

    @@ -30,19 +30,19 @@ displayed_sidebar: docs ## 説明 -SET LIST ITEM FONT コマンドは、リスト参照またはオブジェクト名を*list*に指定したリスト中、*itemRef*引数で指定した項目の文字フォントを設定します。 +**SET LIST ITEM FONT** コマンドは、リスト参照またはオブジェクト名を*list* に指定したリスト中、*itemRef* 引数で指定した項目の文字フォントを設定します。 1番目の \* 引数を渡した場合、*list* 引数はフォーム中のリストオブジェクトのオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数はリスト参照番号 ([ListRef](# "階層リストへの参照")) です。1つしかフォーム上でリストオブジェクトを使用しない、または2番目の \* を省略してリスト構造を処理対象とする場合、いずれのシンタックスも使用できます。同じリストの複数のリストオブジェクトがフォーム上にあり、2番目の \* を渡してカレントの項目を処理する場合、リストオブジェクトごとにカレント項目が異なるため、オブジェクト名に基づくシンタックスを使用しなければなりません。 -*itemRef*には参照番号を渡すことができます。渡した項目参照番号を持つ項目が存在しない場合、コマンドは何も行いません。オプションとして*itemRef*に0を渡し、[APPEND TO LIST](append-to-list.md "APPEND TO LIST")コマンドを用いてリストへ最後に追加される項目を指定することができます。 +*itemRef* には参照番号を渡すことができます。渡した項目参照番号を持つ項目が存在しない場合、コマンドは何も行いません。オプションとして*itemRef* に0 を渡し、[APPEND TO LIST](append-to-list.md "APPEND TO LIST")コマンドを用いてリストへ最後に追加される項目を指定することができます。 -最後に、*itemRef*には *\** を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目になります。選択された項目が存在しない場合、コマンドは何も行いません。 +最後に、*itemRef* には \* を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目になります。選択された項目が存在しない場合、コマンドは何も行いません。 -*font* 引数には、使用するフォントの名前または番号を渡します。デフォルトフォントを設定するには空の文字列を渡します。 +*font* 引数には、使用するフォントの名前または番号を渡します。デフォルトフォントを設定するにはこの引数に空の文字列を渡します。 ## 例題 -リストのカレント項目にTimesフォントを適用します: +リストのカレント項目にTimes フォントを適用します: ```4d  SET LIST ITEM FONT(*;"Mylist";*;"Times") From e25e68511c6b8eb8df5bf4c2ca4195f47ed46699 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Fri, 11 Sep 2026 17:07:06 +0900 Subject: [PATCH 36/60] Update set-list-item-icon.md (#3420) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/set-list-item-icon.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-icon.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-icon.md index d045bf5271b41a..376b9ff91b4d7b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-icon.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-icon.md @@ -5,7 +5,7 @@ slug: /commands/set-list-item-icon displayed_sidebar: docs --- -**SET LIST ITEM ICON** ( {* ;} *list* : Integer, Text ; itemRef | * ; *icon* : Picture ) +**SET LIST ITEM ICON** ( * ; *list* : Text ; *itemRef* : Integer, Operator ; *icon* : Picture, Pointer )
    **SET LIST ITEM ICON** (*list* : Integer ; *itemRef* : Integer, Operator ; *icon* : Picture, Pointer )
    @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | * | 演算子 | → | 指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号 | | list | Integer, Text | → | リスト参照番号 (* 省略時), または リストオブジェクト名 (* 指定時) | -| itemRef | * | 倍長整数, 演算子 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: リスト中のカレント項目 | +| itemRef | 倍長整数, 演算子 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: リスト中のカレント項目 | | icon | Picture | → | 項目に割り当てるアイコン |
    @@ -30,16 +30,16 @@ displayed_sidebar: docs ## 説明 -SET LIST ITEM ICON コマンドは、リスト参照またはオブジェクト名を*list*に指定したリスト中、*itemRef*引数で指定した項目に割り当てるアイコンを設定します。 +**SET LIST ITEM ICON** コマンドは、リスト参照またはオブジェクト名を*list* に指定したリスト中、*itemRef* 引数で指定した項目に割り当てるアイコンを設定します。 **Note:** [SET LIST ITEM PROPERTIES](set-list-item-properties.md "SET LIST ITEM PROPERTIES") コマンドを使用して、項目に割り当てるアイコンを設定することができます。しかし[SET LIST ITEM PROPERTIES](set-list-item-properties.md "SET LIST ITEM PROPERTIES")はスタティックピクチャ参照 (リソース参照またはピクチャライブラリのピクチャ) のみを受け入れます。 1番目の \* 引数を渡した場合、*list* 引数はフォーム中のリストオブジェクトのオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数はリスト参照番号 ([ListRef](# "階層リストへの参照")) です。1つしかフォーム上でリストオブジェクトを使用しない、または2番目の \* を省略してリスト構造を処理対象とする場合、いずれのシンタックスも使用できます。同じリストの複数のリストオブジェクトがフォーム上にあり、2番目の \* を渡してカレントの項目を処理する場合、リストオブジェクトごとにカレント項目が異なるため、オブジェクト名に基づくシンタックスを使用しなければなりません。 -*itemRef*には参照番号を渡すことができます。渡した項目参照番号を持つ項目が存在しない場合、コマンドは何も行いません。オプションとして*itemRef*に0を渡し、[APPEND TO LIST](append-to-list.md "APPEND TO LIST")コマンドを用いてリストへ最後に追加される項目を指定することができます。 -最後に、*itemRef*には *\** を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目になります。選択された項目が存在しない場合、コマンドは何も行いません。 +*itemRef* には参照番号を渡すことができます。渡した項目参照番号を持つ項目が存在しない場合、コマンドは何も行いません。オプションとして*itemRef* に0 を渡し、[APPEND TO LIST](append-to-list.md "APPEND TO LIST")コマンドを用いてリストへ最後に追加される項目を指定することができます。 +最後に、*itemRef*には \* を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目になります。選択された項目が存在しない場合、コマンドは何も行いません。 -*icon* 引数には有効な4Dピクチャ式 (フィールド、変数、ポインタなど) を渡します。ピクチャは項目の左側に表示されます。 +*icon* 引数には有効な4D ピクチャ式 (フィールド、変数、ポインタなど) を渡します。ピクチャは項目の左側に表示されます。 ## 例題 From 4572cda12a0ec6542854f3348a109c198129c6ef Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Fri, 11 Sep 2026 17:07:16 +0900 Subject: [PATCH 37/60] Update set-list-item-parameter.md (#3421) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/set-list-item-parameter.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-parameter.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-parameter.md index 1130a35bcc5b73..da3759accb0bc2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-parameter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-parameter.md @@ -5,7 +5,7 @@ slug: /commands/set-list-item-parameter displayed_sidebar: docs --- -**SET LIST ITEM PARAMETER** ( {* ;} *list* : Integer, Text ; *itemRef* : 演算子, 倍長整数 ; *selector* : Text ; *value* : Text, Boolean, Real )
    **SET LIST ITEM PARAMETER** ( * ; *list* : Integer, Text ; * ; *selector* : Text ; *value* : Text, Boolean, Real ) +**SET LIST ITEM PARAMETER** ( * ; *list* : Text ; *itemRef* : 倍長整数, 演算子 ; *selector* : Text ; *value* : Text, Boolean, Real )
    **SET LIST ITEM PARAMETER** ( *list* : Integer ; *itemRef* : 倍長整数, 演算子 ; *selector* : Text ; *value* : Text, Boolean, Real )
    @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | * | 演算子 | → | 指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号 | | list | Integer, Text | → | リスト参照番号 (* 省略時), または リストオブジェクト名 (* 指定時) | -| itemRef | * | 演算子, 倍長整数 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: リスト中のカレント項目 | +| itemRef | 演算子, 倍長整数 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: リスト中のカレント項目 | | selector | Text | → | パラメタ定数 | | value | Text, Boolean, Real | → | パラメタ値 |
    @@ -32,12 +32,12 @@ displayed_sidebar: docs ## 説明 -**SET LIST ITEM PARAMETER**コマンドは、リスト参照またはオブジェクト名を*list*に指定したリスト中、*itemRef*引数で指定した項目の*selector* パラメタを設定するために使用します。 +**SET LIST ITEM PARAMETER** コマンドは、リスト参照またはオブジェクト名を*list* に指定したリスト中、*itemRef* 引数で指定した項目の*selector* パラメタを設定するために使用します。 1番目の \* 引数を渡した場合、*list* 引数はフォーム中のリストオブジェクトのオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数はリスト参照番号 ([ListRef](# "階層リストへの参照")) です。1つしかフォーム上でリストオブジェクトを使用しない、または2番目の \* を省略してリスト構造を処理対象とする場合、いずれのシンタックスも使用できます。同じリストの複数のリストオブジェクトがフォーム上にあり、2番目の \* を渡してカレントの項目を処理する場合、リストオブジェクトごとにカレント項目が異なるため、オブジェクト名に基づくシンタックスを使用しなければなりません。 -*itemRef*には参照番号を渡すことができます。渡した項目参照番号を持つ項目が存在しない場合、コマンドは何も行いません。オプションとして*itemRef*に0を渡し、[APPEND TO LIST](../commands/append-to-list)コマンドを用いてリストへ最後に追加される項目を指定することができます。 -最後に、*itemRef*には *\** を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目になります。選択された項目が存在しない場合、コマンドは何も行いません。 +*itemRef* には参照番号を渡すことができます。渡した項目参照番号を持つ項目が存在しない場合、コマンドは何も行いません。オプションとして*itemRef* に0 を渡し、[APPEND TO LIST](../commands/append-to-list)コマンドを用いてリストへ最後に追加される項目を指定することができます。 +最後に、*itemRef* には *\** を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目になります。選択された項目が存在しない場合、コマンドは何も行いません。 *selector* には、以下のいづれかを渡すことができます: From d2bcdff410a7a6725ec2c261f23aaa6217454e24 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 11 Sep 2026 10:07:36 +0200 Subject: [PATCH 38/60] New Crowdin updates (#3422) * handling_users_groups.md Japanese * error-handling.md Japanese * error-handling.md Japanese * processes.md Japanese * getting-started.md Japanese * processes.md Japanese * processes.md Japanese * processes.md Japanese * processes.md Japanese * updates.md Spanish * updates.md Japanese * menus.md Spanish * components.md French * develop-components.md French * overview.md French * updates.md French * components.md French * 4d-corner-access.png French * 4d-corner-add.png French * 4d-corner-copy.png French * 4d-corner.png French * components.md Spanish * develop-components.md Spanish * overview.md Spanish * components.md Spanish * overview.md Spanish * service.md Spanish * sso.md Spanish * vss.md Spanish * 4d-corner-access.png Spanish * 4d-corner-add.png Spanish * 4d-corner-copy.png Spanish * 4d-corner.png Spanish * components.md Japanese * develop-components.md Japanese * overview.md Japanese * components.md Japanese * components.md Japanese * develop-components.md Japanese * components.md Japanese * develop-components.md Japanese * overview.md Japanese * components.md Japanese * components.md Japanese * develop-components.md Japanese * overview.md Japanese * components.md Japanese * 4d-corner-access.png Japanese * 4d-corner-add.png Japanese * 4d-corner-copy.png Japanese * 4d-corner.png Japanese * components.md Portuguese, Brazilian * develop-components.md Portuguese, Brazilian * overview.md Portuguese, Brazilian * updates.md Portuguese, Brazilian * components.md Portuguese, Brazilian * 4d-corner-access.png Portuguese, Brazilian * 4d-corner-add.png Portuguese, Brazilian * 4d-corner-copy.png Portuguese, Brazilian * 4d-corner.png Portuguese, Brazilian --- .../current/Concepts/components.md | 4 ++- .../current/Extensions/develop-components.md | 3 +- .../current/Extensions/overview.md | 4 +-- .../current/Notes/updates.md | 3 +- .../current/Project/components.md | 32 ++++++++++++++++- .../assets/en/Project/4d-corner-access.png | Bin 0 -> 6670 bytes .../assets/en/Project/4d-corner-add.png | Bin 0 -> 14643 bytes .../assets/en/Project/4d-corner-copy.png | Bin 0 -> 23982 bytes .../current/assets/en/Project/4d-corner.png | Bin 0 -> 88436 bytes .../current/server/menus.md | 8 ++--- .../current/server/overview.md | 2 +- .../current/server/service.md | 16 ++++----- .../current/server/sso.md | 32 ++++++++--------- .../current/server/vss.md | 10 +++--- .../current/Concepts/components.md | 4 ++- .../current/Extensions/develop-components.md | 3 +- .../current/Extensions/overview.md | 4 +-- .../current/Notes/updates.md | 3 +- .../current/Project/components.md | 32 ++++++++++++++++- .../assets/en/Project/4d-corner-access.png | Bin 0 -> 6670 bytes .../assets/en/Project/4d-corner-add.png | Bin 0 -> 14643 bytes .../assets/en/Project/4d-corner-copy.png | Bin 0 -> 23982 bytes .../current/assets/en/Project/4d-corner.png | Bin 0 -> 88436 bytes .../current/Concepts/components.md | 4 ++- .../current/Extensions/develop-components.md | 3 +- .../current/Extensions/overview.md | 4 +-- .../current/Notes/updates.md | 3 +- .../current/Project/components.md | 32 ++++++++++++++++- .../current/ServerWindow/processes.md | 2 +- .../assets/en/Project/4d-corner-access.png | Bin 0 -> 6670 bytes .../assets/en/Project/4d-corner-add.png | Bin 0 -> 14643 bytes .../assets/en/Project/4d-corner-copy.png | Bin 0 -> 23982 bytes .../current/assets/en/Project/4d-corner.png | Bin 0 -> 88436 bytes .../version-20/ServerWindow/processes.md | 2 +- .../version-20/Users/handling_users_groups.md | 6 ++-- .../version-20/ViewPro/getting-started.md | 2 +- .../version-21-R3/Concepts/components.md | 2 +- .../version-21-R3/Concepts/error-handling.md | 2 +- .../Extensions/develop-components.md | 34 +++++++++--------- .../version-21-R3/Extensions/overview.md | 2 +- .../version-21-R3/Project/components.md | 34 +++++++++--------- .../version-21-R3/ServerWindow/processes.md | 2 +- .../version-21-R4/Concepts/components.md | 2 +- .../Extensions/develop-components.md | 34 +++++++++--------- .../version-21-R4/Extensions/overview.md | 2 +- .../version-21-R4/Project/components.md | 34 +++++++++--------- .../version-21-R4/ServerWindow/processes.md | 2 +- .../version-21/Concepts/components.md | 2 +- .../version-21/Concepts/error-handling.md | 2 +- .../Extensions/develop-components.md | 34 +++++++++--------- .../version-21/ServerWindow/processes.md | 2 +- .../current/Concepts/components.md | 4 ++- .../current/Extensions/develop-components.md | 3 +- .../current/Extensions/overview.md | 4 +-- .../current/Notes/updates.md | 3 +- .../current/Project/components.md | 32 ++++++++++++++++- .../assets/en/Project/4d-corner-access.png | Bin 0 -> 6670 bytes .../assets/en/Project/4d-corner-add.png | Bin 0 -> 14643 bytes .../assets/en/Project/4d-corner-copy.png | Bin 0 -> 23982 bytes .../current/assets/en/Project/4d-corner.png | Bin 0 -> 88436 bytes 60 files changed, 291 insertions(+), 163 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-copy.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-copy.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-copy.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-copy.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png 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 f0a2742a2e73e3..b71b42f2538a0f 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,9 @@ Un componente 4D es un conjunto de código y de formularios 4D que representan u 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). -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). +Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components are also proposed by the 4D community. Use the [4D Corner platform](https://corner.4d.com/) to get a detailed list of all available 4D components. + +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). ## Utilización de los componentes 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 c51b9615d090b4..3eb442e362f6ea 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 @@ -7,7 +7,7 @@ title: Componentes de desarrollo Un componente 4D es un conjunto de funciones, métodos y formularios 4D que representan una o varias funcionalidades que pueden ser [instaladas y utilizadas en aplicaciones 4D](Concepts/components.md). Por ejemplo, puede desarrollar un componente 4D de correo electrónico que gestione todos los aspectos del envío, la recepción y el almacenamiento de correos electrónicos en aplicaciones 4D. -Puede desarrollar componentes 4D para sus propias necesidades y mantenerlos en privado. Puede desarrollar componentes 4D para sus propias necesidades y mantenerlos en privado. +Puede desarrollar componentes 4D para sus propias necesidades y mantenerlos en privado. You can also [propose them to 4D Corner](https://corner.4d.com/) and [share them with the 4D community](https://github.com/topics/4d-component). ## Definiciones @@ -538,4 +538,5 @@ Para proteger eficazmente el código de un componente, basta con [compilar y gen 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. +Use the [4D Corner platform](https://corner.4d.com/) to browse among existing components, and to register your own 4D components. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md index eb4e136cc1c4b8..c35d462d92a5d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -11,12 +11,12 @@ La [arquitectura del proyecto] 4D (../Project/architecture.md) es abierta y pued - Los [**comandos SQL**](../commands/theme/SQL) permiten conectar y utilizar diversas fuentes de datos SQL. - El [**cliente HTTP integrado**](../API/HTTPRequestClass.md) puede solicitar cualquier servidor HTTP y procesar datos. - Las [**Áreas Web**](../FormObjects/webArea_overview.md) pueden dar acceso a páginas web o a diversos contenidos HTML dentro de sus formularios. -- [**Componentes**](Concepts/components.md). Los componentes están hechos de código 4D. 4D le propone un conjunto de componentes utilitarios (ver más abajo) que puede instalar y utilizar en función de sus necesidades. También puedes [desarrollar sus propios componentes 4D](develop-components.md), o utilizar componentes de terceros. Muchos desarrolladores de la comunidad 4D han compartido componentes 4D (navegue por Github para tener una lista de componentes 4D públicos reunidos con el tema [`4d-component`](https://github.com/topics/4d-component)). +- [**Componentes**](Concepts/components.md). Los componentes están hechos de código 4D. 4D le propone un conjunto de componentes utilitarios (ver más abajo) que puede instalar y utilizar en función de sus necesidades. También puedes [desarrollar sus propios componentes 4D](develop-components.md), o utilizar componentes de terceros. Many developers from the 4D community have shared 4D components. Browse the [**4D Corner platform**](https://corner.4d.com/) to get a comprehensive list of published components. - [**Plug-ins**](../Concepts/plug-ins.md). Los plug-ins pueden construirse utilizando cualquier lenguaje. Los plugins hacen cosas que 4D no hace de forma nativa (por ejemplo, una tecnología de plataforma específica), o que serían muy difíciles de escribir sólo con 4D. Como se describe en [esta página](develop-plug-ins.md), puede desarrollar sus propios plug-ins. Muchas funcionalidades están cubiertas por los plug-ins 4D existentes. Navegue por Github para tener una lista de plugins 4D públicos reunidos con el tema [`4d-plugin`](https://github.com/topics/4d-plugin). ## Componentes desarrollados por 4D -4D propone diferentes componentes a la comunidad 4D, cubriendo muchas necesidades de desarrollo. Todos los componentes 4D se pueden encontrar en el [**repositorio github de 4D**](https://github.com/4d). +4D propone diferentes componentes a la comunidad 4D, cubriendo muchas necesidades de desarrollo. All 4D components can be found on the [**4D Corner platform**](https://corner.4d.com/). Un subconjunto de estos componentes se muestra por defecto en el panel de Github del [Administrador de dependencias](../Project/components.md#adding-a-github-or-gitlab-dependency), incluyendo: 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 1fddf731f4095f..84b26a02c23355 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,9 +10,8 @@ Lea [**Las novedades en 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Lo más destacado - Soporte de la firma de correo electrónico de S/MIME a través de las nuevas propiedades de clase [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md): [`.certificate`](../API/SMTPTransporterClass.md#certificate) o [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (suministro del certificado) y [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). - - Soporte de formularios lista en la [renderización **Fluent UI**](../FormEditor/forms.md#fluent-ui-rendering) en Windows. - +- Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos los bugs que se han corregido en 4D 21 R5. ## 4D 21 R4 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 26d42d1468d4b4..25acf1c87cd2a7 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 por ejemplo en GitHub](https://github.com/topics/4d-component). +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). Una vez instalados en su entorno 4D, las extensiones se manejan como **dependencias** con propiedades específicas. @@ -562,6 +562,36 @@ En el cuadro de diálogo "Editar la dependencia", edite el menú Regla de depend Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de actualización automática y desea bloquear una dependencia a un número de versión específico. +### Using 4D Corner + +The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive list of ready-to-use 4D components, proposed from the 4D company or from the 4D community. You can browse or search the list to find any component meeting to your needs. + +![4d-corner](../assets/en/Project/4d-corner.png) + +You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: + +![4d-corner-access](../assets/en/Project/4d-corner.png) + +To install a component from the 4D Corner platform: + +1. Click on the "Copy link" button on the top right corner of the component tile: + +![copy button](../assets/en/Project/4d-corner-copy.png) + +2. Open the Dependency manager and click on the **[+]** button. + +The dependency link is automatically added in the address area: + +![add dependency](../assets/en/Project/4d-corner-add.png) + +3. [Configure the dependency reference](#adding-a-github-or-gitlab-dependency) and click **Add**. + +:::tip Entrada de blog relacionada + +[4D Corner: Easily browse 4D components, add them to your project and share your own](https://blog.4d.com/4d-corner-easily-browse-4d-components-add-them-to-your-project-and-share-your-own/) + +::: + ### Actualización de dependencias El gestor de dependencias ofrece una gestión integrada de las actualizaciones en GitHub. Se soportan las siguientes funcionalidades: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png new file mode 100644 index 0000000000000000000000000000000000000000..a4173db3bde865cf34f22d614cd8ab452d073076 GIT binary patch literal 6670 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png new file mode 100644 index 0000000000000000000000000000000000000000..27cb99f9b25514f7caf4b489bb74369a96574f32 GIT binary patch literal 14643 zcmdsecT|(@(`L{YP^7#n9RZalReCQX(tC%{L=06xx)6$rf=ZLnJ4kOqdJQNFNR1Fe zNgxPFPl(je*@yS{ZTZfgZ+HLMa+U+hdD_i9_dPS$%r$erH!{$qp<<;1fj~6cT8~UX zpi5355SjfI3gArtcjhGEi_FhN^C1X6a%&AZ_{&9AUljzZO}KXANDdrdeXeEg2LjQ4 zyZ9sP^DcV|0?Gc+exz#l!k#c2_S}q=Lp)62&aV}-($-R3eCesptXZ_uH`kGH&>j*w%sv_+e@) zb??B`SAm=0yWwq<);(@dJ|`L%o-QixuX!oGEaGa!)l`V+t_0;G6Oqw#q@beM-rini z9-qZtnw}?OAk&fb1W;Qv@w{H`|Hpm`0C*p&>J8=aL{sZ4-?;QO1}a z`j{TcpiSH1OetL!7M6b=5WSKYy8V76Po<_miBC{aa1dMd=G_DqTiMyEthD`uD^m$7 ztx637{bHO6Bh7+4Uet<-(7`)VKy`j`{qMdID`7`dnVgeT zjmJMTZ+u~+)W+H{kSzoKk`bMehvg8nbGL$Um>R`eK|Ve`|u8lYN$)&_z0?-HF= zCOj!FGp2gI-&(oDoy}9t1g2-+w~eDWb9lAyq!eAb8h^*Dy;x@&w+N#b*oxvqW#}-_ zznEYUcu&V_M*~i=yG<;YGqwJB_v0J0h1qC{6soqSIrL|p=`G4)i4>lzSW)J$BNFYk zdHoM_N6PBHw0GS}`A+co5TFC|HEVHBJPbHNpwPZUik2}A-hKs2>|dtTnJ;U^nSL^R z-blq${ybp71Tsj*_fiNm33rvOaBUdPRWTSOTlw1QnujSgRxdP`;?0rExRru%7IKQf zzg3e@6hc}>H4uPBTe~~u>RlO@cU@@2j6;j{1jZ5JnlQ~ZUL2Jl47bHLljd^o=OPRy z{*$SHZnG~74ig>DYRDNplT1{~lb8T)WOPrZj-bep}hsE!1zV z`n_LKTPLNkmsMp+I47>@>DRRho~VM+fMpBXirajUGT%!zK15j_okD8b$Dy}l$qK*D zqDJYw%Y7SKpaeWDy**U=(t?gR9JzD(&ASBo>}|(0A;ZGT-LL78GP{>2-*zWM1E`{aBx|&=)Ji1Sz!8?2y%;93%zkIIq4>+7QKLWsG!6e=!|S= zpgFP(ddtRAO;j6M&~D3oe&Z#u_7zVrA5i|1<0Zw=*wL87cTx+*D|=Z4#GuxTl$%&@ zr#1)f=LnxQWhLzua?yn=PG8>nrQKt4)9)@@f9l=a%2BsjS3;_Om;@DVmSFVw!=uS( zB+pmXNc3z`vgOG@BTTX@@%SQdPg-k41g>^>T0gNv!SE*WHLBBdZ6tg_^J}J0HS2at_sLCwWfXPH}0D@@6 zu*K$_&@^XvON~TM3Yar0=UE9*OJlq_dIiUKHaVpGU(_SpL#gB-H9cLYEr5Ygw&IPN zb4>Ta3qIOgk?XUJ1k=Km^vJkeU+4K9ew-xY(1B=l(6N(R$}_d9WMFELVXrGo8I{GM zmFJt|oRBYkRvfSHL1l;a+rzYODv?f|yYv=l^Z7STL0nv1ta1Cne3xE!fz2R$?tp^t zPkM>})caf5d?Mzys+2}GhZ<;+T*(O}n%g=ULp?*;%LDlKST(@?DlV?RcE45LEKL@B z@8TRZneWwBtk^$b@W}lrj!f?q6-v=q=l_{wCO^Y>?ZxzoLy=k0X z1hME@lu1f;1x4ZS)&aeM{W+f9AvWZ_x2!wWb(bAy>ZZ*NYV>te>MFtGCQINNYxm(m zPpp-93K(30-;?#UX!jE`ut{UJs5Vj4tqYKc%pRQTAoO(2n{*zUlyUzH%;ciW4PwGV zrzd=);8Esa^v{K=Z|G$-TGYI6VwZXyNw-AbTjZ2QXRQ?BgGM3n>u#oPYjl-8>EURZz2Km+ny3e#r2&2mQ7)x-?VF?*#a$l!Hpa%c5_J#JdD6IK+B4aYa%Au_T7GK=KG|v zbyI`EjAA%CG^V0%7V9~g=|m1cRVW-#(w>+GbY`Nd>a>nYr&Di!$5@J@__34O=;S~$ z>S7rHjn>|mskf=9Gr#MSyD!ye_Deq4C6J>6sN|>c-eY}ZOK9G< zOK_=;m#O(aefg+>LwLDVpO;@wAGLYlt^h0I8K+CxQ<#M&piQSbUw=N`37ILWc;;~g zQO7#TGy3<|=9CXfVirPHK>tkC0#&0t^VoYvE`Pk6Lt*!=pkvMTpUQ6svfsbWB5C)5 z@zKtIrp2wRIRmms0q@ZsRLafW7!-VD*9P|2JEl)NiUL-eVg)3%cNp3Xfy;r zl_8NL@HwO^Hc~u6rAOSpe!KA=J?E3ffbz;&#GHx2bUjs+!PFhU(aw*tgC7gKrDAR% zD}hN+Ey)cdRQS_w!x{l)s+asvFY;go*oIugzF35n*C|cC|j%5pf z+0f670ql|RPUEd~?xnttBq_lzBm-RI=O_C{?ENdY7Lx97r9n>QKzK$Y_ZD2JlVZl` z8ql5eJayZ=Jik)2bm>8HLy4#xb4E&+R)JD^pM*Ay%2JS7N62AhAWa|=4zZyvGr{Gy zeHDcsacc{U2g>xVs>Wcw(pdN3(CaC#zPOmh-(jQk%fFKmC9Z|-G9zBb2C6^I&m?i~ zG~||a^4Y(WPkR{LMJmG_@)!xn;*gA*;&p?R1`@BZ+j6pR_r?oEqU3jGMgp=0uxrk%p5V zcp)&Z_IZD=cTYb*$|H`vLg+cgBpok^9!@KN`M~Zz{nNC2@LO)k^A0)2k?fjZQ>=}A z8N_7>5bv@0JAA64*S8)!F+pZIeZ|j7FeXc=w!)x+el z>fvylDK5bm=&}^YCbPSua&Fx`7vA1{74)(}(yMz4U1^C(8XFnPkU%8y7Hw{N5sMlg z-My042@YrT7z2BxvIQeyX%zTjUFAnqdkB`PR^YS&$%9MFX62F5bwpE z^_BzjfRr&v9Q63oo!GeR<=s<#oDo&}S<-9c<)%1Z?XeFGg8qMgsfHb6=k}%JYyjZ@ z@(30P8Awn$vx+z;Mbr>OR}_v$f;tPgw|&F@e5J%q_r4{~ML5u@oID@6&8uB%kTdp; zPNfPsH-}ArR3G@)C8`!>h0M6rk)tQ%Ro)$$LELU06Y&cn0U;&4T5b5@)<0+JL~ff1 zPaqS8xH0sK*tX<%onpJtDyJxwwZ#OLi3=I?&QDfCekW?~?qj{7E}SSJ%{I5Uzeq#s z>ckP-1A^e%CvPXJtP6p|YTH(mfPerhibw#_1n%Fr^!Ba^l8PS*VW13L`x?)&x0{|9 z|B+s7!E7_?b4W!@Y;d&L1DZ6I2uAd|?UC9k>3qMuSv%rPsA7zGt`K%I%7+7T_}-2N zDyOBTrMA$+I&Qc1@$$gKm34F_Fg|H0$96KYZ+9wDg!p^j?}$Y|V!0v6{q@mN$mz07 zS0eY)^0GUSoFDDgL{wYa2de|Zxj%bmW^J9Zy}iw?-E}zZJ^u6OFYB0M(>=BXcTY_# zHeb6WKbbOlKyCJr=O==DySuBCdW8-^U<8CL-zGSxZu9} z@hJw{XhKbzkoAqpz-p9d~tqzG3UDu<5;#G>8v*Y z-?eL)ob!0)^Ao?Fo%sFA!7J8-_CHr@YE0v~*BWv&&SELzhXAIet>LOu#KAXCd`%Y# zL0lVAAdUn4ikX#_t0AYMQ{Ne3?o1zc!5KgXQ-iZSD=lj*0t1_VgL%J36U#lrbMZnG z9p5-4Eb#go>gaVj>pSMzW`+rseAR)F8LRpSkBi+G)AXtXi&=Gt##Z|esl0A|w~|Pk zYw9W-c{hsMotO?BZY379Ab}SU3phXR3aglqId?#gMZvkU_Ubtig_DykJ^<7P+_xeF zg5ZcEeP-xtK{USRe97TVz3T{Fvs>wKs-tp#h$O7hDIesY?tKhkA9aFnTi6zh!H4n2 zYu;z72dKO=ZtXVTr4Mks_GQne)^qrLX&!HUDU5qK+$aXAo((cH^Q0*JaBz5J>NCdT zF@Y+~%}rw69b@2w&}f>DCQ+@GWk!AMt-3AEe7=tjLL_kqtnDI;IE6R(0;iW2Q6bJp zq`f-(2~w#cv3X`H;J27%KMI?)Ul6aDT0sK>X=2{gDiAwRv^Eh(sJw=1iwEMA+nfr4L)d2?uC7LstSQ{k6RX!Vio@P)U=VA~rB^S5U`2FjALmYAyigz* zX>~`yQD{mW@#nBIM8|LqjZ`7+7WE8TliKXILtW102!Z6y5;lRll-W&0I;ptJAl_I& zH(-F>tmQmCj*d8>Bo=)={;Y2)Q+FGv%13 z<)oypkxQ7VFsLm4EmyEvAnf8_@~yQy#+IZz(v}mlzI1apo(u%jsTAFh+P9Z9DqBUp0MP?>_eB>KZ?%` zHZs=QQ@r=yb;^$mQiERJsqUTvaL>%rl1V1seXK}Z{>7iiGYxmLa_)OhKTGA|S!+1^ z#^^+CGE&DGjNvZVwOc7Vw6MePUPa)&INr2xw&^03NZEkU1yCZwk~89@HjsdUG^=cV zzv;8n^{4w<`Cu}mM^*Z1d8$;hV33-Xqe41Ed0S~8%NGYT!U?UoO=5*zfk2Sjl)ZOL z8`!b3x(uv@MlT;NG|SQZai$mcI-J*^mBP+Pu|<6raHGZd4(si7!#mQ`sfa%n%ih7R zKb%M=>+553a>Ym#-$KowjJ%wt!8|+7z>TF+3$`T>5J+)MAh!S3kMkKn7>Yo_jL?=|y7&UE7Q zPVp|_X0M!6nR{Ia3)cwK^_m-#HIt{LIilTDTehLOl9Pi%!*RBlJ)5>$bO+dE07___ z7WE?>pM7G{W7cH?B7+B*6n=m!?!Ecnv&61LbicYn_9}u*z)${!cU;6e+#nFeaL9Eb z#+cx&-fW-iy;lSP4*K(q_fkT%s7A((|0SN`KZp^F-I#%p;=zMg4<7XF<=`~Z4A4xJ z^jGjk_08HQE@8ER=LzKY*nQQg^6EkDk&=-1dX=Tm?ffsI_>OwJ4JWTTjD`;aMvM<; zS0oH8#O_gdc=V@ndQe0tf~$BgHLNgPT)*bpMUW}14=;>8Vd6aVl`&(RTk$e#Db-X$tM{I8eWqJf zH4aD+ye(5XdXxstMC8XP$DvSWi{!GlqK76~@olJdbMUpl=&$@1WKQF#sw>{=50a54 ziVo!VIQNfKXM0vZ=_uF}!Yu8kN>&5D=@gxNFJZFc-F(5MW4t47|s%T`m2q0qONB-eDfdyH|Bj_ z><{{KkQVMZBxG!nOs}oZBQD=pWdbQ(m!UwHQ03s)j14ulV(en%l~k41*Vc@F%(}Xx zzyaw9)nSE8VCxNg%W4Z?sEYgc{=?oqaat2LyJOE`>~%1{Az-5N1*AGScX-L&67#D5+{3EK-H#K3b3&`Td$8^vbr;`uMpx{2#w zQ$3Uqinx_jTfv)>7{(equPExuTaewCe{DxBz%jwtfC&#v&y#O+tJPb{0?|o)uDfq!R-@4duC<&q>gYgZ{Pn*n zwlscUkq80hB*^U!CVMz1fTc>-qgd&xI7BvXMtoG008joz7h-qqvl?WJ_`DsP$v{pv z;J0FxOkdX!zI!3JJWX7@a$`eBU6bEc*Z&&;@7KO5TxjeOTiKl>GSbbbk#lnIwDi$umDtnWEL@L zG!o`m8{$w66)B*UWZAI4B4EW9p>i2CX2|+hj8AbG>DP6%!Vzf-r~*FO7_2Bj$`|7c zy)fYo*O_M+(vSF3;Aid<$LY}_sj;?4M4s8-Okd{{Rawpo`6-M@p6&da-Bc&7 z&O#6R=ylKZ5`a7pFW>i$N1do>>N!< zI0z)F*w)^@7vpg9FiYBVTRN_7i?MgCLNAzrk$Mf3SC!M{{CHE!vyv??nDfUScm6Yp z0+d+`C25=-J&{xJ&q3SwsJxLs_gmPRhm_U*pO**84L(jayxU>N(r+nybeFQxe@#`r z17*rGej*cW&#g`?f*y-JtqGIm>EfF~#S$fEIFXGpw`^G_mG2&N;*{}NEyevr-yPCr zP{d!CUfl^BGtP{vJ$vN;e9c4-$wVZ5yX|YFfShpCt%Z&m?dSBc6^( zhR}T;y^eE$zipS{M`A^<7q#%Y&+KTyn%2x5@{Wd({MANLd>=*1+g+O+#*e=FX)JS0 z2M)~i@(T+&$aJW1f?mqr6pfAR&^q|c=l_Uaxx=VkM*j!%6RM3CzF0l(_oPQw$8@OHHp0HmbP&8Zg~D;*n=#=`S*?8uP4{KYtY@528*0XaHM)Cy6{#JUdv# z^`IVxM2lIr_N*$sTm3aAC*bXAewa-Sd3Mf+BsrE2&4VZSQOuC%n)xYCZ}s}+wZDNn zLtp$&dT`^aQpgrb`y^nsX4nxQ?PCzPvtrv!a3r;oX1w7Z9yOQ_I=Z%rHPK0rlYHK; zF0zBow@mg%c6PJ*%J)0|ybjuG_}J@Mr6Cxf##)?eiZ!d>$-g^*Dv`Ng;njZwZHG6V z(>=%SAojld2ycj>-jFIo3(Pxx2HyL0ADeH|+KUhRO(em(4Q;J5y(!mXwlU;sz104l(!JKcPB*l);d5wLYmK94o}bl5wI7ZI z3kw4e2I*+V!W?q4Im$Zpy)oD}s~`&nN}c;X_otPt5+gVKU!1D1oc+PwoF{+_O#6v> zcdmLwv^I3gBCimAH-}?3=se<&|DsvocxPJQeMQ7?rWmrwDY1F{JJ}+=pt(z0^YL{0Hh|d55Z`ft+ifWC+Kf4P0hP;U29cX}u1XP7xMbr9*ieUr+Ft z-uay#1=zLu_bW^Xu8r~7b%oC=1Y0#UHB~f9^?wu7FZN-^mY7bQ`^4xrR_}FCIJg0; zLQ6*)Lcv&(mwCODa1GyJ^vdBD0X~hghQXVWJMObhHi12LFJjhHTbzlL`Wz_f$;d9? z(BCSM5r%*8Tewi;u1g~!d4nviS-ZU%{bRGp+N6|gS)4Rv^ND9ay#*?X4AZ-?1pj!s znimLQ?iKaE^$}|QIkVH&<7HRsUg+jjp+lc{npZFR;dA2{q;$Z!ej(--Wg0FF@0qb> zK6!p=JOP?RYdBaQ%0{BJ!@N4O48_ppuLDjjkc*zguBhXncL5a&8bS5kDS5@Svsv2} zIP#5ZZ9EH;%w+t#>Nq!LTbeM@l(}f|+`xyf2=Cd@7rR%!+kzfEcr`NEy4+i_KIAd& zkTs7VDbDl@Z{FZkqB!Ol97H{oBRSgRx?2wMxd^!>_kg)$-Hs(*L31!#5wMyfA!2N~>&a zwDq$ssB>12@D|eWf9?{;xGdMVPW`KEkAowKE?RphZyJlUSgbwLE>Zfqyqn$wt+TWjElBjo5b$VO~FM z&Z_T2N3C)2A}-jTII4&YyCEGen>^{A`hLqa&} z1!|nlcQHJWjM^1wh4Ohd#QwcRKWjPXG}X4%SN(!(-#b`L*oary{K+0PQ*ePV7bgP% z!kvhBgItOd+bQs-n<9nZ*TxntPCRy~q~~^`PB9;|E@-JUs#C>Wy-b3fTszg8wXXg= z;TLK@AP(_aYx+)h(x1Mh=8@BfIHdp{+&m3TF{cT}>@M>Q`=^jKN5}aXG0h&!uY8_x z@J|?I`3w51Q`4uMabo=YUiy-!{HM11Wvk*?YWBR9Wd0p#gj>9BJzRI;_U?jk04#ud zW5lDN{xeRo@n=gf3yU^I2z1v^Ic__zF`*A4WxY7tM9;P(B$QW3nCB*af0<2iewyy| z`N;4ItY{%kq&KG>FwwrWhm;+Zig+i<-cKx!Vq3~Awpm=>Ni08Lwq4`f4Q|bc^&b=O zOu7-H#gzR|=jD2lhFuqywMhGvi{U%>8Zcu<`ucI}>+8F5-l1x92fZ=?BXnVOvp#+7 zxM`G*h9oOt$KaMO+#Vsns&a;iI1g7k-9_R0)#w4!SQLn3qgK2Ecw^S-8>By1y&Wok zFiQL=_D{mHG2NAK@$cHk>Ge6Wz2PRkx!;XV@#*k4Dxd|K)Sg{A016cd{U#=dP-B~> zXIloFlbmONC}#mO$p-~6+=AL|&*vY`>^|M$Mg99&GvlR_6Iane@tbI`E#1rHwcJZZ z4X{%En^N!i50%J3i)dirW11%|!Eb8+vd;89rUwc#bXlk)hf;l%C2wdJOz747X<1s0&<@fqMoa7`WBZc;DLNnPiN%&aWJ+*=_0)aU~QGB-0TIwp3_ zVI|jlv7j>`<^+P*Md8?D^NWc1-$#-Evu3@6;u>b-yoj?_WndwEwsc7^ZBkNFiZ3WR zRH-3Jnv7X}k&xDTqgV8kh#N3w30rGcP_x5V?5uicS`Ki(vFl^4Dd9N@?`VZ> zO4P0s{XrmJxFogHmaohk^mX}CyS?2lEtqeb2VueQLu?Gn$75dD*EJ(`7T*obFRX#i z36=~bs{RfALajY%gesUFzzBWV$g=a?LTC;vWJ5kwKXyso&fJI@Zh9h@fkfmyK|{sA z{+wK~E79KT+2ZLNIa+w7TacqKU(pE871SQaTo1~|5$!UAWQz?3($a6k9lGGUX(GXV zSP{FnB7jGO@?HM&QSY7T@~T%R-Hi4uXcepnyc9snO{qSH6O(BOo+3C zq5g$8VVKvLVzp&)lRu>s;)hftDsCcvTJm5Ik>`FJ8vvi7W4*Cq{NkIh=ahK?M#F=s zfc7_|QnG&P-8WkDxRa$wS|_@jEqNoSSY=p&-c{(m;HlTGk=))NcZ3HAOi~Yn+q9i) zrffaEJkiUo)&t_aI{Jp#9f+_3x8S0*5<#d7Z}ccpZBR1EuM#YSG`E;QiKkIS71h)j zLP?wEP-uIzHi1CEvaL)P(Gc&_hW0nWpZJn4%LdVqggn3jEvLZbM$ z*HrNbjD}RDX`-JALB}H_lpKrM#YHcNFh%?Su)P;_2o_dmGA@;8kh3gELR*Lqprh;< zmM3MJJBw5+%f8QOdMBi%Njc+-1OR@_?VVf&YRa+QMM!0;L>d|$t%}pgiNEOTrEh=! z!29&~M|U97yKB;Mai?+}}(;Fjy@5=g<6=T&TfC^DYaBx#H^e z-pmNrWR7gla6n{dx`eH(STdo;gS1N_At6s!s*04yp`JK5FPZwz!vWnXIX`^S_dcBZJiLA@gtV~ zkGGA15>k$hTfCISNVMJBGp}S*y@21#!o?p*Gb6@8wfqn+@6$T%+Yvd4Jn`4r(+?H1*y(%KjRVOt?VSe@yy|)DVB@~6k>;dw z`PZjnl~2L#zR{V4n&DH|st}%Bh!H+eC;|7jTowh#tAUosl9ypsH3Rg_ukVvJvicuB|BsD zb`+u+OuqT{5ISU`!`J8fH$Z?~E_9*h`j9K8CkZrSoB;>_jvC<-5ERs%gxl>HP>hW= zdQ2v#q%7r7gHE3eF>8zi^8k;hU2G;@UK9EI$~_eohyUXFJ%^Yth>4;UfVQ|GUH*@? zfd8LpGynhfe+<0SC=A2Bck2JAwFJ+v{UntX@LblP!-A&G#jqOG@oO60-#JOk4S;UVCr6A|vtSED!W8;EOLt8qm z_0qsK1uhzCI?wiMJb;oTu0#xIL<4F4`MQ)&<#1?*O$}8`iRpsl%jr#E@9ofKCg>YnVF}p>#f+n_14T9^|$GtJ&zcR6%JS;_H#SmJxfF zM-$DR>VI!&0y{UHN3zQ^BwQ|nJFKF!k2)FXsy*UQ@c>7sX%e5|#NNgv&-?TJow;h= zPI!=tR43)20%HFR#X9IqHP$Hd&^9Y^|-i zOfTtcT3cH$y4wOwDd;229H!>}m&J?#P=UM6^SbxTm8ur=i-&c%7$h@uM@%eI53K{W zt`n)bir3sAO0&OnLUhLzK5O{9TBoM6v#wG}t*up+rko7zPf}b&si!Pw`J+Xp^>r7X z9{|}{q@W2(Hryn^>@oYzyZZ8Vk1H9Ug=dILy#_XmyiAT#aD7C3`pBETB_F`n?DxTJ zjXteV_!i{g^2XG4H~CNG#rG@xH|*K@;^LSuWGtSiVZAQJo;V>KL|!YaQIlcb>96DD zoKd;v)-DVmTg}`|R*c&Qj~zx&Kc}3i<@!{@bU4pnj!@^!U_c}P8HyKx~a zKaKa#1EUoirhE6z8Bx9n*Ax*a?-x2w(7n|ylR`pVHRkxHgugni+jQX=+k|hajDX>F zcJTh2-4FF5O7gx=sZlbY{fj{TvCo6cJisW*I1Wvs^n2Ap`#Yw4 z8?=(*sTVRjJNzs6d6RFuc;H}&qyBqw=B&6c@*0xtlelW{mhLL!&Dk~*pFF)7vfW%j z+F|IkPU30f9l3v&(vglem@PnlKkE0oPrtl<1yh=WsxSaP)`r=WuT^(r-40{gp8pb7 zVwHKRV#sFLRX{$`wm`8@*ELUD<)j+=eyq;6*k%~0huvR~BL|`##V$kF9Mcc@8XE0? zYr6w|`JQ^(t@(k_PcqQBF~Mny3~5pubpaeibWgEv+U_hdd{Tks^aW`)C}1v(1Xzyt zMQ@@B>wa#nWOBTc6SLjL6ued_bruLAP^dcn4H$FPYGXQp`xhIg%u4h|n4Xi4_BP~wH|s7O6DzQHOV1c+$_o-VIoQcNuL4T;0FgHYU@GYL zSIRV~`N06^UYE*|el=9qX4>?y87e;NA=A*jXNbY>XMl4LQa4-uU_q&lqyOfLf@TBK zI`YJn^;ASh@9*u^$cq|N206vcL-cH>*Ti!xRNzt$yyQ zoeCaN;YSDf>(`#70&R(>^K=nEUGl<8l;N5tfNyBq8Bw^Hjkv7ayudnvUUsbpQT&g} zCdSLa{<#hm01u*6oj@-Dq!Vz5xQkta%;a6iv&7_!5=Pi|KOasSI2W6*a<-Llbh3j? z$;ikkkB_GXc9o(3wd?Fl8qjq;ce)ugFfbtAZ3Q?)T*!v--u`~b3b4uWi|B`*Cm|cv z&B=+0j&H=YGlAw6AfG4zvgj=m92iQeOst8WOl;e>ZEIrNwkNi8V%xSk(Zse-bkFbq-uHgKz1BH<*Xr)t zRn6+^dLk9&B@ke7V8Ot^5TqnUmBGNiRf66Np&>#4UzU5wpvO07WeH)hni;%P5b?u8 zNKOb0tUey@-3S6i!#GH4IfH>A4*vK1HfmpP3I?VpA|)!M>Y;y`X! zk`iKQlVq7Qb_iLLr#7cZS=LW|d-b1Frk=CCuiGu&HXApct*FpoA&5a~mMU`Gl5=gt z(AZeGTDv)9hOAJLGGX$Nw9Ne9fgyzp20&;D14s0K$qJ`XGcqEAw^h}2R8dS{rg#r| zSXxx{puI$}Am7b)zvI(Isnd-PRdEhQl!e4{^KCy z%yM_&RPU-53?P%&!vt8lUGYry8^k$(2?fnbfrQ~IkTQYV_U)v|^WzmgQKbS2qFhp? zO*l5wO(fhH5i#a0y|c}i&SDZYr@I@m6+o;uvX%Z;s2Ca1Wr)Y;7HQ4v)g& z&8|S}KPk#~cqf7d9&T7X9hlPRxXtl116J@t&Je$hd8H!#2%Fv)U9)S6Me#yeNIT?lL+z@oof8V6 z(erjMs|=sh@0ZmTe~HtA$M{>oShYb8d$}w%4Y&B`F|63aY`?$jvOjx=FNI&2BG_`a zt8XiWP-_IO+43K4Q2YhCu50#MeWu)f_VzaxF@3R`_@}2BYl{*I z|KkiEnRK81xzC$~#**odJ=LXlkEK5NW770$v)wsV96519(CGuiU!V0t=Gl*>jH&5W z#V_ZL%K$R>c#3fM0*+(%(Vb^;U1}!PWc8Z_Fa~S#;a24K@>(t&Xqnvw{0Y|kTAA@# zivMoSxF~^WY=~qb``I(}7&9ZQ#h)^dKh62mPsX*ipLUxUCy$)z9p|x_@@H+&_$dCR z2a0FFoR|G=Mk_A4RN2eNA;TK0^Uqw@3y~<;$-kaAtIs}#4x{p3A!Yfn6W+@cN#_a3cB#7jK7dcaOBziri;JCK|8a^|FVl<~0W6aF)vVnt!r ziL8f`Q>=~IR=wv?5}UxUWg_~Lx~fN zs0v$8wtzQ7j<*?DJ0fTqk#&6f5%W`*Ma&rt@Lt31w82*oMFy|7EC-4`M4WmZ$#J6v zNt0@e%NdT!(wkdrbJmmd(T8~8Vp%Y{g1iBRysuGwj}MD8yh(VMOdg`!n4L^p);IXP zi5iB^`2>yItdr5vYp>luzR?29vl<@ygdOajQ!JSFx{Ye5fJfbJm*2nkfhka?Clk(k z_?~Y2QFpmPHxK8#QRCf`HP0CnEs^%SNe*EGDOzd#$(Z#w`|J(}ysK(u-`_2696Hz} zEp|@NOLk-;Rx#hNlhq|_H~WXiv%PiV?|9C5_2b(_R5Chld3ylyqymc) z^lA0^VR~Cyc>NM$ssNZp$5kuyQ7)zr6|b_Vm*1)CHu8OfhZG2}TwCg)V@G{E2@JPKj4(Wf*+DQ)g( z-3~L8`(v?$fx8m(pY|^3GV>W$`y<7N-X3rC!9Ie(z*AY5A4z> z;&`IpH>N$A{2A^+c0`TO2VY@>ar>J%gWvG5k4|A>TGug4T!WRz_O}zUeQuWV z_&@J>Bi9zXa!Nb-?lFK1{h|Y5wHS3G)`71(ub-3Aq~9ZzP+tt6_+JVc_;94STJ7NX zkLdpG_j@Of<#^uv8bRcVj-@vH^qN8tDj4)XFd#XxEyBjHzJ2%W+FFq&kvDgsAFjBW z;t%GY+ayg*V4%2P?&5+6GC^wLS4UU2iOzM%`SktR2j=1g4RVlW}{n zqLfOn-LKJ@#^~EG&JK++r@-4296GteXfgHuXevu+?vd6;w>v5}Ck2n(42R;gB?PIo z_Fp9v3v|1Qc(nXA6$H$$Ltd8mqnl+7)bv{&l%v|N8A^te`%n(LgVq?U`pw{^4oD|tLi8cXrH-Y||hOo{!q#ZKm1uro0Dk2jnwa8=d6iCoIX|Jzgp4+8OM zr>a8{#o%2^BBe0u)1tL$17V~LZ6%zWiOAvvAHO#CC5Pa%$ouL=BndKhZ-I=zfdu&a zfg6}^4)r(EVZTT|q>}D-LUco}E7@(|=F2j$BQX(SLZmr@_3(eO#6^!TrTPw)2E=wZ zwnzk+=XM?PNO9dBgb?CarI;WM?~_L2*HHXX*cx-Z1o z#DXjg(8_`!+jqLtsEP`vzBr3s=UyB>AtOGqHQ>_e!IA-AW%&=5Al9aTGge_K8EV9P z0gMKx1HhXs)zPs`ud(4$EFuhDAHP(?uvo{R?%id;Nn|9gqjSldmIF}v8O3Lz`fIVw z-dI8vMTW$V$og+kzdqvy9THBlG-sEd!#BN?_B0H+x7%q!Bxd3#7QM!_LbS7ttYBIN zi&k4#qNo%}gab-U!ULnLGpZAPBD;6_kwce+Mg(X7CR}l+1odZ^C=qH&VUTX(af+=3<+Act1)qKooN+E*7v7qB~$8ze77gqrnH)ZmcygE z&I>)bo63ZC>6E2r!zeU@q6QjmAe=EEFwPrLmEXDW9hHwS>6A7n+=_=g2Ty=e=n8fp z;-Qyv|2Co#R}2^3ij@ro?uQ^Pw$*2ymc`DDbybRre4_A|a)b>vnWk;%=%YN;WCjIz*J315GgTCI>w9wNDZy*JIzXJpBQi^3zh&P~u^A@Zl zrg*1PY%9Rxij<`BdC1+^J=?+bW)D$}?z>!7H6um*)SAl08y)s6HeGbbmOlP?Dfq_v zV?DNon~m}5EfzE5U{}vSlq2(moS_W-Ugx-e7gsviaB{LRs$Jq%m8suX>)&d=W@=Xp z&Y|*HcIl8%)bytePN%wZO-*BYPyTY|8YsNW+wAMhz8Hh) z;i7NpU`D2)dK5~BV+gL^cK=p+u_4-&A1ewB$CM*@pQ)wTvs`fhp#tfNJ{(WrrW>ch zfBf<^Aw|Ms-eCRah4F=JNElA0oXzXKYn3xJ{BI|;EG zaAMoEI4)%h*H;hNPY_wD&!dZ^xh9>`$^R)|tgTg=|2vGfD8# zr~DjP)}+B%lWF&8N`f^LhTc!jKG4Tk5SJyOJ^2zCK0Q~)dH2RRc9$&?S%OU^h#20q zCha%sx53?wltmc`Gp6hL2oVL$@E}jMe7c#UxgF-1p0?bRuGr81dF;>5+X;Qp5j&=+ zfiun{jmG#ON5*T(g^As3tFFYo=_8UK6^<@A=khn^V=)LEkTPEt;q>K0E!%G7B*c)t zp;RzUQn~mkYV^+$M&W{|@m-Yhc=ctDQN?|-;(+mE<{?F*-C{@YHFo|<>cR5Q)Tu#~ zT`F=`*yz%ubn6Hpd!t49wE?9r1OYjt3A;Y#{y(YblQz$L>-XaaR9u~HP<8xd21*wt zTS6fk-(zKKtX%eM^nVVuU!=z96IM-W)E*IYp(?K}EKWY9*hEN{y!L5jBk9b7MhfXC z#(;~ErlNgckWmK?}9@1vGK06)-IO|%DuU)@pc5q zZ~ETxI5N1`?FhTU3c*b(&Eko*dXA9gbGQw@u*Ich#1)hWxfSdA5+3>WRxam~a^p{O z#&o~z;>I06?ymVi4?FaZI_I=l-R2yAv1C319zw&eoqupOI-cA_-Sirn=L03Yfoo;A z)}mE&5CIr^e?>%ZEg;Q&+-(0$amBtYgsN=JH2qSi(T`>%&8~5|v>n|?^%^LUqB3%_ z+Q6RWmcp6ch-V}6^Vozbe%3(g=rNk^-XRrZpbo`Ck=JWmXokyPMD6uxDpT0!CFQ=> z`Yy+JdRu`VIly_FDSh+Bo$P4{Pl)L)1bBt_?j=MWImwFEWQu@Wk5a`}YfrFE)T~D3 z7P@9wdkCbM*1Pm{GW|wKn+)w6fi+e+%ltbzCr+;ip2w5G&C_$D_l_5=nB2TLGo6Ty zg=BgtMpea`)b-r4IxhA`S-g-+o$Xkyi1uaLV0xpLdtvi{yb@}rKfp79Ev`aytVR8( z(MC+(j^Op~`@!A!g3buZP^FYChNm|h6n)9``=Yq(tZjmkz118k|DQttQg>p#Sw6#6 zH0aB=Sg7>16fB=Fs9Ij7m6%gqP+91;mXDRUfVvGWWR)#5NIlYh$wsK&yAL;{GVTJi z47j=QS!-$RkBe<>)~Ig}4+Kjt6{h#Y6qeYqGBVDzQ*wZ6?JafDVrEKbj(o}HMM{RW zZi0(?>3Sm$nqnj~Y3 zskPNX?jTj{LQOtGP0TUu=NtN33jpTm@==eN9=$fGE%bD1R_QiGBU9J0Jrr|eQ2@-eRtr5y#N3t{Ipcd!t1ht1BrI?%JRQup zB`fcnb0t&45DtxT2to)s*g$Eh70!+%Lp!Pm;c!~2Po$b#?UtUBAu%i1qob7G&?wOM zr6#U3t1g@@iBPz@h=wt&R|cS!n9Mb|8Zi$~!`cTj#H})z!9*}SRQQpMu-OlmiZk4< zslJ7lI_lHI?b*#8TQ;QX6`RkuOj`@9gpz35u;E3!q7XRx#vUt2+|6#+|-;go!%wa{r8P zIM>UhAmI)c#NT~pP5{yt08^j^uo@LXo3(5q@O2_c-JKrZX`>Fb}C4p z4Jfptl*)9hmKS}U_Rj~4@!`-p)DZtU(LVbRb~+`_yswEA7IIVVI$fw-`CkMlOXL5H z0({s^zRkO{t(vcn6exkG`U;>vr@7MSR3=-zJ>9zOiPGuVdVAws?8E~)dCJwdJ=2MY z>xKBN(su80LxqKeguY2BELbj#t(@G8RUp>mDvBNuMiFyhp03pohg9_R_Vx=y%#|1L zO=3`Kb(!#|NE@3ur zdSOwi*#;PoLc)@ql}9Up#0;eW`9R+XB{7>MX+J;g&*1UO&1e|N$w%y7mAF%{d!mQ4 z?5)T6$xY{@7GS=@Mti{n;DRa?6V}*qt3%$Lma>zbd;ZM2g>FHQ{Vd$_B zPVLzTOYqrvQT{Qy1Vg}jW2$6LfWr8A%I$>~VndhD-Q9iYb}rnMtQ^S2T4JXsLreEZ zrd!p$Fd{+~W7ZECS=MNQ`N@9$HwDuB>GvzsA0?q@n3UrE)#boky7SwHU@~*^j!F4k z-TtiuyaBsXR1bP=!db5$FFm9W=05?1zM@wdEMj2{y@m6|Fl^#gAQ7AxwW~m$W!TUl zR!hkC2HvXbb7M=RxD3E8c1ed4CECH^BuKu*j8}L#XO;^a+j25HVXC{JJJSIs#(CJvlz;-C8)4yMTG&IL7`E)0 zB`cb=5sOOE6i}y!RH&QtF=1q5DhbrZ9~IF>d63On z@VL<>0#y`BO-vrGD8;>l#C*l8=Oa*#U6ABLY}^ncPo}&vkL=vvrgH^Q(eACpsrRe$ zfk&Zn?Q=5o1o_JATIt^S+1c>Db+QJItKxnjBLip;keV^Wns1&~fVR+q$nm%5XNtzF z2D+IsTZsy=NWSSAO9Qo);DN{^wWW6JMd2&g-}@WY$c#TU*|3%n$`Mtqw7HKkj+Pp0 zXddo_6LVkTwQAtKmp7EOwiBEfelR*4u!8A-=}m;6UFz3dnog`x()B7LxnB#xUu@w( z!P%xA)GgC;Jqd1<-+k?FR0A}~vdTZFX8?iFB651}UOit#{I$!d9jfr-MpgPa6W|nt zrScb%!E@c*fN`V6!NuC%qxG4b(B5+fE#WPr!KU{=;?efC$c&q@sd8t~Ibi8cZv@9z zrvHo${v_@zJ8RtvId}BvcA@mXGG-}ln6!Q5IKB~?U2lY|nk4E>27=e?b^kqSs3;Gx z6Rh`RrJtcP`OvJ;1fU8RC?>pXN`t=v)3em15VUN^?(RI3fN0@iV!n;yWRiYpEPQXs z={4_MjEsS7-D-9eBlAnw0j1Z(vRl~AWFhN((bQj1=iYN>fy_$L^PBN}5||6sNlk?j zj3aFLak+|%UMtvs_$Kdyo`6lbe2LaqQST{oVjHx>YmW*+E2p)G1a2SB_A&*`&z7AQ zgy>wp=J!8g>*+F^dQ0;5lV^{iNyYxhuCT3Iy?H4`Zx^&pZ_99 zj609?I*oh1TOALZz7I)P5mwgtv6kZ|3}g_!re~Re}X(E7w@OPv$ualnnNo zv%K*Y6hUGRdtzF$Ayb1zvP6DFkxL z^GX>HV%?g~=Yok;z@a@^Q(jbJHDcBeWGL-sDle_>!8%wy3JOsv7nXs_?@5$$ZG#$jq$sB|E;c| zJq@nS;{8Y&bBX2rbs*#QJsa-O#uByo0zXAhVVp|ZXfmEW-+%__+nL<>?DUH!vr*_C zd%GIyo}rv()N}^&($qqc61V4KYK#sgx0D>!mp*{%%QMH3A_lFhjZuF4+nH-oaN~rz zB4+^4w};z{(W(4KQ467&?#2sU#%y}NW7LxC_4^{27enYzA)drG#J$1Qv;M~4LBVbf z_kEBfk9bmjp}&&|#Zf!*36sB$6?*MRU?RK(?*>gjw*`{@@+u5|IKjMC(CLNES{y@| ziKV&hf>lbm7F@Q9`5uk?Uzu9W$-B*b#Q4DpNBX79Hqckkqqn^O{toG8^b(Ylt=8=; znx{EEW@nq>DdZ7Io!^q*rZJZ!d3lfC? z=3x~f0tyZCV1&K^%9qYReqV$ledG?DfE3KHC$I<-F0qqxDf;=|AE*d(%h4->4^i;HZGhN@2efq^nYmCPpX&%~6Sv5g~n+}C;z@fjjoZ&cAx z!gTdP-{zV-yHo2sR$3S80q8hIfRkYTB%D6Br^Ui@2oAwbYj=Ex%!1VH>joRCUPO-i zPq!z-PXop4?#m1GxWui*e|11em}k@ot|~kcSUv23w|EZ8h)AN{R?CS2$1AY1q`=Ky z&xG?x?>Cr`&7S_l=(KhsEop^cA7wcqmIgWHz2}V&Ht;YoFje#Vx$^#NH4u%v4F6Ir zv)dgrCNUXMQMnOn{at@?bky93{g zxyUervF3Fwn}2`V|H+F1GM3j)9Mkw>7q6RH?uPFC<;&*cMPPs%lao6VvVm3jrpTW~ zUfl~!Marr)Z?lZcOG9J#);Xl@=iz}_``|!QcHT8Wg@)OhQQld>!35w$#onvtYpSsg z*a;N;j9y}-&i6wbt`PPR>=QJ^N%0^0@_Q(sWz0lvj{Plj2oX; zA9rkE(7&M$Rgl?n9Bk`mDf8QAX51FrR`f+R+m4N_-tQH>U-*C?dQLFNhNr@YP>0t& zGh^c!#%YqYUJeAKyMEol!9={Wi>ULnNcEJD+Bg@HLA~i5u=i)0!#XV*_pQapERLeY zxzbPwj37=qqEU>@#qI#8i}wm7J>IR~ zKxG=B?3z?lP0f(BxMl&S>V0v@onpqmJu$l6@KSsVy?XpnmoiD5^x?LW+h?egQ;32} zCc7HJ;4@7Q(hFOO&@yi0xZ3{OZXkXS|05mP zCpo?TeHE1Gj?!lt-=758q*R<@5;^d?z7^#~eOQbucn^cuR5Tp7l^chp+IWb*Sk6n% z$Y^y}R1751^8&&JoEPu@QEm$vr|WNIPuZ~TrwVzym0Y+xF-Vw~yHkggn-S~sTI>^Z zgzRwI@km6wPY5#?dV?2E(6TofzSUlBD{_gWh8Qluc3|I_{pT9($qaxWnGAEnP^&2fOpViKI?RkL82 z4~``Lob5X_2^68uVgZF9D^I)?>FXe4+&jcSk=E7dDTmaY-rwcR1`?d<@N+oskD@Ta zlE>G*DbJ1N20J$nT`PfKV4Hu(m15VY#wp?`JHLQ#DlK(O9#iIvcO^EN8`>GW0$391 z4)l^&Dr%UyfkRZG4eP~nv>$D_SBQv9lXA>gIDhb3HhC<#>iqaWkDVN@xf7I}Tkp>u zm)Eppnbr9Gr;9CBs&`WAMd#n}aTqP1`ScAasodZ%*YXEOTAT)(B+x@=pW+Q?@FHT> z2%L|g^{f%mRRyAq)sWj>>h+4eWqqsEY&%&T9?j_OpBFzJ9_BRvx+=t_7J)CnTQ|3Qb0pOSZ@|P3Le_2Z)^-{@Z zaAy;IsMF9~-4>l{8KZuHnJgP!&BeLdRbzQFV*Z|PQs{<93SSm1ov}g?W$CpSD6K*w zHMA1geqo3GJ$-Qso>*9C^dU#t z#yGU#1U5_TlaN;HXP;H?r|f!Z*XX;{gcR*#himyAQsnu=Y0)Fk^_kk;_4aZ@N?HLv z?#;36?7;qpdyb{@PRvk=eifEB6A#qn{$7HZxYhcU*W&{4W55~6I+auT-s|an_{FAH zM_vBkLeMd$K=EqSa5vW6w`%~N(ajfh-$9OqH9%9e=Iz1GhrbXBn>jlL!4oO%o_}1G zu*Y)zf;5RZTe^Lka{&)a!cDm8%i;K2`ZW0S^o$WR>`jC{2f^r12LUr9-j&G{3Ueg| z;;9m7(@lOAQYz+oFn!wXCYwU52%jw^#MVSwct$#I%#%LnqzrsQef2C%yW1#dkYILN z^09lfHO>s5D=IjF)|s@#1Kx^g>+l*L$0Ww!u_Xt{v^PC%4cR+4X&}_XTCM*zCel=4 zcz$uL-YGHC?!@qPx;&krf5K>6)42f(!vwGHm@m|Lhf4fgH|^3nnVt7^f+%f{Jr6^n zAFDi>gGpxg`S-r*1Z0I?KrUYoGNa`_lL$`Lp{AtF&(9AC9|y2nTj`ck&Uz$9Rb3YtEDqH*Jj?R!=Tp@MrRB#5Fyd0Va4$X)(zo_r?KMNiJkom#|`IpbMEZBksC zBu6my9>DQRlJUAzDZduv)04|^DipxWq#R5z(IO0=fEKkpC{2E6g_@L(0%vOnjPp*n z7Weq_(MsENtJBZ6*zN;H^c9bCxaWUyYECLho#@~)f(+Ppo?(F(*Ln_ymZ2naGc8=k z$6%zf50Hy@CyGkN5$jp3`NBeN8#sS*ODrI;)*$wK+5Ad3okQU_T}F~wKGw35z{*K# zifjCBThq1NN8qRCbNVkAjQLA!Ujl!Ja6>1>fsD&grUm8sIRS+_&gLIdrs9OHGwyaHT=C@zO#D#%U z`y=UaEs*27?aJrwQZKHSlKEXcUJP^ZIdLGZrJrF8VWb;>N zOZE$B)LAuY!Z6jlj`$7D8q-uxx$M79rnURLdS9-)5r0wIu(qs#CFpgPH@iwoxi~fs zj5ZSN{75tDQXJ;!N4mMKlECDsUKj8h-)=?H5)Db6HeVpE-eDj;W2!is{+bU`+aIcs z?|iPiVhRL;zt_81(zwvum_-JuVW{famAFkuc8#UGpNZxah&0<|&}bAUj5pZ;p>KR6 z58$y4uDcCNG1Ngmh*j_F%ieeuK`CWU7!LHJQii6fg7q1Wd^~ zs~AnK=XAk+Pxo?xK0;6%DVFI;$=ngU!9_*<0nds=ZH9b4gn^OleOCsJ47{%ed>Xiu zmKXb#9QnPY!3&g78iksFM}syXx^QE!x4uD9e^9X)l{~>;!8;n+S_tkoRD@F1DwAV1 z*VOSk*GV|Er+ySuw9YC-b3Gn<04TSwBW>K8A0fHU=;%nbf}igE!gzXrY`rc`-1kiO z4WuGJOR$1NP-ycYnr=+GsbwkGpAT8Lyv?%rBqhMMB&L?$9_7^<}5a> zPvyow9_LxFS43CQ=}3M(>Ck0)mdUfOwbnXJCJ!C3;$7J4X9Lc|pqIP7C$0qKCRnPw zO|dD(U6G@GF>3AN-nF(X1SjQU)XGK zFX$3U0BtAhT&(|Rfv|+eFNV+JXe+tfg^`k&;mt=^tKKR;It@^)pFlG%$gG;iv09%0 z9OLla=FOGQsW7XQUa*)s00@>dvJJaUXJWeJ3yOqF$L8fJH!0>!M$>67uOMiaZF!?_ zqa?}fOKBDG)K@m(GP3aG*=T)xb%KB(lczEnqG+H9B@`nSXpgmwq?>ar%HdY;E_v^PR^=9#l_4ewV<2JKPi!F zV5lk_@kc&TIFPnCpltR|D(NVRBpI$d;tz5(zi%BJbbd?olNAbR?n|C7N5>paDw$eX zx2sWldYaZ~5ASbxN5iPm!NJ+AR?SnXGW^hKIl)9T`6+Mhe=m2aw9w=xAW+b}KxzM> zX=|*Os4`>r{7Gsi7VlI`s7c^t>Xd7GkZ3UQpqCg$Vo>u>N<5cR6FuUP=X&nn9MRNY zEB~GHv2h~jSEnQ%S7PTaZo1Z}U)KBLN!)Iv`~F`=zgSczr>k78aR~TjbH0H$T`-`b zQ(;YKVfJpXRR8T|0~B8MMS)sCtmv(PWO=4HI$YdWBI$ifxu^t*PUT)V|NM+moAIYQrWqx1_9$ETKhn>hoG>twH7bC3jM`Gnx9np%(h#{NRpE)Ut*^l%TB9)oP z0xt6s41(RJr=*&%qpXSeNSV|?V^xU{O*-S0tt(VrC^TD@d~y0%iZ>_525*1jG;&4% z{42oadfM~-L%!p_N(z-am4eyW9bAZcBK5##6MO8L#uQ=`@%IBK=GAHvP*0#?54VB= zB(1cxsKm~q8OqJ&!Ml>z?#C`GR7pNuP%ot>sHkm^a`D`tN>Yi%lB=o0uCy8WqzMWdOyuLv9| zc2Noy7K2EgwK|0qt(#gnWa*tdaJdzuN};KX2Q_e=JQGXU#08|RM-mCE8jWX$LV>*R zlxzq+1HBxsCafGWS)J#GJ{bQ;+lwfy$yl#%*5;0X*)J|F&~?^lR?>G^i2oL!q4|0T zyvmj$5{#`5qrVL$H_B#5p(l__Lv!>(u9&}qEYHab6w0OlZ#UD?1YFRF!Kw7DbS0){ zWnN6a!F59BSs073GnyPpe`i2%M*DV0e`!22l|l>MUTMaF>5h0a-GtzS>Z5a_>{+~X zv}AtBGL!yA;!V#t?=W?IJM8;1t2-Xky~=hG))BpADyy?}c+%YX{w&S9!LJ+WtN1fk z9#5#phqO`Ki>abl;7Lem$>0`Q=d)w*X5Rvv*#agw%x@sSz1|Vz%6ZPJ!+^|Jw#f*zCa!fmq*VWf>>wh9X!c=QcTH%O(g5|&P)Dy zXXo)Tv>v0BBYNdUPbWhWnr{EXthhm%f{GA&2%D0-G1BS=R z;CCE<11KAvIk6I&QzT-}_j`V~cb{};q}&Q#{zL6C5QQgiBTX9a&p*-Z@=G9N!zg_H z7F6hhuit>G0#JZ-?ZBWhlT2}TFVk)}rnazX?`(Aq%0}3C^V+oxOGFci*^K(~;STyb zUkT;Udp;CsdDZQ5f%6#ZZc4*y{3qgddSOI0tye6b?3wgc-6GROqshurKj2B zjog!oPY!cCWGuECKYBN<`p6Vh^MvCk+C(K)2eJ%4^IIj5KEA65hr+_w5?0DpQLc0- zU&%ch!>&{|T^hpPiGKC~m_K~8qMhnaZ>Z_}ii&VwMg+1|+zC+K-?(|+{Yh_XX@5m~ zjO)#ai8jm##2AoVq2_&r+$`&8`rgnZIp2FywhxtF`yHsF+>j7cHV;G_0Ca{0Sb&yZ*)kR(}mT_)@n&% zsrfq063X0X&B7EA1g0xsarr`7pulfrfW(jrVso!?%BE&-`Awul z#HLr?_YYXFJuLlVRI6R5FRJZg8;Ia=yFdo^+2KN1m!G^k`Kx!RzDS{pHVd%|J2C+ z1ro(}kjmmwhw%A^hX<~VXu3uf%oD#j#alQ+r$~(n!AA7*4vU*o*vE@l-4kI4KT?iDKE1?c>SiSLcaQbLPu^B=wf#UFTWd4z`*hqq3$RG~ zl-Q*N06%q3>c~zVjd%_G_opuY)Xy1O3fT*dN?a;vxvTwCjWQRmK-pOGL$lgAG|bQ} zS6#l4vEG%uS#EmmrCQi>C9DP^V6yd9#xF-_H2{*p zcZJ*}ZI8e(kFG-fl3g}#xB7sWO4^r&yh!KZbyUYR+FfGAv-1x2;o%>Qj)j+%7{6xs zB2_QPQ_bbU)H%7eEVDO*h;|grho8ZbZEj0(J&DUw?T+h~B8^m_7KAlI$&{;Kx*j3< zeZ77H&#?)}OKwQjCT2SkZ|9*tPB)dj`T9`CadWD%r1QB?*@dn-fE1S?PnOA$59xf5}O9=5!*QQfDWWCA4`n=XfI)HtrzWf%nc33}p+1+|Twa_IquIz`|D$A^;jH;M-YqHT){qszt0&=r0XQiC#r>+vOnDJ(~TcPUlY8 z{&EXF9m2h*ro)}C!e|3YqW#_*%N?wfu*ZQ69~n)%_Ob?dg=OyGF7g#tOS$w6;Ql!z zH+#N&pWJ=*y?NFZu){&y_$x2*^{C%N!mT=luXRy!9WZ2 zTdmO|M2-T5a^O4mE2jIERqxP$9Y?3rCHv;ztzIQoGU?C6>!ZnQtvr7#W|0jx+n;>% z_|r?>@tATElh$ws111t6r3=3{S*tl;uocZIt{3@-TywTWk&3F?uS&`IabW+Qp@UP% z&77arBcmnsa4C|%$a}GQ8`bZ_2yTZK_E(Z zoWeqN;J=fucdW{s5m2vEoQ7mI*Aw*pLkm7!9tW&n7(VkX;Rac*7ZJuKSrh=}!s~4s zUp(ny8iw8nT^RJ)PEEctkeNvtl|m3B6%!6&fydh1ZT<=7F&)Nk5;1+(Pj8y<~ag%9fob>{<*JLOs>j1jKXJTWz+9#HAM#Wi6R~y3(kvs+QEDVgrPCXhaNd}>uh*si( zfC%6`s2&Fk8O8Ik!HNKdMp%2st^N1ZBXZ8a+KRn3R7a)F0KEZtY~+1_UM0qVl));R zgbtiixu_Ky=(?I2bRU6`*-?|5n~_XI!ncnthll%zQ|;DMyg>1W@f7CK<_r{EpwCHn zFXpR{oOqmbmfJzU60fErfV0)W%)&;bmPzE|Wh9wmZfI_$T*?6jQrMp!#JC-cR^95c z%0eZr>zy~ZxFpRozq%BJd-F(2mDl$p0P$5{-v|O>#qQ%lcm4b&Q7PPtnc>y3=y&fv z1mt`~eD~N5UGK-tMxfvVP@KgAOWrL=98ji>ZB-PXy&6T-e{}=va(|wWP82OM(Xax| z*xoGQU||yu50jHgNDTA^d){BOAxx}{g8)*tv~<&;2#sZJ{^AN$5N>P8qr!O#7Ic@* zJu?|4WE`6N1Nm>RL`b5(9t;sNu`+vwP8EnTb-!V~utX3v>Oh3dGV~HMUCjHLBs56H z1|`%XQ0*$07!(>-6w%eMS(1St$e#?Ls*M0D1 zmiSqKaDJeqy!AiCALwQOf1p57(c%$M*wlZxGs##9G#XGHzn-_Wutf1+F3LJX*k?rYfI;!Fw@~B`80fMAjtGO1Vfzqwq>|esqo3 zai@6#z?nxhC`n9{(iV@K(>5Aw&=2ThP(B@FE*`!spcRqMRNbFTi+B3*S)4Hz;zy0@ ziKrD{7#S5sE+wH=an@0Cp%bzRXY}weN!sqdTXwy@=c%XrrT$O2G|$0IeU7m!ByN^0 zvFha)8u_e|vIG@Hug>t_syG|Xi{PR;Ys-TnRP>Zs9ggRQGW&Y#-(d zUU&WZIpMaV5=GuqCQaGSgTlM#Ve0W$2N!kfAas7smosK- z!@R+45f9M@D=7XI!CV1}Ts$tWqvUQfVH||LJBE!dAu+n1z~$@~$ZpB#btK&<+qR|i zp&6$*y%1WlLo|EN;3-C58ayQ9IYXN$O1wIXYqBwqjr^;HGdUjYt=W0SAuk~?(ACbv zpjD|bLqTQLrk-`-On7#!`po*T?LvB@p|vp-@-;q)`j;tvwwEIyXjUmWFkzeIps!c zUMD%Vt=ixc_@WF~5l*+WkpF!|-+M!557EC_K&?Z2n^OlL=w%F}#mxZJwI=#^$XMn7(CrA8@tJ zEeMe$cwGYuhj?v#@c#TkO4KK(WK6O^fQx|L4EzFExZJvxobY|Vl9A9rRdQo2)#z=U zq@q`>sHwNW<5qGDmoX>1n)9&KcCz>@(#37hjfEFGe+-#jbvBKbr7Q$V>EY?P=G)ql zX89#9jE{oz{Q4Nl!;7`gceJxTW3?81Y8Pl%Z6)*N{R7ZY_FU5X(&SE4?3LtdCl7(k z1%KHMR!=W)EHWec>&CP@lPi$O={E94rV`sBR?!M?iQ;Sw#bZqCNp*+@m-;m@j|;om ztv|pE=>`|j%yRU+(`1@>*`OXo&WB0 zDdIRt()l_5c z;OSxaMM*y5s#48X1i#Fw#Q^n%)wASdJVsNx1cb3ZY$?7%@Li^_BNqaOG#>bek4d3dwCHNNaArD4m|koA3VPJr}|@lYtU z$(`ejPRISH_oZVTg4xq&6S2D|?^_Q-p8zl6ta}&SzQL>A%xySfJOizcgRr`8zAq^6tZF}rYIH}9w@ z&3~{iGLx5BXYNSJk=1N5ufaJwoV+Mw6PyGQm z`74Uqfz2>*fa71qox~H@u=^keZsOYxW;IYr zy9-W=vk;5JrIJ|qLua;oH733CgE&kY4k;9wpIQOS8usgw^T|Fz&lhiBdge7~ZB5b1VgE z(w@N-RoTimknS&3?{V^7tZ!!`52QVY%<9x4E*iM_g}Sa9mV*NLUEQvuq8GpFwt}L( z!B3PVWpqzZ�iF?*%FVG&D5IySqCy7^#VDML%XVWEu>#lEu(!oX63~Fn8 z{{;?*7AR6maW4gm1qo6dPD=^y1eX@4SaD0CMH(zP0g4@*BEbnki#rt8V8KhV;`&d| z?>Beuojdo%eY;<+wVyqE&HBvuc?2t93l`SgYr&Q%5c32gJ;{1$wj8^$Z);nIodZ^j zcgc~s*aAG3#lfy;YQUL2m|F7?(&9pRjW`Gt zozbi4;re!8igI}ql%&W>(=5U%(}0?2-M4Z9InJuAsR(9An}dDT$fg!X^(0RLQOCs* z+;1Zl-qBTe8MEOL5B@V|$r078ktCg+NW29+#M@X6qOJ~X`n#dTj+c*3k?IMWc0DVx zM_n0^(7{HK!n|MW^p9HH=nQPFG-!eRy4S5Wb9*$d;_R9Bl(e^N>_*W+<60WUV9wOS zMc-)lT<-vRyMI6XFYZ+0^eb=p?7(lJwYT@TQ66?a0&d&woe%u+<7+K?CyNUs)74s# z!B`=Uf^$&}8{Aiw#=p)vH}9v45B==i`{s;wCBmEctSste8^!D~rUV9!_Ct;13OCOgQmyEGcf6=cByVF`JIx@0B$B?M2&@Z0MBB4ghnpT=CPy9E~&ji)b zbLp|ksy-0Tm<_19$HfkX3Hw54gif~cyN2;&s_=*j>W0gY$;5sP#;B?|y{}wPnwkPn1hN4Boc$*-p<^Frf zJu7M`Cqo~wbi+{tBI}$fBF^H_sDN$VR4FzoVpgOZH# zm{AS1tAy1Y-ME4-CpO=QRgF{9$q(jL4yj@q(%wg8B2wNNuTH(pPQ32;L3;{Lpz8N~ z)PPF511eo|o8!YMcy}Z;%z@oaii+6KyJ$?z$*!%+z7g3 ztaq+~2{!>UEItW(d^v(I9C)m+vBLl{&^2!U$)2v}Wsx=#0Dal+L zUSMn3SW_0rr0c|9gqkpPzojhrNE8wh@^0ep%^&dEej(o&k3U}^9_7w0CP_|Nv(cKB z1;p2Sh&9+OM~+%hG=ADjFR#4a-Vhh0L>o`6}}-t9YL zV`zz;JU*%>R~omJt_cDJ|{xwkNXHJI?$BH?PAW9cHe1I5F_Q7m&gAD%$zB`1C~nCZVl+e8=^-E zd3!%%8C*EGzH?`o=9d`RJBkmp-5QZGdRgC;MHkaOsAZRVN77wyNC&tkqQ-wdn2-=A z>aE}CHTLZMFV#IKPtWQBkG_FET;7F_eyXoYzAg%RL{Vul=c6h-JfLK=gwFVJ^kK!T zKfjKR24s6uLTh*5AUj{LUQnuge*Q+PrHx~`)uJNJrM0qf`?!A7wZbQWs!CP_vmACi zwRV7EGo^>?om(*areFndZjp2kL4_qGw8{M;jFH>Hoox_eURd2-A#krRsbEt%{%7zJ zwpR~p9dgE&9G;L7L6@OFkFe8_+RG3e_4RPtajuG;a6YVj#Bb48*_@94?PP>))cgOZ z4pg@aoE41NX+d*61DaFrRI_;si7D7!(4ftax`RvEgRsl(OU!c zV{WMPT*8w_|DawnS^ct$2be^cXK>ViBM6%+!aPc|s6FrJ{PUoQm`*5A_}YbtT0)J; z>T3JebiAHEdhfhE+MGtUP+nfzls>tYQAx*er8!7UeT5 z;J*ou+E1p*ghGsKj}OnPAlJ6C1X~D8g(Sfb-RD-or1d1V?d{>(SFU4&zx~WAbzlFu zGF${{Y;Ji?%nGA3^UVsJ?GpMgy>QE5E`77f!V*u!VcE#h^`Zy_JApIryktvb<*)vm z?`eSRww~81M61(PmH+%kbIwHO=j8*I!&&a zTG4f~dyCI!7dLL?lp+OnFwUHtWM|(pUfrAym+WR2#a{Dc+>ecgj+8Zhk5?X#)tTC3tRMNs5-u|g zU1e*yANR1??**rqmkcM9506>sIxH0lSCr_Br2OBIP*88$^mF!vR)ta&i<7x9Hke#KSA|+S}ma z7AwH)aWw97>?-=jZq#(4#>C9Ftrsl&jQx1NDNB6%ODcubEV

    5<# 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 X%K&K$5yZ||$5B?$c!PNTHu!%4%61qS literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png new file mode 100644 index 0000000000000000000000000000000000000000..711a3163af3ba282a80f639d9e44dff9d813f798 GIT binary patch literal 88436 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

  • 5Tc-~gK@)3a&70eryt0&8z# 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 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/menus.md b/i18n/es/docusaurus-plugin-content-docs/current/server/menus.md index 32d10d0613a4d0..786d2f0f6e9546 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/menus.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/menus.md @@ -132,10 +132,10 @@ Este comando está disponible incluso cuando no hay ningún proyecto abierto en Abre la página de inicio de la documentación 4D. -### License manager... +### Administrador de licencias... -This command displays the License manager, used to view, manage, and activate [licenses](../Admin/licenses.md) in your 4D environment. +Este comando muestra el Administrador de licencias, que permite ver, administrar y activar [licencias](../Admin/licenses.md) en su entorno 4D. -### About 4D Server... +### Acerca de 4D Server... -Displays the 4D Server **About...** window. +Muestra la ventana **Acerca de...** de 4D Server. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/server/overview.md index c9d52329f125f8..17823660ab283b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/overview.md @@ -3,7 +3,7 @@ id: overview title: 4D Server --- -When 4D Server is launched with interface under Windows or macOS, you can [create or open projects](../Desktop/clientServer.md#opening-a-remote-project) and execute administration actions through a menu bar and a [graphical administration window](../ServerWindow/overview.md). +Al iniciar 4D Server con interfaz en Windows o macOS, puede [crear o abrir proyectos](../Desktop/clientServer.md#opening-a-remote-project) y realizar acciones de administración desde una barra de menús y una [ventana gráfica de administración](../ServerWindow/overview.md). > Se puede acceder a la ventana de administración de 4D Server desde un 4D remoto. Para más información sobre este punto, consulte la página [Administración desde máquinas remotas](../ServerWindow/remote-admin.md). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/service.md b/i18n/es/docusaurus-plugin-content-docs/current/server/service.md index 63fbaad4389872..7f3b8d6e8030c4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/service.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/service.md @@ -1,22 +1,22 @@ --- id: service -title: Registering as a Service +title: Registrarse como servicio --- -Under Windows, 4D Server can be launched as a Service. +En Windows, 4D Server se puede iniciar como un servicio. -A 4D Server application registered as a service is automatically launched on start-up of the machine with the current project, even before a user session is opened. It is not closed when the user exits their session. +Una aplicación 4D Server registrada como servicio se inicia automáticamente al iniciar el equipo con el proyecto actual, incluso antes de que se abra una sesión de usuario. No se cierra cuando el usuario sale de su sesión. -This operation lets you guarantee the availability of a 4D Server application even in the event of an incident that requires restarting the machine. Maintenance can be carried out remotely. +Esta operación le permite garantizar la disponibilidad de una aplicación 4D Server incluso en el caso de un incidente que requiera reiniciar la máquina. El mantenimiento se puede realizar de forma remota. :::note Notas -- In a 4D Server application registered as a service, the [headless mode](../Admin/cli.md) is implicit. -- For more information about the mechanisms for managing Services, refer to the Windows documentation. +- En una aplicación 4D Server registrada como servicio, el [modo sin interfaz gráfica](../Admin/cli.md) está activo por defecto. +- Para más información sobre los mecanismos de gestión de Servicios, consulte la documentación de Windows. ::: -To register a 4D Server application as a Service, select **Register Current Application as Service** in the [**File** menu](./menus.md#file) of 4D Server. The next time the machine is started, 4D Server will be launched automatically and the current project opened. You can register any number of projects. Each project can be registered only once. +To register a 4D Server application as a Service, select **Register Current Application as Service** in the [**File** menu](./menus.md#file) of 4D Server. The next time the machine is started, 4D Server will be launched automatically and the current project opened. Puede registrar cualquier número de proyectos. Cada proyecto solo se puede registrar una vez. :::note @@ -34,5 +34,5 @@ To unregister your application, select **Unregister Current Application** from t To unregister all 4D Server databases at once, select **Unregister All Server Services** from the 4D Server **File** menu. This command is dimmed if no 4D Server service is enabled. -You cannot change the service registration status of 4D Server from within 4D Server, if the application has been launched as a service on start-up. In this case, the three menu items are disabled. To stop the service, use the **Services** control panel. +You cannot change the service registration status of 4D Server from within 4D Server, if the application has been launched as a service on start-up. En este caso, los tres elementos del menú están desactivados. To stop the service, use the **Services** control panel. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md index d1a2bda7540bc5..ccf5433ae5070f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md @@ -1,6 +1,6 @@ --- id: sso -title: Single Sign On (SSO) +title: Autenticación única (SSO) --- 4D Server allows you to implement SSO (*Single Sign On*) capabilities in your client-server solutions on Windows. @@ -9,12 +9,12 @@ Implementing SSO in your 4D solutions will allow users to access the 4D applicat ## Requisitos -The SSO feature is available: +La funcionalidad SSO está disponible: - with 4D Server applications on Windows (4D single-user applications do not support SSO), - with the [QUIC or ServerNet network layer](../settings/client-server.md#network-layer) enabled. -## Enabling the SSO feature +## Activar la funcionalidad SSO By default, the SSO feature is not enabled in 4D Server. To benefit from this feature, you need to set the **Authentication of user with domain server** option on the [Client-Server/Network options page](../settings/client-server.md#authentication-of-user-with-domain-server) of the Settings dialog box of 4D Server: @@ -22,9 +22,9 @@ By default, the SSO feature is not enabled in 4D Server. To benefit from this fe Al marcar esta opción, 4D se conecta de forma transparente al directorio Active del servidor de dominio Windows y obtiene los tokens de autenticación disponibles. -This option offers standard authentication through the NTLM protocol. 4D supports both NTLM and Kerberos protocols. The protocol used is automatically selected by 4D depending on the [current configuration](#requirements-for-sso). If you want to use the Kerberos protocol, you need to fill in the additional SPN field as well (see below). +This option offers standard authentication through the NTLM protocol. 4D es compatible con los protocolos NTLM y Kerberos. The protocol used is automatically selected by 4D depending on the [current configuration](#requirements-for-sso). If you want to use the Kerberos protocol, you need to fill in the additional SPN field as well (see below). -### Enabling Kerberos +### Utilizar Kerberos If you want to use Kerberos as your authentication protocol, you also need to fill in the [**Service Principal Name** option on the Client-server/Network options page](../settings/client-server.md#service-principal-name) of the Settings dialog box: @@ -32,7 +32,7 @@ If you want to use Kerberos as your authentication protocol, you also need to fi This option declares the SPN as set in the Active Directory configuration. A service principal name is a unique identifier of a service instance. SPNs are used by Kerberos authentication to associate a service instance with a service logon account. This allows a client application to request that the service authenticates an account even if the client does not have the account name. For more information, please refer to the [SPN page on the MSDN web site](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). -The SPN identifier must respect this pattern: +El identificador SPN debe respetar este formato: - "ServiceName/FQDN_user" if the SPN is a computer attribute - "ServiceName/FQDN_computer" if the SPN is a user attribute @@ -42,12 +42,12 @@ Donde: - *ServiceName* is the name of the service which the client wants to authenticate. - The *Fully Qualified Domain Name* (FQDN) is a domain name that specifies its exact location in the tree hierarchy of the Active Directory for both computers and users. -In 4D applications, the SPN can be set: +En las aplicaciones 4D, se puede configurar el SPN: - in the [structure settings](../Project/architecture.md#sources), for use with 4D Server. - or in the [user settings](../Project/architecture.md#settings-user) for deployment needs. -## Implementing SSO +## Implementar el SSO When SSO features are enabled, you can rely on user authentication based on Windows session credentials to open a user session on 4D Server. @@ -85,7 +85,7 @@ flowchart LR The [`Current client authentication`](../commands/current-client-authentication) command must be called in the [`On Server Open Connection`](../commands-legacy/on-server-open-connection-database-method.md) database method, which is called each time a remote 4D opens a new connection to the 4D Server application. If authentication fails, you have to return a non-null value in the *$status* to reject the connection. -### Using the Current client authentication command +### Uso del comando Current client authentication To call the [`Current client authentication`](../commands/current-client-authentication) command, use the following syntax: @@ -97,10 +97,10 @@ Donde: - *$login* is the ID used by the client to log into the Active Directory (text value). You need to use this value to identify the user within your project. If the user is not correcty authenticated, an empty string is returned and no error is returned. - *$domain* and *$protocol* are optional text parameters. They are filled by the command and allow you to accept or reject connections depending on these values: - - *$domain* is the Active Directory domain name + - *$domain* es el nombre de dominio del Active Directory - *$protocol* is the name of the protocol used by Windows to authenticate the user. -### Requirements for SSO +### Configuración requerida para el SSO 4D Server handles various SSO configurations, depending on the current architecture and settings. The protocol used for authentication (NTLM or Kerberos) as well as information returned by the [`Current client authentication`](../commands/current-client-authentication) command depend on the actual configuration, if all requirements are respected (see below). The protocol actually used for authentication is returned in the protocol parameter of the [`Current client authentication`](../commands/current-client-authentication) command. @@ -108,10 +108,10 @@ The following table provides the requirements for using NTLM or Kerberos authent | | NTLM | Kerberos | | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| 4D Server and 4D remote are on different machines | sí | sí | -| 4D Server user is on domain | sí | sí | -| 4D remote is on the same AD as 4D Server user | yes or no(\*) | sí | -| SPN is filled in on 4D Server | no | yes(\*\*) | +| 4D Server y 4D Remote se encuentran en máquinas diferentes | sí | sí | +| El usuario 4D Server está en el dominio | sí | sí | +| El 4D remoto está en el mismo AD que el usuario de 4D Server | yes o no(\*) | sí | +| El SPN se indica en 4D Server | no | yes(\*\*) | | Information returned by Current client authentication if requirements are respected | *login*=expected login, *domain*=expected domain, *protocol*="NTLM" | *login*=expected login, *domain*=expected domain, *protocol*="Kerberos" | (\*) The following specific configuration is supported: the 4D remote user is a local account on a machine that belongs to the same AD as 4D Server. In this case, the domain parameter is filled with the 4D Server machine name. Note that the support depends on actual user settings: if not available, empty strings are returned. @@ -119,7 +119,7 @@ The following table provides the requirements for using NTLM or Kerberos authent (\*\*) If all Kerberos requirements are respected but the [`Current client authentication`](../commands/current-client-authentication) command returns "NTLM" in protocol, this means that you are facing one of the following situations: - The SPN syntax is not valid; in other words, it does not respect the [constraints imposed by Microsoft](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). -- Or, the SPN has duplicates in the AD. This issue needs to be fixed by the AD administrator. +- O bien, el SPN tiene duplicados en el AD. This issue needs to be fixed by the AD administrator. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md index 88aca911aea69a..9a56f4f1987764 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md @@ -7,18 +7,18 @@ title: Volume Shadow Copy Service (VSS) VSS is provided by Windows Server to allow backup applications to capture snapshots (shadow copies) of any files or entire hard disks at a given moment, while applications are running. Thanks to this technology, you can recover, for example, a 4D Server database at the exact state it was at the moment of the snapshot. This mechanism requires that running application files are in a consistent state when the snapshot is performed. For this reason, a VSS-aware application must install a VSS writer application or service. This component is then "warned" by the service when a shadow copy is about to be done and tells the **VSS requestor** (basically the backup application) how to back up its file and data. -## Requirements for the virtualizer +## Requisitos del sistema del host (hipervisor) On the host side, the following VSS requestors are supported: -- VMware ESXI on any platform +- VMware ESXI en toda plataforma - Microsoft Hyper-V Server 2016 -## Enabling the VSS +## Activación del VSS The VSS feature is automatically installed/updated when the 4D Server application is launched. The VSS writer application service is started if the session user has admin privileges. -Usually, the starting scenario will be: +Generalmente, el escenario inicial será: 1. 4D Server or merged Application Server is launched for the first time. 2. If not launched with administration privileges, a warning icon is displayed. @@ -35,7 +35,7 @@ Additional information about the Volume Shadow Copy status can be displayed in a ![](../assets/en/server/vss-2.png) -## About VSS Writer +## Acerca de VSS Writer The **vss_writer.exe** application is provided to handle Volume Shadow Copy Service (VSS) management for 4D applications. 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 5240c401a9fc5b..7b3f8838973409 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,9 @@ 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). -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). +Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components are also proposed by the 4D community. Use the [4D Corner platform](https://corner.4d.com/) to get a detailed list of all available 4D components. + +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). ## Utilisation des composants 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 c448f6d939bd89..3922b43fcba9e5 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 @@ -7,7 +7,7 @@ title: Développement de composants Un composant 4D est un ensemble de fonctions, méthodes et de formulaires 4D représentant une ou plusieurs fonctionnalité(s) qu’il est possible [d’installer et d'utiliser dans des applications 4D](Concepts/components.md). Par exemple, vous pouvez développer un composant 4D de courrier électronique gérant tous les aspects de l’envoi, la réception et le stockage d’emails au sein des applications 4D. -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). +Vous pouvez développer des composants 4D pour vos propres besoins et les garder privés. You can also [propose them to 4D Corner](https://corner.4d.com/) and [share them with the 4D community](https://github.com/topics/4d-component). ## Définitions @@ -538,4 +538,5 @@ Pour assurer la protection du code d'un composant, [compilez et générerez](Des 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`**. +Use the [4D Corner platform](https://corner.4d.com/) to browse among existing components, and to register your own 4D components. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Extensions/overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/Extensions/overview.md index 564b92e052a0f3..ff70b2687bd679 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -11,12 +11,12 @@ L'architecture des [projets 4D](../Project/architecture.md) est ouverte et peut - 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 propose un ensemble de composants utilitaires (voir ci-dessous) que vous pouvez installer et utiliser en fonction de vos besoins. 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 propose un ensemble de composants utilitaires (voir ci-dessous) que vous pouvez installer et utiliser en fonction de vos besoins. Vous pouvez également [développer vos propres composants 4D](develop-components.md), ou utiliser des composants tiers. Many developers from the 4D community have shared 4D components. Browse the [**4D Corner platform**](https://corner.4d.com/) to get a comprehensive list of published components. - 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). ## Composants développés par 4D -4D propose différents composants à la communauté 4D, couvrant de nombreux besoins de développement. Tous les composants 4D sont présents sur le [dépôt github de 4D](https://github.com/4d). +4D propose différents composants à la communauté 4D, couvrant de nombreux besoins de développement. All 4D components can be found on the [**4D Corner platform**](https://corner.4d.com/). Un sous-ensemble de ces composants est listé par défaut dans le panneau Github du [Dependency Manager] (../Project/components.md#adding-a-github-or-gitlab-dependency), y compris : 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 dc641253effd9c..3a5b52eced5372 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,9 +10,8 @@ Read [**What’s new in 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Points forts - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). - - Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. - +- Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=21_R5) : liste de tous les bugs qui ont été corrigés dans 4D 21 R5. ## 4D 21 R4 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 7905d35267043d..2a444feb62fadf 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 par exemple [sur GitHub](https://github.com/topics/4d-component). +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). Une fois installées dans votre environnement 4D, les extensions sont traitées comme des **dépendances** avec des propriétés spécifiques. @@ -562,6 +562,36 @@ Vous pouvez modifier la [règle de dépendance](#defining-a-dependency-version-r 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. +### Using 4D Corner + +The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive list of ready-to-use 4D components, proposed from the 4D company or from the 4D community. You can browse or search the list to find any component meeting to your needs. + +![4d-corner](../assets/en/Project/4d-corner.png) + +You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: + +![4d-corner-access](../assets/en/Project/4d-corner.png) + +To install a component from the 4D Corner platform: + +1. Click on the "Copy link" button on the top right corner of the component tile: + +![copy button](../assets/en/Project/4d-corner-copy.png) + +2. Open the Dependency manager and click on the **[+]** button. + +The dependency link is automatically added in the address area: + +![add dependency](../assets/en/Project/4d-corner-add.png) + +3. [Configure the dependency reference](#adding-a-github-or-gitlab-dependency) and click **Add**. + +:::tip Article(s) de blog sur le sujet + +[4D Corner: Easily browse 4D components, add them to your project and share your own](https://blog.4d.com/4d-corner-easily-browse-4d-components-add-them-to-your-project-and-share-your-own/) + +::: + ### Mise à jour des dépendances Le Gestionnaire de dépendances permet une gestion intégrée des mises à jour sur GitHub. Les fonctionnalités suivantes sont prises en charge : diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png new file mode 100644 index 0000000000000000000000000000000000000000..a4173db3bde865cf34f22d614cd8ab452d073076 GIT binary patch literal 6670 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 literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png new file mode 100644 index 0000000000000000000000000000000000000000..27cb99f9b25514f7caf4b489bb74369a96574f32 GIT binary patch literal 14643 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�iF?*%FVG&D5IySqCy7^#VDML%XVWEu>#lEu(!oX63~Fn8 z{{;?*7AR6maW4gm1qo6dPD=^y1eX@4SaD0CMH(zP0g4@*BEbnki#rt8V8KhV;`&d| z?>Beuojdo%eY;<+wVyqE&HBvuc?2t93l`SgYr&Q%5c32gJ;{1$wj8^$Z);nIodZ^j zcgc~s*aAG3#lfy;YQUL2m|F7?(&9pRjW`Gt zozbi4;re!8igI}ql%&W>(=5U%(}0?2-M4Z9InJuAsR(9An}dDT$fg!X^(0RLQOCs* z+;1Zl-qBTe8MEOL5B@V|$r078ktCg+NW29+#M@X6qOJ~X`n#dTj+c*3k?IMWc0DVx zM_n0^(7{HK!n|MW^p9HH=nQPFG-!eRy4S5Wb9*$d;_R9Bl(e^N>_*W+<60WUV9wOS zMc-)lT<-vRyMI6XFYZ+0^eb=p?7(lJwYT@TQ66?a0&d&woe%u+<7+K?CyNUs)74s# z!B`=Uf^$&}8{Aiw#=p)vH}9v45B==i`{s;wCBmEctSste8^!D~rUV9!_Ct;13OCOgQmyEGcf6=cByVF`JIx@0B$B?M2&@Z0MBB4ghnpT=CPy9E~&ji)b zbLp|ksy-0Tm<_19$HfkX3Hw54gif~cyN2;&s_=*j>W0gY$;5sP#;B?|y{}wPnwkPn1hN4Boc$*-p<^Frf zJu7M`Cqo~wbi+{tBI}$fBF^H_sDN$VR4FzoVpgOZH# zm{AS1tAy1Y-ME4-CpO=QRgF{9$q(jL4yj@q(%wg8B2wNNuTH(pPQ32;L3;{Lpz8N~ z)PPF511eo|o8!YMcy}Z;%z@oaii+6KyJ$?z$*!%+z7g3 ztaq+~2{!>UEItW(d^v(I9C)m+vBLl{&^2!U$)2v}Wsx=#0Dal+L zUSMn3SW_0rr0c|9gqkpPzojhrNE8wh@^0ep%^&dEej(o&k3U}^9_7w0CP_|Nv(cKB z1;p2Sh&9+OM~+%hG=ADjFR#4a-Vhh0L>o`6}}-t9YL zV`zz;JU*%>R~omJt_cDJ|{xwkNXHJI?$BH?PAW9cHe1I5F_Q7m&gAD%$zB`1C~nCZVl+e8=^-E zd3!%%8C*EGzH?`o=9d`RJBkmp-5QZGdRgC;MHkaOsAZRVN77wyNC&tkqQ-wdn2-=A z>aE}CHTLZMFV#IKPtWQBkG_FET;7F_eyXoYzAg%RL{Vul=c6h-JfLK=gwFVJ^kK!T zKfjKR24s6uLTh*5AUj{LUQnuge*Q+PrHx~`)uJNJrM0qf`?!A7wZbQWs!CP_vmACi zwRV7EGo^>?om(*areFndZjp2kL4_qGw8{M;jFH>Hoox_eURd2-A#krRsbEt%{%7zJ zwpR~p9dgE&9G;L7L6@OFkFe8_+RG3e_4RPtajuG;a6YVj#Bb48*_@94?PP>))cgOZ z4pg@aoE41NX+d*61DaFrRI_;si7D7!(4ftax`RvEgRsl(OU!c zV{WMPT*8w_|DawnS^ct$2be^cXK>ViBM6%+!aPc|s6FrJ{PUoQm`*5A_}YbtT0)J; z>T3JebiAHEdhfhE+MGtUP+nfzls>tYQAx*er8!7UeT5 z;J*ou+E1p*ghGsKj}OnPAlJ6C1X~D8g(Sfb-RD-or1d1V?d{>(SFU4&zx~WAbzlFu zGF${{Y;Ji?%nGA3^UVsJ?GpMgy>QE5E`77f!V*u!VcE#h^`Zy_JApIryktvb<*)vm z?`eSRww~81M61(PmH+%kbIwHO=j8*I!&&a zTG4f~dyCI!7dLL?lp+OnFwUHtWM|(pUfrAym+WR2#a{Dc+>ecgj+8Zhk5?X#)tTC3tRMNs5-u|g zU1e*yANR1??**rqmkcM9506>sIxH0lSCr_Br2OBIP*88$^mF!vR)ta&i<7x9Hke#KSA|+S}ma z7AwH)aWw97>?-=jZq#(4#>C9Ftrsl&jQx1NDNB6%ODcubEV

    5<# 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 X%K&K$5yZ||$5B?$c!PNTHu!%4%61qS literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png new file mode 100644 index 0000000000000000000000000000000000000000..711a3163af3ba282a80f639d9e44dff9d813f798 GIT binary patch literal 88436 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

  • 5Tc-~gK@)3a&70eryt0&8z# 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 literal 0 HcmV?d00001 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 368915bbb461c2..dfc03c063750de 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,9 @@ title: コンポーネント 4D プロジェクト内へのコンポーネントのインストールとロードは、[4D 依存関係マネージャー](../Project/components.md) を通して管理されます。 -いくつかのコンポーネントが[4D によって開発](../Extensions/overview.md#components-developed-by-4d)されていますが、それ以外にも4D コミュニティによるたくさんの4D コンポーネントが[GitHub 上で公開されています](https://github.com/topics/4d-component)。 また、[独自の 4Dコンポーネントを開発](../Extensions/develop-components.md) することもできます。 +いくつかのコンポーネントが[4D によって開発](../Extensions/overview.md#components-developed-by-4d)されていますが、それ以外にも4D コミュニティによるたくさんの4D コンポーネントが提供されています。 Use the [4D Corner platform](https://corner.4d.com/) to get a detailed list of all available 4D components. + +また、[独自の 4Dコンポーネントを開発](../Extensions/develop-components.md) することもできます。 ## コンポーネントの使い方 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 ebc0a49b369643..bb0b475acaa2dd 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 @@ -7,7 +7,7 @@ title: コンポーネントの開発 4D のコンポーネントとは、[4Dアプリケーションにインストール可能](Concepts/components.md) な、1つ以上の機能を持つ 4D関数やメソッド、フォームの一式です。 たとえば、メールの送受信をおこない、それらを 4D アプリケーションに格納するための機能を持ったコンポーネントを作成できます。 -ニーズに合わせて独自の 4Dコンポーネントを開発し、それを非公開とすることができます。 また、作成した [コンポーネントを4Dコミュニティで共有](https://github.com/topics/4d-component) することもできます。 +ニーズに合わせて独自の 4Dコンポーネントを開発し、それを非公開とすることができます。 You can also [propose them to 4D Corner](https://corner.4d.com/) and [share them with the 4D community](https://github.com/topics/4d-component). ## 定義 @@ -541,4 +541,5 @@ macOS 上では、Finder からこの情報を見ることができます: 開発したコンポーネントを [GitHub](https://github.com/topics/4d-component) で公開し、4D開発者のコミュニティをサポートすることをお勧めします。 正しく参照されるためには、**`4d-component`** トピックをご利用ください。 +Use the [4D Corner platform](https://corner.4d.com/) to browse among existing components, and to register your own 4D components. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md index 61566a1791ccbc..fa74850cebb75b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -11,12 +11,12 @@ title: 4D アプリケーションの拡張 - [**SQL コマンド**](../commands/theme/SQL) を使用すると、様々なSQL データソースに接続して、それらを使用することができます。 - [**ビルトイン HTTP クライアント**](../API/HTTPRequestClass.md) はあらゆるHTTP サーバーへとリクエストを送り、データを処理することができます。 - [**Web エリア**](../FormObjects/webArea_overview.md) を使用するとフォーム内においてWeb ページや様々なHTML コンテンツへのアクセスを提供できるようになります。 -- [**コンポーネント**](Concepts/components.md) コンポーネントは4D コードからできています。 4D はユーティリティコンポーネントのセット(以下参照) を提供しており、これを必要に応じてインストールして使用することができます。 また[自分で独自の4D コンポーネントを開発する](develop-components.md) ことや、あるいはサードパーティ製のコンポーネントを使用することもできます。 4D コミュニティの多くのデベロッパーが、開発した4D コンポーネントを共有しています([`4d-component`](https://github.com/topics/4d-component) トピックのもとに集められた公開4D コンポーネントの一覧を見るためにはGitHub にアクセスして検索してください)。 +- [**コンポーネント**](Concepts/components.md) コンポーネントは4D コードからできています。 4D はユーティリティコンポーネントのセット(以下参照) を提供しており、これを必要に応じてインストールして使用することができます。 また[自分で独自の4D コンポーネントを開発する](develop-components.md) ことや、あるいはサードパーティ製のコンポーネントを使用することもできます。 Many developers from the 4D community have shared 4D components. Browse the [**4D Corner platform**](https://corner.4d.com/) to get a comprehensive list of published components. - [**プラグイン**](../Concepts/plug-ins.md) プラグインはどんな言語でもビルドすることができます。 プラグインは、4D がネイティブにおこなっていないこと (例: 特定のプラットフォーム技術など) や、4D だけでは困難なことを実現します。 [このページ](develop-plug-ins.md) で説明しているように、独自のプラグインを開発することができます。 多くの機能は、既存の 4Dプラグインでカバーされています。 [`4d-plugin`](https://github.com/topics/4d-plugin) のトピックで公開されている 4Dプラグインの一覧を Github で閲覧することができます。 ## 4Dによって開発されたコンポーネント -4D は様々なコンポーネントを4D コミュニティに対して提供しており、これは幅広い開発需要をカバーしています。 全ての4D製の コンポーネントは[**4D github repository**](https://github.com/4d) にあります。 +4D は様々なコンポーネントを4D コミュニティに対して提供しており、これは幅広い開発需要をカバーしています。 All 4D components can be found on the [**4D Corner platform**](https://corner.4d.com/). これらのコンポーネントの一部は、デフォルトで[依存関係マネージャー](../Project/components.md#adding-a-github-or-gitlab-dependency), に登録されています。具体的には以下の通りです: 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 f7f2c5995fe32b..a7b71cc3369ee1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,9 +10,8 @@ title: リリースノート #### ハイライト - [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) クラスの新しいクラスプロパティを使用したS/MIME Eメール署名のサポート: [`.certificate`](../API/SMTPTransporterClass.md#certificate) または [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (証明書の提供)、および[`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword)。 - - Windows 上での [**fluent UI** レンダリング](../FormEditor/forms.md#fluent-ui-レンダリング) でのリストフォームのサポート。 - +- Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21_R5): 4D 21 R5 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r5/))。 ## 4D 21 R4 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 d886009e2c2714..d16f4ca8b0d34d 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/topics/4d-component) ダウンロードすることもできます。 +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). 4D 環境にインストールされると、拡張機能は特別なプロパティを持つ**依存関係** として扱われます。 @@ -562,6 +562,36 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ バージョン範囲の変更は、自動アップデート機能を使用しているときに依存関係を特定のバージョン番号にロックしておきたいときに有用です。 +### Using 4D Corner + +The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive list of ready-to-use 4D components, proposed from the 4D company or from the 4D community. You can browse or search the list to find any component meeting to your needs. + +![4d-corner](../assets/en/Project/4d-corner.png) + +You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: + +![4d-corner-access](../assets/en/Project/4d-corner.png) + +To install a component from the 4D Corner platform: + +1. Click on the "Copy link" button on the top right corner of the component tile: + +![copy button](../assets/en/Project/4d-corner-copy.png) + +2. Open the Dependency manager and click on the **[+]** button. + +The dependency link is automatically added in the address area: + +![add dependency](../assets/en/Project/4d-corner-add.png) + +3. [Configure the dependency reference](#adding-a-github-or-gitlab-dependency) and click **Add**. + +:::tip 関連したblog 記事 + +[4D Corner: Easily browse 4D components, add them to your project and share your own](https://blog.4d.com/4d-corner-easily-browse-4d-components-add-them-to-your-project-and-share-your-own/) + +::: + ### 依存関係の更新 依存関係マネージャーは GitHub 上の更新を統合的に管理する方法を提供します。 以下の機能がサポートされています: 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 5903ee7215763c..64aaa51bb9d190 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -94,7 +94,7 @@ title: プロセスページ > 確認ダイアログなしに選択したプロセスをアボートするには、**Alt**\*キーを押しながらこのボタンをクリックするか、[`ABORT PROCESS BY ID`](../commands/abort-process-by-id) コマンドを使用します。 - **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。 The processes must have been paused previously (using the button above or by programming); otherwise, this button has no effect. +- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。 対象のプロセスは、(上のボタンかプログラミングによって)先に停止されていなければなりません。そうでない場合、このボタンは何の効力ももちません。 - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png new file mode 100644 index 0000000000000000000000000000000000000000..a4173db3bde865cf34f22d614cd8ab452d073076 GIT binary patch literal 6670 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 literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png new file mode 100644 index 0000000000000000000000000000000000000000..27cb99f9b25514f7caf4b489bb74369a96574f32 GIT binary patch literal 14643 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�iF?*%FVG&D5IySqCy7^#VDML%XVWEu>#lEu(!oX63~Fn8 z{{;?*7AR6maW4gm1qo6dPD=^y1eX@4SaD0CMH(zP0g4@*BEbnki#rt8V8KhV;`&d| z?>Beuojdo%eY;<+wVyqE&HBvuc?2t93l`SgYr&Q%5c32gJ;{1$wj8^$Z);nIodZ^j zcgc~s*aAG3#lfy;YQUL2m|F7?(&9pRjW`Gt zozbi4;re!8igI}ql%&W>(=5U%(}0?2-M4Z9InJuAsR(9An}dDT$fg!X^(0RLQOCs* z+;1Zl-qBTe8MEOL5B@V|$r078ktCg+NW29+#M@X6qOJ~X`n#dTj+c*3k?IMWc0DVx zM_n0^(7{HK!n|MW^p9HH=nQPFG-!eRy4S5Wb9*$d;_R9Bl(e^N>_*W+<60WUV9wOS zMc-)lT<-vRyMI6XFYZ+0^eb=p?7(lJwYT@TQ66?a0&d&woe%u+<7+K?CyNUs)74s# z!B`=Uf^$&}8{Aiw#=p)vH}9v45B==i`{s;wCBmEctSste8^!D~rUV9!_Ct;13OCOgQmyEGcf6=cByVF`JIx@0B$B?M2&@Z0MBB4ghnpT=CPy9E~&ji)b zbLp|ksy-0Tm<_19$HfkX3Hw54gif~cyN2;&s_=*j>W0gY$;5sP#;B?|y{}wPnwkPn1hN4Boc$*-p<^Frf zJu7M`Cqo~wbi+{tBI}$fBF^H_sDN$VR4FzoVpgOZH# zm{AS1tAy1Y-ME4-CpO=QRgF{9$q(jL4yj@q(%wg8B2wNNuTH(pPQ32;L3;{Lpz8N~ z)PPF511eo|o8!YMcy}Z;%z@oaii+6KyJ$?z$*!%+z7g3 ztaq+~2{!>UEItW(d^v(I9C)m+vBLl{&^2!U$)2v}Wsx=#0Dal+L zUSMn3SW_0rr0c|9gqkpPzojhrNE8wh@^0ep%^&dEej(o&k3U}^9_7w0CP_|Nv(cKB z1;p2Sh&9+OM~+%hG=ADjFR#4a-Vhh0L>o`6}}-t9YL zV`zz;JU*%>R~omJt_cDJ|{xwkNXHJI?$BH?PAW9cHe1I5F_Q7m&gAD%$zB`1C~nCZVl+e8=^-E zd3!%%8C*EGzH?`o=9d`RJBkmp-5QZGdRgC;MHkaOsAZRVN77wyNC&tkqQ-wdn2-=A z>aE}CHTLZMFV#IKPtWQBkG_FET;7F_eyXoYzAg%RL{Vul=c6h-JfLK=gwFVJ^kK!T zKfjKR24s6uLTh*5AUj{LUQnuge*Q+PrHx~`)uJNJrM0qf`?!A7wZbQWs!CP_vmACi zwRV7EGo^>?om(*areFndZjp2kL4_qGw8{M;jFH>Hoox_eURd2-A#krRsbEt%{%7zJ zwpR~p9dgE&9G;L7L6@OFkFe8_+RG3e_4RPtajuG;a6YVj#Bb48*_@94?PP>))cgOZ z4pg@aoE41NX+d*61DaFrRI_;si7D7!(4ftax`RvEgRsl(OU!c zV{WMPT*8w_|DawnS^ct$2be^cXK>ViBM6%+!aPc|s6FrJ{PUoQm`*5A_}YbtT0)J; z>T3JebiAHEdhfhE+MGtUP+nfzls>tYQAx*er8!7UeT5 z;J*ou+E1p*ghGsKj}OnPAlJ6C1X~D8g(Sfb-RD-or1d1V?d{>(SFU4&zx~WAbzlFu zGF${{Y;Ji?%nGA3^UVsJ?GpMgy>QE5E`77f!V*u!VcE#h^`Zy_JApIryktvb<*)vm z?`eSRww~81M61(PmH+%kbIwHO=j8*I!&&a zTG4f~dyCI!7dLL?lp+OnFwUHtWM|(pUfrAym+WR2#a{Dc+>ecgj+8Zhk5?X#)tTC3tRMNs5-u|g zU1e*yANR1??**rqmkcM9506>sIxH0lSCr_Br2OBIP*88$^mF!vR)ta&i<7x9Hke#KSA|+S}ma z7AwH)aWw97>?-=jZq#(4#>C9Ftrsl&jQx1NDNB6%ODcubEV

    5<# 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 X%K&K$5yZ||$5B?$c!PNTHu!%4%61qS literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png new file mode 100644 index 0000000000000000000000000000000000000000..711a3163af3ba282a80f639d9e44dff9d813f798 GIT binary patch literal 88436 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

  • 5Tc-~gK@)3a&70eryt0&8z# z>5MUBe)F^Mb4^OEf6Z8$YGNAM4`tz?+{$FJN zp#GpHfQsNb7ApQuRb_G%l0&q#!c3J)Ha=mki~{tJ_+l0)dp--Q;S3R`L0m8&Re?B@ zoVOS)1SzoWd_;qGEG);m+#0@9gzaHJDAHZC1s6f{+D*japhCBuU)-M^+{oAvCsjC5 zJq%htM2&k)c__T78W=NI)(xLYA|bs;&!{$ag4;E4RbYrE6N7+cv$Lu@|CNnd$#Cq$ zn|3&^>PQw~niN7Alf*iTc=W>&%~)9;LpCKa7a_R80h$#NiFo!Tb#b=ic@C)7TC=3wzAlV2d4+QGJCHgN;t z<#O-*B@r<$HZ@Z%p3~C@Ff5pZZGIP|2l-&X= z5oh?rN2AK}d}-#ESz%%=!cZTuAY+mAlq-W4GDSQP$e04azI@zJaWe-v-6g3kuQnNq zXBXR1LNJ0c4!DhM+r*7Uf<1Gko?h{ro;Nrl=d~BlQ@O3Uvz<%JL(2e^D^sYLd>y*& z7OF{ILfWvXzJ;=&zl?qCQ7qfbJ8dbvhan-u+h1Mv8@G|M0u;;~qQkH~=)Rj(T4S(b zg^97pDWcX$-}@HP0XG?maNbiSPTfu36|G4>PKFw#X&4?r0CTm1s=i67UjPnjq5W4$ zaJwEA1{Ir~jt%vfe3L0m^Jw+}X?(4!iE!twA$0P( zZk^Wt48;@LtRTG5CiRbioV+}2t;HX5`#+{ZC(RgTdVX}Rx$XX>toUgSST-bEgnC)J zHZyi8fB@IKuAd?`vm&3jCNU|`F>G}!DWq7PgpL3LrzlH3NEGa}Zg=U8it9mkl=e$P z8wurjde49BM~>2)e>Mi_uoDLIh>+@&?7?E4hmVq9y>mTcV_ViO$wkbPEfmRfR; zR{1@4rG(qQ_K)4uAt=&fLRXjLXE(!pJBKpxG?hOPpvNc3WkutGnGn82DNSENg#eCK z%HXDm1dy?b{2_2W{EsQnO!H&AYOlxAQal4Gz*XmgYvkNVUZkQ?uEf;Qlm!}xYAVw$ zD8%Cf^!ix$#d=b~MNB)+oC|qb=LZgFQlq|Tg5vP9Hr80%%Y`nM)8~XzIsoQ>3hV3M zv4+^d#q!mQtu;G!?oKxmNFn`_+wQUE`xDkT9D>Y%xy(m_C#U})a2oe0Ji;pfaM#4W zHx#0Zv^9|wf@oWH?+7f%1u!AOD&%qjY)%x^J6b4yK6-?mZZ=v6y-5GgtfY1m6-PP^URiKMyUTCa0E@pw}| zDeqBuYN!M%5g?xcdwyyK>0CJLC~x4&v&t#P<cK5H;{C?gb1qCxQ*_VC{tM8wF!GB12~b~0Dmfo!+c2*f z;4|iWes~fcqIhuk%R`-VT24LD_59kROwYzvUD61!8Hew5)`T)wH}co1>sG|k#vTiY06E1#lZ8ULanan-`n2Vem?c@6;zD2H57^~Xk$)umUMIu z8kcHiM&7DGx7BoLJ;;U9HC+ix%6I~T*;y$tOpg$cZLjfSAb1Q(1H%51hy~Hnzn$xx z?{<$w#NgAX&L^ElkkSB60;jreR6lNGD}Gp$)n`!0BwZ*K`;7=uo30bIV!qG#5}lsb z7J>_l8=dtNWzF)5jXH-3pARRt<>4)o4+uowz4<#IF;V5s7&sG0#JWE%#`r^N`eDg4 zq>HRy?Us+8Kp>qeIQCi0`W?NJohD6_N_#^OKcr5KWdX&iv<(^2-P|tO)@|y~mf_YYlZVP20mD%OnDRB_?1HLZhMa_K%q(Mpd)W_{^ms*`J1S&s#2zT7Odr~I#&J>Xt*S!1r2$j6r=2CAWEStWl=nD{lIV$bfBN2a1vNG zGy#RB9#x@9uzpnzNn9$@Hz@v$nSs)MLxg(N@l$Up_Q5x3VxDuk)Kg*;If4xrl6XJ5 z?X}4iSWTUKrI+Z1MW0YkF?n|lxTc2gO@;J#6z+gP-}cXsivk)HSk{`~a%zU(1HU&Q zq2BmK-8PQ|AtEICN27+<_y(=IdxI8esl<6J1}V9GZBy5Zq)pp?24xhc+VJL7202#H zYh+{V_tz~hdH)Uy~usKoWNSkQ~BSAIe;66@) zM%-nlViH;z<;L(i*)K7vg zq|)}mJs2J$SLwbJF-vS~{^IzRX{T@Nq5^M+)sz8Yr&;4coyw<0?0Hu9?(Cxc0e&a2jR zhp`7~f9c1jI{)6~)j>^68*!!}nZk@HZWkv7rXYG;Za0ZCin_#pb2B3Jz<#-yMnDb$ zz!E{Gz1wJT_yiAVG7V^OZ|W(HtsOj!8G{s7g;@Gs5Qa@ zHH|V$>EsGm7E-clQ_pWi03j)Fl#)>eO=E0)rQ2ux(#Aj8;Z8;_IX}X55e>3}`;oS# zl8RFiq^(&*r?Kxpc_^?FsO#1BnzUdi&le6hR!1FrLZLQeCT_W3nV80?fO}*;u z2{vBSmp($h4NJt_x}X$<0A&f5@w`I^SeJ{hO;y~)bv>gZ(EOinogJJ)n=q@ubGd|I z`KA}PRtapvwGwNGGQn(VtP+8fY5T!vSmU4$>mLc0jpOk;@l1kF_7i6*XIK*G=olADc*7S77ecp2 zDk_t|$S=t#CjmCx#K!Q>| zzCjye`22T$n3VN6{2K@>%>iR?j%+-(^W@W6yT}rX(IIcIsa5T}wqP>om>9ZL71?CS zf*x@*>@J0%v~ezRYy$i1+4yv9Ks?FF=r;-DVCvbR($LM}V56Z@06K}y#h(${saS3S zQJV~9Vc=FEluA7y8KnpZ*mmEkfFk_2zW{65FF(HbJx&BBwGKv6Dt|3?1i2D|4k~mp zF{2t0BHIJ|jgVMpfovMdk*Ud8S{!+ZU$(4M?Djr^1E1nD=p81G0FffZQynIRuJO?M zF-zD_;b(~K4D6!rbJMfE=}pS%ZFV!@Ve&g1nbTc?(1{(NUin;M%Xl2Nya~L8aFso2A6R z$C%QQgo)Z#_;6syO4q9m0`08y=9tWYj9Gs37}aHRE;fww@Z3mYn6cf)VWO<$SSiKFvXgHV*PYXp1sxL$sk_H1ASWl@LnxEs zH^PAA$inC>xRvw37$7ZCX6c{V=?^A2;oaJ@UvzN`S)}9@n(I2ijoX#F@VqzL#sxEj z#+g|uciQ=`_WcW zIx7GHT2u`o4X%WOPN|Xe3MU5%RZ*d8G7fwks1HPC_A3KuSA@TXeb30n>NvXG5j!cq zq9mh(P>S1MTQsBan+K?qke_0yWA)XVWkv3*%q~#SL&A=n7jUXREhU3t6Eo7prQ~hC zohE-ZyDd+DpXmIqQ#x+FPNj77q_Vu!s0_dbl(UW_i6#ZFVl^!&Q;yrZ>bFdW@VKtd3U-#4P$ytU ze;ptuw5qcTnR1Ln@7>lGuS6`UPpu_Ts<+}KDLodv5>hNgL`TW*C(JXM!wiO3*-seN zBhE?61_ zro5r0go*=$9XFJDWUXyqwRN!2;4Sl?HtF{Hf6aPR&r%P z2UA=WN|o9cZ?v?SKCOh-d|_Pb^RCaRk9_ZUwCVTwl_mS%oFYn##Bdkkr7fkEojay)2V+u7(@Sk~*^W zk7^Wm4E{E?w2fjSzAGd9%J;hOx4jC%BS(SlbV(r}ap994*8^lg!54Z%jM84h0dG(b=l8D-D@T+% z;=|VX-@XQhax0qO?3@8DSACdg(vmSM|w=N>25 zJLDSHA_VYJ8U- z>B9@^2T@l3;W8p9??pR~Oiq!}#d{+C3B(8v?7Frxz~JKI5`F{zaZnJO95$5SFyVHx zWg~}nr~k(yv+qh}D`hrnz(f7>p&B@f8Qf{6^_9{kLZvKW`oGKV$Uuyd?a%OZGsuU; zu z*wwA5w*rI6UVz)Pv|wMnl;ZZhfC~s%GuVp5B)%z0fx!*z%dKTZKdXjK$d=SFIFEAl$igG2ZQ+5Y>j?`PEG5`W~ltVdzDJnRMn%NiyFawf^{F`E`UACJ0 z4i7@$Dc!JxS?maGXo<5Hh;y-{7dOLLQ=gz(shmV+ORZH0;7dW{oAtbxWpoF3bcjiu;tr;|fZF9S|{vWdC|7BtrDUN-v49_`Is6YHjiO;mFA$ocM!h~xsQ z&`T@vMEb(yw}TlDdsLgJa1#}s3E`vi!UL>2w`j)NY2;tk`1Kh3ObtDvf3OLJcRL85gKIP1%YU{&7P8^AAR-5 zvnNGezkRsNV58V{;3;k9&j|}=duMY>iQY7wb|S0^CCjzsutNCSaLX~j%0SS#;+v65>CcQ78aK;rcc0<4sFde zS27G#T=J|qOHG!Dk=UWIY5+FyT2_)PlPk&pLHTg=W|}BQQ6fK63f)FOtSq1S^&c~eoO^?Jit7DbW{5L&qfNKNvhe_pGQjgX3_8W^BL1Bub1a{u!mBC_rTw@?!smc?e34W9eDl! z0SB+U3FWk@XOj_{rdOJ|Y>z+Fu$;1NVCWFE_TNuM(3}Eh1B@TP)K$Sp`3z^CoIgt_ zku|>dG`r#m3rZd!)8v>*Q>Y5NGz^NUEP9@K2E~eiHxi{V&wX7!l7Wu}tu-d}nD#Pe zl7r4?w5DA>35iNP74k8a2aIS+d60@~G@V^LdLZw2s3m6B=0-*mk_+g}e=E zT@K>vL0Yq>wYYcETQm2D)yI1-X?0s=2V_+(#Fdt#U zA3-wTA&folU%{=?+ zVHBMUC%y3S)pope7aYj}sQdhV?_6XZTm74xREhQnhlW{PoKs+CGykJ`4-L}t&D3Cd$$~ZR6-CcDTA) z**!vFQOTIe!k1yyxWa|6Ugl8x6?!}~r4mrm#~Y{9(|=M4UV9Jp8=Fkxpo`x)!iA98>xWkqFgZMDD~%4WbCOJI~nxu2dA0pBrII_Sg7F zNb;`xpJVgQc-kjrI=mGF?+h_Fy+UJS@nrjf>CBw-Z~3er@LSi>ib*?aB{c4nNXra6J+ZwswKI6fhX@9(*+p1hS0>7N9q834cA|(k+vWVW3^rK4ler}it2PeL(KOVehuj##aTxpgjbvw!u>Js(7jc=&>+cgRWRvo*8s(x2DxvJKVA7i}kiPV|q z1%V5p-FFzd65D~bavQQl?7cseH>YQ~vI&Ut85py3W}_#i=5;V<>yw4Ru}X#68OrJD zis^RpzYv(QC~zehg;nyuW#h+r9?9ht6fo4HT}Dw14P^R z;cdlZ8#pnr`v1C2kD%@&Kh`l z)l9QXr{6w_6mlmkAigED)0Ov~Qms!<1UXe|7s@{_x4BV?kicmol}!ZCM0~KYAgsWr zpPd!GK`16-=e6J$N@5oz;o{BV)aDxJW_jbW=FU{YR0L%J9#IAJUn({>3+d`cZxWUf z^C)35-KB(lE&U-qgHB9(-$%OX!GWLCD@s7?AE*~5JwLM9SbuEet$2@Dx^aF zO!MU)RyK@zgM6LK~1veYActJ^boVx5vAodfa5UtqtBRdE0iCIVQYL!CEh#%RJA=O}w zf@=Z`VB_Lpi6=F@Hx+%1&_F4kEGI+fdz+^$AjtT~1AcH{;z<6B5^9Gt-YohBDn*DY z=6!0-yFh24e+5bB(oVXyNY5P(k=BjlsoAq$eP`O~>OcC2K;R*;+-?;Mfx zRvjAc94RlNYl7B@X0;M=gvl4EzbSBW_D4u%J!Q0L){R$h8aZM$K;z~D;V~yt$OX=S&xw*kzZ4|2t>lJTFNMKX89AbefD#== z7!{^EI!`*9D?3>$0~I9+odPi7a<3U4NzFD&s1YGNo^rNj8Mztxq|)3#yt$>M!OBNk z=G+C=cd?Ds@X6}*`Pt>QjrdILnk}B)gTJt2Y^lS|Bk>rY&an0ZIVG7CKizz|c2^V} zg)0wz)aLm+*8PR=eJ9EFojPbn-(16=?)YtuE<^pQR(ZSav_4&=9)Iv$9n-uxI@Q-} zVl3=)Fv2bUp`HK8{aQ%g_7k!w6eFrn{btyen>T|^TNl&AlGaKZds6wqTV zCyuOBT9jZpIay2%XzNQZFySaEQBzjYrOo=$lS#Gx0kWk520I2vgMN zk~7eE)EPe?aV{C)%o1^XZYRtMKc8?H%qhtX9V@eNE^f|)lCVvbV&mooM1j!Zw@MPG zg*jDOZL#_Vh)-`b@XXu`Fn(e7{m#! zURF2MAI64sz`k1jX?c+?E*|5JcwyIgh*rGDW9p7kens!{5oi~|_toY1Igxfha=ECS zW^Pvc+P`Wv{}xrA5zC_+>h18leeza>v37peZY4qNfu5B*4MCEZ46xd2z{{5*HyFJ! z39+$72!Z74%15Ks9-_=0VMS&muxMIV*F1qq4|K)qt{NpkQ=fnr>$E1cT-U&Xfj=xS zby0xLXUmT!$3mOS?KDR>SpWB0F8WnjgIn*Z2x=@FH`$~c1Qk`_BU_aO@8bm1z7Of6 zjLnH)!uObS2}u+Tq-eLk3t;>#F1@u&P>OG;E*sm0N%g^7gbpvgCs;H2%ebY_Lb7X0 znhBoOP|bKOerVrl|FWPaa`6!|7n)=zO)1~c?T?^xxyHgG9<|DJ zE}kCS?Sc?l0SwRH@6kUKT5h(lQWOy2r|PqbZ7%0aads4+B2~O3@s1Zie)3|u6?MuM zdfCF4RT;!Vp+E^?!^w3_C3(Zo=<4N#5hW7w#aTF_HPB?~Ox*J-T`YxZ7eiUfCG1yp zj5We`uhqwG3onzufSRkqb?4O^PCpbuje>_tOOvCt5L~@7Tg(^~LJ|RnAV$cqU7y0m z0RxCF|99&}$KuR*IdO;OtAaE<0~AWX*SD}tx1IYO@e&*XQV_=?5_NM((yeB>!d?o~ zYwUrBD#888N$hsv4U<4gb`*&%A-~oq1|r}{%KzmC?+4Omy>)9Hl|;52*z{s`_|=ny z;SGbPNQ&e90IH5(H5}9E83gJAi*QgXoc@(Li^p5@+2~v&PT+&5_EbJ4!v`*^enLbS z#jf@Eufy6fdQ9GXSo3MJDk(tbwK*_w>;aZHH5$2plWQ?t7qzI*M$=v zuZK}}Iy@iWv?)`2ZKogkYZ2nz;UsP{m}5gTSI7WmsuMDBh?bJ=fK7wo5v|OTYXxAnIW__HNOZ~!%jfNrj!m&Mtn1nEk~%91EWYV z%I|~e-L9^pEt*9XjjKh%%NAC7o5^6FNUx+v-sXL7_;4zc#1M_Scwf8Qk=`}ma9WVF z_)`%Mz2O#OP`6q?K*j=XD%;x0lhbJ8%didGA!UR~>=ZT96w3#jN_VHfQV_i|7c6nc zGL62}tpM&tIV0r4fi!r-FTa0o%M)^3ryz9hQI^nIj}IpHD37!^ci~7q^`QG|QEz95 zceQYBH}WNW-VDI`=0rBWCv{O{AbVM5WYR)(wd(W#m&Hh=;WT^3oG*e_!_KE8Jo z_4Y^-%8NQY(zHF(iVX($;E`Hi@ToMl?9>AKn0)sKvHhNJ2|a`fIMy5Vni+l?C_WtE z*}R3t0FU#C!*dN=qO1G;N!l(ypO}y6G|`iU-rhKVRC{Vd#`dk$)D5X|e+|q=k*ai# zv3YpNo`EsX*r~oHSgiWzT)c@FTV3Us9zr_AS+#nd>mKd}x!>J&V7eajpypW%$>!ZD zh|bRUiMm$Biv%HS@XICOjx2nc{iME0_sZjL>7lcl@BWAjGo;S+_-C3MHF?9{j$!$w z>>YQDPjh>iVwi~giQQ$^tEz+H>plydity@g5;~99_V@8TaDB-2=1WQD)434QSGtQj zCDJ@d`QXxBKX`8hkmpq>T}s*N95a=X5WE5D9JC;_zxq>~e3}KX!-d@Sm?Aip^Y#8u z4q7hBf?hkr&%Pg1f7PJqkgZ%LhiYS!w9UJ--?cE)-jZ{>iwQ7<5<&LU zp#&mqL1&MG6z2V!VWq#0RU3h_l8U(^L{9Fk`#h^{+RLXd#*;sV(T#Ep*6{Iqfk;0_ z;d@I!V8lLL`T7K``(Cdrvj=eLW$>@xp8}mHsp*Ey4^Nn{)@@L645=|K-Y=z*N(68K zHn71@iW+`TcO?%a8+rRn_SJRHDN{{w17yC9gRf7{IX}lN9u?wB;%HC!?e3?E7~jyO zUH`w|c5K%k($m2ALcP;y3o#nkTeTf?#or8yETgxWMbc7dyS^zIgi=?iNoC~sz zg`PNrEtrqtZztD93{PceQJ$*S^P2q_KAc0|%-4S*g4Lb*!wyfX5s!J6S1FyCVJb9V z-)f<*Jn==Fj~LzYUKu;w`vQDIHYa=6B{b z>o9*9H9;d4wY#q*JO8ej_I;=}nZ!p2d=!yx=@;`4{1G4w4ZEam5AKQRQUPr9<&_jlg6z@-3^nnSW&e%SXx{QrY4SY z$XW|z@|Sk}UqB(P3==LEYC(85a(N%=Uq25&6$MkN@KMo)P&X!)GM)$nVBHW}mz!jp zMUG$G7Bd z`3vdsHov&_NK;eOL}fPVe5?LcZ`0{PAd0W>p*O=1>I9@9=#;QrNUfe2M2AGJE@AOtgf-z&wPq zZ0EJMfarIKM&q}IMzikaCPx+If4R@;%(|D4+2;?oAu!5L8$(}H-A#>pzy5rM#mPZT zyrhhXsZA=HcvXCi`q%l}aJvHwB~{-#rcy1r*O;5M{TgB2qiLk{MaU4LuoI&+{#XKX zPR0rURK_WhuithtmYP~}|kktFM38u%9SLAC@9k;d~36jUa+ z?rV~eW(c_2AM-W031vBcU!_OkW$8cO_h`aff%XRioQY=X#nx+LC0BL4DGs_nqSAQb43z@(*1ey`GpgJNHo=}2AjBAIG%fexLSg~e<`BRG(Ba0 zc~P4GI$lQOvFS`+mh_dX)(M>-YGjikpbw4q89894W@XUHfqT#M#%BTf-TGTE=kcxv z@@B>cK+t98UTKm`cCJmWnOS!^8$*rRbjiZ(_&7l!M}_W|ppQ+R&~U1sL)1R%1YaEy zKeVh@fNNKBm3jf+jy}cr7yth3f?1^BaNm@SD=s+MwN1xR9)6>wU~^96;^4E$2O(cp z9X0cTFT;T*N#JX>sVg7DU&!*@APXrX4-CGXjv8e&SbXweppPzei?9 znd#2H0qe@&sfAT7=VPV5j%SU&r(ruLuQjwaTiw%d4Gi)kl#9yJG~A%mV38zQ%du2z ztVJxOz@8m4ccr;4)GGbG{EDK!y8~9lYqwz652RL!z&NbT+Mwl# zILXP>>a1nNgTK_q_V8}%^M|m8*m5O{K!RgeSdun>+7_WHX(1g~v+?Ci4>-bqT$qg} zkr;cg{>%ikJ2K&C=guM_t7%9U<`eUa6a%L*dxxWSHNnM4+aalvC14d`R4hyWM-q}m zGJmfOk9E~u5k9;>^Gp$SO;}Ysg_s2J8>OoD?PbI5h6dY1_N*7hcBFat3Nb?HB^^)= zGXuy7-D0Z3H>~Ej^!X2VNAs1IyCuAi%h7<3xz?9OoygVgoYcc~M$8SyiivHflZoV! zdITU3wxa1na~G)yE_!t8ue{7Ux(d=GQ(dL~AKwUEuLHWC7e4F-{nShDI8Nmh`^V{# zmsSxk713TY8T8#$hAQQ|vyKatizP@keh}IPX`GH`sqFVHtNb$?z81z(?`p1N6407y z#M*T2CMTTj_ZhBW?n7y|A759Rx6F1fR&Xxp$=2R!igqSdO4oH85Oa-7U0RgV@^LYe z1+VhHF83)!Fr8m${v0Y>6HesQr4lFh*}$^pGR zslRvf#(kf~J)6H{xP!1d^dwN=vzXB6)(;nAvA47z6m}v%ASV20TQP3j$y6O12W)PW z>XV1Rm!*=ubsU$ycN`bva>wOzA~;ic_@D>z4IuL$WAwXT@U1wU;nrnX!N|Git=~0+oBTBoWn5^Wr)@I*q5ErHxBS=xMzz! zL0~wl%)uRrThEuXU{9%L(xvnfv&9 z^wyvqMN=t(5<+#$a0x*>-l`6LaM1cYzsK{kgSsK6MMl3HE|;h6yea1mh{vn+Z2)kVTs^VtU* zeEz`(UwAgAT+CJ^kb)n3S&^rAxA?`snB|v0GsiuLQf|1k$n`^V@%3*iqGL<7l`TbM zEVWh^@6|%B<;)LDq2TEQ5&!m6v;5L$s|*hMy!P?}Z@nzwV_&NBZ~tPJ-@m`bJ6=|# zuOOIdn9RHn>XBtGhPPZ_Sn_NVItr3n(|LGF0deAfZg9ub5np?v#UFmN z$z=v5HWm4keiM09img0Q-ZO)Dv$t^xOe}WJeDHU@q z$(}P2&z)^jDF+n25@XYv)6*%_4QQqoZKVsY9%zKjoF=et;?lU$p0ODjV=)*PINq~# z6mW5Kv&m4opbZvQ3jt}ODTj*Aa!9ovarK4(6UU5}{~~sAhUb5GqNi9DyonC|#n&SPXsGtlqzfmfF3DG1_h<=5^G#U*QeR#XJSliai= zK*xrLhJW_*GFPth*tF84uK-O0uiIYWsi8 z*95%nssif=JYKdnWL>A=$e8Bpts(#H`T{*2it9J{Ow4F19f}XUy3BAz5@|>3YleKT zUh6SaGhDSLQ?xkVDqrY`ab7}zix%cB`ZDd z-4(HZeZY-t6@vpFKl7>*C0}sqdY`pjl4@jm>y0JedPRt~f{nu-n^t&80Rvr%i-$Zm zuX1&oe>P=$3X&B)ifyYr3Z9@+l5AV$(_fKnTjMj-AsOiNc-yrFWMUYpS>AC|iC0|| zw59hKj3w`F7S<=*avjn+naKB@Z-0*LcvdYzE|D%hM*=RWk3ljrE7)_k#i`i@BNQtt z0ZD49wG7p!VXkhdwhS$;(NYlxmNk6>Z%I^)1-Ae|x$N`RUE_T0&T*z9$(flt^;UwE zhH}B99J;WV=zLYU{Cp=R2fpIuc#~q_Gc{+~d8Ee7T#QtL?v4`so*idmDrI!SGCrY^ z+QnxO2y~o~&dws^7E-tck4&M6Unrtn!?YLW6QOeENm;wQRheDDBi~o}o=2oD2hO&5 z=46AlLq%S5c_(M82~9sFECr~*N2+Yq=q!-Dv0#O!pd_sbHg*e05-OfYC=8y&P57am zN1%XKtXbV9Y0TE~ltRfYzJ+irri8xb`1mXuutL&ZR@}U~@S@@o$8n6f`;o`(Z8u)G zH17rRLc(AQ;Up=UH@t9dA880ZXhd$v)KL(K#PIHqPIL9uC4T))CFUBIW^74}Ggopm zz0RB}P)=9hj4Y{Ld>r9Sp$eWO!dBv3IYmZ{#n46CuSZS<@}!^`WYSpbhUZE-Q!Ifq zYg3t2=P8%h80TaVD8a~h!XJFC&f{k^zw_QME*nrZ7Z8MHzCQUdy%e}MiBngF$mfwY!?^+(h6Y$))*-c_d2bk8PEo&9jG*Ve|}qm=F*89Gc8@pV9-XxpJsLAO$TAX#!DVXvCUEDu`l1ryui%t2_efCd$YN zKX(wZM$lREx$nRP|K)G0G<7HS<{TD7DUb|y3fA=*u3Y1D>!n>>JY1#~X_C~9L@@6D zl=66d{|s|AkAtIvPuw%kT+1*xRNbA=u}hie5@5DX-YgD5j7)3V-^+H zKzUdx@mCBZx;ove8`>gp>OD~|U@HZz$X81h80FM8WZ@}A;FdT_1;la84O=U`YHKHd z`}7=DQ9xR^vNJ%MCPYz8lsd932LT;YapP)`NekaE(b6fgfygK#?exPfAc{5D4#C8U z2|6o9x=ICenN)s7r=3UjgLT{oAweAqijN|QpMwIi8) zq`L5W3n5&fC!*{ciO%YTYo93VY;1Nfc{|4W{p0j}`EXh&%lj&pga`HCG z>z5-=oqcCthh*z2kIul^SLf{w?%cf2ENIibo=N6aDa7JubH3-Rm((S1gN5yuU+2YR zF+sXN-M;gAOtwAY+WD3u-{%7KwD*en>qtNd$y5_|oryUznUD&B^s-eYfWb~5l|}w? zoxXck#!8Hp_)4>BP@*!pJbp*_4@@X13+=#DO_lNlKv*5{3aM4~~(vQi>jU z!Y4^JI!cM_5lW|&Juq>M#x3$GOJzh@$_QAr*U=V%hw!A+PiOB$`_stVT7VV8g-i%M zj*rE31cDpamN+??68ZvP$ZS;)K@j=`fe+RNjtA%|3Wy^@r3j_O7Y0ulJgIQz{RSx{ zgC)zznOTsEQo#ejASnlyvr{!jrZt`l&{EM=_IS;u#qZpX_^PXD)tkto_zo3q&jSVs zdlA&W99u#pOjV8}=3v!3%|_oF2`QfLmGy03j#_u2Ekq7z2f}lBD0BeS{E5VTt0DLf~iXaxKNTFRKtZm4d}BN*TqP z>n{m;`R3A#dN$ufou;XOH$vF*5p@f%7+nM{nz=eFoImjU0nm#gLK|(r4x7q5@CNsJ<#!?Ctr)FCG z+UG}^YxNLHgGmxzy`_T>y<&jheAf_v{F9x$_u3X6UW+CJeEOk)U-|PR%rp~1=|W{< zvq@Ir-eH|;7oWpelElz#B`#KSW-^zgF-bEfZKaee9+eJDt5roOdcM5u`_Jz+@9eCx zn6~7RVs&ncmrW)blUYbOXWyqif8EZCEdP&)H2hA>3T{dN=dXqYmE_xk?F`efN4t< zYoa6@hJS}}F;74?>W!txUJ?{SpXc@*;r7RlG29jMnXf*{Skus13Md2~zNhe{!1EMA zM$%C#QOcuKa7%a>L$|DouOy{{Pcif;2440+1;x;(5c&k3B=9}@x(Yn>fR}uIMAzX(N`W}^H;5_N9 zr4afQeUH?5BwA1@26)QVyAb+xgp!AzIm%pY=_tB;QBqI{eF~vRSIKA3kr8H^DN49i z0(_O%Ls1AkiiH4WQtp5HI4TGz7ko;gkCOA(DTf|HN_4Bq?|=S5K7Z#<{@{x{iG`xG zG+(DuAwX(ZmhgQ_p}W_-tYYX>^aalz8X+=*N+IB>XAkm!{_YVz`qz)}nFo(hE(J@T zi+i5Mz;i1JXUDw!Sm+b_3g7qW?<(==u0uR^Vus#|TNcOnq-)3Q*(xO|g+3kS0y9%H zJhE?ujx2Bf-V{ThV&J`q*Z)Gumc7s6nEKlwt3@_buT5q~X7fd&oe828mP9M|Pg-`K zZZX}`_{vGOy=?%mD;;TVMWAs$YJaMXv|M~aFL1;(r){!n)r^>YgooIBL zsa;ZyHLmh;WQk)<5GaZTiB2P8V<=Wicz*W1X1ZhC^de*-KqX+47~N{2qZT@f(NPSo z7|}`*tpt&{xRcIg%{WU545<)2ellTIr=V9_27JR{Am|Gv-2rqcLs=NQ0!gJ@de?G;ev?Mh@;f!ms@416;9f4Ua#ypF18s!r)*p z>-x*=c=iZq8c;S(9@;<3zQd=v{lP=59PDQIq0@Btbn?WWkYX4)JHhAf-NQ2{ zX1IJqFSp4$Jxy0n7mx2cz&*Q1SvOGTiw{1>-A^24v}xJYAM)8dcd_&2EUSA8{M|QpanH`< z_>~T5%<^YndzO2iImxDVgB&}2f-mnl&dL>CJp9By?s)hRXX}Q|0|h?u#T`7jf1JL~ z0;y8yYL(C4^&AbM2z10}?tF$5GZ7cB>1*o+UkGwxRai$3Z546Oh}nCc3%?h>f;&-U z#GC7gh0Ms)DsT%5QBM{7MpF)qX(B7|lVu@Esf5l;HI$Nq0$2D&t*i(}M`jtBZn0^g zfWj@4Bt$-GXXz^YoEn?u^jL$?SAm)KW`h1CDjG@%o&AYB!&EGw8jCb9~Th0il4Z3BX>Noo2QOUU=SQRHNnmUX9y}CT(-I!jNz#RXSn{F zt@Ozje|67u$Wj?Us&Qmaw9h{_Hpl1heuj~{rZF+e$G@50KDDbYAt>?-8 zXR*R9={-6!&PP6VKepUOk4y+Vx)?ci7SYwut2cM?`Foz_)Wi&bdH2(ZAms4TQ~bd{ z?4TwJyyul$=;-P0rwziizF>b`-OS-x%T(_y8&wS-^o;_PfHRrhfp?&N>Tjj@I zzn!s@r}>|sdxVLWr8+vs7al&yNY(I$YuEFQN1o&J4<6w)H($y%8~b>A_Yv;iJxaGq zx&48?Ja=M-*WS2=6UR^U@h|OScEpgwDgWR+0IAgV# zg6HBgytG&<0x#WOy5Cvn+66k`MY?6_Y~H6M!OoK@`zKS35U6a4A?r>+;!$e|b|0?t z#J&mQM7w}DZowvm1&N!z*TPLef%Bl##+g`^i;|Dud6K_;7;aqC;@`b}054NRx!A_e z&X`OGtFhD?5%0XQk5yew;y6L53SZb+bvk};k_a1y?;nbJG4q;ZNZ`G{?U$jyDwTR`*{5xqs|DfsXil^xg1U+0a8D4e8D(X?{mSRy7Yc$73rWu=UqNHN&U>AizVXP$#oSUc3Vy~_o=%OQ3 zXzM;e0R({pEQKIo%Z4E~4wSPxxn6%`*@@@8! z>r8jIW&I%Q`b+e5lvp>^g)z=ORS1DjHLXNb2t0;|dbw;}FXb>`ky>B9xQPtPohG(9&mYO0#QEl|9E=%rpd*qNEVIkduKYoLa_L z6ny0tzm#CDBXa|kD*=E1$XR~>t4%g{)%gG3*+*}sNR((7n|Fa%UHd+)B~CRx9g-U_ zF3@bYDEU5nPYX^?MtD*>3li&?+gN9t3l^KjYmQq6DLfnXvrGWCKL-^OPL9XjSgcjjhtPcbreS!1@LR#l=<5`3+kmUf`Q$+QZ zP$eIcXiS{Y)Ru{<1|%9EOQ2a?(WxO#6B?}+otb)QQ=?`yQy>jXP z3*z~zCdi}%qYa6HZ5xN^5Gj9u|9&pIcpX1{-8vrHb(E@6+^}^Oy_Ev1`#X4K*I^Ef zH@SApN@}$x+Vi<`^AIb#OAPmxNwj7C${tF-VtTGYRa>suvW^=z_3(uU_v00dyyMnw zjGY-}=ZRUiZ5n3F$}W6QF*-8M@aiF`&vO64N#6GIZ48t={6fgFV`pjk6@KRRmvHFl zDel`h!CP;=oXx!@ySDAs%BA$Q;pFP5!6H|nhPTq9wdW;p^ux%A5 zPmXZk{t4c3>m}?xbe31#u!Y+66k`p;8(y{r8g;(<#4%P3_OqcU7rd+>m6?3yST1Il!MZ*kq73uFR(ce=+Vc525n90!z9zQV3bRu~Dwd+Zu1QiBc zb zeJ#)KIm+&{b+)eSXJ|zaSFh>ei3207SkcR1#bfX388)t2!R71wk&EmTo*(A(&r7oN z2Np=T+5heQ`Q%c*o#&s=;Qp5qP@J3<>^hS&9f9X5gs^}kF(D<14LEtK$-cw0oUKO8 zX~B5I5O^)RONL6>qq7pyRT2~fiN#Gs7k$mjZV<*4W&wfawViWIfoJ+S_{%ty9qfVki`T8Qi{> z!K+r$FhF{{k(XxtmdBY6}-2e|?wb(BTP& zx=Iv$i9|X*I(c+QOLs|dYGj&2C+F}ziB1z%_7w4b52@V5Xr=7))X@o!kJRuzg*28V zP1wAu$i#G=u^Fd&F~$(JA}+aj5Z|Ue?-3~XX&IBR%psjGxwS-zrWpFPq69K4 z2#f38war%mkwi)A4734>rPgx!%LSh#HEl}@*GX9Fb94OpH}>))uf2*@odKRwSU_tH z!Y#2agdo)hYYkCiDEorXKd^@zuiC<<-jGIYkiyw~mO>BdDJIU2@fY_W;zMt{fv&*W z9w({B_gvkKaW-ATTAFc+Qi@{W^on}Pa3`OjOtr@IJ#@3dU*EfjvALLS7p>-vSFIsR zGzDMLj8m+&?j^(7>K1)P5O_TG^a1WaUgPK9ay2$hut1y|LT~<_rBWE}B-b#=CpEzu zO)D|Z`a}q#+8m#I{21?k)s=X-u!}*v9QV;gsiEL2Y^KLt{Cwt@OOKP3An>r+Dhlpc zcHhF;7Tau6N(zA#f>xaHooFYrNqaYYZ!^1KVR1`gEIgj)x4As&h&k6wx0TD;aqH@p zAUQS(&y7U1tia3Ff5JFzrSz#slEWveoH$*j8o`VHjsA*c z(<+ZEE?$lDN`$J#mLWk&NKQ=8@h?7poUzsldb?t_uQ3diBv-93aQkBoo;c-j;1jhJ(z^Nz1f@{&;Nd3!@zYZTg-+_N2EY9iMQ+(t!J^oAtjf_dDTgLPK6d+2 z>WQI$sGAkTT^xSs7-=lg=p_xG4S|TIJjgt(L9^Y_9CE}5tV_dhsi_NP#vC>B< zw|<=#&OWmkC~kk?5F?W{Jf-k#%*(e9FgVad5O{<^fG8+F_ss(|B8w*_(ptI-hMO+! z;mO^Tv=TQ$OVflx5pK9(}iU^pZp}Nhc<4X5YEwK>$(+`JV7hT;=pEgOtc|M zQiShw!?x9U)(~a)VKS4fcKLdK*uJn$@;poHVyz=Nl+U(x16;Ckh|AaY5oLB|Y1Te@ zd+N+|DA6v;R!3I{*IhJ393}1cv)S?dI{B|F!?mfa(}Md;HCB3DzHWdtbtXP$NjVFj z*@d1@eqUtdonJpcCqKS0f0{kl?|_3H+V5>nq}iWs240Z2y?s6t!-e^ssab3c2gg&M z9!ZE%gi^ItZ$g5Q9#eC$|L`ow&eo`Dn2I%Hbwf2y=_-e8U%Q&5<@3-JW9)x=jIrq& zoBB%(c62j7shOQ?vU!z9AmPMhgNF|~a;er0&m5QBxeummb;_aS?2JTs9#0*q^V$2y zxp*jK{Xl_O8w>)^6P%t-xcliQQUxSYgEw9gu&U2FXpGN9%+?K44aLs=v*;9xrI2!0 zf!0KgsF9#N4Z>j31Z{mpC1lIR6|NhCAWhLxO2rqfC`*P)f;Am5T=M8DNV)?>!Lx+Y zQuHka&r-jh@8IWdi&1z%~k60Y1_qFIeOGZDFwgwZq` zF_&JliZnLpsKz^Q8Kw|^hjzrgU$;vG;ZId+#pt>pvXw zbFYA#FAhkv)jced9Y;ggb;YoS|NpA@K1z1^9tSkAfE(G*@f<9$9eX8!9PwFvq)h3wK z*&gH68d3`O96X6lQ=~QsV-Q*swIU}lA!#KEPaYh@6JS$Al4v?hhW^fwBd2DanW1)q zQmLd^HPp}PQ)4Lk{H-O<4*@nMn`&7`d${=m@O(~rK6$=V*la<>7Xq7GTD?U0Zr>JTwLp&)nLt;1CXsqDmsV2`IoMg1BnXx`+ zqm+qOj3?oW;U0zy6`tF9jAC+(|L~J5`OTlblv}S@!)#r!?_`~Wry~xWj5#yi#0rB) z>K5lTg5fToYuA@}*L6jH{T)60^H=wi#s*`3gh~0}tr7p@$17|YEYQq4Zi~cM9*56H z7%Qm9FTG{WCLG0RK~ik`$50$;kN?E~dv0T(?<(G!$B zsQAzw3i?99%0O~SuaBN>F*Tdw2}Lc@j8E6G+J#uPMi2%bC&s2Ya$*`^IzN1=H8xF& zq84$SP%QX7b!39+xfHBK8%<(}`g=7SxQJ zhtSp~gIoJCP7U?gGTShiR1k*F%u5iECJFDnrknS^VkK5PYa#)36clHs>fF1lMj-%t{b?l7gowD378NlmbJg zAm}d$j-8xB3Kx&qXqc(iNa6&YYUhoIVCS>PF{woui%1P3O%Ym?CKg|&RFjBZhbEi_ zj)piktm^XVtW-F3Vh*fFk_uW;LT6dBdQ~6CkDfsaj~8onW=)DJ4Io`ao@FfK2M6<# zZ@#1L2AA)cXXIROod2CCTy(HFRqQ^iIWQSxl#diPvo97%DT!jizQc3uIX=UjmP{pv z(MCkI8MC@n;PQb!rbZh)`|L3q%?3eesWm)KjRqVV_jvAH%j)W(8OoVEh8I7!sBh!Q}&#uiZcz6ghc(j@`S?^3+2| zxceWT=BrPx$B(})RD8MEuS8N;L;E`FPRH3!R7>`yf<%&yIGd(>^qm^QXiv#kaWm%zcMv2Q< z#t#w}2*3_GHJ|T`S|TmG88^eM$SAd&yt03Y_tr|9;$NSOpChqnTibK zt(Zt#F7GdKaaV~$2gf;h@C*inkQ(Jlg1~o+uLd4|5Mc4BHateB6_c|bb9IlodWuqx z!kjkL*(YNG&*Q|jrLPMHI;#{z%NKVS`0+oS=4U=R!LR)FIRE-nqkQO($N9$o3R<^# z+f@<2^rIU|6NQT^k>9s)F?oe04MTLLOrbNNx66Z`4(e6I)Sd|@pFYd%(J_)FMGX%V zuU^B6mQS;#v09R9H!*FEMG0pbCIKM~((23}JJUgDI{e&GCij38SrDzV?-Mm5_8d5c zhXtEpO^h`uQIa^lue40o>g;&(C_ch@@tFi;VvK2FY>QQ^N}QfcIe4Oqk}l{{)QY)e zQwO!ka`J2yEa=qflUELRFfiE3v16kMrAV_0>GQoc&mRIvUV!PtGM4duiZ+SmTQ;AV zbNd`c3m1sT#or;aif7NH92je2Jn3wQr7Oo*9@Qp1cVLbqqX~1?V2>1xA=f3(2Af5#fI z5E*CIhQ)cXky-R8g((K;qDQeSq$AWM2gYgb9Yar45emH3eT0{+$6wVCp1@O1q|Kup zXVF11R<}+51a7j^xCJ*{#5rp)*>d3`+s;W^2?Mc9~qtQCXBndiAiIWuR zdpx%5DAls8}|x>*eXa<9I?j5>6A0 zj@Z6^4F`{(A&ye4u`UqMqLI{h0s%ysbNn)v@dJ-}BDU_QjfF%l1*Axx8%fza86#Bz z4<}7o1WJX>R1MGWpX202OjW~plrRxR6r{(?*Y;6NH9K~lWPGB5kdin_C>13aZ&^#y zGBjH;GVn52=FBlccpwxAOQGQNz%xxoCS!_T7M;xH!UD}CA!@})pb`i!UFq?zYYP0w zw|4Ny@9yBw-&f`n@9*G`-qXo{e)|BoZ0V%gOi5B_HMDSo(pZDGir6TG^iWDsD0qa# zq{qgwb1nQ;z4+H|#IEZnQ4$lUj#XX7v#51s1fMMtMHWBUW+t7f3n-*hi#8gaxgQ%n zzw{FpLf_}vLnk?UY7{Bm#2Tq~9a0*TYJ&$mnXHD@_|cnS}JP7JMj%5ZOii!UDF z!2Xj+>5*pEN@-^A|KebP;`fe-^LKwaEvJ_vy%^-$&!uRSU1l9%v$)pe`Gw->1nfNC zz)--;R24#i?-vD%q`(8a8}xS<=qXr)%|c9)OSO5;bMG~U z7K#)_f<#M+RZi!P5Lri*kuU~r1ofsQwLT34n>KZD-L_s{c2SwlD+E$yt)o*!n#Ub( zS36Vmrf6+3MxYTG3_W1#J;Jvx3kTk{A!o&|nu&?>{L|aYN zh*>*WqPx47ollIo7|dFe#s*JlZni1&b&ax| zmeWg=Z02S7ouF;_aGw1}%uf={lcB+vaCXY@*oiq}Ay8gENh497&s+nZJut!8Ov+p; z8EeH%CnU7a^_@>U3;cTV>cvEqKHaI$kt0YF+N^pXQxbd1RK~yM2mZ`Sc_Y9Z5;0TjIVWR1^b&??l{o^ffX?M{bRfH-v4gBLvn6 zObP|hW4e~oGK#5|q^s<6#l;n_+*stYVa0I8Ei2#d7_D`Zr*+ZZtQB}tvUQEm)>Upj z#7b!J5Of8Ktt))qetjP=zqo`=H1)`m#FkX2Bw0#RO_~@ak|;6Uw__hu(@mtcSe<5} z4-87Dh&W=?`X0u{YfOz-ohh1iuGB(n(prnP0|hp0UB|=Ej-s;(!8l3jDWzP#b(qJW zIO942;{yJ)T1~FIb`6O!96LP&O1U6Gsd2HHjSErwq9Me0cg;F&3>~4Mvl3?Ob}i%k z5sN}UewUH!E|b(SRgJUdo?h7X+a#Qsq2*=fb97i|H=DDdCneJj#W(lPF_}VGPzWT_ zDm+h8k6_o{NzRPdsTq%nSTh?N21^C59;|Tu_#FF>PC5;)cG0}b6_2f#ZDwM;&e^k5 zC=}LM(j?`LZ`#B_e+RSGlr%9UTDwrZ2((VIz?qW~yZ20ELjk^|Yh%EhU*5sB!-^h} z((5%?(^I0S?A(NX6xz6mYe|}B9+Ar3yL1ucu+HmJdC=Qg=8?Tk9y=mAcGfVwslpL0 zSlQ)s{d$R-o#5ww_DQO`6Mu6L^c65Bb$Vba&{9w;!*9H8h>He_2m!?ceDX^p?ASBS zHJdw8XhtRzgit8u+(v{-vr&dGnkFT5Da^nW}?w@7k^ej?&! zS6{!5C!RV$q{&ny3D!E@buBhryrzS@{`)QTbbg1iCf@%6YSU*??|I(`KD_C>u!^&> z;7iS5Uj-%I;(N>K`!l(Z=6jR!YvwDv)SAgT3w?e&v}N5aJmjJS`EPbW2tlL+?mt-L zOv6wN!}bIkQW7PSy$2^bIo_mdJf>sATx{qog_0Y%l3=wai4%%N$)#6r zU~;0tnbT7)w5!^?H=X92dBXgk=-HIb9!K*1YY1F0vFM2?8qDkkIXRB zNC}kT-W?-gJn9X@#H_|zl{sT*jMkYN!`b^vB*K$CvHLKGkDhUHB8;;acIpO85;s`0 zvX?@+i(^O5B28|K>?HIgO{fGh*W7#=yU)Z-PPI@{U{Z~VQ*OR?6DQ9$IevJGKnSe1 zB(0Re9-rG@b1A#_9A>r}J3D3Tf)bf*BC!>x^j186>hey6b}uDXi2RYUALu-9I> zd5cqYJr6uziCAkx(YFltbu2x!jPE1tI$Y&XzdA~_sh{^+bl(ZIv2+v_AAG|gS8aCh zlre@=<8_c~fkyTDW1iTu?OY;u2a$jg0goSRvGZhuVyS{~A`?OwQXO*W@EpfRXQ-x% z$(Cg%a!d1EzowhxN9WjkWC|rL!lWdLMhe5#*RE%-sX2OR5+x-VgD_4CH`=0;CcbZ2 zwPlz}R|kP_=`2cupo|~-1ky0l(43NzQXrT*Fv`S}$Jw%0@}c)##&p#%GV9Zb66RW( z*+xV&ZlO~{xu_WG7Od-$tRGNp8VFh4S3ud6xRr9Ys<>xYorj)@n5%ghZCO1ax%}!r z9y&42N)>Z*=V^96S|wFQyo!%l(~T}Dq!M^V4_Pi^iXLGSF;uHN^?)ZRDudN-IV@o< zLK>viC?rBTFGML_q&?45gh9xGW5?Nl>=Z&MgvcB+GPAZcX|Z~^mr7qBM-H9ErU_1M z?X0Vl$l#N3(<`@faK>=*Y{R{y+LE+lZn%0qk%nD6&k$HQX_qDjPe%OEk6g{Ek#Pqsy9+Lt*!9D@4uFw%6BLczwdq2>J7x9(UW#l|0<_AdLDSbM4W0v z(K8J7cP>4&jPDcdJ5l3}|7ka8r`;;L-)%&RWvIvFtG{_E+tyXk#&Bw^hEOkT{knP8 z#Nq{Q=T#E|i$zI~!{eH7?4Lu0#mqv&8LC;KIC`Yc(G%0urDP&XnT`Y@aMQXT&YqfN z@1ZKvf;Nc@@0i3~cG+6Iu*kjx6M#i!YuyR!0+btVNTVj@6(zdY^wOAZ(wa-CPSmIr ze7d>{3=f9*D=Hj3-lB1IgpIv$-4*?;S=))00vnWQCYEL*NKEP$L`Vz~3Z1P!ZjGi? zgp$yVpP1q3bCXo3BO0kkUw6o=;R0RVWx_(p`t?Ot3~2u5?+&x~i5aTX8n0ZT&{afK z0@AJm+BXPgQN;jR2nak$M=PR`{{QU#ca&t=b)SiT=Ufxsq|dC(^1iFRL!%7(BO@Xsc0}yE?>4_3S~=V7M8g#lEw-dg zHIC4BU!%mH?Kl$0m3Y47($W$aFRg&EtBH)U2Q-XAg#oiOW0c1xIeT#hlO%W=Y?%>M z65?vjhdy+SOMT7Rg%(nHXk|#kkbCdhOWx1(%s0;B2@j#IlTD(4@BQAxqy>2K#q)S> zmKWC6_bF}F1C26t1|c8*_MQGL1x6^`6uYuV z+q|Pvnq1Mau2^7W zkPs<}(gtlbsj?fWJ;$L~a48mCI*l%0`pPnAPWFiciHuFQ6f{Mk@TH+rb(orVSYM7< zT~@exk7BKetmM%SHfLSQqkWBZ>;hBYfU8s7)Y!8JsgS}d915(Atc`pHQfeI6J})68 z!jU+x%j(7wt7|K0W$eOGjlFLg5yt^@bJG+?$GCKU36lvFNoCz|l%(Wz%;O)qo23X& zpWnoh0;N5YAmqr=9n`C%Jon9WILe-lpbSCK+4LVzlsgxm#?Jl(IVGOvAAWm*asT#)HFQ#lQ^SLERf2ZFOD8rF(m@!7HVTz!#>NWl+&9hH`3A};q?2NY zlWjq1>vR`s*l}bBgKmVAI&_)?RGi|N6d??*EAex7gv2j6EcO)7p6fEdp^2R``AP-j zx;UQQ^z8_PFcMd~6nzKJcUkKu%&!etScs@rCVAws{e19=z1;oi90%^3W%kev)tM2f zj<6Z!c=eQIBOIkVH^IoBDZKG2F@`uvvI)9uVP}%!_6C?vK-`TO1R?!?M8BWV8^rVm z5&bBkAKMMcQJfIPia3FOqG^XAL6UH3ae?KP)vXLeHj$?xPD#T)JLe|wYa?7dvxE-Q zOi|6Yl|^AlUIjey;d{6oI-EM+Knh{CvV(vlckHHKpX8aZp9Q;A1d(dOe!$&#O|f&| z7|*^ik5XHmBz85D&U7ktqR~-^U#YO`&b!!Hy!eK$lv~C5)X)6=cW8^V!IOq^G53b+ z(>UV%`32g&h+3sYnkpPelEev)3d2y1^?{(<(Vv5B)Br!`Xo8$|*Y=eXSq9;+n zsgvhu^#Y921W`=4*+qCh!fb7O0F2_?*$b?0wkZ^gxDt$z2w_MPjpIn7D8_Xik|?6t z?vcxRq)HPG2DCdpGy*A%jdYA6N$vdrv`V>nae<|^7R7QAKik3qRw~eL5V6}xwqCE4 zc9XBs`pRR)af0JW7A{=k{H0a$g_6}vmiGBc#}>!l3q18&n=il8rI34bu}o`&pY!_Qhem&0VI#u|qtmYg}$V6&gn)6k3+oh0Sh zbd^!x;p@+@V6?bqR~1AtuQ79t#PDbqZ#pyZ!YlMOUtDB0!wYp{7RQt87ukdcnAr;BT-tg+>Kaj zM)<;TXtGE&h*{q-2uI@OJW7=UwQ-;E$pVuz6~?B@jEtAa*Gjl~7nw7JX-E>s2uI)- zJaRb!Duf_J2LqBYBn~6eC_=?CYO60ePVAY1PVIr)XpFJD8=zCD;ip2hiPdt}VE<`|QbL=gqg@WGEf#N|GmxwK)6k!a!|>W;mBBF}5(o!<_8+Ko&j$|j%@@ux7{peHD4Xar%FbYGr7=kY2=;#PQNmt} ze7Mfv{P6BuFV7V(zeLLPoM;wK$ZFDG>iuBqo&Rtl>7+AWzM7uYjvDu{8 z8_?+m4EkM`7dJ4DOSPQm?AeP1Q9`5HB?<=wv8Glj6ZZO)>Z6#T%Y~(N;!rUN1}t7) zA{8#RasiWutT$u!?wsVpg-dL1HfXeZv>Oc?oq#0hv(f6)>$X_iY@>C;+Io{tXTZ|Z z3Q?>{;*e&uO{d>wZEb_K^)}U!8lEF*Zfugs9J{6~oH%)bFbG&(+how|v$VQKyB84j zdR$morPFEC>$((;P91G9r{S5bV!Xrr4p?@ zmM(W#+6Wj(mqw&$M=)E-are|XUwifvgF&{!J+;CLaTIdbJ-cx7dCtzSU)lbkjqMIV zgVgo_U8;HPJ37OKbC;=&SJ_zFM8?V%yNt3^Vp?I00+S#~(VmAlQDN_)S)P1miPw&A z@XFICc;po)gq3Bew3mU#i8jOdq;D4K%wj~J|-y^H5i*mP7{SR4mm$hso+o_ z@hMkwTwZFD#0n!cjwkRuz{KcifQ}-PAV9?lCQc#M2xTwE*ntbJ722eBbUCxNa2%o} zrZX7elw6{2mqBk}WrnmtD3Cfu#~}`yo%{9>2#1x0b>vmHFeu`1Kt1pAfe$~x*;d5- z!X}=SS+Evz_|R@fMrL^Ssnf_b#mDvoM}v@EyGD5Qqj&Pm%cp3x2S{P__S$Hh7ExK> zy0*@K_JI#jEaz!nILYKlfggT+?rl5bcVB%?x>PGg+Knb_n=L%wqtj{;#3`+2i*mVy zBMhZd5fJR0nM9>A0Qo|}3ZDqgrOT_-YGn`t$8m6^Bu-PR^%{koN4L`hAuwrTx2y_> zI11Qkb`eGsgb9uixSmhY>#@=5QLC1SkJSOron-6;@dEIqy<%uN%BVArv4A_VazT*+6f+&&1%B9ne zSX^rn3Ws)>(v83qntOMR^XiFZn(Y|Z1EUj!Nr|I?>FF|ayQeuZzlxLqHeI1rrlpXb z{vtF7@0w#{c^${`NRpUjU?b11jo?-h$DTo%BtZ*-8Yy!0?mY~8DT62`uM$)*qA)kX zuBi$|N8>t%>AK|D&H`0W5GQsYp<@K&RiB;HMfU9}uw&N6FG)7zm`lwjtF0cro+1ho zv`N7=NU0GfAr1Q^gC1!VlZKIv{!@)f4P>v)E}zQ=MXWb% z_@SfJXUAzS9JkxXZ_5W&;QZ)+@iRZSZ^!iZ-&~is8xacuQ4~`f9cAZ^2|UkZe0+pL zAb3nMx^7pHv3q){YVvUBG&)moLQ$#F(Us+3Cw z3dJH5<0JSvpQ)*F92AZAfLgtZG<|hco6qxgTU?4$DDDmgiUcnX0RjYfcXx+k#e)}z z7AZvw#oYE;zQ?ZN&A zXY*Wg2pl(B&!5G^oyw_0P8;Ax@?nL8;ms>Bnw3uSZGuVYV^yBOef+zg1=|Y3^Gh;A zsvd%~{@ahIr&MI`uKX__J~sTKcZw9yx(Ipi#>z0UEnF)%phvbpqH9#+O|p`I9FfO3 zm8O9ep&ic8#ns{v^9jUZulOl6_hjTBUq7fQ3-T`2@2|63@{!Lh$J!M1pSeW|bls2= zR&O<^@U{`$9E~HJ#`OF5Yz~5NOyym^)lMO`z-J>S%?RGHePQdWmCPS6GcreCi$MT**aa+Kf137o$70ngszOO ze;<=Vvu1s>E|c(%bhDU}4!3bgjZ83XW_T2AI2>X*Rh0RByV9g>zI`_E`muzt^H$~G zT_s_P_DpS^m&TwsckZdx6|y0QYC8(GInxi5qum%(@7S&ANylB9SQ6+;Z^^v7jAdbuDN(^$(9NOGWsmeI?*& zX9WP0x=pefuAE<4oW&*P? z7JIsmzjd(G3Tr9~6@QI_X2Ea)4Hj7qctoOdZpYOI~hBco)1!vNYs_85n$l@o%SZfEZBP ztR)RsTQd(TuUW`p0iiuAP5pD43u3Pd8447(;Ejz-C!ltc%aF;Z(@IkMz#4ZHG(q)M za~On1LBMvPda3)PX-u~sMbcjJOQd9MO8+17e!{^c9)(3rJtrf7l^JqHN(ENvDGnM1 z=fN&hFCNQ6!>a<8-S58&uBnQ+NL+L!9=0Axbp^$ z(8`L2_Th$a!q|9wx;V366&$T>wfLeuGpRFL8p>C8C(uFjNKmk)_5F&X_L!JC9_78w z(@fa?2)Ccw!;Sg_Nlls7NDCXd$8L1XOL#5uF#gX|GR}#hgc&$^BI;lc_#V$ZDJDA`8MSBkBf{_KVDSlHZMUuL z2mM!CT1tjh|1PO1_XGV#ZUe`0&dO33vi8ug|TJV57jLOt~8C2uNT z|3Rwmj!?nQgos0)V#ow)3uvix-C|a2-V@VO{#A%pfkWH@Wy><=G1a$m{Hc((pd&@Z z8ER4TK1o>%{MEcT(dZq6c#-Gm5NW(SL9v*GEuN}}b=Ye?mR4Pc+a!z%uHzhzUByqj z=I}#K3TYYPsZxa!)z7vg&W&a2s?C;IAM7yR(?|Ij%h+Lv<}GHKC*)6?2S6EqS+U;<@ z>oEZ$UkK}2U#;C^3BgjE=iJ4GIhz+6rx)1^DGSy!SW?|~q(24QozK%!?qEo1e3?<- zz0eAb^!qoxSMGg>750dN7J70Tcci}MLXRe=;OWVX1mKp?X@1g8Srx&n+5QO1o)(Um z&Ye~###7hD3gp}2ab6Xh$ovxy)avK8hC&$19K*eSaT`NJ*SzOAtDAJ#XKLlL&JPy_ zm4ixD#FZ*$t4b@z@J_}|6PwYP6zPZ0S{dc@JJoAf-+w;;?*Hm76P?MwPA5oxL_)$K zp)Tv~zFR9_O6k>$nPh>kUV_1RCQcfTnn@$P>q@rqCp|{EXan3Ztn1P!2qztjmED1W z2lK5Jx`}ZPIFA}yHUHKdWB1>S^e%Ct#a!FsC~yrhWJjRDHEVAFlh5w3>(vL@Kll|S z)HJud1KxkJVV&ND1#D3QrJ72$`j-Dj_;Q`-aaiA_&ftM8=}2+!2;Vm#SI5DEPNA@H z95THr1wtqvi_RQx#V6;*2E02=sLlKUt-@sx?i?9mVbGHAxRC-3s}nGww4j7r;4?*i zsz8bi%2NZYqvL%`-J`beA)xb%88Ut2<8)&F8DQO6(kR{PefKq6c=|@dJC_tM5+)%S z*R*PrD!H{_4A*_|+1D=d>)!_3>OAK+Rxu9Ixmx9)-PIxz1zD7*G~?Msv+J>cW)Hl} z$fl{NE8liM?xyIu%Y)S;C{EI)u6W<;RIN7)ezD|tP{Bp2EGpp^XiV)>E`)!j4qEonM@(z=Tc6iA;`z7ahzKxzk)oH&I!PS}o*PqZxU@B_%wCC2XK%2AqHh z*CKD;y6Jlsc{VFy6DC6NhX6~e^z@5)Azsah5xGsis}G-1L$+cIoew(@eY+jH7 z#tnZd$?m^FW%LT#%{OD#chFCwv_VUXptC&g7WI>C&(l*kHVW-rIpe~Y}+Vyci2YUA-$|?hC+vWRndBY@YQYmXT~=#AOpe^QTcEUCZhKGf#`3x z9PhA;epGRs@qcR;t^vYL%(V%`X`>V+Y|GXa<#opbdDlDE$WjIar%$jU1`8DCb(NN~OqD zLnGQ$fySAe&hWa_0a%+>qF+UfMjvU5QjrT=m|1jc^;i$Y0ZlR*8;oYHKjzQOt= zx^qd(#wfEBfB$19AJ`7Q@$8syVu#X^Oxf)#L134CUZIFIb zJkw6V8!8?oYlb}y=}r6$gJEuD5`9v20^r1xG}pb6`vl_JmH!lKzWa&&NNy$;j0^zK zsZOSbbc5eo7t<>f?&*rdsxf_H2NR`hjokFm@p?Y+K<=)jc-PZ`o4u!5K}dpl*(& z6#SbAA8@C?w4Iw5h_%*M-;6U?X|8gnuel6qHm-#t?*(_m1WVFTdgTr z0HahVJlxEmvdS^7(+!MsImYFDpZ>5F%MlEvndVR9d?kJxm|9HADKvl#TM)@%Ib<+Q zlPEeURSyvD%|d=bKB=(taWG@asOD;L@328KHSxT~Ow!o;_{M<2m8f3@IMh-V(yKC4 zhr}JEnD%|$Go-)&QTS!Ao%?~R?s`>n7@x*G)Fv`%mIcyyaS;QRr{!5S} zjk+D0!fOseCA4da(2vutzZzggOyqExLTN;tcqYSpm)9k)MX?CUeWgwb&*Y1qrr$PN zHSrzFAh@zgn&Iu4xioPO{enK3?Xp3+wI$zc1F3~ zSAbcdf%9Onee+=dts2OgLzhuaSo0zxN}YzLeC6=8X-97)2$D3xK&eSD5I*^^dQHXH zx6uGI86Ge%CMS%J1;{6ApB&g+C1qw;+#eQIc{p|t>~sfXzr7wIL(-l?B?lXRm~K<5 zn=xd`#ab5Lc_$5c5v$I7X#>;1rYSI^HYKxuFvf)Q@Zrjur}yt6HKs15bj#=oEffpv zNd3uVVsv_M25DAZfs%}IURwgEVm6jIE9>f1jz0L&hvvuuYmqfM3nF<6R;6@s)eVWl zSm}o!i;Q>?)xGF4%$No6?p3BC?k#q0PNuI64uZT65d=n7gT7!Mtosa=fPen0g(=4a!6g;oO71-6NzGWoPB!}*@NeHh;@2D?)R<14) zLfo|RHWv_-X)0rae;!BD4sm1Msj#|J2_JL_3B@&CdUT8t(jwmv{O2jfiowNS&s7wuK=^ ztj^W0(UTOZ9Hq@N(hO>o${)R{e5KClJH;=^%mx6yx0QTCLtZ`@qqFcouq!9G!UMkv zS`VJ;-st| zHX&mDut~yyyh?_;mG)IPIyKi?(d1``Gh9bN^$stl4L)M-{>$xl+6tZ#95xocDK(1j`md?VD#eO24E zFZ@?eF)C<8dlT%k+JXaK&y!EGi$X?p6yHh&3kR-F2OUxUlLt+$e2^pDK69P3=3JN$U0K>YY={-&~x&g^K`xTe31+Srl_oG#c~49{ETH0uy*kuw^SbG+O9$Q|WiXrDA)5_K)xHm;6YaU;XA z7|8=w-jcYPNczcv`sGbaSoi3=V4EbfFvn<^cu#*3t=Yz2`ax%~V}X~QumND+(xQ84 zeMsn6R&F)-rM-|$1YPki<<;*k5#R4)zbCNkr?_gbkiJW?W!^a{;(No~)g=%$`jl^s zc;gEgos;vsErz0zLr6^@n;I4B7Y4}RkdI#PhCMSI?zJVeFHmvnK2tIB|mJTF9Na!9?~`CoCYO5f9b=XgYzpp6G%> zzSM$?^(_obD3D!q&M#qZ1Yps)N;u3uM$W6N_S-%(6+Ja8asK=;w{l&j&tA=tHQ$Fa z1Bln5aGsb&%@Gijwv*z;40Q5M%*v_01wg);UY$}W?Eoi?@!*FlG(q+du`BJ7t=C|3 z;~ZJ+9GA8_MoKW7ZKb6AUK%+Dcb^w&bSHh$`G-4P8Re2P#9t)?vjhVKGHa!3-)L#r z73=!_?Vzq|w`s;w9S_-^gNGx^ds7UdV$jNdm+TvsPyCISZ?NekAOEvL%B6aGF_U|i!lwGe^O1QrBh4B0r^i7YI>Ct0 z;@FuefKI8y;6!|H)+9c0#?)^0PoDJb{C8{n4uV!1s0Mc_t$qj4EZ7qxm5KoalAmi3WG)-2POoX(fSB-Uz=>ne5E>oWub7mYx<|%eWM&AO*)Ex!Ca?PZs zBN@tf?er_zO48&YsbE?$+SW)fP7_dmryS7`CYD2P3PsG>KiLewf2_uilSnQRQbk?0 zG0aAwa^%OynDT&KMnwZSd^Kk$Iem~1PZuY$CU(|75i}_(U6l>MW&8Jc;I}M(y0>l| zWddC=Wtknehn`t;3c|yf(kdFM%g|*4@h2z7zlB&BK>)hByiKp36*$jWZ0v?)$*nGF zGMc+uf%G#Oohbl_lhL-SZ#)O?kR^nALuZ&1%`qU03G|k88!o29g!hWWCg#+!(9;xr zVdBXHfDDsTz*2Ghv+*TcVW@K1sl0 z)EU>;(O?H`nq>XN2;#u=`(s@BDuRt3+p?IBiF#0|pCld#;xp2tDvXRtZV#SclEkOJ zfb;Erjb2}O9E`&W;i+ZuMyFuJg^V zxSPygngaEvd-W-q#%iaaq4Q$l?F7thn6R16j@peyGDE(fEm}!No1D+{hTQ6UdC1(W zuoS6~Att26NU(nii{aH}w8pXGN2u6*z)6$aC~>)X6heSSsrfg>qPP^fP=O9J#Z zvP*vC+?&n;3VGFzu1e|Iof)lw8xex(P?02M596UtrRX?dIB@D~N@PB(@<0X@0$Sbw zIAs`ah$zvhyETE<6aM%u7r@J2KNk%1qi(LWm*YyXGYAS%hwWTXxWAo%(51m(IT_>FJ{Y3q;9J;p*eDID_o9K~$XnBQlCsvw94R{-h~ zUXlt9YSK6AgrNPn(HfiKkk12Lij{`nVD*Ny6W!XD7pO)5vX5bld8pDtbPOF4i==4}*Y@V8P+HJZfE#GHdPriSV(b}q7DTP&lR$M&DNZ~%FSW31#ax`9n zq7nF(z4ZpX-iBAWQw)yQ!~#224v8!0@`9T?R&a?J13*fN=$~Kdxz;T4`%izJS5b=owd4n~^iCv*H}Of9qXfC&+M|CO zR7&*b1r_RUo-O=DZk-rHk8@u3TqOxTKON*fK;2x=5Lt$u!L`tRLzxD4eN#V?F0O!o z&Li{5ib#M(Z$tSj(~cB(2b~!j@(d4mleiRJ>Iui!oYR8@s8|)?L=x(&@y`emEhamG zf=r)05J;x zTJl|PGSH{cI%HJyNk)QdJPSvdMIuY*9 z*81;u*mjIP3;VoYceA>SXGLGqgdKGx^Yg7UFaaQS<*;cw>hO_aTj|vfJThSho+d38 zJK&#RG>id#eW_H2oD;$wTvr$Zmhxg#sMrET>@_4d#mtX`77eWWjubq#6cgO+JX~eQ zrfLRGGQt^5hL%xQO$*USVL}V><4!hWXzOysLs-M5e>ig^J5;C^v`S4sdmBo;+15iC z8!$ppoD{7Rj2GB4Kyk${EJ!f$4mYQgB~(L>X+T^;A|gE_bU;FI8i#x_Q*=E$3qCcY zS@n!)kJ9l2vo(bQ^@j6M2>DQ=`dq*R@imwNhKw?SEB%g%HgoN3Jfo^dB(e_*b#NZ;O|{fQ3(`MS`rXE7?Tx$~qHzrGW#fCW6yU#rh+f zRT>Wh!L_Ne>2v25uRpU<8q4dERF>0sR8wB~XdTZ=j8ocM7 zH48xUH~%ZRY_;l?8}-|b;u{bBAQrnj#2zU?uVhs$K(9;$wjrIFM2N$6XIJ#21=6=f zS{lPLr|cQyw3JgmkTbXT^9pi^baKK{3*=dx2z(ceMO!AK&z%}6B<}qYSO2(KGg%^- zluk=GAp`gR4{#qIw z?X?97qeC+}g$WyBTt?b*`+ zIpytk>CxNEq`@p#maXqOm886JN3`6n$ep7K-#a9k%H=~~Pl9BWu zJV}*B+jbPmcyqxxKnF&R8|P+Sz;0(9`)8?=*-Y%E03Rwh$du9{C|g(-1|qF(xMis& zfcL=j`DM|7m&T=~XwsXVZDD}dx1j~ckD%AJRxO1MWmp!t9>q%iv7S>q-S_xsH+~Xw zKCT$7^X;9!wyCC4{XSF~Q&ArAJ3HCPjN55JL)0VB!Ok{T9=B?9$N-yKE=L*@607Jz z^E6U$!`$ZuqqVcJ7^)mQ4P5-IoBU%L95I7UtT19+SRX_4jaOLB^A-SVLF;d`Jg-3+ zp?oef`6&=J@g~;MN{hyWO6%Rt-LgOh}jy;42c#*=wk}~if-pJ*J-Q#>3Zh^Cl!{S};s`j{Qp4lD6fTc=~&L5f`u`Sc26nd^r4qZl7hVw$H>Y2KiKK+%j7mfwdE!wv0`2eUX2S3_9bZ`>-0rrR3BZjR9(EIM?M`^1*z7R zIt~p$d$qoVnFh{^cwg(W@iKwTs53A)^8HS(vydgY#wF?)GozUu*WyrU1AwhuoJ~#4 zOcQj0NAol(F)~GHs&9X?eyd~nNV2EY7!Ck=bW(}=9$WgtT$PA~w%_sT8_1SYFymtP z+847in7Ox}hoc;diVw8iHX!9jJl5&@Gr#CWP4NL0?Ws$2tbL+%;(^4|yn{vA<`=2Z zli={S8wwDSF_uWp45?mz`J*_T8zI!=oVnHfIm;D^MIF?*2>vG`{#w-X3&|LKOT!I= z9<^fnIG^_+h5ne-lhWo zQEf}i@@idR2AZtPrCZv^xCaW_2-Xq0N&Vc5aZMqT=VO+#@Rj3z&p^&DJ#pIiFPdeJ z-Gf1ihN>5g_s2LZBZtNpJ}t` zGnz4m@_yK)ir;H^TaDAjD^HWZM#bWC?M0}t|0uu_3GIeH zY<=8H%C;3_z$R8DTFn)}Ii@a_QzZNFx@#x zhmm-XzxD;*x8fi_6#72Q)UD*B&wDkUZ7x1Dz8{#+dm|3D_c*4t*MOssioW1c>0Emw zQNKkq|B4z*F>qjW;_%%4wSgi<5lTBSFaO-N3kCv=S|&d(kw0u-WYIWRv}? z_mb~S4^MveT=L^nA^HlbZ7NB#j3*d%-7QLB^(bf&pyVx`|W@X$8pu4!Npj$Rqkm?*2hkVjx1h0aJSiE^!b-Y0QsJR+aW6;M-7C$C^G zX<}&bVnjOLU#Vg;eS1AiV01qtBtdgaDWzBnPT05NR*W{D-AsoUdji!wr*o^>q-a27 zE&6nB{gkMemlj~UuCY-r$ZCLN4vX^TfvT0h+m=V>(eK`mu`=3e8VhYPcijWotty>u zi2~T{REc$#s)q1+4wtUixfVr>(xYbPT6{@593Ch$*G$l~VU-zX72(X}Ahp z%>3HKGDSy_s2!g;=d@X-(lc8+>s;I~K>4WwjW=((uB){vFtx3KcvC#jTD11$;+s)$2&?YWhdgsK|u z?SzamX?-9#4JKl|jJbO)U^V*+jLnN4*~?A}H$LDMbYwK0PxmJhz)PB38{GPMr<97K z^@^CYG1WIADl?!roydi$3qBbOM%RoOe$z9ps;=-Q)tWw!gpKa`KY8AUpgxk-sbQSNuq3m&V{;vq9hdm>Rm_!| z2Xx9r6{ePUBe^3i3o>^7IgO14uAU@#RYR)m$hyp;Pdj_1Hm0+v-ty>8&Q?4Q zkJ9|wbfD4{XUaL+G~oq0RzJ)LBb9B8nM}{oc#n=c3owfd9@xvw=uSJ#P5tBb#nM5q zR3$EQF#Q#y7DMLr?{lj5QF!dm+w93a65bD(9^b}Z(5;9+BvAO zjKrRKilfhb20tB{#%5I*#gY!PN*~WuE2jJHSv?((?VwgIXee7_Y`#*+ZtJVP>qlWM z9u{X?5(Kpi(Vpc3$&bUMgf0dl3$+vloPqp{9%iWAm9nV9P zg!s1;tB$N(KaFV(uA`1|qEI*~`G)cnHsFohKrsvNVxTzYs0h)DUkZ^p{ggd=>f^!> z0b-u&GJlcLL)45jqRjU1f4^^?nfNA1#|Nd{ZmQ0r7W^TEtxn7lv#8f?eBKh_ns za7vuFH;Ur-&7ZGKG?21Sthss2t-F%2R4rMb!kya@c*hc(emHIP8x9!W!(G= zOrBN9V$;>d;c^;MAwHmb%(o6M9fZWSOT117FK}|_QgW}ewG|s$HHL5-8L16J#|~G- zhW^;6O8*!rQz3J37OFuZ@$DUOwQOF@u3?;D(6+%4m>%>6YJans^>1T7bIXheo0BrQmp|hCaDp>5gkD}Ah{#@N$WLa}P1Bf9Jcw$0c zvkjLpS?m2rh<8|IIX}V2(Zr8Z*4nwec4!%+LK$NCNM4pyAejEjrJ5X^TMED&cC@jz zQ^=uWUn`$<@J1LrO&{QXVDIQNc!8Pc1gbu#q{lGZX-WSsx0Bz3$M7ZnsRQWHJm zQMT^Y@50UVYvNC@s23%!<;3rb^S^zzj0?!hkmIVU^*EvBp1~7j-?mkQ{_YxcXt8 zMwfRxNM4P|{)Y+r1o0oaPvus0ejdLXwb5}m3VylQp09sosF;n(!*!u~!v;+OMtgfk zg=B?F4SF24m--Fm~~IMRKw-X6b73L4qh=Od`?9C{PN~AUiOR^YJ&> zcCE2Fq!Eb2c^1jC)0Po0$(YG76pUB)W#wSTAqF=Bvjm*y(oMv$Faj>4z+ih5!lDqu zktr^kWbfMOAROdtsS1}S%KS#2Zms#F4x&+RZ*?D@^fOv+o#aT#Q;S&J_fW1Cud*W! zdlB(cfVh2r*tgKyZqNMvIs@foFI-^s%@r3zhc&kc5+a|O2D|-z1V=^)R2_{T4|inO zm26n4%LaXzr|U!JA>K-YhxuG5Jx{+;{#3Q>$A;y*`h}4HZ?#qAicU&u7PF*B!yXle z36NLZ{W+88F~&1EV$c059iL5YCHX2@_kC$mt6YV7Q#qiGVhZ;t%D9rGp1*WY_aajS zrzZC2R%Wg0Xh51L2+a8wC=z}UNGG>#U5(k1^v~JQihwyP?kladloF<;bcRbeFU!zq zJB9lpmcYje&o9Gp2eA^t+K)2J<)#x_RiE7@l&LuG3O;)Qb$wyYc(%|Bn)e49;IIxEavcG0Xa2v2ci2~)*ua=gM>O47Y7Q)#4j3@} zY+D-AIK;lvWzF~39GYQ^NA6oxP+#dUsRl+gdLp|u&u)lWYeLU_CK7BkUsd%rBq24n zLvyitcm@w-QVChlfLFUgN9`WvGdTL0@d?qg5i2F%vM3w;ln2X6mhyhSS~Si2ip)ZV zZuqb|cQ7%{-KI5VW2IJneH*#c8%S0t+R>*i0oAV^%$a>zWztusCQFWSnEkO$vnbzv z7nO!HDdYVC7IdDGh+Pv%$SfqPut-(+g39W-o39yYpXj4u{mkKV-faZ2{8iwX)1>-V z%)wTDND$q@s{me{UXa*OzT_a3%lQ(TnGvj9lTmIsmg;4^I7PsG5%jWV`6HduBzh@h zstn`dhg`KJdlz9kl*~$)c9&e+;TIiMrxKN_DP|-QrvDOxy~cSk$i{rITOpkzZ$<|} z?vwVB@Fr6<8ewwN#KGd2jwi&+F|q!)M#g&E{r9Z=@2V%#VOP{C-xHf(NTJ(r62y}W zy0S9@-!y9Zg@kMuU-PvhRud#52>_T>&{cpCl7fm1TF)H;*+{b=uN`HOdTzki=s}X+ z&&8grKOfd5`;W8;{t&Y~SahBhqwGw%BFU)HGNK;|BG~Zsc+Ui40Nxf;yUb2Ps3u$- zC%B*jf%LUS{HDUc69JnN@^%DMIHZr01RT!R)dE1L!)Z(-<7xeJmAPV;Qfchy3{kPm zajK6_Mth|Vm&Vd>=iPC*QN;)*1o|eOj8l>kF=1oXG9sml z{QA7mx;Iuuh@ed^%85y_&!_6kf%X5OVe94gJO%AOmrd|iqm2z@F5hpocuiQ;GVV76 z4HH1mb9hd=!=MTtmzj~-tw>Pj-GP#r8dU*RV708s{7K`4{*_5Hjcx8C?FB(bh;&y9 zn6qs&A-8ykfj~|ZNRHG0haQQ|mLo=w=hbBz<4Ap*{@Ne&q%>gzpfs;w-R1y?_wacq)b2YCQ}wNJ`w1B`;F?G2v`!;QADEpGK-=1+=^X>EIYuv z$dBW;F}fY!hwfmd@q%E5P^%F+9P_!1u~m^^us zH&bm&DX4EW5vUrI__AcwKjqOQ`_jP=kb-cgU{5b<&u{h z-V1q1XX(257XB!F5F5m_5YpvA@pI8GnJDxPLdvM;&6V&gWW0BLe4$7h6RNw~ zAP~*Hj95g({LDNB*#qh;cZYZ?2)!dDJ@O+a8kYZ5Us*1sGN_tZ*2L*J&JQ^$fyL%1 zouV1hhVm7sVv129>EID%&u+yDzD+6&_Rd2Q%sft^PjYXIndrgsbaS{2eRT1AuNfkg z2%)0CFsXifD~F5rh&^2iFW+d>I20UsN(H-j)wD=Qa0gKq9>u z6N#fnMO7~j@FpGcZHV1-tQx!8;Q|qAJZ5jpg$y@H&No?YJq|YJ_JRqMlj*In~Qwgz|In&krld=`{+WIKq)-oF0R4C%(a^5Mk3dB$( z|I3AaRod$nB{AcEc=lpGs}(ZngWNUT^3*!vqi!$;gzo>K38sYHXn6;9Y53U{ZWY2BdNx%RTE=jpkxOhNp^c%R@NE5Z!C{)I6q{h&d1 z+5A%SpV9exm!^yNu3=GCwF{y7!6@i!?U;MkZI(u=i-9#)ZQZwBNNSjC>6Mf67PA&= zMNtGVl=8Ul@rSK#x8+a`rE^y&XA7)01q`nGe9}n?BXsi{)D1a8kc~s#`U%}EyabVe zrl5w$1V@RLCga}wa3_hCquK+*mNt`4v!h|b!^WZUp3g^+*2SacyNULB&V+$qCuc`N z^`u=@Jh5E5%XiQBd!F2`n?fxKej9F`TFxyqM3-xLhO51W40_}{+3J>Uz_CUSEL&V&AgsD*QcNG8xuXaG6Wqxror1%3HJyLQ zzZTOxBPGWILLXS4e>^0Foi9f1jY|#J{B-|EmEcr!q=#~1)N_&WaQ?i3-(vR2@&+Uh zgFWa;DGJBmmW5sZxb1nAdg6P&lzPbGs`hJH@kZWvOOAkAi1<&dt#Ci38+sKw>&9tYGD)0Ooo3Km-eUbjmk)O+L!}u>a$krs)1b z4-v8nk_*cWJ5zrmgVU%`*;Qu4dZ&^r~5v0=>GAuEY02EHCQX};i2cj?~m`{ zP~*GvAJ1Vu;d%w;I~Q!C`)BIUloZyAzQCoqIU(|BX?&+5?j266I1)%lVg?8J%Mku3V`X#Qj=Eqa2%W}WN|SC z>*krr+`FQkvKbt0m4KfGRcvKg=n|rjDV@ijPY(vVi+mf5q%Sh&N`WTIC^y}(vRmR# z?<;=({ z(8X6u{c+Du#2sc5{G|Sz57<3V+NcUX#<)5=4m+9=zulY>znMxt{aX|UxmEcUyoDeR zKB<*>SlcPuEc+ob>S=a*F<)4^a&R_lr+%`!_V(#wFP&ZuoO^xt}MximUd|7d7N6tCc8-nndN>At;qHErL!hm)0ExZL+;$_fzs9x%?8v0jH0OG5_P8(p*Vmd-KE|kikCA5Kwj2*sbH!(C{bJKB)GZ1YCS4V|k7hR|KKT!d^KL$>f zOgX>zJK+sG`VkxpIBb|YMjN_)F8=tp3e{qy zVuST2DeU}LhTWA`h*zLJa(No&<&%s%R`QH~g|;FOpb^{g)!@#m(5p&JnpK|35Qx(^ zbplt-<>cgk(XL&!#9WWM8^QDv`$nLU{!W{YqOKWX>ui~3;-!_Nl}>Wrb_83+cBuTG zl<2W}V)3uz9`vvK9t1gD9QZmA21Uni_H)lJb7VKORH!jLqz>Uys0{*X?m?9uR2HDs@pJHIZSk6Lvqe zVhc0DKNXe?WHk$Z5)V6yvwG;uGFyx5@I9ps+j*~gDAKR^Z*d%FXYS@-4E`CyEq^UC zhV^zFCO)(j<9jydR8C&71TBA>Fk{>y58ZmcdEI^N_K5lJaj5(@QY!3|`a>^%Llt~y z{mTe`@I`o)Y54le^SawvNZ0|!?TpzYX<^_I!{w;KQ=ilg`!_{wy(L%V;LZ1wSIdq9GSa@<#E(fy?K`2c0i zlAG6><=#{y@xH@wmsz0E%iy}?8Hbis(?ZJ$#zYz8cge@LP6o|S@Jt^SqibS4U44T! zR!)@i7(JSnCLKRQgv!YbnquzgZ+0&$U zE7lE_ow|3Q3z^aMY;Q?k+=|`mnEiLTd;Opj>br~NPI~K!lWo+>R->`tYB!}&(()#8 z`P;9#^LFaas*u6sWitw-+t7j|gGt5y!|?2OxmC$RSga>xu*Pkd{Qn#ZVc6By*Ckgk zIKSBc`4<70be&CCP5(I*Z#_E*M)E4IUcddXqK=;ms6@H*jtUWMzKt>RyKypo0g&UO1s=2aiBqWJ%=LH>ck?RsS8 zKko*&O%pdo5u4AM`Trc89`WBb6+cp4bajr?KtuP`^u0d$PS}ySNB$egPZ0US>D7s@ zZ!l-APBn4S^PSiB25o29y~|1(la9TMyUA!rh0bZHJf&K$qvsPPT4{`Lr^qMYPKp1H zZ7rnkA)WUfG<#^jy-}2GMJ7dt$gP?bLfr0ueCkAVsN_XH1`o33um69gx+REkKa!`4 zL_X~PXqo6e)kZ6G6oFed3+=+`+<&*i+qiLL(LwD->hSmA2UFYI#yKYCKrJ${g6pI3 z>0CCDl9oIbYfHWz<${Mjbg^#|(h{?119giY?0m!kWirGQ-$%Cg;lRnh|DmLDN??m` zHuF)7I2m@m2K~IW7{8@iGR0?ScBs_Y-*&#wvVk%^&9wvw`%5kIDKED&n3l5(-!{5Y z9@~j^XSJI6b`m0)ae}1Iz3zQg-Flwdvk$S_Ck~8+N&rZRwFeax8?Z7ml-dfBrDFB3 z{eM*b1ymc|`vnSDfl}Oy7lOCAYmuS_T8g{7yHiSW_u|E^xO>sy!5spG;O?5-dH=tA z*ZMxzf|Us~lXGS==j^keXYXgM3e=&7*n=QXw)BP^klR%*&InE)Z1TMIw#O;t&dwgZ zcyi3k|3YQpAXn5Bw+*X?d;zO(0ta9yH_hRC!>EJ$rjICgr6wYsr!h#Ku3MQLty zx09{U9}aiLk>nhxoe-t)mu?S!pL@{J7*Dp3RdxdL`JNcUB>R4wD^tKHzOGm)zC4;s z<)faL(h2?oIec^!2#Vx%&@)Z!NZJ7OWUc4Rb=-xq*L0@ z7_cgMZ}7Le(KTG(v?R$nQ?$L`$e*NevZgeoQv-{hu;liS0HYS#_pW>^xZMsYr+c3^m~LWP_XNE(r4YW|jiA<>FuE5jL{Y5QtYq zSmXo*hf=m@C^gB5ruN>n+iJ{ZK&y4?@`n<<91u@UwXoL8Nx=v10K`~gSToq0_!>fZ z_oR$`W0b_ci@Dp_O5V96F3ocH-w98T7tii}6@iQaWClmk1B7kWoVVdQF@sof82@;^#V>uPU&`UVxTucOe= zp+GF2JiS34-XMM<;T~eW$WxtwKIH9xe}GqmVozCO+dBa#%9>UUP0*uOcfe(s9KdUy zhiBLv>Q#=n<85i=r3v&*%!=$1?7SR90Fn}b7Je<`Q297v@5U~TFU_HX*7_uRBl^fs z<+X|1zWj97G3IXD7h%w`uqCEzdtOeQ@i^R%g50@7K_VoAka2ol@47fdUOL#xXpo5B z>_Oq>29KO${y&sd$mgHuzkBua(KtA*R1Uy4E<)zbt_bp)&Z~Jxg%xw57hjZ=&OH$0 z(2Y?4-Oy7%stO)J8{K6r>JH8NFAh@Ap>a;H^U6p{bcgoWx{X0VIz#p?rT_W^l9y|G z`Z5S@&!<59bP@8zKpII5csm=cpUH^*;0R%lVA?WZBcXTtr5^FUSc#LPDJSiWbZksf zdSGBe?w@pd>`qJ6%t3ty8EA>_M4au*@9fOxbN&;0VCW|C?hsvF`>~kDOXqjvQ$2u+m9q*GZo-DY|Djm1mJpL$NR!X@Js&w-sDXtXp+(?VQCb}T z!&UW&jhtVyhS#ipTzeywt)~Ucc{eP~<6z3j66N}ysDU_M-pHzk!Nq&Jx)%Q7 z{+uBht~90DnUdoklgf?W_}(V7sC8+-5M$KU8~)wmcV?R8E(x2#0O+S=Nmw~rT9zhj}&GLOj&Ih#Pj zK)@Kb?|JBLuh@g0xrMun(FQry-2!%XXU#Aba+~dZ>$}0$qzq;2Hrcg5T?D=^SX^E_ zp@76QD7vxB2s#|Y*7e9qbr;wb?Lb405wvfQ-idXXl!If*UGSr5}$ za00Gb0OBDBNV++fj1~UZlFX9_DqMeX4f?^LoDJ`Kh(EDF&h$;hI2eHosW;|XdA_0S zclO3R$7D}^f$NT6(~Mu4_!~nQ>w;~BHg8z?Y`|pVX2D>d>;Ua%W_a%hIbw6?w2pD}nxDS;lv(VYDd z!grwlRsOwVgzB4bUg!Z6pOn=d)AghXXmu^hWuNHRJ_-%&9aT|6?S)=|dDyYB7}o!i6`PkvD(2d3{h%Fuy*#pu~y`xP>^ z&V|f3Za$=fu5rS-8 zr-aAtu)*uLXA_70w(j`aK}mC;CJ!07TREcjzvPom9~Rf&?;XtB>HYVH1j9@{3e(Z2 z$!LrUf9n&jYGflSQ^xA==$H=Zku-W>(s`@FVTQO(&}0b6KnAwCWnv8O*IMo4zjhcb zM`zJ+(K%dD-usnq&Q>Jywf_Fi(WmK1jA;E)b3XG53Venp=sT#AP{M1}B}>v((N*e# zObG2O-xEKXyAx!cGN)RbJLz`gg44kT32FN3*6>dCqynI8Hy85)izYTL#|)EPr~1w1 zC&>&%TqYYa$$Q!M?SOaWqrB#^s@EL)bif>hau$K&||NpL5lpZo-S(oWML{_<-XuZNs0f6 z!vX|AzT?GTM@>{E@(B8kvn51j-tQz{2=V!&$_Nod)lv zFNPsaKc~=V^%zuMOlswZ8Vjr5W~YicIE`6fA63JK&q=M)s~c;vRHm$&!tp=bxMaOe zReu(EfCjjq^6iEta+~?(JHajT2}cxIerXVT0;7(7Zi7*+I{fsI`{rnQ2oY~Zl!~IO z|8Cvlu9I&C!MkwgodaH@me@@iNlleg2|n;WfNZ%xSS44tEE>9*B}+eCL1_M6uytIA zbtX&<`2g$GIl?$$HzEPnW)HEqkyXAy z2FN32V1^OgKO5W8-yD6Uo3iQp?C^F6?7w}2TbWr}bMa}J)tmdMH7)64u!nJ5Ex^d2p5ej$gsi%{W`1^A z!6PGp3!|BxSr)vIP+fhl#dQO3hqYp(87tTrH&Ob(eBrryvQdb^`mBc1q%uY-Bs({L z>vR)^fvuju*#Xt6EKcGpYkLb1LxgcB;_^b4iG-};k)!yE-$cBvv zwK27xZlF?bcbkAUb@huDtxcjfiv7>QX~XEkP17-81A(EINQJ+wRU6xpfAxP`e9A7v zKWivfc3eO8*EM2CIq#G_Mxn`dxgZvBIwx=2Hg_Zs<&L>MC+_O=Uaz)rf2620sS{hb z0V{K9l{??8WvNDZ`5v9_Rb|2vy@|eiEpHFkIOHn;L)B#~@PQv?hFtcf?r4rb!fN~a zxJZ3Cx4z}rBEe>Xjneh*GUxGixV!*QS6}?gwmsL@$AN%*jDW{Qw%X1~!;@@*^G-+( za>&Bd$Un#@=D6eB6Bs`2%e)%!r(_B6#6?ax`F1Z*bNtc(p&|S&MBj9N6z$5+-B&DO z?w-z?x37%zY_`2v8)JR z%6Pm+-a+nW1D?d3_wU#owSitG*YswFUq=*jGGpyt(h5eSD0NCz zB(>T1iMxYVY`NoA5(=1X4l>4Za28Y0$$&%?Cks!86%u@L&u~u7?rw7e#J>Gnr;c1$y8v5tF-$X z1wwuH1@zlI-z61MNo96653QJnPqjUI9rE(-^{0o&qgSM4EqJpuF0-N0I>QA~ug7ZY znt&R?}}dsr(;b0z~{h^i+?^`_;1zPvP4@?9<(s9__S#qnj6O?bf3HCpAa& z2B{8edce<)!BY=gd|47>M9akjuK(uAqs52HhFvT?=GUov;kd$LHzE6Fywy`t>}Z?p zpWdQQ{g#q^pF@lBA_;fP1uIDWOO5J}!P17RC&MllWPXT6!F*Oq7XI#8?vPj#`g#6?IHjWBSA?U;hqbE$hMXG5T z)~Z*Ie;~uWn^SLP8K77UqxdA_-|JJwFySBL?H4} z#{YMCxYJ-vb<=9h6|*>w3gg1fkY)7L*GhtT4H`ztimh)S^_S!AoHnLtD%3M1M3tMw z){jj>&vb{*hXrX(U4)OtD=eytIb&8C!>QLbP-u zkhXlY=Em*ws+T&9Q9l{4T}$Zt`&ixBb9$DgS-KUy_`eMjtwCY&)`8)Zq@0oGoqDbG zorKFrp0v8^hV^R|}J>0oB~ zSt3u)BPPalK@&Bx=f^btFL+zrb z=^!i!2YOS<%>-qXx7y_IRB8XdH1YNb^*BokOl76iuM-y8@)N=u<8^83Ku6F>iloVPc z1%4_2<8o}9V9}@MGVKxV6sSJ)ZcJM){3_HAr<=0k?{gkvJnQU}aw#0J|F^d{8Mk)fCF;g?Xlu`( z`Qp_*m%U9q1)KSaC_l0StstNDqRaarzDFgNHuXpEKBF*{DGH zlJTV6*9)OXQ^%c?okWu9onBc=>}ayH*BWjvuFHB#*#O|xPTV48@lnN_wsq4oST#gU zEfJDkdsm4;wzuiWVvcTBja^IpJW>Dcq;^tDU^5EleO@Y$n#Wyz6#k(%G+Zm|o!YC6jp~VwZQBKRk~w zQuAH3H);~@LkikA zNOxa36_~q2^dIX-9#ta4C-KNK^qe~-^B23%&ZB0|>z7^@(aTsh2__AH=A9#pQjD5D zX>@d<%j?WCwMJ!9_FX4|-rir--@iBE;yTP`1PVl%PVBi{uC<*d5>;jCm=&lLOkyr{ zS%km~c>p(Dnw59^+`yY1g97o$?~4)t8^kF|~M z5_S0BN@n>ReWEm!S*giGT{dUuWwSUb0rN&i zCBZ+%!p9=5K~-XR%!ynkKq>CuE+oG=p7aMPJSg(@Tir)yq8B)JuWqOKV(NU%lctGN zn;#a$(+_Ntz{LXX77-fRK7q4=Me58OZFpU(@Lhyew%;~k)B$y{sfk_C{sKR1dQj-i zH?|$Ga~9?4Fwiv2ENUt#QlM45Z^kpryj(#v)nvk9`p~lTpzYXVW5o+)`2C5scVJI) zdh{4;uu7oBI2{@f%*0H)f)%ckJ=?(RBE+C&pjWKPJbiS1N-qA_PxN*|T;F$tKawRQ zN=fPKpx0IbNaf8LHNE`zq9TUyd%Yyb?t=OZy#XMRIhlNbo_=k@+LP9O1<`R`aFoAh z>&EYXL&4ucuMoIi`7|wj^H?rb`e*vcX=_419kWflM6fo9)Ro6ia+&>YjlXOS&k>)f0^htrX+hUquO9<<0B z#l6^OtAMp&S&XvgXVt#?H zzMeutnxnV@j;V&H_&eViZNFDJzvh)PVKZq8ecCFl&AORgqnlGGJ8Tu-7;iHLy;58* zQd{a*`Vy;a=eEv!I3pFv{yK1LHMb9&UqpYK8LI|9Je6fa*I*|Z{~}YcNvcr0w`M?+ zC73hacf8l_RhD}we(|=JmX?K4A>cBC@=acJXHyVsWTgC3;`2BmBW+wyb^DaGAgfh6 z9_9<}3emTzDSH?+>Kb#N@IJ5Br#Sd5(QBxQQ=$08f#Y=#sfu?A$PlqfiYBDxaX;g= z4f%LFoTfJXIVaU13+&_qGLo%Ze6JP(4^}gVO*sHljLpU0O1lK><)HS)$>L?p^QA?) z%|DPObK)IR)Y^>PudJK`TE!}?>^vO9{VqHFTwR0G`I4lsb=y}!F?fJ8x2||X(e>Np zzWN6al~0BGU=Y*O+K>KZ6nQJ5iTB(rk>ww%Y@N4P@Z{1@dm@YFk~U^x7X;;Q12V%T zg_^qd@fV=Tk&pLTSiqVn=pcXdIRiwOKHON}a}PtFNngk*TcxzGR72V2>>TCdA`)#r zp9+I9NuDIpxS$u&QP(H_g&j@6f15L#;SK7W7zRxp?akY?&#VU8^s<-R|ijEw{<|@Uaqz-cByqI&b!Q&FQ?iDJN_8k0}J~`T4hJVE}p; z5Ufzl_BrDo8OhMq*M&d!6P^c?D<~*r3c7_S&nk`^X!l--+>76aSoL|}oxzK{tVAzQ zC6}wZSmyB}A|-wl&hSv-0$ZxOTC_5|YNQi2O@Oj~6+5{9_eZKGK8BY`I&bV$_{LXymNp zIr;CrR(!y$yu74IEQAqW*zDXHdMmow&XY2RyVtbz3^JB>+_H|PDSo5}A03~PthVE6!>@13rF*~!d`#h^JUTa63y2rm`z3F;BQrk;otfOV|;>ChVg_2Ye zz<%d!l3APV*ALJ)&ul5QQ1K=Ok2sYIjS>RCJa$vJivH2@cR&#O$UIWKfQiVZxw2q+ zKLIVaWlu1AjQ1M>E}2}#`qW`?)Z9ptyqWOLlGzqn4K0cGk*ENKPU$;2lclXYC#C+m42izi9w<1T3G0y52x#rD z=2+Q3tA6uxnOx03aX0LObYa|y_-^A_EuZXs$*KCi>mUo7gwRA#yafNcJdm*Xb}C=J zL4g;NBM|$Y3>MSju%h5a>)yV0b3YYK=bX%p&y(}rBDGXK@|Cz$jpm=_BMt!(rHP|J zm`X(w6QMAxu6C}dN@2rd-xx6yp>7foQGR*QcdtNTZ4nsS6!03x(!OjvLss3w$#(sT&!T zC4?k5$NUisD^0ohz{>aT9TUup)re#hO|FetrJTq~Bo%})*<vo1TWCkOX zKD{ZB*VNT2{#sENVE+>|8#Tk?3y)OhsPVzVFIsT|>yJ~2jeBo#={X5>RL7{N`}w$2 zzdBs*O4Nz;`>-6FIbRDq(@?6Ol3UipiI1ak($aU;AtsFbA0xwP+Y1M_5D)! zr$5ymu~VV3xqV9a0D3Cv^VxRr;1&qhKm#mt04!Ob@ll##;LQ>y5h+LPT3aZ@4`Jm_ zwIIo{6AyYrOUuJM#~VgCdX%28AD0QhftWNWb#*?bRP=gnJ#+KocxI!D$)c}}@zT%3 zIkyz(+{dHz%sS>Xk0=lqVH#y?L*lbINQEZt+g)Vt^yIT-Vs5!olH^z}WUZ{hjk`19Wbb@S;^rrquKL zbjpfp> zkfe}JreNK_h1p0`s(K7I=6bD?6J zb)w%HAEx&{^Y@tcKatCEQ_JVZ-ArgtFIcj7nxstD#-_6T>7{&YLvbI?BhfTqf=%8& z{4?c0;;u3V$kP3wtNrh8@_#9j7Xy!zI!3kmr?W4nBHyNZ9vyOKC)F?OrD)7)>aQ7^ zRft!9U7u?4(ie4l-lbZka=Ku9t*NC;pUj#HF(_J$mBkx7yku1Nhm*CRE_wAx;a-_I zV#WlrPew(lYHDhBp9!}f5g`Mv5ki`^AH+ucIuEAXcKkZdXV<a7fs20W& z|5g%*TFR+q3XpASf3}KE)h-Cg?uq<2#9G`Ihu zf?)6x9wu|_Pgh13ruU)Gu2E6G5XFeZ`DqCQs2vFPq$-a*Ah4kiVRhP{G27OVm!cts zO9VEIF`r5ORBsq~97f5w6HI5Gv`za}3E8wJd~ZvnfeuXEp!lNt7Nx?CuT`^}y4uBS z*J1mlspAGcd@50<7)l1eKckS^r6OE^;X7n)Pc_h8T1L$Ve_j&3?KHGD{^34duvl9% zx5OVa(qJ=E|1r^fRbmcP1*P3(AN|1Qb;|t3-zwsvE6mzPe(+T=CQ<4$X!p5Chqs2ahU(_%mv+Jl;?F#mu1Z~=e4HKL94PK_RhIVerX$K0UY&(l9AL`=S>N>xHvc}?K zc4tUG0(|d5Fu;w*)^)Z@m)dXClj^4Hfxm*xQ_;yq`C}|}l9=fO51h9j)$XMSNJiax z4Hm*zJx8l5Pp8UHYP77W!+%^5n_F?G|0O;+%po^2F-vYx!LPH!3#VfQYH&FCjE=F! zv1wQ}eK@~kj!u!Q(G6nX>S=HT`9^u-6>Gtx@prVCe)nO7AJmQfLW{CQ?{E5T@UdFB zE3AsnGWmkQhA76yNPzQ!0kzqA1Mei;V6#RB+wpjHy4}w_q!It?M?$AxU+T2s_lM|; z%NE|&VNFoaRF&yMZOxsTJGx6v0wZ32FZ;$i?$SKTbw|WGC(u zqp_FvMawYz=9;jX=ufuV^uuD0VC2@pgG^{!Y{y3-y5Bf)!=}GU$v{MradLFBgi&Fs0fsA)U#{U^o<(d zrm1F{GKZX?U_@hZ%%p-yBRM)8qEuB2%|eCmcg0brQBo~Z-sO3il)E(wf7K@R| zXb{TJ62*!*J!@Mu_C*r-$x+azfC&Fv^pmHP0)o4=;#iK~(fL+_twrxy@T5UMD_3<| znuWUE&r1e57i~%Bo!*hZGk5m=A@$+s$%E;=i>Wb+K4YB&lyUkyZNVn)EA*$Jr>NM= zTpN_c@A*+!@ImwGf&`A*77Uol6B@+asHLy-<#$tj!H?6l8FI!_#)nY8pC8_+iVQE@ z;`r^6)c&QBL+_=P1Q|15h4cN-wk;f zre4vSW0;H^NX^37H!e5V|K5eE_US1Kv%t}>d#ev8{X^ooISJJsLs}GkL-Nv3t_+S|YMWxq9FkWir5bG;Kt(F5 z^oL!9=cig#TotPD-GaX_#KalOALREgBn0($HmUS?%%YoUPEO8Gg315B(xsW(y zTne59YKr)Hm{pPV!>0sxZi>&dY3U^YzMAdZg}!_M%MBzRW{^IAKX_#(x69u4+v0vg z6zhcQeOee^D{Ei@SBFDVX}CCNI7uZjCpYJ_&ardzEXmNK1wIZbVPke-&cQ)LEXirP zLRh^HQMhYJ>DhA(J%)@C4$&#dpd;1`*_~R98;d=%U6X3IXd3a#t|}LNN)n*Z`!~+g zS3^>nh;H$ahiNoOH$Exq4W@_vI3+nhyAp4*6x3)-t_i$4K@p}?K{Tasl0_(Xc9^&d zUQ5X;W2a(x0qw2#O9)r0IvcyKl}-s4g>{rjWg#jb zOLNLjA?_QR#VAFBLldyenR28~CPFIt-9BKncT-v&h&WQ0?Fm zEILvjry3pB`M`|SpD5w`O3Pt9aNG&RGwgSd|1K{qd|F%c-2=b+JnN3p^Q_F?7bJeG z-{Q2h@{!8jmpk4NIdiJ_%INH?AWJVh2<=4=J7^_0aa;VtXuLI^zz$4}K|Ms(nNp4O z)04)ZO8j@|z zpquXJyMnC#B%1w36_g9{W;GY+A;u?ez!JOGAPMduKC<7r* z>6rU=sJOTFA2WdJc;%CSR;o`aP~~PV=gNS&X3=(n*KUq)B#ix&I?s$wneETCgAv(? z(Wy;AVzx08@9M_-(NX8*ni~HkY$o!Nxx8wvKSyuzzD3Ko z$T!U8tyvlgVZ|`SNybXFh|}QqawwA8p+aj)8icssR_Uh6aBf<90?pMflI)vcOfF+A z`%2iTNY>GJTRMdEMs@I8N+mOP-8+yBtfYVwFncR?*fn zz!)LP=A-K8BF!>mEu!e6&vj;a(YvQ~xtQ>7#g&e5{;U`P4luXeCStiTUO z4Ig4e&KQHrBr29xP|98hLlB=d|c9+ z##s}-^vQwp(cU}Sg_t-TLj@K^&%OuPVGimYV5Svvoi3e21uGV3{4^1K%V-Jz1ShuU5?XCz;c*^HOO*&QA z5EPfBi`Q|4u97ku-S{X5cbn6@H@Z_uQ-C(+JDlOJVaTWVUP(I^+EJqP0~^~H4xSoP zRl;b?Nm~%2^x%8;Wjp3%dRm~~nR%k|thqJv)f5CIxX>Nr&7I6`1IDwEn=2oED2S zajwttu24i8Qk{hb;sDtm1Zrww{U*2iKXAk2#){&8eVPO2P77ej-Ku4BUIc|yt_PnE zPBL+8eV#VO8+!FhG(8u;mABtHNV_5&H#*NPncE#!qgtX;xqOL<<#@Ty7;Q~4LRi50 zE~FL(UL?a?2^+yp_!bP{Iocavx+ z67oT_Ni}hjL6RDh(Cb)yPtiTwh>~1f^aXn0Be^Wh8)bvb!8yq@DZ6i8T%VBj0tKvU2p+C6alLsPtnq2%%^8Uq(Ef!ZCvhG$iIhPbNvpt56~z1l{Llk15Hc+ zBfGF*z24^8lcCS|S!%Se1g~*l{b9rjk=22ERB;suX0*9;mVJOO1=rZb>Ik_xAUm#> zBkx}9a@=z{JyJ`xSp_XTE(wnG^D2wFKhrza;$U{ay=Nf?{# zaW<{3`CRT!=7W31fBlh)_b6-pZ%ZaNH1L_$$?Hu@5%0@eOWZ*|?^Eyp+f63$*UH;o z;N9J`Z|}u-sXb8I{@(*)pUHhr5jAZ$j{WZ-&wsL<=Q1@D^8eeS^74`X@_#RHW#f87 zt7nY!K#I4P&-QDy?=DImJ!hg_U0GpJ#_4EE4F0VxZ!D=*UAm{EeUSOi}?#jJ?#05mihi9Z%QA^o1ef1GpZ6^ zBa)-Jv^Dj@CJMps!C7{C(;N3SY*nOj4gZlOY6(p;5Y}p07E)AdnI3V_;*n)ZMI76$ zmwlsu2HQSEX~X`~CUV?+=X7;zbhvhQyvPzu6@epL`}2IH>rBTWhmzvh|E@8tB3n(( zt4p!ZNf$#;QcaEE^BP=IJl;$fBKduG+(JkV0Y^Tz?WT|NAx>}7bXb5j7H(y>Uq*Xr z!ndXN>p6jIWo6?=QvSeoxC0Vb1O2(SNs0qvms>^#|4|uvO(u+dtdq?hF$j3b@V!`u z(sFTke>Fe{UwtEdJm%OT&yd?l(2*!SV4mvmw;tDLAe51l0rtNs85V}!+7$+{KTf#)Y;(mortCA8%k^{ zfuCwxJ06I!uI)`<%1PF<;pJ4>&l~+G0XdO%EFibEd8lX5*qHEqr9M4hYiu$L!`+jE ze}?mzv9&X~)=ze{67}-I+xDxu-~{-4+QB0Hbs$I6;3p`M#oLN zQF&&9NrPF67PoAcIeT$^6aHFSCbSXa$JR_7+qN;FD7j=kXW8&E3Ax4Re{t||!iDqT z|D&kvhI^zBTkwSL^6o$kX`(N{qr4O+aDBKFm!Y6qKz!e7Hd594La`Mt4dK?(2g zdc^NMTh%CWuy@>_QcI~a_(MusVx9&?ZX2AA5(kjxw+!B_>930+ExMG}+uAQJx*#6V z)i`*rac5Jc<_*&-Pwwu@lR?0R9;M$UdxLh6CFo~S+2Hy3o9k1NYjL+2 z=)<jlS7I!05?SrS6utTyjw}9D~ zu*CHm=Bt|1HEa@}V+W3+l)E_({f+zNNZTY9Zf3Lbc8`RXU_!tXS!?ZKtqbNW&;z~O zzsU4{;8D^`&sQ7zUeTiI9t?eWg6?bq0dMW!u+=(Zjwq6ojw_U^_Ivb`&I>G-@^at+ z{(!4Z9pQ)3>BrfCTcVu1C1_EnVDBEF-$-=ujg*CwJV>L8osx-KQHDwd@+s+UCR6zm zbA4UR>>BrOky@@_&@_N`Br-JnKM69d`6hqgsj73lB8T2>9AIoEJWieY&!9+;Dzaobui%qH?E9%`HlPDlo_H8im*eh$0B}-Auo{sa{LbR)6JS}^}kJ2Hbhv1Z@ee>z`znG&ope$A}7DWD=SqwGoOtRo`rw% z2h7c?%decPS{&d=y2$#qmN0uk?BAVD`4?r3YW>FB!(vL72~<)@+RTLJcY;k?Py(2QEO+5*B?bRW`X*RBCsLP|273K(y1clf5yz?C=Q$*66x_LA>TgVQiHb z5`lvkD{@CL8~qv(YjN^)P&Iwqn(1fRVsZ1|WHA`1NR`8kG33kmOKeTP+LaT(A-WWe znKE}!@POiVJe`xLr@OKGy;w_Yxv&1?UesV+Z+uwg9nC;++qpX`SN`Z(=y z78>x#;0wzL7{>NL?R_}cEaBz%G)%{L=JQkI~iFeOwlFEOsj%z1ZRJf`a$@8!#vXp>r|AX1J-v2qnw zS_MbM%Da$as*TgmZ|TXx49W(E(C*%P`2$b+C|k~-Yy_O8+z~W55+Xhf+RT2RK*-5N>LI;$RPscAvzyI1eUN%9WsPi}ye{4AO7x`awOZWF(NrL1y`2z0I5}(5LeEz1OlZ1b$u%`T&Vs7G< z-Cg6SImRi93#8X*Wwyn{559j*UunuNaNa#N7qlhrY0FLOdsOV7;-TEBAdG9_=on^^ z?Vmu^d5bq@o@fG&Iols$WkQ}s-bcvXIs0d=o`i&wzB=Qt9RbO* z$1|f@oOo_|LlY@{?lLpmWz&wYX0EQkO@(97UZfwPRI=gosB)`GrhJ;@IaJS5nTFTo zhko*G_j<&nj}h*dGWf+sTt>dcu@PW+*C`qC3 z1DCnk`Zf~9C6eCjtV=!(aDH{2oUz3q&;7}uOz#td>Co8Rq4#L->Q?{gI&duHgiLSy+Qzmb_`zEhFALs^Gj+a09)dPs;*S{-4J4gf#{;T)dCnmf1*ME|ZU$rHIXPq+wu7X%V z`J@mkQV{Mej)bA0r~`z+@;7DI-Ly3lwAW=@oPYXpH+ zHuK}p`-}D3F=cvITk%<#d!h2=I77MTd8fS*WDPlPBvaOh8p6HT#34h?1#dguz5sr zVzWBGU52lquV zhw<22P`sig$R>p)0&GB5Hxs@GV=u#ibs z#y$&+@fG*zGcf>K{sM$L5fOPMC1nw1*0OlNWJ}5#pM+)6CcOf1&DBdYOWAU40U$99k>m1#O-|(Yj?h z6IRlwKfG%8mz_RuQ#O(LFhc(rr}Fr+rP3h?K-=M~T6eM4Ii!H=(F1RU?&cpk3f7Oy(n*=G<$KgEmX*O5_7#IcX6Pkk)$A z-}H{;9sRrMH^HA$K%0{{KJzCb&V>WzVCeP(Tc=V$K#VPY^lHiJX6%}&xqC{XZ^p~S zli2+homeum48RoT$>DbN0&)SUE!j>Vi^UXK=fSkG!auFjMj>pcWXRijhoM+tzSu7n z_Hs<{SQF_l?z&90)X#FJT@Np&WXOoH3xG1jw_RzLs%sh;SU@icAi_`F22cAMzA|uoN*XgnEa}m}Tnn;|$ zUq!NgQ95s#_<*rGwNhV3jc~I@Nn2moFM)-{?K&EB<-)ClOps?3J0|@rV9J6R%EmH? zls0*s_2}$99OZcd>E>3n1$VpHSthXF`sjwq!D`1UKCMbSykU*8=%MtY>P zl3PAk>Ko)4wR|whF>$Z?w|$Qi89Acc&MA|tN{f~o@P|qfT~k*#f2|fR2#1eAibqrD zBL}~rY@5pFaG}6lgd(NSA$!D3Y0T%#WmIFZQ<{OMk-t;$&>1ebUVeS!pn^m8`(?2~ zMEHAFgDjYG=at4NTcz{i;B)!`=?T?vmU$up*DdN{^$0hHg)CupZLBIi&DtY8mc&2oi&x&uVd|5yXl)qp9)zZgI@E897)8>`9EJ+>$<+T=kBU z&VO9Y2_Tb8@H`)47=+)4_2&W6IWmWKIo=Gw1|#5hr)f)OR@Qm<-}3!4_*O-2QlR8 z_8|Zn5S@FFb#rXw-+tGMg;P(axF1avQC7ptHxj(~B38s7O)(zrwFgF@KhA`G8W0qI z5g#Tlm?fb`s9WB>ZyqW606xBJUBeW5ZM>HZAONZKe5=8|28 zC5@7l#+w)2ySHfiZR3lPZ-MlHZ_MgLnC7^Z3gt&}!}RY720wL}adZT{P}^7ansSO( zwcWYSN;`O~*%+NyvJlgoFN2+1j%P8hUl3p$;g|2nP5Ke>MD--_;uek^V~ba!6Myxg z!j_XmU?6&H&t9Q55o|rO;Zsb6^P-*Il+o-IKNhQ|dhw5$_oZ3h7mS-+#^G!qVL$(D zlUT|=TV5R3bUG036t75vT#$2V_reUxqUv9+5!nQi;r+oIoUrGJb!EiQ*(*iFH6$Qf zCWic(p`BHDv@;=X_C^iuN$RKLIof~l5slmJrp{oT7xPyWJkhd!pHc`B$Iz$GSQLj* zVjYXHSfQKEv!4FQ$7Sf9-Y}fA_Cr21Fvldy72nMoJeg7YZQ**Z&%0sihRUyk=5wS| z&6uxvzfZ$~DG=XC2tIMJ_%>at6W~sVuO; zygX|^QJFb@1J^(7~v9K#8i zdU+_g(1En|sCpAWXl>1Y=Hd6>_I>4VN%ipP!u7UQZJ~2*H@O4PnD9a|HG;r-T2#rt zIh5F5z0G|8wBG7dosZ)Ux=*iX#wjyo_I{Nu-#j&koTA8m@P+y@Qote5q<|DkpRSti zd?x;C60!GI#iQ?Rb-RD!>#2@E@A3Z?v9hMs>&&5WMIwE0NQKTtp= z@#nLLWE=_l%l$WRr~>+XukOBGz!31!>d>&1I@>+EblQYZA}L;;SDxk*n6ypc*6!Z7 z)GY5utU9UUeV{^}^g7Py_W?4pviQ7L zXI2Sao`|AH4UKQsWbh`i04rA(are{2JWHrKLPWm2ZkzXo=v`= z_1Yc@t3bY5iY8rJfR8Lfun919&e<-Bs2P>0*U%=T8fL1mSo+!`=xMuB#3e`oQws*! z;

    (sWeL@&2j(ie4%Cy5FtXcH!q#RF6l{Le6I@TFy`Hx43Tgi{{?J*-(gd zr4x|04=%U-;9Z$O81s3p;ph110vPM~haa zdTVdvScRZ8ucn0@8jb_R_Ur3O&v-!@#k6I?n}f0OX2gT3@y@pI!%G~(#iKV-47l-y zU}~5~ZM#&M$%^#84?{8np01QCqW7rfmWc0tX`Vx=er;~T^A+803^SYV*Js|JhC3|= zXiK#RNNDTu+vTuz?M^%A0uFfdR-xvER^Vv2@)qr65NHas5(4~6wha^r`c83FNAaO6 z(w--M`G@Kb4X8~e_NzlMyQQpZzL83)Kg$y*9qfo}-J9lO)fsZGQ5GWh?r3?>4a)R| zULd!0PeZ!2N!hi#5JOsu!#~S@WtM4zi{a9OC7#A>{wnmrn;wFHt(!&obARru>~G<| zvFYpU+*smss!U@z4c`<%GK=mU+4SjgY}8vW`^6{Po){KF3quAK%XdB|2Ml@31^n@eD_7u2}h-PU&S830vOx~jxAlFW4+Q`UytO9 zL}|Yz#$#j2GpB+tP#NlQkCYtc;+;g% zQ51*%gC_Xctk#865<{ZW%;49{n__|ouD2h=uw&r9M`r>$U&m60cWn6&_NI`$E0t%i z2DhfeYZAV|qa8kEP?(l|&>yk+A}ZcBP33IcaD-60VtVwOdP_T-*~2eT?rdvQ#!iPB z@Pmcp?6$&hJ+?1c7`YS_tmsQnaJpo;(xK4^s%OW1O{%_EXI&Hl-+eY~;dzS*aO>*f zBlpnIXUtH_jU~eQ8g}lc5X#LUG`=`qT+T4}&N0`J9Q_&VK!K6z1NsVUS5yDggmf!= zr>M{rvw>IKhV5Ko`3E-kj6W7H=VMCMx9a5Z-&x?U9YT zZ+#c=u9RyvGv_6{N>Je>&dkm>c&YVrzG%UdglrT$L8{j2l~kmv`gac;|Bs%~l5Nxt ze;eD4v?Rqe6NBQPS21OX%*iC90}CvgQ(hD}{=S97t|p&m1JmK4chClh<6WSCH7hMa z+tvxWZ0-`_t$XauM`~7%U~$}e`;n}Hl-1fs=bI$jTTEL6HZq69QMN4-5)xBy?+8P- zu|FFqX1`tiyz#U$V)`~)5=b#B{bC7#aQzo-CM`V?4j8ib`0KAM>*aQKb?o?;4UL$R z<10RiiYinumgw5y#*y-n(bM2pRoB#iQ-@Mbu@LF8@{|)^YUYT9?xx5yWVJ$iH>A^t z%F#%RafhCRH|)h4&2Uj;Vus9$+IoI9>KXDz9{tSLt8(4@O?=;orH#&OuJ)3;ybtEX zHWY27_|`~IcVpvP$y2H%q~#4H%2F`GX8Gf=)*Ro6<}k0~2wg_B8mqRN1seXkMwJ2J z`;+tY2TK%u?9&vb z%RkBktAp#>^sIn3Dm%I_mtnltxB@Q$TCQ1Xn=`QEpWoU_m%(2F#Y$+6P#U0zN82{9 z{sv~}|J{3s+#^59oMLnR2(?G{+T_cZXsibfb4T!I@W)MzsnV6ySu++{H0_#LtZT;9 zsshM`c!qlZARgYMmwe?|D)_x+P`coV68~l(D|=|BLT90>;VmJb-STAFM?GCu?#_@@ z=~jRQ)5|PUb5JYiW5ln_YMSV~LRxTI6%m%C&+Ty+_IzvUW*6q)8CqpqRb8cCF;^>$ zJj9)CQq3*+apza|2tFC%jD{qDX(a|0%gtO({!A{O#m%9q{ifbmM*;ld_C0jUc@!h1 zrDX?1e5-wc=`TNhm8^lrr`$2Z>GRw1Sfc#SZnwT``vmFb0msEViK4Hf5jBITpEVgb zF(RIydGeji1E>`g902-K&Co> zl`h4P>it`1>uBK)9{Wq^(onjT@#MI2!>+D@tI)R(+|6t!>Tk8mazQg`?cJeXYwvt6 z_5wuG?Zdvm86+C{^7xnyIxID;fmNv1EA#CMBJn6d0awlVtH+-z@~am_8~|F)g;-ut1L{U(SL*chLW%rG%t3^_k+T zFgJYN;#G{phqnExOr^p~^lIz0jO~=MFVV!LW7281TuMFfi-FxEVS42CN?nsw`SCbO zaFRi2tEW|pE|W5pe^M*Py!^+Wt!RcFH8{do)5@-RGzF#s43bxTkKAm4`)tMW+c$Ok zOa*T~A*{khTkJu>-XJ$V3@@&1aBWs7@EK|*JhaPwJ*4?zs8-y57X8{kS2dx|g=J)R z?hER#FtT^!@hct*ah;(>rh9Ptvd$@JNF`(6bXRc43bBW3U#b z3|Yz&b2;2IwK}3NyG8FY-3KP<(#Q*@e^#qDzfT?ks}f}EHztw|_j$!cQn>s6MU6;M zI=bHwVcJMKO$l+ny?IMp`bD4otg}lzPeY+D)26jL~P1;m%4Z=j9a6dCSsm4&pW}JCV5hMr2rA16F^dLZ)P4{VYMy2pIf=n3lijdf@>N>t1Z2UrjjN0SEY zWiV74J;-`Dv;3#NCK>$@6mz8ETi*DYz8z?2)lg@nQ zxok06;*CpUQ<{z=171et?0pMMrZ?8!n>a{`%Zp5V)`swY4CI5k0Lj{R5+{BWp}H#U z2T<|1uNyav(x`EE;SMu7@hO~# z!jj}l7Qb>}O^V-c70WxTAw`Oje)x`|e#2H4eglCD$M7W!V}KX7x}E5(%+eyh!g zr)wsHvZyd6G_`)zIff$`rIpVu`!ljMH2Wu{2@3XTIx!T!-Dz%G5J!cH8UVT2Nw24IA_I zn<=Kb)<(9Z|USOt@!e*)HBdVzXu@mADRS`4eooovD zEvsp@E(4BA>JUAL0euq0JL}H|L?=U`tZw{HH?c?h#d1_{637gUerjwC%|y=snk>5? zE>XyyMw2ba&2{#ixD9{@#}~X8N(DhMJ@s;Mf^_bBA&ZTQQ9mvhtt1JUdXfiuB^rAQ zJUmO-hC|(5_kok+!yFs84$u9cOBLK4f;o9Yyfj+NA};pM3(%CJXw)s%?}rcJ)EZ9h zmUt*lZ`>qH%-WE|2N%R*DLcJ$Xp_jnMTceTVvVZ<(NMHbJ_o-vh5`WuGcgvNHDiin z@qdm!&&+6kzMC>=N5ePyF-H#ojL--F7`TAgu(9GWk=EI`-3+5^r1i2G6|9f>*Z^mb zVP*e@J8PhkyhqkrTHMrr|4*TSz}y587~)ueQ>thPzNaGIlBJNBbJ zE8rr08TOK8Y@)uc?ME>)vu=Kr-8-I2Ugf;@feZhXsam(3bQ%nW%F)p()e5}^7QA|^ zDes;)Ml2nVx%zz%N#xj>ez)}7F+4Cdbsi7%M)f%W_XVaB9Fgu!J;^a5@C_cBJ zGse7MY}EpfnFgANYeGv@dHtTVWo$K>1#IJATPItkYf8ZDf~FV2HFj!cJj5UhvoGus z$(G@i*b4N-WG4)uxM@cojv`KAj*Dg#*V+%MsGy;S9ijjbKv`&lQh3TUQbI=W&n;~0 z`WQ-Cps?C=&4_5#GUR!!jHSk;m8|8|j%FJenB`rq+~~y3B{H;Li+^gYyRpddX1yI$ z!YttK`boYVTD_ezR6+tGMSxqn!Q^?00CQv{Q^W!Y^UZCFJao#%-eWBRF5M~DrP_NN z2vmWSm{=unk58f@d7gaz)?G+-<4YG@5%PKN<>Ld^>C%(O8u$!p<#UD@in2IMpgE32@;@|cyH%ad}FBULMZh(h_V9uNHv zp9j*}NV&$P&)P2adV`y7s&5J3HbbPN>L~SRmKFXfQm?dWjE!~8->reuV>t!0EWE8j zDs%5#UC|d=+=6TSRf5jl*z(&I3wOBqI2GB-)mXI4f3kx7{xJGaZX6X`J-FKeI&!&Z ztSw8=PhHCS8rF?_>beT5IBfppXecfDs;HufN#P2YUDoR<+i+ME!`tmkS^1CGvsyXI zgLik>sV?h&7Pj{M^+w`D6oAl~KpMp(KVGvAVA>k-{v( zs4VmS9#Cg{=sn_c?+SYc_pr~)6lt=-Bym(BvT8N|-S*aYY4Z~`XIr#sRlA2<>L|>I zR{vhGT)&NTdGw|LW@5s0focm+`|#bKs*M@xOv$3VT(LPY=60;9nYp6MjsGlT9zAK} zZvRQ&ENwdheaI5fAz_PrF@0%Jp6nlm!P+~Su9HJnp6Iz+4Zf*{iaQ5Kf-_M!oO1;m z#gv^&-nQ5j1@0@BuD0)E3RxOUhBl5Mu&5+ATbADKk$Fy|A7X4jcBCUTnUssQZEPLm zpDf-f7j%92Viz7P#zSakYx%y*ll;rFisM3p%zNz_Fm95Y1x^hIW^?7&{9TwGka$Ej zGVI;BnWH5RvI)AYtZDX!jtWT3d zYU*JX(>IA~5hRE5;4?oE(EYD`5lW9Po?jKF?eZntNaMWZ033HwQAUX*>L0TTNfNA%pc|J@xv+IRip~e=IzI<9dA)><6 zozNj6*$*+bYbHw)J{gr+KmTDo^Wi#ytC#laO|{+!3dl)h9^(1j@YN{Y*{Sx57B5ed|a zewxdXh+_+9O>v=+Uw6t=yoahB0YRbql{5L{+BRH{)gFPDDb0?aZ_k<&IhTRI)zZsc z)>b0OLLfEgLvq-eaUDOMIgV<1Q#6Bl9v?l z6vf{{gmpN`6V`Usqgy{w3wJfDe(sNysA?u;z1|(4z?Car6n!^%V4t!dMEgm=EuW!4 zWT5|2=bh^o0*;nzkaxNarKqBrQ<|?}0$A?Lrr>s)9GCO&d+J&9m{=0mqcbEf>e!-b z=f-4B3dAIY2usKZr)+^PC^XIWB?tbL9fmU8MZ1pqzsl~a13@W$ae*aOmhSA=dqt*5 zy8tK_^307az4<~$L^476DUK|Yn~}A1aQb=-=PzyGWK^cfvj%+g+9Q3phK45CF~k5@ zW?eIy3?ePo8r9$oqQMC(KNkn<(U2sqdd^XbdT+XUS-qTbXVg0A+e9f=$I^K@e9rm91|DE4j0j0M&yAh4r-3?e1 zQeK``@_Xiqgd_Hu; zF8{pybX@EDv7>9`n$gjz3w(F9?0IA15&y!LS?OQac4iUR<_Y@6!+)kpJvfQMq5MrFx*ofGupHPBV#Eg5c`5_@f$~u#o$HA(` z&_rq$U%wGZ05twQ{jF>+x8cC+LMzRXX*dF7e$jC4_rWj!(v^Dlq5Dhja2i0*$TP3) zY0S2|NEZwxGHsa=pzD|YExdBCEp7)OnB*DsEkBF1n>ay>(-}KX<}E?R9d#cK z>Agfk?K$=EJxvq4t`Rd{%)$Hc!o#1rtf|@LL(z(j`ZDuHnw12x+w_15mBUKQ%=Gh{ zuUb}(_S_;Lk+r1osEhUEIKo2>Bd-$>%@|Y0w^8%>ycCiZNJq!M7VY8OC}HBkEk?E`pOR@)mO(ie$3hg#(83sD zzcj{Lt(!zdP#SF+zjs>)&{P02!oMf}8_&5HWA-Hb2{XI>y9L1=j|jmu{35Vm53_%!TQebu=8i>O{!9ct<(ZD{gHE`a~bfQhRTk3 za$;fu(gYs`%0nto4&iy0GR%&XC#%2SiAgESz7_fzD!{`lyWGHuSv?aIMTIE|Wwc#p z8}bd$*iVfGDsZew85F8B*AC@fJ?wDX3W>%!Fm4<+;KrUmkgZVWDJmSqz1DwOxJMlO zorr1C6Mz2t%rGi)KScpP!_kg2Srsb7M7-n-*F?kdgF>@eK-kx!;&p+D}x_-hCZC=AYm* zK7M|u0hc9aiY#1j0abtn?oa5XOKv$ivj7}W>q~XhH)ZyQLjlIN7hO?F@r6SIiEH#co|ByS@1E2rw7@BV zF*ZO-STuuj$M|Y>OB+ZMyuGbf(I&1Zn^qkb$8TPb`$+zNYzdycHV!@ZU5-FR81asg z77U5wSOEF&2#B=N&+r%l5N@M??r7ANB+w^qm7HD(Cp8_XL`!)aNv&4HL6rZ-b^nB{ z=X25fwVw+AiGBo%0@lSZ|fP>e=(0S=;Aot z5Xck(v0-O5734e2wc_Jbz`vjil%pk?waw*AJlt%{tNt~gk=fd$DyAi|vomkoxCEg7 zmfpd6*y7YCMN76g=!{M~*#@kD#8l4Ds;!fmoo6HyN1Ww^@fNd1uzN_AZ6G4sE0Rla z?O~*O2uxt?cS%!s<{GZZRk7v{+EppAa0Y@t9-=t_wm+{m!mGwGn}MH4(RA*ek6oxI z-({#AIe-1X+DQ?3lV_oP8`ZP(A49GHo5*!c%=w9hivs(PlY|qbLtsb>JbBH$Q;HMD z;WLm<_Hk3ZJ8 zFuvri;whPhpINs2SkFZuu3G0z6~oA~gXGcN|NoJTA6-loaus{Gq|^N?=*Veb%M5sr zOo|hmowa01#p-!bCh0~^@q~e)KHds146XEJI>vPSJ`Fp>$^-&n#81MXJotsC;Xuhy zZuj@k-%4vs>nnJr*i#|{uZjRvc3&~}M;Frl7?(6ezI_#(Dr??Mipnbi1*kqHmi*7% zqKRk7nQUVm!FQ;5L27Kk3?fJIcNSrtS+WB0LX8RpRIKOlTYf2Vx3;xOympwaz{0k=N zL~7@6!>a;lp*u$5lm67t)lE_x7984-u&cXG=>Of?8R@@Itc$Mq&iT_Hv3kD4X;5$P z?x>f&*|Bf`p=B~LieKHj{v*89E&CUqcvk)qVtci>g9QzpYyY^iO*q!#?Wzgr+rJ<3 zhXe{@F#jJ_mV~Ld1Y1%0KSZsQI?5m{?*G1*2@AAXy>w2YE3a4FSm``=frw)VoBp^4 zKF+ZJflqD1tIX4f3@S0eb|l5yOUl^YN8kLlMd?4A4Z6p0T%g2@uJ%fGxtYE6<-dZQ zU;#*0@3AldR+R`SxO{@piG*Z^W>pJ?o<6?um-((Df@rBH-9Bb`l@B+X1}M6Jzv6QS zAWX#3N!?F1zU%iYUX;uK5n&(%z)JOw@Ug{Z?LV?jbX8WTW+D#u>eh|j3n0SU3l3_5 zor*!WWa|H4xD4oVxOds(NQd~TewT+R1Oir4a%`q2esMvRNJUbD2|4{}lY zAAt8O0UjXbf4TMcytSQJrekJR8`0H}NTT-fGn?R3SY*xV11qHgv{avA2sfu<K^jIN_fEK(g?EO9x`FjJ~bJA?~2363c#<=|S7v9pLFGI^H>im_-k0Bgtr=UZ#=Htz1% zaZWD5$gU@nHoOX}_LVlQ0VKlfp&5 z{`vh?w_E_zissMRD^aSS8$bDo1fJ*KMh*<r`hEmr0pdK_@4oo5II)~h zSAM0HnZB~ZU0w?is%Rvg8th#j+%N{-6xoEtxWU@$d&_m!dGge9(@uCtw3og& z=sM$hRzVhN+p}7${!dzfa&)rM-f=M(pow1jNzf-|dy)AQL{t*?ZFGcT{Bwj;*SXD_ z*~M?Q)TvkX+20v{z&L&1_iM0onPi?J4a&yPUCt{w@PUn5 z2jBe|r0H;~Dw8BjpbujLFz(pBA<#>8HB9n{$N8Q5*`o6Zt#Rqz?Tk{NKe z3ih^YlnMl$;ATz~Y#ePbp1Azt28GL*WiK$8!2KS1k9>@KMb4RSVsx57U(E|3i5$yD zr(K=!COZo~!nPWXuR0v8aqiVa+y(czLFJ4vytF%OjAaZtI(1?nHLDe7P&mAa>|*Id zKl3Fa`$TpJ#O7kSW2h2i?gqAf0_+#uthH*hjU63rbdar^sQlVFAT2U+8+?ZwTXB&m z`aJ(B|E+1p&K>Zg+27r4m1dDrP~Rkf;0QQ6SC)mFgh+OrMNIgJh8TF;E7UpK1gvAM z-QJh}Ju0{i=)QeqjE%*9A2Z65+oT~k|6_9YR? z;I_d14Ou+MKgZqhnFop?Br@!i#{@l)9M%a_<6 zfU^!*Avr`V^Tz$|H%~COV>5+UGu_J2W*c%y2V$(}p(fc2B*f=UG~xvBlW#tU=UXwi zSt0@hK3z|lkeeeLJ%Nx9nLuzUv*=}g;B~|VcgPK^y?SJ?h25&}BZ~^;9w~FY1D?kI z2dqM#b0i4sTo?Dfsxc|NF!}2NmXa1=bLWftvX6}vJ|;+mITZBtH_ZENp#}mhKnlTH zs{-EsrAtfG;*RKZK({Pc+UD6an(^~V!Np0sSMW1Y@awNrJNvu&OCqIFLt$sWjlVD0 zpWC8om;e~2Y8WyB3;ybJmB3jvODZRGc-xZp2oy$(ASK-tUZH!YSNlQi(L zxmtG(uRRr;^s%t0Hh?2vq4*sP!Tm00Gkv#aOw7%x8iNwwqz0S=HaL6Q4CA0nr}N?o z;WeP}Xw~>&RFJprQ4kVJb;c2o+6Lw%}A_}rX{o<{&~K=s|c$1-TWxDE1`FwR{wLJ`y4n?_t_uT z(7$HqR1p99ud4UQAulAbABVaVETL%Vhm4XIzL)c^<6V+#Ay0oLg?v3#Ai?Cm*dUu& zw!i(i@(>|HvycMmeoSIT#;ls(0rP^qv43|;9|X8238GI^$7ZEAUgCihqLx3^gf zq?h6RqnP;$bK(0e#2L?7>OBgO>j7jo(d z;>1WiIa<%le-FQ&^|J@xX9$%Ng*Q}v=GNaSIsK)8M5T}%&1CB{^*y*7NGLena_f!! z`wcxR?W|hs3{jQfZV4Nb6WW11VM$fJqE8b{47!gtT&*H3+2+43_myC`4r()!^W2}OqQo-ctf z7f4MEt0Ci9wn8FK%WzN0K>S~-Js5?@NOz0^U7xKUeI-r;^N(kMPDkl9gXu3k0o(TB zOqVo&@Ozq`0O=dqW`{t!!_-y1%~d~quFx+V4~Ps1{MgIJqMU3IVn{E{V9Hk`qG7>T zZVisF0cW^PmGIyCXp?&twa16{HRRjPsdLV}_f2@FuN-&b2*}IF9TPGq9TPX@*&^3B z3>N%e)Kpf3n0*9+)aTo8BUG%G{tV18Nya3}$lV0nH7gkh-eWy)cR#-jzPli6SSF;o zx;rrmj_UTm-^$)9dKVe1~<*I2U-y2f>=B+@f#{oa2mYU;7cloNcI z$AwQ79`DkqYrw9$z%p59$fG5V^dc3>8m0^^InJQNM}sn|5+F-yp^~Rz?0)^$@NE=u zdgU;=ogdMmr_&F$`~b!bvyllU!$9Yc-6a~o75p}X2|srGxcji*tLrbU`9$ak(l=*u z`G}U+1tZ9Y{+swZL>Pa@eI_(qmRDRBg_7c!4GXe&f9+#9e$4$Di>%F8F<3a#%1uGfeDn{WhEeQ_b&^o>F`$C&^F@_a(Ka0Nh5SP|)y8!FpWf_{(s>mf9 zWpn(D?YeU%rLQd3uD$aof&}qJEDg0n-gr&kH8>bPWJE*iq0Fynb`h&FZzeSA;$|~!%z_o=ZlgHN@wj;m2K`Op6^5CnP&IzufoQC zCB;jBQehPECly$ly_>ksmfG3L)YF@&=V%@rwhv9;<|QQ3Zt>hFt&by-I2t$tJhYHd8gnz|_-|A;bsyZH{@1Xd_Hvrongn+DFwgyYPpy zUA^{OcPF>Bp_CWOUDxy_lfbewMG8o`P2*j`^BCpj5*dS@vC-~1Jh5o=f+*x#k_BhI z)&f}fH3c(S_;NkJh64WRi^!Y3<$1!m7Gje^1fn#9{j{_fkYrla%M4(LSU=YB#O8Kf zo>-C36j`?o`i_pWY(#KbNXo6gb4xrLL|tqV$42LoqG^&`-YaIFZ}s(y+%I?IQIbM> zaX(8}!$LGPfW>B*57S-vy#E&BZ=1U5(lv7WG}QdgXB~atGBrqJ69C{8tiLPFD*;!s zX2cSP9&>}T7UYr0F3SDGzHsQyHN%l>$?r4+u0oSjK@fg z!h(>r;}p1=ArE&z<}!9P_Q*xFG%YF)cI1byA1{Ek#Sdq5zunkTsk8D7pc=dz=fq>$ zafWA!w8P*0u>l2|+tSnxGNz*M50nV-0G{d@E2L;E!`ADQlH zhunhmx^a7arsB+B57DHf)&~98aOpJid{XF=J=-!yQc#edd0XG;5mS=LIb;5;1VYUw zo)YxjF{){sTaZ%%QnbQ{&CXJdd-q~W7is=78d_vq(eq%PV)z#!och&k3M!H$_oFEb z%QQ9fT1J;n4-_e_yMU10Qn@}0#-*oScnO}n|JaWUq)V-WkA!C!@FG+_z%g<}IpXH& zkLq=JDKZpF45Vy+v?&OVFCVHs-i?>tdg-)x^!vZoqZoLkYy5kp9|DcquX44&C?$5& z_KnG3lr<1!!D(ooPfvP!8zs_Ds^6_=sWJN>iPVUxno3$)v<# zVWm)ah9##s`|8(Xd}%bGHNRK+?bnP*4ZmF5^=pQ()kItL4HyOUn)w6%xRw43Un;Lx z_TRqC-56p2Wkc0;lz7#SWsk_ROiy~O`PG3nsl;njA|zyR)Vr_s{;vT^(WU0@Q1#(S zP}|=wx2pG0O}g9`C71b^pM`#isDav7{WpUsBSusr;jj7gPj0+7|K_Et?G71AFo5pQ zsM<3jib_bCAp^`HD)Qdaicx&cF13Ow@#)$-3UQhf9{M|DaiNrJu2k6W%^$b7{D0?Jt>_RKVtR)8<^q!-6Nsr z6*Lya1Fv#;f(`#qHvWHgrjy7Mv5wl>n5*IQ`Tk53-|ovJWuVpPZ<#{vG5|HS$~ z1??ZM@-If{AHlpM#u9F7XXobv$5Ak7&pEl7vH(UnEBpW7e{Kis;_aGJ+Jyjw?Z2ER z$&BJoW}H_)svS}y4J?eH#M68(d7YjrsI|M?1})_ebfDi|nm#m`O*aE=0Ho$k$JApVy5+v7+ww?i{3Ky9-6 zX!3Y%^7r9qkn)~xw#nAfEP;FkZmRQS#e7SkRcJ&%#GfYdAoo+3D}_|tbWKLNu1I;A za_1^w-ouHLDbqf9|G7mEu#~}736?U#SQK=}Q0f(sA0E{|2?s?)%&IfI45u!!qm{$$ zmq6B2v*k0;b;5uX4HhbtTLX}$^fL98k>YZ1Eej&`j5D7rBy`r<&C5CkN*}jUp;6xG z21(N8`QX$9z{ciNkB2V^+lj?YDmDGK$1s2l-Y!EK9lDBZ!lq+WXpw9o{J|PoQs-^@ zp>2*txn}WVU5Zt!MQ7?yQ!0n1b}KJrMN zuF(i>vTG-{q=u{T8>no#W12E?}9nO9GLP?Y2|)Diqsr#K7uMo9Dwx2 zj0}EMs|3xBoBLa12p{VkAex1o2!0tOg$bnaj~=N5xomDmL{PCpU0P6_Dx+pHLH34q z{&rx*k1kALvb}sx?b_<^mG9muSEwsF!;`~`2c%1~Bt_SJ>oSI_Y2}O&HaX4M>H(b8 zX;#&)15$o3kZv3wop}7v(iCwV1@-(F7D@FMxT>w11Lr?D4Hmk-JM!7)utnD3puD)2 z#$dsh9;P!NL{MNtr#rYT1nP*dzN$U&0atE!*-|Q9k znl264bA*OXc4Z5u?T6S+*dQYOA{v?oIlsceTr&^0N^l>d0aInj;pkYBvgZ04!qh9) zsa3%dp@xKTry0jw;#&OF(+^ceGPE6Me=Gw32Dl_2jhF)FRK1d4WoglLa`c!>V<@(2 zfGibyI#Y-Asx&IAlP`|h4$6zhN=o}p(UMkPbKY*=VZr|6OWL0 zB!o24DDdDIW%Fc6UGWuRU`=y0tV$~!1qQceK4l}$y8i6b0w2*B`;i`wjo-~`8+N!jc~3LFhF!iC?C`#dFOiXVN8B<# z6wyALoZW51aW01Dfxhp9Waz(D5B|%y zd+32EvBV1rX->Wc=(&3{;*3cF13(^mJt7W$M4H zaWeIW^t=L!c6Nyg8GR~2`)?Dw13yGEV~0jnl@r^CYpTPv9cDy7S~=N;75;cZj%4yY z`tKh3y75+UQ4?j&dCEJ8M~Rj+uBiN*K*6qp$s@UX`@nXqSKz#KVxL?;7GUwN3)(=V zs5irlf!F5nl4eNKq$5o*2=fekBq^UABqeV4qugDTzIMI1@{*3yz?WzJ=yOGesAD&yWupP-RozYj-4cAQ$n@I$y`Ez*n!*+nVM)D48$~ zLD!nvKb&v{Fhz9gV8#?#upArInBX8f-~%4)QUGU*_tHXt)Cx<>Jd_hM z^EmzhjOVwFx4O4^9t=sS;+0Nm(K18VR#V%_vNSO+0bd^L`gqG44O87-!ZBn^aN{wt zI60F0>-e8W+)m;#SNqcCPfl(@QR34t|CdnrfgGXi)H(1_oP3r7rq#XbkD=B zIkRnmsP7{^(#s_GAXw&|$KaTgYTDDELq7#Q4#@TUm@ETEf{9C!jHw~$oN5)eQTTZ_P7Nre>VT}6WU5@b%IvLT$>X?`}!1%93 zzZu9C|9&AsKY$|GE-s6{uZb_2#34AX(r(AaB@(~Uq|1~=zQiAWEG}rK%E(8YOU_V( zreC7KmTBf%2At9%B?;9R95S=@7I z>g4TNM31QndN>qJy1lplG>BT)%5!ZW=F21rL~SEemn+6TJCY)kBoA70lfUDTuhz6~ zo&3z6Y3=Wi$a^K8lorplH$~iP`B7EYHd2{|lsa!HSq}OwFsASsiFw3tW1j`DSC1)O zFvYg2UN^0ZON6s$L6*{c8N9NV#1;YFlq)HbmXp>Bulnpjy04g1TTAVpEl^i9RiFU# zOeg+lkvYM2Yt)zWKTc@wBRcgE-dJ&k>0_uer=O>zs{j5BHMhjY>EYF1YLc#h+#N9FX+|1Y;-wo4Ff@cSfH8_kNlh~v{vZo%?RmljjYjOR*Ti$PKs(P!@! zF$#Du$ExV_PKO_NKGA2pVb*R~TYAW=x^sgNxRRgCWBGUBui8hx2N| zo6XPr^KcoNw%47)LRx0nh`=yY3wZ)V)za2r{AS26KdESNp((7bktXf9<>!HtrV?GZ zp4c1~_{H!X4R<~zl>*|(P4bsAl3E1h%hIU?sFD(b4!!<~WBy$dETH2m0xAi|nG(CD!S`Y`XOQqO zR0+By+u$NmfDX6!*&J{h%~)+87?_|(4HW>AbxB8Rx#B%X@aiy(^X z+KHf~#i8WDj1}1P?b0ZJHx#@X0IDleWlb;RGfIsaY>= z57c(@)pA_vVz_w`CYEwNmx35QkHMvydjhX(4q^68X1~M0wCBN`MJtYzbwb@zGnz}+ zq}wGCg~NHcBi?rO9mP8yVSqJkOC||m2S01nXM3dv}JE#ps1H2=x30^q4Y{gqdc9N=NLijj)#><4;9>652`)%Z^&_Sguj%4 zbZaa%vb(iJ}DvXw)TW*R1Wutw^{ zv{fx#4P74f&y1o})m6V>FJq`}k1zc;UU=)KP$yBZ2EP%cc+4qreti9sa{0O`vjd9i zxC~stoLTgdLo23!u1jVsu0`;}Yq|jMGoW~M&iVfZNf5U0kR*wGK9BU~sSDzB&pg(B z>}}cU&bd4{$MuZ{{Rxe=QVm_wNoA76A}W??QmM6&6_rFX&cx_2W~0JtsX;Ck#c`q8 zsN(~^7xJYqe}?@0byjOG>6lI|9;a9=5sB)Q$}KYK6lS}DtVU6AaD9nHJc8@G^o@)& z6obo)>v*<{X6QJ!Pcjif2tl*uaNyt=!gE<)D-bFMiHL;l3fiqEvFrfPJ~GLL^H-_0 zEM!$iQdHznkVvKxzKM_(9LvS^d=lv-Zo7di6f(&eo5cp7{oJ$kC2#H2>%MdD&%}rWvXO*!a3`nOEH0m`nLlb=J zkugr5JWtyVF?5X}^zmItW#WX6O}Sw*IGDqCeZtVE*|Ir&>@fSsciuH)Hy)Sg=D5CI zWiXv!JzpmpH;5QIzU$I13RCy-H?eKVwOsQ&-pMOGPn~IgU>EbNuzQ;w2);5MK^fz(Sxk7=g}fj0$(5`nbEOfVo{w)B!byAsn$)r0AkS?zUw0? z8WIpO4C>Vejkb#{%fwP?26G82)fS#FNTpIl4GlMdeN&^@mW2?|Hf8SX;_0!3B`Jdc*; z;W{pe5I z!^d<&WC;{i$M-q`7Fi_>1pBAQ@J$O816`2`0zout;5r_r?NO^YX<2T!on2!X23E_Y zTy2raWEmYy(=u&**8^E5^aB({1&OWNgo@_{h(I7@mGSWr2Ko|s0gR0eF*@8wDPN}9 zbZ9$*{rg5RTP8%$e{g`Iz6{k$ zgJ#R5(Y8=zmA=6NrpNjSLP6v0%SePu_OD4$76)9PqkrnYI?H9 z)Z{R>?UIQb%q?${&ZGzfsWSv_b_L6mn3^2!jQ&s~=!$~fHd)Kp$z>DWYW5UamXY3m z^SF5ab1!tic3XD3bNa4}=>#O>2F-S7%%Z9)_`Z*-sM9oKQu4TaP1UL=wm;*tG>gvi7q8m(pvq3A?4 z3EK-%2nmsi=rZq}ynu*h_|)T5$g+&@xcJDZboMCArr+OK@MgO2oI808g3fxk0E#S8 ztG7v};;4#@ZP^G}MGjmp&#rO!&=j$VjtG6~O$SBTym|5(PdxJ&V*@EH(*ju~@I5qL z!?9iB$v9HzQ>~k%Q*lhwMmG!$UBPTy$f`y(qT;%pD){?VT?a$gP!t)*b_kG(M|GOb zHkz*Exh|@vp=%0at9i*XZ6sAAYIHglZ*ZeiR+gb&YY|JvvD+3#EQYRjwxRJ|7g^PI zT#;-y9(}J9&|^^p0VuM}>f$1o7D{~nvriJ!WK7#5m5dVl9@VBzIuW5|x};Ju!XWG{ zQ@OP+vm{CQzK87u#9{`rBq2$HTCGhYl|WY{9M{LT9U`$9h9=W!w9yS6Rgt){wCLvA zIt@qVz`jA8cAe$TCXXKNl(d>n6HV_p^gN#+6htFB?UspVMDSgk5CvV6(RCfOZ6c{E zs@&-)4T1n6$wUo>dcz`>iX*{}osjI(qY#2H2$2*S-}SJ)fO0;MmdY_ckizqPe9y!2 zLNe(%ghA)#myBcRDy>%MH#xRTBx-b;T09?B(=l{~M!iKe9>q2-WKAa?)e$1>blS-h zwR($eHbt%4z=+3)Xfhzxs{Fl2Ui z7U|@fi{iPb9_>E%w(OK(9|r_Ct^0Zx?9>zbVThZ0WABFU1pByp{J7KexHtSw^?0w> z@9pUJxEpNSW_5KH!!Veb80VeS7m;JJ=vElp8$|H`Z|~fC<2J51{u>U-<=$78WXtj; zPU6;S0=r01r-l2Jmm*)H5B(hdB>f8c1odN|dPyNAMcf*#FOp?jvR8Y*amkrEeHcYlvsW>j z&akJ7^5v2=^U-ftMZ1{K$zS4jy^51Q5yvvii=T!E_a5<&2Z!`WQvhbuc~O7$N#Em5 zf;j6ry9KhvjJ<=Suhm&azuV*f-ZO^75qIzIGn&kKcG%_VvmvwDobh-{w>vzk-|HUp z@ZdQj!m!_C@8FQZV9cwv@y&oU#v8>}#+S3kd#Rls%-=D57sjtrircquv$L}UC>#Om zkDu?#Pd>U%5WIW|^D>l{+!6;5_IPkKq*bqAGEh2azOWc$xOn*j*<{E#HN-kX+>-7n z<=WLtL~(_Uy5_gP+vS}r+Ym&g^BGsKT}9^$?(ZKF*AgUKGMQ(LhGQy?4!1sjpLEpY zPrHAo(di&IqgrdSwb|mhd(3#2qkw8XK|~QLm@ji$&4gZe3|eu1YlH6dE>Th^U#5O< zsNUw*hd%^h_s?JA;x?1xr$mi5jjDHGIDh#H?{0V4`QmT1&a5#X4IycA$pd!o zA9L|+2OWkOD~QdQOjE*2ji3MQ19tzgOLywXvk7lsewW4K84n+gx&Gt#sA|I^&G_=p zKA(JY6O$RVEcyM;JwE-#E&lTP=gcHV8%P=&S63=&^HW zpJt;@x?Iw%Cyd4^aio}}DVyyz48r!=7WeKy@!KO|#74WxBF(5(LyiYCHrE^U`ZI2R ze1jzXPow0`!^`COI+#o*gkeY=g?#bXhv;Aa$_Ec!rV9}9oaM}!4uJ^gwl-;0qhk3YG#WJ;jVehL zFq$lA)?%y+XjFt*ra9M%S!4<=In`zZjhCO7i$z=^PvvVW5=uDAwYE=8U{FYA`6d`=O(r^uJ09g5TU=G5_p&iMFjzP>B< zsMMvEveozf+BGXOcyTT`Yq8cF0=*6j&RJ9;9}%HH7(o!ws?|8|J||3KoE6s3v{BBn zwY`B!mxzv8YuC^^L~BKoRH+1x?s(4G^$tOxX?2=RhhyT_8W+#C+1NOPk_@LJw$J-m zeCcAzbhad^CNydl8jS?WGwQ7-^?HR!D{StV%%;@pH7apLnr5u6x4o0?id?>p*C=A4hrE8_Wj&iO&-y?uP>7_EJUo1L#*erI`I=9 zaKgvLQ%;d$^7MSvfKY3kNHO87f`{xq3!SyabwwKr9&es|o@Ssu*Vgw}NSZD|Kx=PM zQ$c{W76s@q^lX_RAk?0VEkz_>K|BxEc!}t+;1;8>?nN+4&%^ZnpbI|jGPmAfS9~|} z-1liv7^qzNk#P{k;fW0Ve?9m;yWCiGQ1HEra?gVnDxvmP{!>B}N*sF~6u}r<#GR8uXFYGf^t1#&mITj)5N9dxEaE*fMZ953fgiX3CCav!6XiFB w)qDB&E2`D%H@uxu-b>J0GhZzD>Z?2a6RM&aG;wgCcmMzZ07*qoM6N<$f)X?(2><{9 literal 0 HcmV?d00001 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/ServerWindow/processes.md index 4796781eea8def..202a319c854746 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/ServerWindow/processes.md @@ -95,7 +95,7 @@ title: プロセスページ > 確認ダイアログなしに選択したプロセスをアボートするには、**Alt**キーを押しながらこのボタンをクリックするか、[`ABORT PROCESS BY ID`](https://doc.4d.com/4dv19/help/command/ja/page1634.html) コマンドを使用します。 - **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 The processes must have been paused previously (using the button above or by programming); otherwise, this button has no effect. +- **ユーザーを表示**: 選択されたプロセスのユーザーを管理ウィンドウの [ユーザーページ](users.md) に直接表示させることができます。 対象のプロセスは、(上のボタンかプログラミングによって)先に停止されていなければなりません。そうでない場合、このボタンは何の効力ももちません。 - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md index a0aa343824a9c3..237bf07a81d89f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Users/handling_users_groups.md @@ -140,13 +140,13 @@ title: 4Dユーザー&グループの管理 ### グループにライセンスを割り当てる -You can assign a group privileges to any [extensions](../Extensions/overview.md) installed in the project. これには全ての4D 製/サードパーティ製のプラグインやコンポーネントを含みます。 +プロジェクトにインストールされたあらゆる[拡張機能](../Extensions/overview.md) に、グループ権限を割り当てることができます。 これには全ての4D 製/サードパーティ製のプラグインやコンポーネントを含みます。 -Distributing access to the extensions lets you control the use of the licenses you possess for these extensions. ある拡張機能へのアクセス可能グループに属していないユーザーは、その拡張機能をロードすることができません。 +拡張機能へのアクセス権を割り当てると、所有する拡張機能用のライセンスの使用を管理できるようになります。 ある拡張機能へのアクセス可能グループに属していないユーザーは、その拡張機能をロードすることができません。 > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -The “Plug-in” area on the Groups page of the tool box lists all the extensions requiring a license loaded by the 4D application. 拡張機能へのアクセス権をグループに与えるには、該当するオプションをチェックします。 +ツールボックス内のグループページの"プラグイン"エリアには、4D アプリケーションによってロードされた拡張機能のうちライセンスを必要とするものが全て一覧表示されています。 拡張機能へのアクセス権をグループに与えるには、該当するオプションをチェックします。 ![](../assets/en/Users/plugins.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md index 1815c7f28cb948..4c83857cb28b1c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/ViewPro/getting-started.md @@ -24,7 +24,7 @@ title: はじめに 4D View Pro 機能は 4D に直接含まれているため、配布と運用が容易です。 追加のインストールは必要ありません。 -しかしながら、4D View Pro はライセンスを必要とします。 You need to activate and [assign this license in your application](../../Users/handling_users_groups.md#assigning-a-license-to-a-group) in order to use its features. 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: +しかしながら、4D View Pro はライセンスを必要とします。 これらの機能を使用するには、アプリケーションにおいて当該ライセンスを有効化し、[ライセンスを割り当て](../../Users/handling_users_groups.md#グループにライセンスを割り当てる) しておく必要があります。 4D View ライセンスがインストールされていない場合、4D View Pro 機能を必要とするオブジェクトのコンテンツはランタイムでは表示されず、エラーメッセージだけが表示されます: ![](../assets/en/ViewPro/licenseError.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/components.md index 4c5beced37acbf..368915bbb461c2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/components.md @@ -31,6 +31,6 @@ title: コンポーネント :::note -インタープリタ版のコンポーネントのコードは、コンテキストがサポートされていれば、[ホストプロジェクトから直接編集する](../Extensions/develop-components.md#ホストからのコンポーネント作成と編集) ことが可能です。 +インタープリター版のコンポーネントのコードは、コンテキストがサポートされていれば、[ホストプロジェクトから直接編集する](../Extensions/develop-components.md#ホストからのコンポーネント作成と編集) ことが可能です。 ::: \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md index 2f8c722770ece9..3abc3a1f8a4641 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Concepts/error-handling.md @@ -293,7 +293,7 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo - **メッセージ**。エラーがなぜ起きたかを説明します。 - **コード**。コンポーネントによって返される任意の数値です。 -[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 Click on the **Copy** button to store detailed information related to the error in the pasteboard. +[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 **コピー** ボタンをクリックすることで、エラーに関連した詳細な情報がペーストボードに保存されます。 エラーと特にその原因の完全な詳細を取得するには、[`Last errors`](../commands/last-errors) コマンドを呼び出す必要があります。 最終アプリケーションにおいて[エラー処理メソッド](#installing-an-error-handling-method) を使用してエラーへの割り込みと処理をする場合、[`Last errors`](../commands/last-errors) を使用して必ず*error* オブジェクトの全てのプロパティを記録するようにしてください。エラーコードはコンポーネントによって異なるからです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Extensions/develop-components.md index 1f94812908cb6f..a488c69f338803 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Extensions/develop-components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Extensions/develop-components.md @@ -33,13 +33,13 @@ title: コンポーネントの開発 :::note -コンテキストがサポートされていれば、インタープリタ版のコンポーネントのコードは[ホストプロジェクトから直接編集可能です](#コンポーネントの編集)。 +コンテキストがサポートされていれば、インタープリター版のコンポーネントのコードは[ホストプロジェクトから直接編集可能です](#コンポーネントの編集)。 ::: ## ホストからのコンポーネント作成と編集 -インタープリタモードでは、4D IDE を使用することでホストプロジェクトからコンポーネントを直接作成および編集することができます。 これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 +インタープリターモードでは、4D IDE を使用することでホストプロジェクトからコンポーネントを直接作成および編集することができます。 これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 ### コンポーネントの作成 @@ -66,8 +66,8 @@ title: コンポーネントの開発 以下の条件を満たしている限り、コンポーネントのコードは編集可能です: -- ホストプロジェクトがインタープリタモードで実行中である -- コンポーネントが、[インタープリタモードでロードされてい](../Project/components.md#interpreted-and-compiled-components) 、ソースコードが編集可能である +- ホストプロジェクトがインタープリターモードで実行中である +- コンポーネントが、[インタープリターモードでロードされており](../Project/components.md#インタープリターとコンパイル済みコンポーネント)、ソースコードが編集可能である - コンポーネントのファイルはローカルに保存されている (つまり[GitHub からダウンロードされた](../Project/components.md#adding-a-github-or-gitlab-dependency) ものではない)。 このコンテキストでは、以下の2箇所において、コンポーネントのコードをコードエディターで開き、編集して、保存することができます: @@ -292,7 +292,7 @@ component_method($input_t) - `Get pointer` をコンポーネント内で使用した場合、このコマンドはホストプロジェクトの変数へのポインターを返しません。また逆にこのコマンドをホストプロジェクトで使用した場合も同様です。 - コンパイル済みプロジェクトでは、コンパイルされたコンポーネントしか使用できませんが、インタープリタープロジェクトの場合には、インタープリターおよびコンパイル済みコンポーネントを同時に使用することができます。 この場合、ポインターの利用は以下の原則を守らなければなりません: インタープリターモードでは、コンパイルモードにおいて作成されたポインターを解釈できます。逆にコンパイルモードでは、インタープリターモードにて作成されたポインターを解釈することはできません。 - 以下の例でこの原則を説明します: 同じホストプロジェクトにインストールされた 2つのコンポーネント C ( コンパイル済) と I ( インタープリタ) があります: + 以下の例でこの原則を説明します: 同じホストプロジェクトにインストールされた 2つのコンポーネント C ( コンパイル済) と I ( インタープリター) があります: - コンポーネントC が定義する変数 `myCvar` があるとき、コンポーネントI はポインター `->myCvar` を使用して変数の値にアクセスすることができます。 @@ -461,11 +461,11 @@ SAVE RECORD($tablepointer->) コンポーネントに対してカスタムアイコンを宣言したい場合: -1. アイコン用のピクチャファイルを作成し、 `logo.svg` あるいは `logo.png` という名前をつけます。 ピクチャーは正方形で表示されるという点に注意してください(必要であれば自動的にリサイズされます)。 推奨されるのは **svg** フォーマットです。 +1. アイコン用のピクチャーファイルを作成し、 `logo.svg` あるいは `logo.png` という名前をつけます。 ピクチャーは正方形で表示されるという点に注意してください(必要であれば自動的にリサイズされます)。 推奨されるのは **svg** フォーマットです。 2. アイコンファイルをコンポーネントの [**Resources フォルダー**](../Project/architecture.md#resources) にコピーします。 -このロゴファイルは、コンポーネントがインタープリタ版か [ビルトされている](../Desktop/building.md#コンポーネントをビルド) かに関わらず、プロジェクト依存関係ウィンドウ内においてそのコンポーネントに対して使用されます。 +このロゴファイルは、コンポーネントがインタープリター版か[ビルドされている](../Desktop/building.md#コンポーネントをビルド)かに関わらず、プロジェクト依存関係ウィンドウ内においてそのコンポーネントに対して使用されます。 ![](../assets/en/Develop/icon-comp.png) @@ -477,7 +477,7 @@ SAVE RECORD($tablepointer->) ## Info.plist -コンポーネントは、その[root フォルダー](../Project/architecture.md) にシステム(macOS のみ)と[依存関係マネージャ](../Project/components.md#monitoring-project-dependencies)が読み取り可能な追加の情報を提供する、 `Info.plist` ファイルを持っています。 +コンポーネントは、その [root フォルダー](../Project/architecture.md) にシステム (macOS のみ) と[依存関係マネージャー](../Project/components.md#monitoring-project-dependencies)が読み取り可能な追加の情報を提供する、`Info.plist` ファイルを持っています。 :::note @@ -485,18 +485,18 @@ SAVE RECORD($tablepointer->) ::: -コンポーネントの`Info.plist` ファイル内でサポートされているキーは、大部分は[Apple bundle キー](https://developer.apple.com/documentation/bundleresources/information-property-list) であり、Windows 上では無視されます。 しかしながら、これらは全てのプラットフォームにおいて[依存関係マネージャ](../Project/components.md#monitoring-project-dependencies) によって使用されます。 +コンポーネントの`Info.plist` ファイル内でサポートされているキーは、大部分は[Apple bundle キー](https://developer.apple.com/documentation/bundleresources/information-property-list) であり、Windows 上では無視されます。 しかしながら、これらはすべてのプラットフォームにおいて[依存関係マネージャー](../Project/components.md#monitoring-project-dependencies) によって使用されます。 定義可能なキーは以下の通りです: -| key | description | -| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| CFBundleName | コンポーネント名(内部) | -| CFBundleDisplayName | 表示するコンポーネント名 | -| NSHumanReadableCopyright | 表示する著作権 | -| CFBundleVersion | コンポーネントのバージョン | -| CFBundleShortVersionString | 表示するコンポーネントのバージョン | -| com.4d.minSupportedVersion | サポートされる最低限の4D のバージョン。これは依存関係マネージャの[4D のバージョンに従うコンポーネント](../Project/components.md#4Dバージョンタグの命名規則)において使用されます。 | +| key | description | +| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| CFBundleName | コンポーネント名(内部) | +| CFBundleDisplayName | 表示するコンポーネント名 | +| NSHumanReadableCopyright | 表示する著作権 | +| CFBundleVersion | コンポーネントのバージョン | +| CFBundleShortVersionString | 表示するコンポーネントのバージョン | +| com.4d.minSupportedVersion | サポートされる最低限の 4D のバージョン。これは依存関係マネージャーの[4D のバージョンに従うコンポーネント](../Project/components.md#4Dバージョンタグの命名規則)において使用されます。 | 以下は、`Info.plist` ファイルの一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Extensions/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Extensions/overview.md index d5176075be0b87..61566a1791ccbc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Extensions/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Extensions/overview.md @@ -18,7 +18,7 @@ title: 4D アプリケーションの拡張 4D は様々なコンポーネントを4D コミュニティに対して提供しており、これは幅広い開発需要をカバーしています。 全ての4D製の コンポーネントは[**4D github repository**](https://github.com/4d) にあります。 -これらのコンポーネントの一部は、デフォルトで[依存関係マネージャ](../Project/components.md#adding-a-github-or-gitlab-dependency), に登録されています。具体的には以下の通りです: +これらのコンポーネントの一部は、デフォルトで[依存関係マネージャー](../Project/components.md#adding-a-github-or-gitlab-dependency), に登録されています。具体的には以下の通りです: | コンポーネント | Github リポジトリ | 説明 | 主な機能 | | --------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Project/components.md index 6ee2c10761b9c0..c032a120cc4677 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/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/topics/4d-component) ダウンロードすることもできます。 +独自の 4Dコンポーネントを[開発](../Extensions/develop-components.md)し、[ビルド](../Desktop/building.md) することもできますし、4Dコミュニティによって共有されているパブリックコンポーネントを [例えばGitHubなどで見つけて](https://github.com/topics/4d-component) ダウンロードすることもできます。 4D 環境にインストールされると、拡張機能は特別なプロパティを持つ**依存関係** として扱われます。 @@ -18,11 +18,11 @@ title: 依存関係 ### パッケージフォルダー -コンポーネントのパッケージフォルダー(*MyComponent.4dbase* フォルダー) には以下のものを含めることができます: +コンポーネントのパッケージフォルダー (*MyComponent.4dbase* フォルダー) には以下のものを含めることができます: -- **インタープリタ版コンポーネント**の場合: 標準の[Project フォルダー](../Project/architecture.md)。 [プロジェクトの**Components** フォルダー](architecture.md#コンポーネント)にインストールする場合には、パッケージフォルダー名の末尾を **.4dbase** にする必要があります。 +- **インタープリター版コンポーネント**の場合: 標準の [Project フォルダー](../Project/architecture.md)。 [プロジェクトの**Components** フォルダー](architecture.md#コンポーネント)にインストールする場合には、パッケージフォルダー名の末尾を **.4dbase** にする必要があります。 - **コンパイル版コンポーネント**の場合: - - .4DZ ファイル、*Resources* フォルダー、*Info.plist* ファイルを格納している"Contents" フォルダー(推奨されるアーキテクチャ) + - .4DZ ファイル、*Resources* フォルダー、*Info.plist* ファイルを格納している"Contents" フォルダー推奨されるアーキテクチャー) - *Resources* などの他のフォルダーを格納している.4DZ ファイル。 :::note @@ -33,11 +33,11 @@ title: 依存関係 ## コンポーネントの場所 -4D で開発する際、コンポーネントファイルはコンピューター上または、Github あるいはGitLab リポジトリ上に、透過的に保存することができます。 +4D で開発する際、コンポーネントファイルはコンピューター上または、Github あるいは GitLab リポジトリ上に、透過的に保存することができます。 :::note -この章では、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります。 他の環境では、コンポーネントの管理は異なります: +この章では、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 @@ -48,7 +48,7 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: -- コンポーネントファイルを[プロジェクトの**Components**フォルダー](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダーはフォルダー名の末尾が".4dbase" になっている必要があります、上記参照)。 +- コンポーネントファイルを[プロジェクトの**Components**フォルダー](architecture.md#components)内にコピーする(インタープリター版コンポーネントパッケージフォルダーはフォルダー名の末尾が".4dbase" になっている必要があります、上記参照)。 - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#githubまたはgitlab依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: @@ -72,7 +72,7 @@ title: 依存関係 このファイルには次の内容を含めることができます: - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 -- [GitHub またはGitLab リポジトリ](#components-stored-on-git-hosting-platforms) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 +- [GitHub または GitLab リポジトリ](#components-stored-on-git-hosting-platforms)に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -357,9 +357,9 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ - **一次依存関係**: `dependencies.json` ファイル内で明示的に宣言したコンポーネント - **二次依存関係**: 一次依存関係または他の二次依存関係が必要とするコンポーネントで、自動的に解決され、インストールされます。 -依存関係マネージャは、それぞれのコンポーネントが持つ `dependencies.json` ファイルを読み込み、可能な限り指定されたバージョンを遵守しつつ全ての必要な依存関係を回帰的にインストールします。 これによって、ネストされた依存関係を手動で特定し、一つずつ追加しなくても済むようになります。 +依存関係マネージャーは、それぞれのコンポーネントが持つ `dependencies.json` ファイルを読み込み、可能な限り指定されたバージョンを遵守しつつ全ての必要な依存関係を回帰的にインストールします。 これによって、ネストされた依存関係を手動で特定し、一つずつ追加しなくても済むようになります。 -- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#defining-a-dependency-version-range) を必要とする場合、依存関係マネージャは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 +- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#defining-a-dependency-version-range) を必要とする場合、依存関係マネージャーは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 :::note @@ -469,7 +469,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: -- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 +- コンポーネントロゴは、それが 4D またはサードパーティによる提供かを示します。 - ローカルコンポーネントと GitHub またはGitLab コンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -527,7 +527,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ![dependency-add-git-2](../assets/en/Project/dependency-add-git-2.png) -接続が確立されると、入力エリアの右側にアイコン ![dependency-gitlogo](../assets/en/Project/dependency-gitlogo.png) が表示されます。 このアイコンをクリックすると、既定のブラウザでリポジトリを開くことができます。 +接続が確立されると、入力エリアの右側にアイコン ![dependency-gitlogo](../assets/en/Project/dependency-gitlogo.png) が表示されます。 このアイコンをクリックすると、既定のブラウザーでリポジトリを開くことができます。 :::note @@ -565,7 +565,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ### 依存関係の更新 -依存関係マネージャはGitHub 上の更新を統合的に管理する方法を提供します。 以下の機能がサポートされています: 以下の機能がサポートされています: +依存関係マネージャーは GitHub 上の更新を統合的に管理する方法を提供します。 以下の機能がサポートされています: - 利用可能なバージョンの自動および手動でのチェック - コンポーネントの自動および手動での更新 @@ -588,7 +588,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ![check component](../assets/en/Project/check-component-one.png) -- 全ての依存関係に対して更新をチェックするためには、依存関係マネージャウィンドウの下部から**オプション**をクリックし、**更新をチェックする** を選択します。 +- すべての依存関係に対して更新をチェックするためには、依存関係マネージャーウィンドウの下部から **オプション** をクリックし、**更新をチェックする** を選択します。 ![check components](../assets/en/Project/check-component-all.png) @@ -606,11 +606,11 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ 依存関係はいつでも更新することができ、また単一の依存関係に対してでも、依存関係全てに対してでも更新することが可能です: -- 単一の依存関係を更新するためには、依存関係を右クリックし、コンテキストメニュー内から、あるいは依存関係マネージャウィンドウの下部の**オプション**メニューから、**次回起動時に\ を更新** を選択します: +- 単一の依存関係を更新するためには、依存関係を右クリックし、コンテキストメニュー内から、あるいは依存関係マネージャーウィンドウの下部の **オプション** メニューから、**次回起動時に\ を更新** を選択します: ![check component](../assets/en/Project/update-component-one.png) -- 全ての依存関係を一度に更新するためには、依存関係マネージャウィンドウの下部から**オプション** メニューをクリックし、**次回起動時に全ての依存関係を更新する** を選択します: +- 全ての依存関係を一度に更新するためには、依存関係マネージャーウィンドウの下部から **オプション** メニューをクリックし、**次回起動時に全ての依存関係を更新する** を選択します: ![check components](../assets/en/Project/update-component-all.png) @@ -623,7 +623,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ #### 自動アップデート -依存関係マネージャウィンドウの下部の**オプション**メニューから、**自動アップデート** オプションを選択することができます。 +依存関係マネージャーウィンドウの下部の**オプション**メニューから、**自動アップデート** オプションを選択することができます。 このオプションがチェックされている場合(デフォルトでチェック)、GitHub コンポーネントあるいはGitLab コンポーネントで[コンポーネントバージョン設定](#defining-a-dependency-version-range) に合致している新しいバージョンは、次回プロジェクト起動時に自動的に更新されます。 このオプションは手動で更新を洗濯する必要性を排除することで、日々の依存関係アップデートの管理を容易にします。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ServerWindow/processes.md index cee93bffa57993..3fb41fef0961da 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/ServerWindow/processes.md @@ -94,7 +94,7 @@ title: プロセスページ > 確認ダイアログなしに選択したプロセスをアボートするには、**Alt**\*キーを押しながらこのボタンをクリックするか、[`ABORT PROCESS BY ID`](../commands/abort-process-by-id) コマンドを使用します。 - **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。 The processes must have been paused previously (using the button above or by programming); otherwise, this button has no effect. +- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。 対象のプロセスは、(上のボタンかプログラミングによって)先に停止されていなければなりません。そうでない場合、このボタンは何の効力ももちません。 - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/components.md index 4c5beced37acbf..368915bbb461c2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Concepts/components.md @@ -31,6 +31,6 @@ title: コンポーネント :::note -インタープリタ版のコンポーネントのコードは、コンテキストがサポートされていれば、[ホストプロジェクトから直接編集する](../Extensions/develop-components.md#ホストからのコンポーネント作成と編集) ことが可能です。 +インタープリター版のコンポーネントのコードは、コンテキストがサポートされていれば、[ホストプロジェクトから直接編集する](../Extensions/develop-components.md#ホストからのコンポーネント作成と編集) ことが可能です。 ::: \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Extensions/develop-components.md index 1f94812908cb6f..a488c69f338803 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Extensions/develop-components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Extensions/develop-components.md @@ -33,13 +33,13 @@ title: コンポーネントの開発 :::note -コンテキストがサポートされていれば、インタープリタ版のコンポーネントのコードは[ホストプロジェクトから直接編集可能です](#コンポーネントの編集)。 +コンテキストがサポートされていれば、インタープリター版のコンポーネントのコードは[ホストプロジェクトから直接編集可能です](#コンポーネントの編集)。 ::: ## ホストからのコンポーネント作成と編集 -インタープリタモードでは、4D IDE を使用することでホストプロジェクトからコンポーネントを直接作成および編集することができます。 これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 +インタープリターモードでは、4D IDE を使用することでホストプロジェクトからコンポーネントを直接作成および編集することができます。 これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 ### コンポーネントの作成 @@ -66,8 +66,8 @@ title: コンポーネントの開発 以下の条件を満たしている限り、コンポーネントのコードは編集可能です: -- ホストプロジェクトがインタープリタモードで実行中である -- コンポーネントが、[インタープリタモードでロードされてい](../Project/components.md#interpreted-and-compiled-components) 、ソースコードが編集可能である +- ホストプロジェクトがインタープリターモードで実行中である +- コンポーネントが、[インタープリターモードでロードされており](../Project/components.md#インタープリターとコンパイル済みコンポーネント)、ソースコードが編集可能である - コンポーネントのファイルはローカルに保存されている (つまり[GitHub からダウンロードされた](../Project/components.md#adding-a-github-or-gitlab-dependency) ものではない)。 このコンテキストでは、以下の2箇所において、コンポーネントのコードをコードエディターで開き、編集して、保存することができます: @@ -292,7 +292,7 @@ component_method($input_t) - `Get pointer` をコンポーネント内で使用した場合、このコマンドはホストプロジェクトの変数へのポインターを返しません。また逆にこのコマンドをホストプロジェクトで使用した場合も同様です。 - コンパイル済みプロジェクトでは、コンパイルされたコンポーネントしか使用できませんが、インタープリタープロジェクトの場合には、インタープリターおよびコンパイル済みコンポーネントを同時に使用することができます。 この場合、ポインターの利用は以下の原則を守らなければなりません: インタープリターモードでは、コンパイルモードにおいて作成されたポインターを解釈できます。逆にコンパイルモードでは、インタープリターモードにて作成されたポインターを解釈することはできません。 - 以下の例でこの原則を説明します: 同じホストプロジェクトにインストールされた 2つのコンポーネント C ( コンパイル済) と I ( インタープリタ) があります: + 以下の例でこの原則を説明します: 同じホストプロジェクトにインストールされた 2つのコンポーネント C ( コンパイル済) と I ( インタープリター) があります: - コンポーネントC が定義する変数 `myCvar` があるとき、コンポーネントI はポインター `->myCvar` を使用して変数の値にアクセスすることができます。 @@ -461,11 +461,11 @@ SAVE RECORD($tablepointer->) コンポーネントに対してカスタムアイコンを宣言したい場合: -1. アイコン用のピクチャファイルを作成し、 `logo.svg` あるいは `logo.png` という名前をつけます。 ピクチャーは正方形で表示されるという点に注意してください(必要であれば自動的にリサイズされます)。 推奨されるのは **svg** フォーマットです。 +1. アイコン用のピクチャーファイルを作成し、 `logo.svg` あるいは `logo.png` という名前をつけます。 ピクチャーは正方形で表示されるという点に注意してください(必要であれば自動的にリサイズされます)。 推奨されるのは **svg** フォーマットです。 2. アイコンファイルをコンポーネントの [**Resources フォルダー**](../Project/architecture.md#resources) にコピーします。 -このロゴファイルは、コンポーネントがインタープリタ版か [ビルトされている](../Desktop/building.md#コンポーネントをビルド) かに関わらず、プロジェクト依存関係ウィンドウ内においてそのコンポーネントに対して使用されます。 +このロゴファイルは、コンポーネントがインタープリター版か[ビルドされている](../Desktop/building.md#コンポーネントをビルド)かに関わらず、プロジェクト依存関係ウィンドウ内においてそのコンポーネントに対して使用されます。 ![](../assets/en/Develop/icon-comp.png) @@ -477,7 +477,7 @@ SAVE RECORD($tablepointer->) ## Info.plist -コンポーネントは、その[root フォルダー](../Project/architecture.md) にシステム(macOS のみ)と[依存関係マネージャ](../Project/components.md#monitoring-project-dependencies)が読み取り可能な追加の情報を提供する、 `Info.plist` ファイルを持っています。 +コンポーネントは、その [root フォルダー](../Project/architecture.md) にシステム (macOS のみ) と[依存関係マネージャー](../Project/components.md#monitoring-project-dependencies)が読み取り可能な追加の情報を提供する、`Info.plist` ファイルを持っています。 :::note @@ -485,18 +485,18 @@ SAVE RECORD($tablepointer->) ::: -コンポーネントの`Info.plist` ファイル内でサポートされているキーは、大部分は[Apple bundle キー](https://developer.apple.com/documentation/bundleresources/information-property-list) であり、Windows 上では無視されます。 しかしながら、これらは全てのプラットフォームにおいて[依存関係マネージャ](../Project/components.md#monitoring-project-dependencies) によって使用されます。 +コンポーネントの`Info.plist` ファイル内でサポートされているキーは、大部分は[Apple bundle キー](https://developer.apple.com/documentation/bundleresources/information-property-list) であり、Windows 上では無視されます。 しかしながら、これらはすべてのプラットフォームにおいて[依存関係マネージャー](../Project/components.md#monitoring-project-dependencies) によって使用されます。 定義可能なキーは以下の通りです: -| key | description | -| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| CFBundleName | コンポーネント名(内部) | -| CFBundleDisplayName | 表示するコンポーネント名 | -| NSHumanReadableCopyright | 表示する著作権 | -| CFBundleVersion | コンポーネントのバージョン | -| CFBundleShortVersionString | 表示するコンポーネントのバージョン | -| com.4d.minSupportedVersion | サポートされる最低限の4D のバージョン。これは依存関係マネージャの[4D のバージョンに従うコンポーネント](../Project/components.md#4Dバージョンタグの命名規則)において使用されます。 | +| key | description | +| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| CFBundleName | コンポーネント名(内部) | +| CFBundleDisplayName | 表示するコンポーネント名 | +| NSHumanReadableCopyright | 表示する著作権 | +| CFBundleVersion | コンポーネントのバージョン | +| CFBundleShortVersionString | 表示するコンポーネントのバージョン | +| com.4d.minSupportedVersion | サポートされる最低限の 4D のバージョン。これは依存関係マネージャーの[4D のバージョンに従うコンポーネント](../Project/components.md#4Dバージョンタグの命名規則)において使用されます。 | 以下は、`Info.plist` ファイルの一例です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Extensions/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Extensions/overview.md index d5176075be0b87..61566a1791ccbc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Extensions/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Extensions/overview.md @@ -18,7 +18,7 @@ title: 4D アプリケーションの拡張 4D は様々なコンポーネントを4D コミュニティに対して提供しており、これは幅広い開発需要をカバーしています。 全ての4D製の コンポーネントは[**4D github repository**](https://github.com/4d) にあります。 -これらのコンポーネントの一部は、デフォルトで[依存関係マネージャ](../Project/components.md#adding-a-github-or-gitlab-dependency), に登録されています。具体的には以下の通りです: +これらのコンポーネントの一部は、デフォルトで[依存関係マネージャー](../Project/components.md#adding-a-github-or-gitlab-dependency), に登録されています。具体的には以下の通りです: | コンポーネント | Github リポジトリ | 説明 | 主な機能 | | --------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Project/components.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Project/components.md index 6ee2c10761b9c0..c032a120cc4677 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/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/topics/4d-component) ダウンロードすることもできます。 +独自の 4Dコンポーネントを[開発](../Extensions/develop-components.md)し、[ビルド](../Desktop/building.md) することもできますし、4Dコミュニティによって共有されているパブリックコンポーネントを [例えばGitHubなどで見つけて](https://github.com/topics/4d-component) ダウンロードすることもできます。 4D 環境にインストールされると、拡張機能は特別なプロパティを持つ**依存関係** として扱われます。 @@ -18,11 +18,11 @@ title: 依存関係 ### パッケージフォルダー -コンポーネントのパッケージフォルダー(*MyComponent.4dbase* フォルダー) には以下のものを含めることができます: +コンポーネントのパッケージフォルダー (*MyComponent.4dbase* フォルダー) には以下のものを含めることができます: -- **インタープリタ版コンポーネント**の場合: 標準の[Project フォルダー](../Project/architecture.md)。 [プロジェクトの**Components** フォルダー](architecture.md#コンポーネント)にインストールする場合には、パッケージフォルダー名の末尾を **.4dbase** にする必要があります。 +- **インタープリター版コンポーネント**の場合: 標準の [Project フォルダー](../Project/architecture.md)。 [プロジェクトの**Components** フォルダー](architecture.md#コンポーネント)にインストールする場合には、パッケージフォルダー名の末尾を **.4dbase** にする必要があります。 - **コンパイル版コンポーネント**の場合: - - .4DZ ファイル、*Resources* フォルダー、*Info.plist* ファイルを格納している"Contents" フォルダー(推奨されるアーキテクチャ) + - .4DZ ファイル、*Resources* フォルダー、*Info.plist* ファイルを格納している"Contents" フォルダー推奨されるアーキテクチャー) - *Resources* などの他のフォルダーを格納している.4DZ ファイル。 :::note @@ -33,11 +33,11 @@ title: 依存関係 ## コンポーネントの場所 -4D で開発する際、コンポーネントファイルはコンピューター上または、Github あるいはGitLab リポジトリ上に、透過的に保存することができます。 +4D で開発する際、コンポーネントファイルはコンピューター上または、Github あるいは GitLab リポジトリ上に、透過的に保存することができます。 :::note -この章では、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります。 他の環境では、コンポーネントの管理は異なります: +この章では、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 @@ -48,7 +48,7 @@ title: 依存関係 4Dプロジェクトにコンポーネントを読み込むには、以下の方法があります: -- コンポーネントファイルを[プロジェクトの**Components**フォルダー](architecture.md#components)内にコピーする(インタープリタ版コンポーネントパッケージフォルダーはフォルダー名の末尾が".4dbase" になっている必要があります、上記参照)。 +- コンポーネントファイルを[プロジェクトの**Components**フォルダー](architecture.md#components)内にコピーする(インタープリター版コンポーネントパッケージフォルダーはフォルダー名の末尾が".4dbase" になっている必要があります、上記参照)。 - または、プロジェクトの **dependencies.json** ファイルでコンポーネントを宣言します。これは、[**依存関係インターフェースを使用して依存関係を追加**](#githubまたはgitlab依存関係の追加) するときに、ローカルファイルに対して自動的におこなわれます。 **dependencies.json** ファイルで宣言されているコンポーネントは、異なる場所に保存できます: @@ -72,7 +72,7 @@ title: 依存関係 このファイルには次の内容を含めることができます: - [ローカル保存されている](#ローカルコンポーネント) コンポーネントの名前(デフォルトパス、または **environment4d.json** ファイルで定義されたパス)。 -- [GitHub またはGitLab リポジトリ](#components-stored-on-git-hosting-platforms) に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 +- [GitHub または GitLab リポジトリ](#components-stored-on-git-hosting-platforms)に保存されているコンポーネントの名前 (パスはこのファイルまたは **environment4d.json** ファイルで定義できます)。 #### environment4d.json @@ -357,9 +357,9 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ - **一次依存関係**: `dependencies.json` ファイル内で明示的に宣言したコンポーネント - **二次依存関係**: 一次依存関係または他の二次依存関係が必要とするコンポーネントで、自動的に解決され、インストールされます。 -依存関係マネージャは、それぞれのコンポーネントが持つ `dependencies.json` ファイルを読み込み、可能な限り指定されたバージョンを遵守しつつ全ての必要な依存関係を回帰的にインストールします。 これによって、ネストされた依存関係を手動で特定し、一つずつ追加しなくても済むようになります。 +依存関係マネージャーは、それぞれのコンポーネントが持つ `dependencies.json` ファイルを読み込み、可能な限り指定されたバージョンを遵守しつつ全ての必要な依存関係を回帰的にインストールします。 これによって、ネストされた依存関係を手動で特定し、一つずつ追加しなくても済むようになります。 -- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#defining-a-dependency-version-range) を必要とする場合、依存関係マネージャは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 +- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#defining-a-dependency-version-range) を必要とする場合、依存関係マネージャーは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 :::note @@ -469,7 +469,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ コンポーネントアイコンとロケーションロゴが追加情報を提供します: -- コンポーネントロゴは、それが 4D またはサードパーティーによる提供かを示します。 +- コンポーネントロゴは、それが 4D またはサードパーティによる提供かを示します。 - ローカルコンポーネントと GitHub またはGitLab コンポーネントは、小さなアイコンで区別できます。 ![dependency-origin](../assets/en/Project/dependency-github.png) @@ -527,7 +527,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ![dependency-add-git-2](../assets/en/Project/dependency-add-git-2.png) -接続が確立されると、入力エリアの右側にアイコン ![dependency-gitlogo](../assets/en/Project/dependency-gitlogo.png) が表示されます。 このアイコンをクリックすると、既定のブラウザでリポジトリを開くことができます。 +接続が確立されると、入力エリアの右側にアイコン ![dependency-gitlogo](../assets/en/Project/dependency-gitlogo.png) が表示されます。 このアイコンをクリックすると、既定のブラウザーでリポジトリを開くことができます。 :::note @@ -565,7 +565,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ### 依存関係の更新 -依存関係マネージャはGitHub 上の更新を統合的に管理する方法を提供します。 以下の機能がサポートされています: 以下の機能がサポートされています: +依存関係マネージャーは GitHub 上の更新を統合的に管理する方法を提供します。 以下の機能がサポートされています: - 利用可能なバージョンの自動および手動でのチェック - コンポーネントの自動および手動での更新 @@ -588,7 +588,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ![check component](../assets/en/Project/check-component-one.png) -- 全ての依存関係に対して更新をチェックするためには、依存関係マネージャウィンドウの下部から**オプション**をクリックし、**更新をチェックする** を選択します。 +- すべての依存関係に対して更新をチェックするためには、依存関係マネージャーウィンドウの下部から **オプション** をクリックし、**更新をチェックする** を選択します。 ![check components](../assets/en/Project/check-component-all.png) @@ -606,11 +606,11 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ 依存関係はいつでも更新することができ、また単一の依存関係に対してでも、依存関係全てに対してでも更新することが可能です: -- 単一の依存関係を更新するためには、依存関係を右クリックし、コンテキストメニュー内から、あるいは依存関係マネージャウィンドウの下部の**オプション**メニューから、**次回起動時に\ を更新** を選択します: +- 単一の依存関係を更新するためには、依存関係を右クリックし、コンテキストメニュー内から、あるいは依存関係マネージャーウィンドウの下部の **オプション** メニューから、**次回起動時に\ を更新** を選択します: ![check component](../assets/en/Project/update-component-one.png) -- 全ての依存関係を一度に更新するためには、依存関係マネージャウィンドウの下部から**オプション** メニューをクリックし、**次回起動時に全ての依存関係を更新する** を選択します: +- 全ての依存関係を一度に更新するためには、依存関係マネージャーウィンドウの下部から **オプション** メニューをクリックし、**次回起動時に全ての依存関係を更新する** を選択します: ![check components](../assets/en/Project/update-component-all.png) @@ -623,7 +623,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ #### 自動アップデート -依存関係マネージャウィンドウの下部の**オプション**メニューから、**自動アップデート** オプションを選択することができます。 +依存関係マネージャーウィンドウの下部の**オプション**メニューから、**自動アップデート** オプションを選択することができます。 このオプションがチェックされている場合(デフォルトでチェック)、GitHub コンポーネントあるいはGitLab コンポーネントで[コンポーネントバージョン設定](#defining-a-dependency-version-range) に合致している新しいバージョンは、次回プロジェクト起動時に自動的に更新されます。 このオプションは手動で更新を洗濯する必要性を排除することで、日々の依存関係アップデートの管理を容易にします。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/processes.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/processes.md index 5903ee7215763c..64aaa51bb9d190 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/processes.md @@ -94,7 +94,7 @@ title: プロセスページ > 確認ダイアログなしに選択したプロセスをアボートするには、**Alt**\*キーを押しながらこのボタンをクリックするか、[`ABORT PROCESS BY ID`](../commands/abort-process-by-id) コマンドを使用します。 - **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。 The processes must have been paused previously (using the button above or by programming); otherwise, this button has no effect. +- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。 対象のプロセスは、(上のボタンかプログラミングによって)先に停止されていなければなりません。そうでない場合、このボタンは何の効力ももちません。 - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 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 4c5beced37acbf..368915bbb461c2 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 @@ -31,6 +31,6 @@ title: コンポーネント :::note -インタープリタ版のコンポーネントのコードは、コンテキストがサポートされていれば、[ホストプロジェクトから直接編集する](../Extensions/develop-components.md#ホストからのコンポーネント作成と編集) ことが可能です。 +インタープリター版のコンポーネントのコードは、コンテキストがサポートされていれば、[ホストプロジェクトから直接編集する](../Extensions/develop-components.md#ホストからのコンポーネント作成と編集) ことが可能です。 ::: \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md index aecb70c3b744ee..3316264ab23008 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Concepts/error-handling.md @@ -293,6 +293,6 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo - **メッセージ**。エラーがなぜ起きたかを説明します。 - **コード**。コンポーネントによって返される任意の数値です。 -[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 Click on the **Copy** button to store detailed information related to the error in the pasteboard. +[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 **コピー** ボタンをクリックすることで、エラーに関連した詳細な情報がペーストボードに保存されます。 エラーと特にその原因の完全な詳細を取得するには、[`Last errors`](../commands/last-errors.md) コマンドを呼び出す必要があります。 エラーと特にその原因の完全な詳細を取得するには、[`Last errors`](../commands/last-errors.md) コマンドを呼び出す必要があります。 最終アプリケーションにおいて[エラー処理メソッド](#installing-an-error-handling-method) を使用してエラーへの割り込みと処理をする場合、[`Last errors`](../commands/last-errors.md) を使用して必ず*error* オブジェクトの全てのプロパティを記録するようにしてください。エラーコードはコンポーネントによって異なるからです。 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 7ba630cbed2c87..9e0f63a884813d 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 @@ -33,13 +33,13 @@ title: コンポーネントの開発 :::note -コンテキストがサポートされていれば、インタープリタ版のコンポーネントのコードは[ホストプロジェクトから直接編集可能です](#コンポーネントの編集)。 +コンテキストがサポートされていれば、インタープリター版のコンポーネントのコードは[ホストプロジェクトから直接編集可能です](#コンポーネントの編集)。 ::: ## ホストからのコンポーネント作成と編集 -インタープリタモードでは、4D IDE を使用することでホストプロジェクトからコンポーネントを直接作成および編集することができます。 これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 +インタープリターモードでは、4D IDE を使用することでホストプロジェクトからコンポーネントを直接作成および編集することができます。 これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 ### コンポーネントの作成 @@ -50,9 +50,9 @@ title: コンポーネントの開発 この操作でフォルダー選択ダイアログが開き、ここから[コンポーネントパッケージ](../Project/components.md#packageフォルダー) を保存する場所を選択することができます。 -- デフォルトの場所: 最初にコンポーネントを作成しようとすると、4D は[プロジェクトパッケージ内の**Components** フォルダ](../Project/architecture.md#components)をサジェストします。 それ以降は最後に使用したフォルダが自動的に記憶されてあらかじめ選択されます。 +- デフォルトの場所: 最初にコンポーネントを作成しようとすると、4D は[プロジェクトパッケージ内の**Components** フォルダー](../Project/architecture.md#components)をサジェストします。 それ以降は最後に使用したフォルダーが自動的に記憶されてあらかじめ選択されます。 - コンポーネントを**プロジェクトパッケージの隣** に保存することを選択した場合、4D はそれを[`dependencies.json`](../Project/components.md#dependenciesjson) ファイルに追加します。 -- コンポーネントを**それ以外** の場所に保存することを選択した場合、4D はそれを[`dependencies.json`](../Project/components.md#dependenciesjson) ファイルに追加し、そのパスが[相対または絶対パス](../Project/components.md#相対パスvs絶対パス)を使用して[`environment4d.json`](../Project/components.md#environment4djson) ファイルへと追加されます。 相対パスは、`environment4d.json` ファイルから見てコンポーネントが上に2階層以内、あるいはそのサブフォルダ内に保存されている場合に使用されます。 それ以外の場合には絶対パスが使用されます。 +- コンポーネントを**それ以外** の場所に保存することを選択した場合、4D はそれを[`dependencies.json`](../Project/components.md#dependenciesjson) ファイルに追加し、そのパスが[相対または絶対パス](../Project/components.md#相対パスvs絶対パス)を使用して[`environment4d.json`](../Project/components.md#environment4djson) ファイルへと追加されます。 相対パスは、`environment4d.json` ファイルから見てコンポーネントが上に2階層以内、あるいはそのサブフォルダー内に保存されている場合に使用されます。 それ以外の場合には絶対パスが使用されます。 :::note @@ -66,8 +66,8 @@ title: コンポーネントの開発 以下の条件を満たしている限り、コンポーネントのコードは編集可能です: -- ホストプロジェクトがインタープリタモードで実行中である -- コンポーネントが、[インタープリタモードでロードされてい](../Project/components.md#interpreted-and-compiled-components) 、ソースコードが編集可能である +- ホストプロジェクトがインタープリターモードで実行中である +- コンポーネントが、[インタープリターモードでロードされており](../Project/components.md#インタープリターとコンパイル済みコンポーネント)、ソースコードが編集可能である - コンポーネントのファイルはローカルに保存されます(つまり、それらは[downloaded from GitHub からダウンロードされるわけではありません](../Project/components.md#github-依存関係を追加))。 このコンテキストでは、以下の2箇所において、コンポーネントのコードをコードエディターで開き、編集して、保存することができます: @@ -286,7 +286,7 @@ component_method($input_t) - `Get pointer` をコンポーネント内で使用した場合、このコマンドはホストプロジェクトの変数へのポインターを返しません。また逆にこのコマンドをホストプロジェクトで使用した場合も同様です。 - コンパイル済みプロジェクトでは、コンパイルされたコンポーネントしか使用できませんが、インタープリタープロジェクトの場合には、インタープリターおよびコンパイル済みコンポーネントを同時に使用することができます。 この場合、ポインターの利用は以下の原則を守らなければなりません: インタープリターモードでは、コンパイルモードにおいて作成されたポインターを解釈できます。逆にコンパイルモードでは、インタープリターモードにて作成されたポインターを解釈することはできません。 - 以下の例でこの原則を説明します: 同じホストプロジェクトにインストールされた 2つのコンポーネント C ( コンパイル済) と I ( インタープリタ) があります: + 以下の例でこの原則を説明します: 同じホストプロジェクトにインストールされた 2つのコンポーネント C ( コンパイル済) と I ( インタープリター) があります: - コンポーネントC が定義する変数 `myCvar` があるとき、コンポーネントI はポインター `->myCvar` を使用して変数の値にアクセスすることができます。 @@ -447,7 +447,7 @@ SAVE RECORD($tablepointer->) ## Info.plist -コンポーネントは、その[root フォルダー](../Project/architecture.md) にシステム(macOS のみ)と[依存関係マネージャ](../Project/components.md#monitoring-project-dependencies)が読み取り可能な追加の情報を提供する、 `Info.plist` ファイルを持っています。 +コンポーネントは、その [root フォルダー](../Project/architecture.md) にシステム (macOS のみ) と[依存関係マネージャー](../Project/components.md#monitoring-project-dependencies)が読み取り可能な追加の情報を提供する、`Info.plist` ファイルを持っています。 :::note @@ -455,18 +455,18 @@ SAVE RECORD($tablepointer->) ::: -コンポーネントの`Info.plist` ファイル内でサポートされているキーは、大部分は[Apple bundle キー](https://developer.apple.com/documentation/bundleresources/information-property-list) であり、Windows 上では無視されます。 しかしながら、これらは全てのプラットフォームにおいて[依存関係マネージャ](../Project/components.md#monitoring-project-dependencies) によって使用されます。 +コンポーネントの`Info.plist` ファイル内でサポートされているキーは、大部分は[Apple bundle キー](https://developer.apple.com/documentation/bundleresources/information-property-list) であり、Windows 上では無視されます。 しかしながら、これらはすべてのプラットフォームにおいて[依存関係マネージャー](../Project/components.md#monitoring-project-dependencies) によって使用されます。 定義可能なキーは以下の通りです: -| key | description | -| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| CFBundleName | コンポーネント名(内部) | -| CFBundleDisplayName | 表示するコンポーネント名 | -| NSHumanReadableCopyright | 表示する著作権 | -| CFBundleVersion | コンポーネントのバージョン | -| CFBundleShortVersionString | 表示するコンポーネントのバージョン | -| com.4d.minSupportedVersion | サポートされる最低限の4D のバージョン。これは依存関係マネージャの[4D のバージョンに従うコンポーネント](../Project/components.md#4Dバージョンタグの命名規則)において使用されます。 | +| key | description | +| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| CFBundleName | コンポーネント名(内部) | +| CFBundleDisplayName | 表示するコンポーネント名 | +| NSHumanReadableCopyright | 表示する著作権 | +| CFBundleVersion | コンポーネントのバージョン | +| CFBundleShortVersionString | 表示するコンポーネントのバージョン | +| com.4d.minSupportedVersion | サポートされる最低限の 4D のバージョン。これは依存関係マネージャーの[4D のバージョンに従うコンポーネント](../Project/components.md#4Dバージョンタグの命名規則)において使用されます。 | 以下は、`Info.plist` ファイルの一例です: 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 7b8050d676bd6e..8dce28c2c5d33c 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 @@ -94,7 +94,7 @@ title: プロセスページ > 確認ダイアログなしに選択したプロセスをアボートするには、**Alt**\*キーを押しながらこのボタンをクリックするか、[`ABORT PROCESS BY ID`](../commands-legacy/abort-process-by-id.md) コマンドを使用します。 - **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。 The processes must have been paused previously (using the button above or by programming); otherwise, this button has no effect. +- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。 対象のプロセスは、(上のボタンかプログラミングによって)先に停止されていなければなりません。そうでない場合、このボタンは何の効力ももちません。 - **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 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 b2da4b849191c2..e59fa57978349c 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,9 @@ 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). -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). +Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components are also proposed by the 4D community. Use the [4D Corner platform](https://corner.4d.com/) to get a detailed list of all available 4D components. + +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). ## Utilização de componentes 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 6c13111d1974c9..e3eb4ee03ddf86 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 @@ -7,7 +7,7 @@ title: Componentes de desenvolvimento Um componente 4D é um conjunto de funções, métodos e formulários 4D que representam uma ou mais funcionalidades que podem ser [instaladas e usadas em aplicativos 4D](Concepts/components.md). Por exemplo, você pode desenvolver um componente de e-mail 4D que gerencia todos os aspectos de envio, recebimento e armazenamento de e-mails em aplicativos 4D. -Você pode desenvolver componentes 4D para suas próprias necessidades e mantê-los privados. Você pode desenvolver componentes 4D para suas próprias necessidades e mantê-los privados. +Você pode desenvolver componentes 4D para suas próprias necessidades e mantê-los privados. You can also [propose them to 4D Corner](https://corner.4d.com/) and [share them with the 4D community](https://github.com/topics/4d-component). ## Definições @@ -539,4 +539,5 @@ Para proteger o código de um componente de forma eficaz, basta [compilar e cons 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. +Use the [4D Corner platform](https://corner.4d.com/) to browse among existing components, and to register your own 4D components. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/overview.md index 090b6856ce76e3..b47b97e1a8d653 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -11,12 +11,12 @@ The 4D [project architecture](../Project/architecture.md) is open and can be ext - [**SQL commands**](../commands/theme/SQL) allow you to connect and use various SQL data sources. - The [**built-in HTTP client**](../API/HTTPRequestClass.md) can request any HTTP server and process data. - [**Web Areas**](../FormObjects/webArea_overview.md) can give access to web pages or various HTML contents within your forms. -- [**Components**](Concepts/components.md). Components are made of 4D code. 4D proposes a set of utility components (see below) that you can install and use depending on your needs. You can also [develop your own 4D components](develop-components.md), or use third-party components. Many developers from the 4D community have shared 4D components (browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic). +- [**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 the [**4D Corner platform**](https://corner.4d.com/) to get a comprehensive list of published components. - [**Plug-ins**](../Concepts/plug-ins.md). Plug-ins can be built using any language. Plugins fazem coisas que 4D não faz nativamente (por exemplo, tecnologia específica da plataforma), ou seria muito difícil escrever apenas usando 4D. Como se describe en [esta página](develop-plug-ins.md), puede desarrollar sus propios plug-ins. Muitas funcionalidades são cobertas pelos plug-ins 4D existentes. Navegue pelo Github para ter uma lista de plugins 4D públicos reunidos com o tópico [`4d-plugin`](https://github.com/topics/4d-plugin). ## 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). +4D proposes various components to the 4D community, covering many development needs. All 4D components can be found on the [**4D Corner platform**](https://corner.4d.com/). A subset of these components is listed by default in the Github panel of the [Dependency Manager](../Project/components.md#adding-a-github-or-gitlab-dependency), including: 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 fad63a850ca1a6..972b90ae389a4b 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,9 +10,8 @@ Leia [**O que há de novo no 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21- #### Destaques - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). - - Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. - +- Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos os bugs corrigidos em 4D 21 R5. ## 4D 21 R4 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 01fe8a6e06c4ec..dd1d081d339ce1 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). -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 for example on GitHub](https://github.com/topics/4d-component). +You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). Once installed in your 4D environment, extensions are handled as **dependencies** with specific properties. @@ -562,6 +562,36 @@ In the "Edit the dependency" dialog box, edit the Dependency Rule menu and click Modificar o intervalo de versão é útil, por exemplo, se você usar o recurso de atualização automática e deseja bloquear a dependência de um número de versão específico. +### Using 4D Corner + +The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive list of ready-to-use 4D components, proposed from the 4D company or from the 4D community. You can browse or search the list to find any component meeting to your needs. + +![4d-corner](../assets/en/Project/4d-corner.png) + +You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: + +![4d-corner-access](../assets/en/Project/4d-corner.png) + +To install a component from the 4D Corner platform: + +1. Click on the "Copy link" button on the top right corner of the component tile: + +![copy button](../assets/en/Project/4d-corner-copy.png) + +2. Open the Dependency manager and click on the **[+]** button. + +The dependency link is automatically added in the address area: + +![add dependency](../assets/en/Project/4d-corner-add.png) + +3. [Configure the dependency reference](#adding-a-github-or-gitlab-dependency) and click **Add**. + +:::tip Related blog post + +[4D Corner: Easily browse 4D components, add them to your project and share your own](https://blog.4d.com/4d-corner-easily-browse-4d-components-add-them-to-your-project-and-share-your-own/) + +::: + ### Atualização de dependências O gerenciador de dependências fornece um tratamento integrado de atualizações no GitHub. Os seguintes recursos são suportados: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-access.png new file mode 100644 index 0000000000000000000000000000000000000000..a4173db3bde865cf34f22d614cd8ab452d073076 GIT binary patch literal 6670 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 literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner-add.png new file mode 100644 index 0000000000000000000000000000000000000000..27cb99f9b25514f7caf4b489bb74369a96574f32 GIT binary patch literal 14643 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�iF?*%FVG&D5IySqCy7^#VDML%XVWEu>#lEu(!oX63~Fn8 z{{;?*7AR6maW4gm1qo6dPD=^y1eX@4SaD0CMH(zP0g4@*BEbnki#rt8V8KhV;`&d| z?>Beuojdo%eY;<+wVyqE&HBvuc?2t93l`SgYr&Q%5c32gJ;{1$wj8^$Z);nIodZ^j zcgc~s*aAG3#lfy;YQUL2m|F7?(&9pRjW`Gt zozbi4;re!8igI}ql%&W>(=5U%(}0?2-M4Z9InJuAsR(9An}dDT$fg!X^(0RLQOCs* z+;1Zl-qBTe8MEOL5B@V|$r078ktCg+NW29+#M@X6qOJ~X`n#dTj+c*3k?IMWc0DVx zM_n0^(7{HK!n|MW^p9HH=nQPFG-!eRy4S5Wb9*$d;_R9Bl(e^N>_*W+<60WUV9wOS zMc-)lT<-vRyMI6XFYZ+0^eb=p?7(lJwYT@TQ66?a0&d&woe%u+<7+K?CyNUs)74s# z!B`=Uf^$&}8{Aiw#=p)vH}9v45B==i`{s;wCBmEctSste8^!D~rUV9!_Ct;13OCOgQmyEGcf6=cByVF`JIx@0B$B?M2&@Z0MBB4ghnpT=CPy9E~&ji)b zbLp|ksy-0Tm<_19$HfkX3Hw54gif~cyN2;&s_=*j>W0gY$;5sP#;B?|y{}wPnwkPn1hN4Boc$*-p<^Frf zJu7M`Cqo~wbi+{tBI}$fBF^H_sDN$VR4FzoVpgOZH# zm{AS1tAy1Y-ME4-CpO=QRgF{9$q(jL4yj@q(%wg8B2wNNuTH(pPQ32;L3;{Lpz8N~ z)PPF511eo|o8!YMcy}Z;%z@oaii+6KyJ$?z$*!%+z7g3 ztaq+~2{!>UEItW(d^v(I9C)m+vBLl{&^2!U$)2v}Wsx=#0Dal+L zUSMn3SW_0rr0c|9gqkpPzojhrNE8wh@^0ep%^&dEej(o&k3U}^9_7w0CP_|Nv(cKB z1;p2Sh&9+OM~+%hG=ADjFR#4a-Vhh0L>o`6}}-t9YL zV`zz;JU*%>R~omJt_cDJ|{xwkNXHJI?$BH?PAW9cHe1I5F_Q7m&gAD%$zB`1C~nCZVl+e8=^-E zd3!%%8C*EGzH?`o=9d`RJBkmp-5QZGdRgC;MHkaOsAZRVN77wyNC&tkqQ-wdn2-=A z>aE}CHTLZMFV#IKPtWQBkG_FET;7F_eyXoYzAg%RL{Vul=c6h-JfLK=gwFVJ^kK!T zKfjKR24s6uLTh*5AUj{LUQnuge*Q+PrHx~`)uJNJrM0qf`?!A7wZbQWs!CP_vmACi zwRV7EGo^>?om(*areFndZjp2kL4_qGw8{M;jFH>Hoox_eURd2-A#krRsbEt%{%7zJ zwpR~p9dgE&9G;L7L6@OFkFe8_+RG3e_4RPtajuG;a6YVj#Bb48*_@94?PP>))cgOZ z4pg@aoE41NX+d*61DaFrRI_;si7D7!(4ftax`RvEgRsl(OU!c zV{WMPT*8w_|DawnS^ct$2be^cXK>ViBM6%+!aPc|s6FrJ{PUoQm`*5A_}YbtT0)J; z>T3JebiAHEdhfhE+MGtUP+nfzls>tYQAx*er8!7UeT5 z;J*ou+E1p*ghGsKj}OnPAlJ6C1X~D8g(Sfb-RD-or1d1V?d{>(SFU4&zx~WAbzlFu zGF${{Y;Ji?%nGA3^UVsJ?GpMgy>QE5E`77f!V*u!VcE#h^`Zy_JApIryktvb<*)vm z?`eSRww~81M61(PmH+%kbIwHO=j8*I!&&a zTG4f~dyCI!7dLL?lp+OnFwUHtWM|(pUfrAym+WR2#a{Dc+>ecgj+8Zhk5?X#)tTC3tRMNs5-u|g zU1e*yANR1??**rqmkcM9506>sIxH0lSCr_Br2OBIP*88$^mF!vR)ta&i<7x9Hke#KSA|+S}ma z7AwH)aWw97>?-=jZq#(4#>C9Ftrsl&jQx1NDNB6%ODcubEV

    5<# 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 X%K&K$5yZ||$5B?$c!PNTHu!%4%61qS literal 0 HcmV?d00001 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/4d-corner.png new file mode 100644 index 0000000000000000000000000000000000000000..711a3163af3ba282a80f639d9e44dff9d813f798 GIT binary patch literal 88436 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

  • 5Tc-~gK@)3a&70eryt0&8z# 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 literal 0 HcmV?d00001 From 6e1ce5db5168f9c910ebea5b60b4c7ad1b6c38c2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 11 Sep 2026 11:03:05 +0200 Subject: [PATCH 39/60] Update components.md --- docs/Project/components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Project/components.md b/docs/Project/components.md index 8b773fca02e91c..abcb8a60c5ad49 100644 --- a/docs/Project/components.md +++ b/docs/Project/components.md @@ -614,7 +614,7 @@ The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive li You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: -![4d-corner-access](../assets/en/Project/4d-corner.png) +![4d-corner-access](../assets/en/Project/4d-corner-access.png) To install a component from the 4D Corner platform: From feb6787d7279812e0b0615ed1b70cf61a6785c72 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 11 Sep 2026 16:26:50 +0200 Subject: [PATCH 40/60] Feature/compile from host (#3424) * first step * default namespace * Update develop-components.md * Update develop-components.md * after closure * Update compiler.md * added component list --- docs/Extensions/develop-components.md | 31 +++++++-- docs/Notes/updates.md | 1 + docs/Project/compiler.md | 65 +++++++++++++++++- docs/Project/components.md | 4 +- docs/assets/en/Develop/editable-component.png | Bin 57867 -> 17206 bytes docs/assets/en/Project/compile-component.png | Bin 0 -> 15780 bytes .../en/Project/compile-components-errors.png | Bin 0 -> 20712 bytes 7 files changed, 91 insertions(+), 10 deletions(-) create mode 100644 docs/assets/en/Project/compile-component.png create mode 100644 docs/assets/en/Project/compile-components-errors.png diff --git a/docs/Extensions/develop-components.md b/docs/Extensions/develop-components.md index d4fe0bc7c7b855..587072106a1038 100644 --- a/docs/Extensions/develop-components.md +++ b/docs/Extensions/develop-components.md @@ -18,7 +18,7 @@ You can develop 4D components for your own needs and keep them private. You can :::note -You can [create a component directly from the host](#creating-components) project without needing to go through a separate matrix project +You can [create a component directly from the host](#creating-components) project without needing to go through a separate matrix project. ::: @@ -35,13 +35,13 @@ Creating and installing 4D components is carried out directly from 4D: :::note -Interpreted component code can be [edited directly from the host project](#editing-components) if the context is supported. +Interpreted component code can be [edited](#editing-components) and [compiled](../Project/compiler.md#compile-components) directly from the host project if the context is supported. ::: ## Creating and editing components from the host -In interpreted mode, the 4D IDE allows you to create and edit components directly from the host project. It facilitates component development and tuning in the actual context of a host project without having to leave or restart it. +In interpreted mode, the 4D IDE allows you to create, edit, and compile components directly from the host project. It facilitates component development and tuning in the actual context of a host project without having to leave or restart it. ### Creating components @@ -55,9 +55,10 @@ This action opens a folder selection dialog where you choose where [the componen * If you decide to store the component **next to the project package**, 4D adds it to the [`dependencies.json`](../Project/components.md#dependenciesjson) file. * If you decide to store the component **elsewhere**, 4D adds it to the [`dependencies.json`](../Project/components.md#dependenciesjson) file and its path is added to the [`environment4d.json`](../Project/components.md#environment4djson) file, using either a [relative or an absolute path](../Project/components.md#relative-paths-vs-absolute-paths). A relative path is used if the component is located within no more than two levels above as the `environment4d.json` file, or in its subfolders. Otherwise, an absolute path is used. -:::note +:::note Notes -You cannot store a component **in the project package** but **outside the Components folder**. +- You cannot store a component **in the project package** but **outside the Components folder**. +- When a component is created from the host, it is assigned a [default namespace](#default-namespace). ::: @@ -80,7 +81,7 @@ In this context, you can open, edit, and save your component code in the Code ed [Exposed component classes](#sharing-of-classes) and [shared methods](#sharing-of-project-methods) of your component can be edited from the **Component Methods** tab of the Explorer. -A specific icon indicates that the component contains shared code):
    +A specific icon indicates that the component contains shared code:
    ![](../assets/en/Develop/editable-component.png) Select **Edit...** to open your component code in the Code editor. You can edit and save it. @@ -116,6 +117,11 @@ Standard 4D IDE features are available for the component. You can execute the fo - run methods, - restore from trash or empty trash. +### Compiling components + +You can compile a component [directly from the host project](../Project/compiler.md#compile-components) without having to open it separately, provided it is compliant with the [requirements](../Project/compiler.md#requirements). + + ### Search and replace @@ -206,7 +212,7 @@ By default, component classes cannot be called from the 4D Code Editor of the ho ### 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. +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 (except when the component is [created from the host](#default-namespace)): component classes are not available outside of the component context. ![](../assets/en/settings/namespace.png) @@ -237,6 +243,15 @@ 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. +#### Default namespace + +When a new component is [created from the host](#creating-components), a default namespace is automatically assigned to the component. + +The default namespace is the component's name, without characters that do not comply with [property naming rules](../Concepts/identifiers.md#object-properties), if any. For example, for a component named "My Component-2", the default namespace will be "MyComponent2". + + + + ### 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. @@ -250,6 +265,8 @@ $rect:=cs.eGeometry._Rectangle.new(10;20) > Non-hidden functions inside a hidden class appear as suggestions when you use code completion with a class that [inherits](../Concepts/classes.md#inheritance) from it. For example, if a component has a `Teacher` class that inherits from a `_Person` class, code completion for `Teacher` suggests non-hidden functions from `_Person`. + + ## Code completion for compiled components To make your component easier to use for developers, you can check the [**Generate syntax file for code completion when compiled** option in the General page](../settings/general.md#component-namespace-in-the-class-store) of the matrix project Settings. diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index 7a558454b21bf3..4794856b40c058 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -11,6 +11,7 @@ Read [**What’s new in 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Highlights - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- You can now [compile a component directly from the host](../Project/compiler.md#compile-components). - Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. - Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**Fixed bug list**](https://bugs.4d.fr/fixedbugslist?version=21_R5): list of all bugs that have been fixed in 4D 21 R5. diff --git a/docs/Project/compiler.md b/docs/Project/compiler.md index c3a8988fe39092..c115826c26e907 100644 --- a/docs/Project/compiler.md +++ b/docs/Project/compiler.md @@ -38,7 +38,70 @@ Use the **Previous Error** / **Next Error** commands of the **Method** menu to n The number of errors found during your first compilations may be daunting, but do not let this put you off. You will soon discover that they often spring from the same source, i.e., non-compliance with certain project conventions. The compiler always provides a [precise diagnosis](#error-file) of the errors in order to help you correct them. -> Compilation requires an appropriate license. Without this license, it is not possible to carry out a compilation (buttons are disabled). Nevertheless, it is still possible to check the syntax and generate Typing methods. +:::note + +Compilation requires an [appropriate license](../Admin/licenses.md). Without this license, it is not possible to carry out a compilation (buttons are disabled). Nevertheless, it is still possible to check the syntax and generate Typing methods. + +::: + +### Compile components + +

    History + +|Release|Changes| +|---|---| +|21 R5|Added| + +
    + +While developing your application, you can compile the components used by the host project directly from the host project, without having to open them separately. When the host project contains one or more *eligible* components (see [Requirements](#requirements) below), an additional menu is displayed in the Compiler window. This menu lets you select which project(s) you want to compile: + +- the host project only (default) +- the host project and all its eligible components +- a single eligible component among the list of all eligible components. + +![](../assets/en/Project/compile-component.png) + +:::note + +You can open the Compiler window from the **Methods>Component Methods** section of the Explorer: right-click on an eligible component name and select **Compiler...** from the contextuel menu. + +::: + +A list of components being compiled is displayed in the Compiler window. If an error is detected in a component, its compilation is stopped but the process continues for other components. + +- Components with at least one error can be unfolded to display the list of errors and appear **in bold**. +- Components with at least one warning can be unfolded to display the list of warnings. +- Components wihout errors cannot be unfolded. + + + + +#### Requirements + +To be eligible for compilation from the host project, a component must comply with the following requirements: + +- the component uses the [project architecture](../Project/architecture.md), +- the component's [interpreted code](../Concepts/interpreted.md) is available and the component is not [running in compiled mode](#run-compiled), +- the component uses [direct typing](#enabling-direct-typing) declarations. + +:::note + +The additional menu is not displayed if the project does not contain any eligible component. + +::: + +#### Compiler features & Settings + +All available features of the Compiler window are applied to the selected component(s): **Compile**, **Check syntax**, **Clear compiled code**. + +The [Settings](../settings/) cannot be edited when a component is selected (the button is dimmed). + +Each component's [settings](../settings/) are applied for the compilation, except the [error file and symbol file generation options](#compilation-options): settings of the host project override the component's options. When enabled, [error and warning file](#error-file) as well as [symbol file](#symbol-file) of each component are stored in the [**Logs** folder of the host project](../Project/architecture.md#logs), within a dedicated folder (the name of the folder is the component name). + +When you start a compilation or a syntax check, every processed project is listed in the compiler window. If errors or warnings are detected, they are displayed in hierarchical lists beneath the corresponding project. Projects that contain errors are displayed in **bold**: + +![](../assets/en/Project/compile-components-errors.png) ## Run Compiled diff --git a/docs/Project/components.md b/docs/Project/components.md index abcb8a60c5ad49..d1938e7cd0cd99 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). +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 proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). @@ -16,7 +16,7 @@ Once installed in your 4D environment, extensions are handled as **dependencies* ## Interpreted and compiled components -Components can be interpreted or [compiled](../Desktop/building.md). +Components can be interpreted or [compiled](./compiler.md#compile-components). - A 4D project running in interpreted mode can use either interpreted or compiled components. - A 4D project running in compiled mode cannot use interpreted components. In this case, only compiled components can be used. diff --git a/docs/assets/en/Develop/editable-component.png b/docs/assets/en/Develop/editable-component.png index ed546ea2c08ee6ebacf790e3d88f2e73e0988e9f..08c7f2e16442ee60d3cf0d54e86d88d598f9cd31 100644 GIT binary patch literal 17206 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 O{3yz*%2Y_1!2cJ@EFnh# literal 57867 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 diff --git a/docs/assets/en/Project/compile-component.png b/docs/assets/en/Project/compile-component.png new file mode 100644 index 0000000000000000000000000000000000000000..02684ee969a8be11fc20d68f5510f14c46a3e2fa GIT binary patch literal 15780 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 Date: Fri, 11 Sep 2026 17:12:58 +0200 Subject: [PATCH 41/60] Update SMTPTransporterClass.md --- docs/API/SMTPTransporterClass.md | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/docs/API/SMTPTransporterClass.md b/docs/API/SMTPTransporterClass.md index 9759864254f3c0..a0ff531d193e15 100644 --- a/docs/API/SMTPTransporterClass.md +++ b/docs/API/SMTPTransporterClass.md @@ -159,23 +159,6 @@ The `.certificatePassword` property contains - - - -## .send() - -
    History - -|Release|Changes| -|---|---| -|17 R5|Support of mime contents| -|17 R4|Added| - -
    - - - From 036cf6ba928df3de662e701b91aa7d64286223c1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 14 Sep 2026 10:07:13 +0200 Subject: [PATCH 42/60] New Crowdin updates (#3425) * updates.md Spanish * updates.md Japanese * develop-components.md French * updates.md French * components.md French * develop-components.md Spanish * components.md Spanish * develop-components.md Japanese * components.md Japanese * develop-components.md Portuguese, Brazilian * updates.md Portuguese, Brazilian * components.md Portuguese, Brazilian * smtptransporterclass.md French * compiler.md French * quotamanagerclass.md French * quotamanagerclass.md French * compile-component.png French * compile-components-errors.png French * compiler.md Spanish * compile-component.png Spanish * compile-components-errors.png Spanish * compiler.md Japanese * components.md Japanese * compile-component.png Japanese * compile-components-errors.png Japanese * compiler.md Portuguese, Brazilian * compile-component.png Portuguese, Brazilian * compile-components-errors.png Portuguese, Brazilian * smtptransporterclass.md Japanese * develop-components.md Spanish * overview.md Spanish * components.md Spanish * service.md Spanish * sso.md Spanish * vss.md Spanish * smtptransporterclass.md French * smtptransporterclass.md Spanish * compiler.md Spanish * smtptransporterclass.md Portuguese, Brazilian --- .../current/API/SMTPTransporterClass.md | 15 ----- .../current/Extensions/develop-components.md | 25 +++++-- .../current/Extensions/overview.md | 2 +- .../current/Notes/updates.md | 1 + .../current/Project/compiler.md | 62 +++++++++++++++++- .../current/Project/components.md | 14 ++-- .../assets/en/Project/compile-component.png | Bin 0 -> 15780 bytes .../en/Project/compile-components-errors.png | Bin 0 -> 20712 bytes .../current/server/service.md | 8 +-- .../current/server/sso.md | 30 ++++----- .../current/server/vss.md | 8 +-- .../current/API/QuotaManagerClass.md | 2 +- .../current/API/SMTPTransporterClass.md | 37 ++++------- .../current/Extensions/develop-components.md | 25 +++++-- .../current/Notes/updates.md | 1 + .../current/Project/compiler.md | 62 +++++++++++++++++- .../current/Project/components.md | 6 +- .../assets/en/Project/compile-component.png | Bin 0 -> 15780 bytes .../en/Project/compile-components-errors.png | Bin 0 -> 20712 bytes .../version-21-R4/API/QuotaManagerClass.md | 2 +- .../current/API/SMTPTransporterClass.md | 15 ----- .../current/Extensions/develop-components.md | 25 +++++-- .../current/Notes/updates.md | 1 + .../current/Project/compiler.md | 62 +++++++++++++++++- .../current/Project/components.md | 6 +- .../assets/en/Project/compile-component.png | Bin 0 -> 15780 bytes .../en/Project/compile-components-errors.png | Bin 0 -> 20712 bytes .../version-21/Project/components.md | 24 +++---- .../current/API/SMTPTransporterClass.md | 15 ----- .../current/Extensions/develop-components.md | 25 +++++-- .../current/Notes/updates.md | 1 + .../current/Project/compiler.md | 62 +++++++++++++++++- .../current/Project/components.md | 6 +- .../assets/en/Project/compile-component.png | Bin 0 -> 15780 bytes .../en/Project/compile-components-errors.png | Bin 0 -> 20712 bytes 35 files changed, 385 insertions(+), 157 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/compile-components-errors.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/compile-components-errors.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/compile-components-errors.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/compile-components-errors.png 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 735808b925147b..0b96e5f7c8b06c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -155,21 +155,6 @@ La propiedad `.certificatePassword` contiene - - - -## .send() - -
    Historia - -| Lanzamiento | Modificaciones | -| ----------- | -------------------------- | -| 17 R5 | Soporte de contenidos Mime | -| 17 R4 | Añadidos | - -
    - Para obtener información sobre los códigos de estado SMTP, por favor consulte [esta página](https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml). 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 3eb442e362f6ea..13ebca7dcf17d3 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 @@ -17,7 +17,7 @@ Puede desarrollar componentes 4D para sus propias necesidades y mantenerlos en p :::note -Puede [crear un componente directamente desde el proyecto local](#creating-components) sin necesidad de pasar por un proyecto matriz independiente +Puede [crear un componente directamente desde el proyecto local](#creating-components) sin necesidad de pasar por un proyecto matriz independiente. ::: @@ -33,13 +33,13 @@ La creación e instalación de los componentes 4D se realiza directamente desde :::note -El código de un componente interpretado puede [editarse directamente desde el proyecto local](#editing-components) si el contexto es compatible. +Interpreted component code can be [edited](#editing-components) and [compiled](../Project/compiler.md#compile-components) directly from the host project if the context is supported. ::: ## Creación y edición de componentes desde el host -En modo interpretado, el IDE 4D le permite crear y editar componentes directamente desde el proyecto local. Facilita el desarrollo y el ajuste de componentes en el contexto real de un proyecto local sin tener que abandonarlo o reiniciarlo. +In interpreted mode, the 4D IDE allows you to create, edit, and compile components directly from the host project. Facilita el desarrollo y el ajuste de componentes en el contexto real de un proyecto local sin tener que abandonarlo o reiniciarlo. ### Creación de componentes @@ -54,9 +54,10 @@ Esta acción abre un cuadro de diálogo de selección de carpeta en el que se el - Si decide almacenar el componente **junto al paquete del proyecto**, 4D lo añade al archivo [`dependencies.json`](../Project/components.md#dependenciesjson). - Si decide almacenar el componente **en otro lugar**, 4D lo añade al archivo [`dependencies.json`](../Project/components.md#dependenciesjson) y su ruta se añade al archivo [`environment4d.json`](../Project/components.md#environment4djson), utilizando una [ruta relativa o absoluta](../Project/components.md#relative-paths-vs-absolute-paths). Se utiliza una ruta relativa si el componente se encuentra a no más de dos niveles por encima como el archivo `environment4d.json`, o en sus subcarpetas. En caso contrario, se utiliza una ruta absoluta. -:::note +:::note Notas -No se puede almacenar un componente **en el paquete del proyecto** pero **fuera de la carpeta Components**. +- No se puede almacenar un componente **en el paquete del proyecto** pero **fuera de la carpeta Components**. +- When a component is created from the host, it is assigned a [default namespace](#default-namespace). ::: @@ -79,7 +80,7 @@ En este contexto, puede abrir, editar y guardar el código de su componente en e Las [clases expuestas del componente](#sharing-of-classes) y los [métodos compartidos](#sharing-of-project-methods) de su componente pueden editarse desde la pestaña **Métodos del componente** del Explorador. -Un icono específico indica que el componente contiene código compartido):
    +A specific icon indicates that the component contains shared code:
    ![](../assets/en/Develop/editable-component.png) Seleccione **Editar...** para abrir el código de su componente en el editor de código. Puede editarlo y guardarlo. @@ -114,6 +115,10 @@ Las funcionalidades estándar del IDE 4D están disponibles para el componente. - ejecutar métodos, - restaurar desde la papelera o vaciar la papelera. +### Compilación de componentes + +You can compile a component [directly from the host project](../Project/compiler.md#compile-components) without having to open it separately, provided it is compliant with the [requirements](../Project/compiler.md#requirements). + ### Buscar y reemplazar Puede utilizar las [**funciones de buscar y reemplazar**](../Project/search-replace.md) del proyecto anfitrión para buscar elementos dentro del código o de los formularios de sus componentes editables. El menú **Buscar en el proyecto** permite seleccionar uno o todos los componentes como objetivo de la búsqueda: @@ -195,7 +200,7 @@ Por defecto, las clases de los componentes no pueden ser llamadas desde el edito ### 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. +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. By default, the area is empty (except when the component is [created from the host](#default-namespace)): component classes are not available outside of the component context. ![](../assets/en/settings/namespace.png) @@ -226,6 +231,12 @@ 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. +#### Default namespace + +When a new component is [created from the host](#creating-components), a default namespace is automatically assigned to the component. + +The default namespace is the component's name, without characters that do not comply with [property naming rules](../Concepts/identifiers.md#object-properties), if any. For example, for a component named "My Component-2", the default namespace will be "MyComponent2". + ### 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. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md index c35d462d92a5d9..e85f66bf00a7f3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -11,7 +11,7 @@ La [arquitectura del proyecto] 4D (../Project/architecture.md) es abierta y pued - Los [**comandos SQL**](../commands/theme/SQL) permiten conectar y utilizar diversas fuentes de datos SQL. - El [**cliente HTTP integrado**](../API/HTTPRequestClass.md) puede solicitar cualquier servidor HTTP y procesar datos. - Las [**Áreas Web**](../FormObjects/webArea_overview.md) pueden dar acceso a páginas web o a diversos contenidos HTML dentro de sus formularios. -- [**Componentes**](Concepts/components.md). Los componentes están hechos de código 4D. 4D le propone un conjunto de componentes utilitarios (ver más abajo) que puede instalar y utilizar en función de sus necesidades. También puedes [desarrollar sus propios componentes 4D](develop-components.md), o utilizar componentes de terceros. Many developers from the 4D community have shared 4D components. Browse the [**4D Corner platform**](https://corner.4d.com/) to get a comprehensive list of published components. +- [**Componentes**](Concepts/components.md). Los componentes están hechos de código 4D. 4D le propone un conjunto de componentes utilitarios (ver más abajo) que puede instalar y utilizar en función de sus necesidades. También puedes [desarrollar sus propios componentes 4D](develop-components.md), o utilizar componentes de terceros. Muchos desarrolladores de la comunidad 4D han compartido componentes 4D. Browse the [**4D Corner platform**](https://corner.4d.com/) to get a comprehensive list of published components. - [**Plug-ins**](../Concepts/plug-ins.md). Los plug-ins pueden construirse utilizando cualquier lenguaje. Los plugins hacen cosas que 4D no hace de forma nativa (por ejemplo, una tecnología de plataforma específica), o que serían muy difíciles de escribir sólo con 4D. Como se describe en [esta página](develop-plug-ins.md), puede desarrollar sus propios plug-ins. Muchas funcionalidades están cubiertas por los plug-ins 4D existentes. Navegue por Github para tener una lista de plugins 4D públicos reunidos con el tema [`4d-plugin`](https://github.com/topics/4d-plugin). ## Componentes desarrollados por 4D diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md index 84b26a02c23355..983dac5bff581d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,6 +10,7 @@ Lea [**Las novedades en 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Lo más destacado - Soporte de la firma de correo electrónico de S/MIME a través de las nuevas propiedades de clase [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md): [`.certificate`](../API/SMTPTransporterClass.md#certificate) o [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (suministro del certificado) y [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- You can now [compile a component directly from the host](../Project/compiler.md#compile-components). - Soporte de formularios lista en la [renderización **Fluent UI**](../FormEditor/forms.md#fluent-ui-rendering) en Windows. - Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos los bugs que se han corregido en 4D 21 R5. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md index c77077f485b46f..aaf2e89164deb9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -37,7 +37,67 @@ Utilice los comandos **Error anterior** / **Error siguiente** del menú **Métod El número de errores encontrados durante las primeras compilaciones puede ser desalentador, pero no deje que esto lo desanime. Pronto descubrirá que a menudo proceden de la misma fuente, es decir, el incumplimiento de ciertas convenciones del proyecto. El compilador siempre ofrece un [diagnóstico preciso](#error-file) de los errores para ayudarle a corregirlos. -> La compilación requiere una licencia apropiada. Sin esta licencia, no es posible llevar a cabo una compilación (los botones están desactivados). Sin embargo, aún es posible comprobar la sintaxis y generar métodos de digitación. +:::note + +La compilación requiere una [licencia apropiada](../Admin/licenses.md). Sin esta licencia, no es posible llevar a cabo una compilación (los botones están desactivados). Sin embargo, aún es posible comprobar la sintaxis y generar métodos de digitación. + +::: + +### Compilar componentes + +
    Historia + +| Lanzamiento | Modificaciones | +| ----------- | -------------- | +| 21 R5 | Añadidos | + +
    + +While developing your application, you can compile the components used by the host project directly from the host project, without having to open them separately. When the host project contains one or more *eligible* components (see [Requirements](#requirements) below), an additional menu is displayed in the Compiler window. Este menú le permite seleccionar el/los proyecto(s) a compilar: + +- solo el proyecto anfitrión (por defecto) +- the host project and all its eligible components +- un único componente elegible de la lista de todos los componentes elegibles. + +![](../assets/en/Project/compile-component.png) + +:::note + +You can open the Compiler window from the **Methods>Component Methods** section of the Explorer: right-click on an eligible component name and select **Compiler...** from the contextuel menu. + +::: + +En la ventana del compilador se muestra una lista de componentes que se están compilando. If an error is detected in a component, its compilation is stopped but the process continues for other components. + +- Los componentes que contengan al menos un error se pueden desplegar para mostrar la lista de errores y aparecen **en negrita**. +- Components with at least one warning can be unfolded to display the list of warnings. +- Components wihout errors cannot be unfolded. + +#### Requisitos + +To be eligible for compilation from the host project, a component must comply with the following requirements: + +- el componente utiliza la [arquitectura del proyecto](../Project/architecture.md), +- the component's [interpreted code](../Concepts/interpreted.md) is available and the component is not [running in compiled mode](#run-compiled), +- el componente utiliza declaraciones de [tipado directo](#enabling-direct-typing). + +:::note + +The additional menu is not displayed if the project does not contain any eligible component. + +::: + +#### Propiedades y ajustes del compilador + +All available features of the Compiler window are applied to the selected component(s): **Compile**, **Check syntax**, **Clear compiled code**. + +The [Settings](../settings/) cannot be edited when a component is selected (the button is dimmed). + +Each component's [settings](../settings/) are applied for the compilation, except the [error file and symbol file generation options](#compilation-options): settings of the host project override the component's options. When enabled, [error and warning file](#error-file) as well as [symbol file](#symbol-file) of each component are stored in the [**Logs** folder of the host project](../Project/architecture.md#logs), within a dedicated folder (the name of the folder is the component name). + +When you start a compilation or a syntax check, every processed project is listed in the compiler window. If errors or warnings are detected, they are displayed in hierarchical lists beneath the corresponding project. Projects that contain errors are displayed in **bold**: + +![](../assets/en/Project/compile-components-errors.png) ## Ejecutar la compilación 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 25acf1c87cd2a7..c0e7cc60bab705 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -3,7 +3,7 @@ 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). Los componentes están hechos de código 4D, mientras que los plug-ins pueden [construirse utilizando cualquier lenguaje](../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). You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). @@ -11,7 +11,7 @@ Una vez instalados en su entorno 4D, las extensiones se manejan como **dependenc ## Componentes interpretados y compilados -Los componentes pueden ser interpretados o [compilados](../Desktop/building.md). +Los componentes pueden ser interpretados o [compilados](./compiler.md#compile-components). - 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. @@ -562,7 +562,7 @@ En el cuadro de diálogo "Editar la dependencia", edite el menú Regla de depend Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de actualización automática y desea bloquear una dependencia a un número de versión específico. -### Using 4D Corner +### Uso de 4D Corner The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive list of ready-to-use 4D components, proposed from the 4D company or from the 4D community. You can browse or search the list to find any component meeting to your needs. @@ -570,7 +570,7 @@ The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive li You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: -![4d-corner-access](../assets/en/Project/4d-corner.png) +![4d-corner-access](../assets/en/Project/4d-corner-access.png) To install a component from the 4D Corner platform: @@ -578,11 +578,11 @@ To install a component from the 4D Corner platform: ![copy button](../assets/en/Project/4d-corner-copy.png) -2. Open the Dependency manager and click on the **[+]** button. +2. Abra el Gestor de dependencias y haga clic en el botón **[+]**. -The dependency link is automatically added in the address area: +El enlace de dependencia se añade automáticamente en el área de dirección: -![add dependency](../assets/en/Project/4d-corner-add.png) +![añadir dependencia](../assets/en/Project/4d-corner-add.png) 3. [Configure the dependency reference](#adding-a-github-or-gitlab-dependency) and click **Add**. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png new file mode 100644 index 0000000000000000000000000000000000000000..02684ee969a8be11fc20d68f5510f14c46a3e2fa GIT binary patch literal 15780 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 System and Security > Administrative Tools > Services**. In the **Services** list, right-click on **4D Server**, choose the **Properties** option, then go to the **Log On** tab and specify the account under which the server must run (setting used at next startup). +When registered as service, by default 4D Server is configured to use the "Local System Account". You must change this account and select a valid user account having the access rights and settings required to use your application. In particular, if you want to be able to print, you must open the session with a user account which has default print settings. El problema es similar si desea acceder a los volúmenes red. To change the account, go to **Control Panel > System and Security > Administrative Tools > Services**. In the **Services** list, right-click on **4D Server**, choose the **Properties** option, then go to the **Log On** tab and specify the account under which the server must run (setting used at next startup). ::: -To unregister your application, select **Unregister Current Application** from the 4D Server **File** menu. This command is dimmed if the project is not registered as a service. +To unregister your application, select **Unregister Current Application** from the 4D Server **File** menu. Este comando se atenúa si el proyecto no está registrado como servicio. -To unregister all 4D Server databases at once, select **Unregister All Server Services** from the 4D Server **File** menu. This command is dimmed if no 4D Server service is enabled. +To unregister all 4D Server databases at once, select **Unregister All Server Services** from the 4D Server **File** menu. Este comando se atenúa si no hay ningún servicio 4D Server activado. -You cannot change the service registration status of 4D Server from within 4D Server, if the application has been launched as a service on start-up. En este caso, los tres elementos del menú están desactivados. To stop the service, use the **Services** control panel. +You cannot change the service registration status of 4D Server from within 4D Server, if the application has been launched as a service on start-up. En este caso, los tres elementos del menú están desactivados. Para detener el servicio, utilice el panel de control **Servicios**. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md index ccf5433ae5070f..5cb991866c8a35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md @@ -16,13 +16,13 @@ La funcionalidad SSO está disponible: ## Activar la funcionalidad SSO -By default, the SSO feature is not enabled in 4D Server. To benefit from this feature, you need to set the **Authentication of user with domain server** option on the [Client-Server/Network options page](../settings/client-server.md#authentication-of-user-with-domain-server) of the Settings dialog box of 4D Server: +De forma predeterminada, la función SSO no está activa en 4D Server. To benefit from this feature, you need to set the **Authentication of user with domain server** option on the [Client-Server/Network options page](../settings/client-server.md#authentication-of-user-with-domain-server) of the Settings dialog box of 4D Server: ![](../assets/en/server/sso.png) Al marcar esta opción, 4D se conecta de forma transparente al directorio Active del servidor de dominio Windows y obtiene los tokens de autenticación disponibles. -This option offers standard authentication through the NTLM protocol. 4D es compatible con los protocolos NTLM y Kerberos. The protocol used is automatically selected by 4D depending on the [current configuration](#requirements-for-sso). If you want to use the Kerberos protocol, you need to fill in the additional SPN field as well (see below). +Esta opción permite efectuar una autenticación estándar a través del protocolo NTLM. 4D es compatible con los protocolos NTLM y Kerberos. The protocol used is automatically selected by 4D depending on the [current configuration](#requirements-for-sso). If you want to use the Kerberos protocol, you need to fill in the additional SPN field as well (see below). ### Utilizar Kerberos @@ -30,12 +30,12 @@ If you want to use Kerberos as your authentication protocol, you also need to fi ![](../assets/en/server/sso-2.png) -This option declares the SPN as set in the Active Directory configuration. A service principal name is a unique identifier of a service instance. SPNs are used by Kerberos authentication to associate a service instance with a service logon account. This allows a client application to request that the service authenticates an account even if the client does not have the account name. For more information, please refer to the [SPN page on the MSDN web site](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). +Esta opción declara el SPN tal y como se configuró en Active Directory. Un nombre principal de servicio es un identificador único de una instancia de servicio. SPNs are used by Kerberos authentication to associate a service instance with a service logon account. This allows a client application to request that the service authenticates an account even if the client does not have the account name. For more information, please refer to the [SPN page on the MSDN web site](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). El identificador SPN debe respetar este formato: -- "ServiceName/FQDN_user" if the SPN is a computer attribute -- "ServiceName/FQDN_computer" if the SPN is a user attribute +- "ServiceName/FQDN_user" si el SPN es un atributo de máquina +- "ServiceName/FQDN_computer" si el SPN es un atributo de usuario Donde: @@ -53,7 +53,7 @@ When SSO features are enabled, you can rely on user authentication based on Wind Keep in mind that the SSO feature only provides you with an authenticated login; it is up to you to pass this login to your standard 4D login method. When a 4D remote application tries to connect to the server, you have to call the [`Current client authentication`](../commands/current-client-authentication) command, which will return the user login, as defined in the Active Directory. You can then pass this login to your own identification system (using the built-in user and groups, the LDAP commands, or any custom mechanism) to open the appropriate session for the remote user in your 4D application. -This principle is illustrated in the following graphic: +Este principio se ilustra en el siguiente gráfico: ```mermaid flowchart LR @@ -95,8 +95,8 @@ $login:=Current client authentication($domain;$protocol) Donde: -- *$login* is the ID used by the client to log into the Active Directory (text value). You need to use this value to identify the user within your project. If the user is not correcty authenticated, an empty string is returned and no error is returned. -- *$domain* and *$protocol* are optional text parameters. They are filled by the command and allow you to accept or reject connections depending on these values: +- *$login* is the ID used by the client to log into the Active Directory (text value). Debe utilizar este valor para identificar al usuario dentro de su proyecto. If the user is not correcty authenticated, an empty string is returned and no error is returned. +- *$domain* y *$protocol* son parámetros texto opcionales. They are filled by the command and allow you to accept or reject connections depending on these values: - *$domain* es el nombre de dominio del Active Directory - *$protocol* is the name of the protocol used by Windows to authenticate the user. @@ -106,13 +106,13 @@ Donde: The following table provides the requirements for using NTLM or Kerberos authentication: -| | NTLM | Kerberos | -| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| 4D Server y 4D Remote se encuentran en máquinas diferentes | sí | sí | -| El usuario 4D Server está en el dominio | sí | sí | -| El 4D remoto está en el mismo AD que el usuario de 4D Server | yes o no(\*) | sí | -| El SPN se indica en 4D Server | no | yes(\*\*) | -| Information returned by Current client authentication if requirements are respected | *login*=expected login, *domain*=expected domain, *protocol*="NTLM" | *login*=expected login, *domain*=expected domain, *protocol*="Kerberos" | +| | NTLM | Kerberos | +| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| 4D Server y 4D Remote se encuentran en máquinas diferentes | sí | sí | +| El usuario 4D Server está en el dominio | sí | sí | +| El 4D remoto está en el mismo AD que el usuario de 4D Server | yes o no(\*) | sí | +| El SPN se indica en 4D Server | no | yes(\*\*) | +| Information returned by Current client authentication if requirements are respected | *login*=inicio de sesión esperado, *domain*=dominio esperado, *protocol*="NTLM" | *login*=inicio de sesión esperado, *domain*=dominio esperado, *protocol*="Kerberos" | (\*) The following specific configuration is supported: the 4D remote user is a local account on a machine that belongs to the same AD as 4D Server. In this case, the domain parameter is filled with the 4D Server machine name. Note that the support depends on actual user settings: if not available, empty strings are returned. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md index 9a56f4f1987764..a38af9b91a714b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md @@ -9,7 +9,7 @@ VSS is provided by Windows Server to allow backup applications to capture snapsh ## Requisitos del sistema del host (hipervisor) -On the host side, the following VSS requestors are supported: +Del lado del equipo anfitrión, se admiten los siguientes solicitantes VSS: - VMware ESXI en toda plataforma - Microsoft Hyper-V Server 2016 @@ -20,9 +20,9 @@ The VSS feature is automatically installed/updated when the 4D Server applicatio Generalmente, el escenario inicial será: -1. 4D Server or merged Application Server is launched for the first time. +1. Inicie 4D Server o la aplicación servidor fusionada por primera vez. 2. If not launched with administration privileges, a warning icon is displayed. -3. Quit and relaunch 4D Server or merged Application Server as administrator. The 4D VSS service is then automatically executed and registered in VSS. +3. Salga y reinicie 4D Server o la aplicación servidor fusionada como administrador. El servicio 4D VSS se ejecuta y registra automáticamente en VSS. 4. (Optional) Restart 4D Server or merged Application Server using standard privileges. The VSS writer executable is started as a service with the name "VSS \". One VSS service will run for all 4D Server instances. One VSS service will run for each different engined application (different name) running on the machine (see below). @@ -47,4 +47,4 @@ The 4D VSS management is handled through a separate application since this progr The 4D VSS writer executable is automatically installed by 4D Server at first launch. -The 4D VSS Writer service handles and transfers VSS messages to 4D Server. These messages are logged in the 4D Server diagnostic log, and in the Windows event viewer. \ No newline at end of file +El servicio 4D VSS Writer gestiona y transmite las solicitudes VSS a 4D Server. These messages are logged in the 4D Server diagnostic log, and in the Windows event viewer. \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md index e222ecfb3aa304..a181a611ce9431 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -112,7 +112,7 @@ Session.quotas.maxEntitySetTimeout:=2400 #### Description -The `.nbEntitySets` property contains the maximum number of REST entity sets allowed in memory for the current session. +La propriété `.nbEntitySets` contient le nombre maximal d'entity sets REST autorisés en mémoire pour la session courante. Par défaut, il n'y a pas de limite pour les entity sets [stockés en mémoire par les requêtes REST](../REST/$info.md) (la valeur est 0). Vous pouvez définir une limite afin de contrôler la charge utile du serveur pour une session spécifique. 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 cff6f0985e915a..5595b04cfa1566 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -68,13 +68,13 @@ La fonction `4D.SMTPTransporter.new()` the certificate used to sign emails using S/MIME (Secure/MIME), provided as a [`4D.File`](./FileClass.md) object or a Blob. This certificate contains the private key. +La propriété `.certificate` contient le certificat utilisé pour signer les e-mails via S/MIME (Secure/MIME), fourni sous la forme d'un objet [`4D.File`](./FileClass.md) ou d'un Blob. Ce certificat contient la clé privée. -If your certificate is already registered in your Certificate store (*keychain*), you can use [`.certificateName`](#certificatename) instead of this property. Note that you cannot use both properties simultaneously, otherwise an error is returned. +Si votre certificat est déjà enregistré dans votre magasin de certificats (*keychain*), vous pouvez utiliser [`.certificateName`](#certificatename) à la place de cette propriété. Notez que vous ne pouvez pas utiliser les deux propriétés simultanément, sinon une erreur est retournée. :::tip Article(s) de blog sur le sujet -[Signing emails with S/MIME and SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) +[Signer des e-mails avec S/MIME et SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) ::: @@ -85,17 +85,17 @@ var $transporter : 4D.SMTPTransporter var $options ; $result : Object $options:=New object -//Enter the information for the SMTP server +//Saisir les informations pour le serveur SMTP -//Enable S/MIME signing -//Provide certificate file +//Activer la signature S/MIME +//Fournir le fichier de certificat $options.certificate:=File("myCertificateFile.p12") $options.certificatePassword:="myGreatPW123" $transporter:=4D.SMTPTransporter.new($options) $email:=New object -//Fill the email content +//Remplir le contenu du mail $result:=$transporter.send($email) ``` @@ -119,13 +119,13 @@ $result:=$transporter.send($email) #### Description -The `.certificateName` property contains the name of the certificate used to sign emails using S/MIME (Secure/MIME) as it is registered in the system Certificate store (*keychain*). This certificate contains the private key. +La propriété `.certificateName` contient le nom du certificat utilisé pour signer les e-mails via S/MIME (Secure/MIME), tel qu'il est enregistré dans le magasin de certificats du système (*keychain*). Ce certificat contient la clé privée. -The certificate can also be provided directly as a file or blob using the [`.certificate`](#certificate) property. Note that you cannot use both properties simultaneously, otherwise an error is returned. +Le certificat peut également être fourni directement sous forme de fichier ou de blob à l'aide de la propriété [`.certificate`](#certificate). Notez que vous ne pouvez pas utiliser les deux propriétés simultanément, sinon une erreur est retournée. :::tip Article(s) de blog sur le sujet -[Signing emails with S/MIME and SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) +[Signer des e-mails avec S/MIME et SMTPTransporter](https://blog.4d.com/smtptransporter-signing-emails-with-s-mime) ::: @@ -148,28 +148,13 @@ The certificate can also be provided directly as a file or blob using the [`.cer #### Description -The `.certificatePassword` property contains the password of the certificate used to sign emails, if required. An empty string is used if no password is required. +La propriété `.certificatePassword` contient le mot de passe du certificat utilisé pour signer les e-mails, s'il est requis. Une chaîne vide est utilisée si aucun mot de passe n'est requis. #### Voir également [.certificate](#certificate) [.certificateName](#certificatename) - - - - -## .send() - -
    Historique - -| Release | Modifications | -| ------- | --------------------------------- | -| 17 R5 | Prise en charge des contenus Mime | -| 17 R4 | Ajout | - -
    - Pour une description des codes de statut SMTP, veuillez vous reporter à [cette page](https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml). 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 3922b43fcba9e5..2df5f0e192e783 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 @@ -17,7 +17,7 @@ Vous pouvez développer des composants 4D pour vos propres besoins et les garder :::note -Vous pouvez [créer un composant directement à partir du projet hôte](#creating-components) sans devoir passer par un projet matrice distinct. +You can [create a component directly from the host](#creating-components) project without needing to go through a separate matrix project. ::: @@ -33,13 +33,13 @@ La création et l’installation des composants 4D s’effectuent directement de :::note -Le code d'un composant interprété peut être [modifié directement à partir du projet hôte](#editing-components) si le contexte est pris en charge. +Interpreted component code can be [edited](#editing-components) and [compiled](../Project/compiler.md#compile-components) directly from the host project if the context is supported. ::: ## Création et modification de composants à partir de l'hôte -En mode interprété, l'IDE 4D vous permet de créer et de modifier des composants directement à partir du projet hôte. Cela facilite le développement et la mise au point des composants dans le contexte réel d'un projet hôte, sans avoir à quitter ou à redémarrer. +In interpreted mode, the 4D IDE allows you to create, edit, and compile components directly from the host project. Cela facilite le développement et la mise au point des composants dans le contexte réel d'un projet hôte, sans avoir à quitter ou à redémarrer. ### Création de composants @@ -54,9 +54,10 @@ Cette action ouvre une boîte de dialogue de sélection de dossier dans laquelle - Si vous décidez de stocker le composant **à côté du dossier racine du projet**, 4D l'ajoute au fichier [`dependencies.json`](../Project/components.md#dependenciesjson). - Si vous décidez de stocker le composant **ailleurs**, 4D l'ajoute au fichier [`dependencies.json`](../Project/components.md#dependenciesjson) et son chemin est ajouté au fichier [`environment4d.json`](../Project/components.md#environment4djson), en utilisant un [chemin relatif ou absolu](../Project/components.md#relative-paths-vs-absolute-paths). Un chemin relatif est utilisé si le composant est situé au maximum deux niveaux au-dessus du fichier `environment4d.json`, ou dans ses sous-dossiers. Sinon, un chemin absolu est utilisé. -:::note +:::note Notes -Vous ne pouvez pas stocker un composant **dans le dossier racine du projet**, **en-dehors du dossier Components**. +- Vous ne pouvez pas stocker un composant **dans le dossier racine du projet**, **en-dehors du dossier Components**. +- When a component is created from the host, it is assigned a [default namespace](#default-namespace). ::: @@ -79,7 +80,7 @@ Dans ce contexte, vous pouvez ouvrir, modifier et sauvegarder le code de vos com Les [classes exposées](#sharing-of-classes) et les [méthodes partagées](#sharing-of-project-methods) de vos composants peuvent être modifiées à partir de l'onglet **Méthodes composant** de l'Explorateur. -Une icône spécifique indique que le composant contient du code partagé) :
    +A specific icon indicates that the component contains shared code:
    ![](../assets/en/Develop/editable-component.png) Sélectionnez **Modifier...** pour ouvrir le code de votre composant dans l'éditeur de code. Vous pouvez le modifier et le sauvegarder. @@ -114,6 +115,10 @@ Les fonctionnalités standard de l'IDE 4D sont disponibles pour le composant. Vo - exécuter des méthodes, - restaurer à partir de la corbeille ou vider la corbeille. +### Compiling components + +You can compile a component [directly from the host project](../Project/compiler.md#compile-components) without having to open it separately, provided it is compliant with the [requirements](../Project/compiler.md#requirements). + ### Rechercher et Remplacer Vous pouvez utiliser les [**fonctions de recherche et de remplacement**](../Project/search-replace.md) du projet hôte pour rechercher des éléments dans le code ou les formulaires de vos composants modifiables. Le menu **Chercher dans le projet** vous permet de sélectionner un ou tous les composant(s) comme cible de la recherche : @@ -195,7 +200,7 @@ Par défaut, les classes de composants ne peuvent pas être appelées à partir ### 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. +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. By default, the area is empty (except when the component is [created from the host](#default-namespace)): component classes are not available outside of the component context. ![](../assets/en/settings/namespace.png) @@ -226,6 +231,12 @@ 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. +#### Default namespace + +When a new component is [created from the host](#creating-components), a default namespace is automatically assigned to the component. + +The default namespace is the component's name, without characters that do not comply with [property naming rules](../Concepts/identifiers.md#object-properties), if any. For example, for a component named "My Component-2", the default namespace will be "MyComponent2". + ### 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. 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 3a5b52eced5372..55d9d039249e5d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,6 +10,7 @@ Read [**What’s new in 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Points forts - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- You can now [compile a component directly from the host](../Project/compiler.md#compile-components). - Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. - Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=21_R5) : liste de tous les bugs qui ont été corrigés dans 4D 21 R5. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md index 6ee86ff9e8c0b5..52c70b806f48a6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -37,7 +37,67 @@ Utilisez les commandes **Erreur précédente** / **Erreur suivante** du menu **M Le nombre d'erreurs trouvées lors de vos premières compilations peut être déconcertant, mais ne vous laissez pas décourager. Vous découvrirez rapidement qu'elles proviennent souvent de la même source, à savoir la non-conformité avec certaines conventions du projet. Le compilateur fournit toujours un [diagnostic précis](#error-file) des erreurs afin de vous aider à les corriger. -> La compilation nécessite une licence appropriée. Sans cette licence, il n'est pas possible d'effectuer une compilation (les boutons sont désactivés). Néanmoins, il est toujours possible de vérifier la syntaxe et de générer des méthodes de typage. +:::note + +Compilation requires an [appropriate license](../Admin/licenses.md). Sans cette licence, il n'est pas possible d'effectuer une compilation (les boutons sont désactivés). Néanmoins, il est toujours possible de vérifier la syntaxe et de générer des méthodes de typage. + +::: + +### Compile components + +
    Historique + +| Release | Modifications | +| ------- | ------------- | +| 21 R5 | Ajout | + +
    + +While developing your application, you can compile the components used by the host project directly from the host project, without having to open them separately. When the host project contains one or more *eligible* components (see [Requirements](#requirements) below), an additional menu is displayed in the Compiler window. This menu lets you select which project(s) you want to compile: + +- the host project only (default) +- the host project and all its eligible components +- a single eligible component among the list of all eligible components. + +![](../assets/en/Project/compile-component.png) + +:::note + +You can open the Compiler window from the **Methods>Component Methods** section of the Explorer: right-click on an eligible component name and select **Compiler...** from the contextuel menu. + +::: + +A list of components being compiled is displayed in the Compiler window. If an error is detected in a component, its compilation is stopped but the process continues for other components. + +- Components with at least one error can be unfolded to display the list of errors and appear **in bold**. +- Components with at least one warning can be unfolded to display the list of warnings. +- Components wihout errors cannot be unfolded. + +#### Conditions requises + +To be eligible for compilation from the host project, a component must comply with the following requirements: + +- the component uses the [project architecture](../Project/architecture.md), +- the component's [interpreted code](../Concepts/interpreted.md) is available and the component is not [running in compiled mode](#run-compiled), +- the component uses [direct typing](#enabling-direct-typing) declarations. + +:::note + +The additional menu is not displayed if the project does not contain any eligible component. + +::: + +#### Compiler features & Settings + +All available features of the Compiler window are applied to the selected component(s): **Compile**, **Check syntax**, **Clear compiled code**. + +The [Settings](../settings/) cannot be edited when a component is selected (the button is dimmed). + +Each component's [settings](../settings/) are applied for the compilation, except the [error file and symbol file generation options](#compilation-options): settings of the host project override the component's options. When enabled, [error and warning file](#error-file) as well as [symbol file](#symbol-file) of each component are stored in the [**Logs** folder of the host project](../Project/architecture.md#logs), within a dedicated folder (the name of the folder is the component name). + +When you start a compilation or a syntax check, every processed project is listed in the compiler window. If errors or warnings are detected, they are displayed in hierarchical lists beneath the corresponding project. Projects that contain errors are displayed in **bold**: + +![](../assets/en/Project/compile-components-errors.png) ## Exécuter en compilé 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 2a444feb62fadf..4b089894256d2c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/components.md @@ -3,7 +3,7 @@ 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). 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). +[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). You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). @@ -11,7 +11,7 @@ Une fois installées dans votre environnement 4D, les extensions sont traitées ## Composants interprétés et compilés -Les composants peuvent être interprétés ou [compilés](../Desktop/building.md). +Les composants peuvent être interprétés ou [compilés](./compiler.md#compile-components). - 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. @@ -570,7 +570,7 @@ The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive li You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: -![4d-corner-access](../assets/en/Project/4d-corner.png) +![4d-corner-access](../assets/en/Project/4d-corner-access.png) To install a component from the 4D Corner platform: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png new file mode 100644 index 0000000000000000000000000000000000000000..02684ee969a8be11fc20d68f5510f14c46a3e2fa GIT binary patch literal 15780 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 maximum number of REST entity sets allowed in memory for the current session. +La propriété `.nbEntitySets` contient le nombre maximal d'entity sets REST autorisés en mémoire pour la session courante. Par défaut, il n'y a pas de limite pour les entity sets [stockés en mémoire par les requêtes REST](../REST/$info.md) (la valeur est 0). Vous pouvez définir une limite afin de contrôler la charge utile du serveur pour une session spécifique. 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 352edbb2687427..fd44294aebf264 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -155,21 +155,6 @@ $result:=$transporter.send($email) [.certificate](#certificate) [.certificateName](#certificatename) - - - - -## .send() - -
    履歴 - -| リリース | 内容 | -| ----- | -------------- | -| 17 R5 | MIMEコンテンツをサポート | -| 17 R4 | 追加 | - -
    - SMTPステータスコードについての詳細は [こちらのページ](https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml) を参照ください。 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 bb0b475acaa2dd..7b0936e9c1e24b 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 @@ -17,7 +17,7 @@ title: コンポーネントの開発 :::note -個別にマトリックスプロジェクトを作成することなく、[ホストプロジェクトから直接コンポーネントを作成する](#コンポーネントの作成) ことができます。 +You can [create a component directly from the host](#creating-components) project without needing to go through a separate matrix project. ::: @@ -33,13 +33,13 @@ title: コンポーネントの開発 :::note -コンテキストがサポートされていれば、インタープリター版のコンポーネントのコードは[ホストプロジェクトから直接編集可能です](#コンポーネントの編集)。 +Interpreted component code can be [edited](#editing-components) and [compiled](../Project/compiler.md#compile-components) directly from the host project if the context is supported. ::: ## ホストからのコンポーネント作成と編集 -インタープリターモードでは、4D IDE を使用することでホストプロジェクトからコンポーネントを直接作成および編集することができます。 これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 +In interpreted mode, the 4D IDE allows you to create, edit, and compile components directly from the host project. これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 ### コンポーネントの作成 @@ -54,9 +54,10 @@ title: コンポーネントの開発 - コンポーネントを**プロジェクトパッケージの隣** に保存することを選択した場合、4D はそれを[`dependencies.json`](../Project/components.md#dependenciesjson) ファイルに追加します。 - コンポーネントを**それ以外** の場所に保存することを選択した場合、4D はそれを[`dependencies.json`](../Project/components.md#dependenciesjson) ファイルに追加し、そのパスが[相対または絶対パス](../Project/components.md#相対パスvs絶対パス)を使用して[`environment4d.json`](../Project/components.md#environment4djson) ファイルへと追加されます。 相対パスは、`environment4d.json` ファイルから見てコンポーネントが上に2階層以内、あるいはそのサブフォルダー内に保存されている場合に使用されます。 それ以外の場合には絶対パスが使用されます。 -:::note +:::note 注記 -コンポーネントは、**プロジェクトパッケージ内** で **Components フォルダーの外** に保存することはできません。 +- コンポーネントは、**プロジェクトパッケージ内** で **Components フォルダーの外** に保存することはできません。 +- When a component is created from the host, it is assigned a [default namespace](#default-namespace). ::: @@ -79,7 +80,7 @@ title: コンポーネントの開発 コンポーネントの[公開されたコンポーネントクラス](#クラスの共有) および [共有されたメソッド](#プロジェクトメソッドの共有) はエクスプローラーの**コンポーネントメソッド** タブから編集することができます。 -エクスプローラーでは、コンポーネントに共有されたコードが含まれていることを表す特定のアイコンが表示されます:
    +A specific icon indicates that the component contains shared code:
    ![](../assets/en/Develop/editable-component.png) **編集...** を選択するとコードエディターでコンポーネントのコードが開きます。 そこで編集し保存することができます。 @@ -114,6 +115,10 @@ title: コンポーネントの開発 - メソッドの実行 - ゴミ箱からの復元、あるいはゴミ箱を空にする。 +### Compiling components + +You can compile a component [directly from the host project](../Project/compiler.md#compile-components) without having to open it separately, provided it is compliant with the [requirements](../Project/compiler.md#requirements). + ### 検索と置換 ホストプロジェクトの[**検索と置換** 機能](../Project/search-replace.md) を使用して、編集可能なコンポーネントのコードやフォーム内の要素を検索することができます。 **プロジェクト内を検索** メニューを使用することで、ひとつまたは全てのコンポーネントを検索ターゲットとして選択することができます: @@ -195,7 +200,7 @@ EXECUTE METHOD($param) ### コンポーネント名前空間の宣言 -ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開するには、マトリクスプロジェクトの設定の [一般ページにある **クラスストア内でのコンポーネント名前空間** オプション](../settings/general.md#クラスストア内でのコンポーネント名前空間) に値を入力します。 デフォルトでは、このエリアは空です。 つまり、コンポーネントのクラスはコンポーネント外で利用できません。 +ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開するには、マトリクスプロジェクトの設定の [一般ページにある **クラスストア内でのコンポーネント名前空間** オプション](../settings/general.md#クラスストア内でのコンポーネント名前空間) に値を入力します。 By default, the area is empty (except when the component is [created from the host](#default-namespace)): component classes are not available outside of the component context. ![](../assets/en/settings/namespace.png) @@ -226,6 +231,12 @@ $area:=$rect.getArea() コンポーネントの ORDAクラスは、ホストプロジェクトでは使用できません。 たとえば、コンポーネントに Employees というデータクラスがある場合、ホストプロジェクトで "cs.Mycomponent.Employee" クラスを使用することはできません。 +#### Default namespace + +When a new component is [created from the host](#creating-components), a default namespace is automatically assigned to the component. + +The default namespace is the component's name, without characters that do not comply with [property naming rules](../Concepts/identifiers.md#object-properties), if any. For example, for a component named "My Component-2", the default namespace will be "MyComponent2". + ### 非表示クラス アンダースコア ("_") を名前の前に付けることで、コンポーネントのクラスや関数を非表示にすることができます。 [コンポーネント名前空間が定義されている](#コンポーネント名前空間の宣言) 場合、非表示のクラスや関数はコード補完の際に提案されません。 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 a7b71cc3369ee1..7203df16af638a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,6 +10,7 @@ title: リリースノート #### ハイライト - [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) クラスの新しいクラスプロパティを使用したS/MIME Eメール署名のサポート: [`.certificate`](../API/SMTPTransporterClass.md#certificate) または [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (証明書の提供)、および[`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword)。 +- You can now [compile a component directly from the host](../Project/compiler.md#compile-components). - Windows 上での [**fluent UI** レンダリング](../FormEditor/forms.md#fluent-ui-レンダリング) でのリストフォームのサポート。 - Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21_R5): 4D 21 R5 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r5/))。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md index 3677e59d350e4a..bc878fa5bc2f34 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -37,7 +37,67 @@ title: コンパイル 初めてのコンパイルで検出されるエラーの数に辟易するかもしれませんが、気にすることはありません。 ほどなく、これらのエラーが同じ原因によるものであることに気づくでしょう。たとえば、特定のプロジェクト規約に対する違反などです。 コンパイラーは、エラーの訂正に役立つよう [正確なエラー診断](#エラーファイル) を提供します。 -> コンパイルには、適切なライセンスが必要です。 ライセンスがない場合、コンパイルを実行することはできません (ボタンが無効になります)。 その場合でも、シンタックスチェックと変数定義メソッドの生成はおこなうことができます。 +:::note + +Compilation requires an [appropriate license](../Admin/licenses.md). ライセンスがない場合、コンパイルを実行することはできません (ボタンが無効になります)。 その場合でも、シンタックスチェックと変数定義メソッドの生成はおこなうことができます。 + +::: + +### Compile components + +
    履歴 + +| リリース | 内容 | +| ----- | -- | +| 21 R5 | 追加 | + +
    + +While developing your application, you can compile the components used by the host project directly from the host project, without having to open them separately. When the host project contains one or more *eligible* components (see [Requirements](#requirements) below), an additional menu is displayed in the Compiler window. This menu lets you select which project(s) you want to compile: + +- the host project only (default) +- the host project and all its eligible components +- a single eligible component among the list of all eligible components. + +![](../assets/en/Project/compile-component.png) + +:::note + +You can open the Compiler window from the **Methods>Component Methods** section of the Explorer: right-click on an eligible component name and select **Compiler...** from the contextuel menu. + +::: + +A list of components being compiled is displayed in the Compiler window. If an error is detected in a component, its compilation is stopped but the process continues for other components. + +- Components with at least one error can be unfolded to display the list of errors and appear **in bold**. +- Components with at least one warning can be unfolded to display the list of warnings. +- Components wihout errors cannot be unfolded. + +#### 要件 + +To be eligible for compilation from the host project, a component must comply with the following requirements: + +- the component uses the [project architecture](../Project/architecture.md), +- the component's [interpreted code](../Concepts/interpreted.md) is available and the component is not [running in compiled mode](#run-compiled), +- the component uses [direct typing](#enabling-direct-typing) declarations. + +:::note + +The additional menu is not displayed if the project does not contain any eligible component. + +::: + +#### Compiler features & Settings + +All available features of the Compiler window are applied to the selected component(s): **Compile**, **Check syntax**, **Clear compiled code**. + +The [Settings](../settings/) cannot be edited when a component is selected (the button is dimmed). + +Each component's [settings](../settings/) are applied for the compilation, except the [error file and symbol file generation options](#compilation-options): settings of the host project override the component's options. When enabled, [error and warning file](#error-file) as well as [symbol file](#symbol-file) of each component are stored in the [**Logs** folder of the host project](../Project/architecture.md#logs), within a dedicated folder (the name of the folder is the component name). + +When you start a compilation or a syntax check, every processed project is listed in the compiler window. If errors or warnings are detected, they are displayed in hierarchical lists beneath the corresponding project. Projects that contain errors are displayed in **bold**: + +![](../assets/en/Project/compile-components-errors.png) ## コンパイル済み実行 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 d16f4ca8b0d34d..e5ce387e15ec05 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md @@ -3,7 +3,7 @@ id: components title: 依存関係 --- -4D [プロジェクトアーキテクチャー](../Project/architecture.md) はモジュール式です。 [**コンポーネント**](../Concepts/components.md) や [**プラグイン**](../Concepts/plug-ins.md) をインストールすることで、4Dプロジェクトに追加機能を持たせることができます。 コンポーネントは4D コードで書かれていますが、プラグインは[あらゆる言語を使用してビルドすることができます](../Extensions/develop-plug-ins.md)。 +4D [プロジェクトアーキテクチャー](../Project/architecture.md) はモジュール式です。 [**コンポーネント**](../../Concepts/components.md) や [**プラグイン**](../Concepts/plug-ins.md) をインストールすることで、4Dプロジェクトに追加機能を持たせることができます。 コンポーネントは4D コードで書かれていますが、プラグインは[あらゆる言語を使用してビルドすることができます](../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 proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). @@ -11,7 +11,7 @@ You can [develop](../Extensions/develop-components.md) and [build](../Desktop/bu ## インタープリターとコンパイル済みコンポーネント -コンポーネントは、インタープリターまたは [コンパイル済み](../Desktop/building.md) のものが使えます。 +コンポーネントは、インタープリターまたは [コンパイル済み](./compiler.md#compile-components) のものが使えます。 - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 - コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 @@ -570,7 +570,7 @@ The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive li You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: -![4d-corner-access](../assets/en/Project/4d-corner.png) +![4d-corner-access](../assets/en/Project/4d-corner-access.png) To install a component from the 4D Corner platform: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png new file mode 100644 index 0000000000000000000000000000000000000000..02684ee969a8be11fc20d68f5510f14c46a3e2fa GIT binary patch literal 15780 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 を更新** を選択します: +- 単一の依存関係を更新するためには、依存関係を右クリックし、コンテキストメニュー内から、あるいは依存関係マネージャーウィンドウの下部の **オプション** メニューから、**次回起動時に\ を更新** を選択します: ![check component](../assets/en/Project/update-component-one.png) -- 全ての依存関係を一度に更新するためには、依存関係マネージャウィンドウの下部から**オプション** メニューをクリックし、**次回起動時に全ての依存関係を更新する** を選択します: +- 全ての依存関係を一度に更新するためには、依存関係マネージャーウィンドウの下部から **オプション** メニューをクリックし、**次回起動時に全ての依存関係を更新する** を選択します: ![check components](../assets/en/Project/update-component-all.png) @@ -578,7 +578,7 @@ GitHub 依存関係は[**dependencies.json**](#dependenciesjson) ファイル内 #### 自動アップデート -依存関係マネージャウィンドウの下部の**オプション**メニューから、**自動アップデート** オプションを選択することができます。 +依存関係マネージャーウィンドウの下部の**オプション**メニューから、**自動アップデート** オプションを選択することができます。 このオプションがチェックされている場合(デフォルトでチェック)、GitHub コンポーネントで[コンポーネントバージョン設定](#github依存関係バージョン範囲の定義) に合致している新しいバージョンは、次回プロジェクト起動時に自動的に更新されます。 このオプションは手動で更新を洗濯する必要性を排除することで、日々の依存関係アップデートの管理を容易にします。 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 16bb4c329b87f6..2db439b531a58c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -155,21 +155,6 @@ The `.certificatePassword` property contains - - - -## .send() - -
    História - -| Release | Mudanças | -| ------- | ------------------------ | -| 17 R5 | Suporte de conteúdo Mime | -| 17 R4 | Adicionado | - -
    - Para obter informações sobre os códigos de estado SMTP, consulte [esta página](https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml). 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 e3eb4ee03ddf86..4f58051d8cc732 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 @@ -17,7 +17,7 @@ Você pode desenvolver componentes 4D para suas próprias necessidades e mantê- :::note -You can [create a component directly from the host](#creating-components) project without needing to go through a separate matrix project +You can [create a component directly from the host](#creating-components) project without needing to go through a separate matrix project. ::: @@ -33,13 +33,13 @@ Criar e instalar componentes 4D é realizado diretamente a partir de 4D: :::note -Interpreted component code can be [edited directly from the host project](#editing-components) if the context is supported. +Interpreted component code can be [edited](#editing-components) and [compiled](../Project/compiler.md#compile-components) directly from the host project if the context is supported. ::: ## Creating and editing components from the host -In interpreted mode, the 4D IDE allows you to create and edit components directly from the host project. It facilitates component development and tuning in the actual context of a host project without having to leave or restart it. +In interpreted mode, the 4D IDE allows you to create, edit, and compile components directly from the host project. It facilitates component development and tuning in the actual context of a host project without having to leave or restart it. ### Creating components @@ -54,9 +54,10 @@ This action opens a folder selection dialog where you choose where [the componen - If you decide to store the component **next to the project package**, 4D adds it to the [`dependencies.json`](../Project/components.md#dependenciesjson) file. - If you decide to store the component **elsewhere**, 4D adds it to the [`dependencies.json`](../Project/components.md#dependenciesjson) file and its path is added to the [`environment4d.json`](../Project/components.md#environment4djson) file, using either a [relative or an absolute path](../Project/components.md#relative-paths-vs-absolute-paths). A relative path is used if the component is located within no more than two levels above as the `environment4d.json` file, or in its subfolders. Otherwise, an absolute path is used. -:::note +:::note Notas -You cannot store a component **in the project package** but **outside the Components folder**. +- You cannot store a component **in the project package** but **outside the Components folder**. +- When a component is created from the host, it is assigned a [default namespace](#default-namespace). ::: @@ -79,7 +80,7 @@ In this context, you can open, edit, and save your component code in the Code ed [Exposed component classes](#sharing-of-classes) and [shared methods](#sharing-of-project-methods) of your component can be edited from the **Component Methods** tab of the Explorer. -A specific icon indicates that the component contains shared code):
    +A specific icon indicates that the component contains shared code:
    ![](../assets/en/Develop/editable-component.png) Select **Edit...** to open your component code in the Code editor. You can edit and save it. @@ -114,6 +115,10 @@ Standard 4D IDE features are available for the component. You can execute the fo - run methods, - restore from trash or empty trash. +### Compiling components + +You can compile a component [directly from the host project](../Project/compiler.md#compile-components) without having to open it separately, provided it is compliant with the [requirements](../Project/compiler.md#requirements). + ### Search and replace You can use the [**Search and replace** features](../Project/search-replace.md) of the host project to search elements within the code or the forms of your editable components. The **Search in project** menu allows you to select one or all components as search target: @@ -196,7 +201,7 @@ By default, component classes cannot be called from the 4D Code Editor of the ho ### 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. +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. By default, the area is empty (except when the component is [created from the host](#default-namespace)): component classes are not available outside of the component context. ![](../assets/en/settings/namespace.png) @@ -227,6 +232,12 @@ 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. +#### Default namespace + +When a new component is [created from the host](#creating-components), a default namespace is automatically assigned to the component. + +The default namespace is the component's name, without characters that do not comply with [property naming rules](../Concepts/identifiers.md#object-properties), if any. For example, for a component named "My Component-2", the default namespace will be "MyComponent2". + ### 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. 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 972b90ae389a4b..23953bd4a906a4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,6 +10,7 @@ Leia [**O que há de novo no 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21- #### Destaques - Support of S/MIME email signing through new [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) class properties: [`.certificate`](../API/SMTPTransporterClass.md#certificate) or [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (certificate providing), and [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). +- You can now [compile a component directly from the host](../Project/compiler.md#compile-components). - Support of list forms in [**fluent UI** rendering](../FormEditor/forms.md#fluent-ui-rendering) on Windows. - Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos os bugs corrigidos em 4D 21 R5. diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/compiler.md index 8cc10852d6ca3f..7a89a5949e6f21 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -37,7 +37,67 @@ Utilice los comandos **Error anterior** / **Error siguiente** del menú **Métod O número de erros encontrados durante as suas primeiras compilações podem ser um desafio, mas não deixe isso te avisar. Logo você descobrirá que eles muitas vezes nascem da mesma fonte, ou seja, não conformidade com certas convenções do projeto. El compilador siempre ofrece un [diagnóstico preciso](#error-file) de los errores para ayudarle a corregirlos. -> A compilação requer uma licença adequada. Sem esta licença, não é possível realizar uma compilação (os botões estão desativados). No entanto, ainda é possível verificar a sintaxe e gerar métodos de digitação. +:::note + +Compilation requires an [appropriate license](../Admin/licenses.md). Sem esta licença, não é possível realizar uma compilação (os botões estão desativados). No entanto, ainda é possível verificar a sintaxe e gerar métodos de digitação. + +::: + +### Compile components + +
    História + +| Release | Mudanças | +| ------- | ---------- | +| 21 R5 | Adicionado | + +
    + +While developing your application, you can compile the components used by the host project directly from the host project, without having to open them separately. When the host project contains one or more *eligible* components (see [Requirements](#requirements) below), an additional menu is displayed in the Compiler window. This menu lets you select which project(s) you want to compile: + +- the host project only (default) +- the host project and all its eligible components +- a single eligible component among the list of all eligible components. + +![](../assets/en/Project/compile-component.png) + +:::note + +You can open the Compiler window from the **Methods>Component Methods** section of the Explorer: right-click on an eligible component name and select **Compiler...** from the contextuel menu. + +::: + +A list of components being compiled is displayed in the Compiler window. If an error is detected in a component, its compilation is stopped but the process continues for other components. + +- Components with at least one error can be unfolded to display the list of errors and appear **in bold**. +- Components with at least one warning can be unfolded to display the list of warnings. +- Components wihout errors cannot be unfolded. + +#### Requisitos + +To be eligible for compilation from the host project, a component must comply with the following requirements: + +- the component uses the [project architecture](../Project/architecture.md), +- the component's [interpreted code](../Concepts/interpreted.md) is available and the component is not [running in compiled mode](#run-compiled), +- the component uses [direct typing](#enabling-direct-typing) declarations. + +:::note + +The additional menu is not displayed if the project does not contain any eligible component. + +::: + +#### Compiler features & Settings + +All available features of the Compiler window are applied to the selected component(s): **Compile**, **Check syntax**, **Clear compiled code**. + +The [Settings](../settings/) cannot be edited when a component is selected (the button is dimmed). + +Each component's [settings](../settings/) are applied for the compilation, except the [error file and symbol file generation options](#compilation-options): settings of the host project override the component's options. When enabled, [error and warning file](#error-file) as well as [symbol file](#symbol-file) of each component are stored in the [**Logs** folder of the host project](../Project/architecture.md#logs), within a dedicated folder (the name of the folder is the component name). + +When you start a compilation or a syntax check, every processed project is listed in the compiler window. If errors or warnings are detected, they are displayed in hierarchical lists beneath the corresponding project. Projects that contain errors are displayed in **bold**: + +![](../assets/en/Project/compile-components-errors.png) ## Executar a compilação 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 dd1d081d339ce1..7eac9601ec935a 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/components.md @@ -3,7 +3,7 @@ id: components 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). +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). You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). @@ -11,7 +11,7 @@ Once installed in your 4D environment, extensions are handled as **dependencies* ## Componentes interpretados e compilados -Componentes podem ser interpretados ou [compilados](../Desktop/building.md). +Componentes podem ser interpretados ou [compilados](./compiler.md#compile-components). - 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. @@ -570,7 +570,7 @@ The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive li You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: -![4d-corner-access](../assets/en/Project/4d-corner.png) +![4d-corner-access](../assets/en/Project/4d-corner-access.png) To install a component from the 4D Corner platform: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Project/compile-component.png new file mode 100644 index 0000000000000000000000000000000000000000..02684ee969a8be11fc20d68f5510f14c46a3e2fa GIT binary patch literal 15780 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 Date: Mon, 14 Sep 2026 14:14:41 +0200 Subject: [PATCH 43/60] current.json French (#3426) --- i18n/fr/docusaurus-plugin-content-docs/current.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current.json b/i18n/fr/docusaurus-plugin-content-docs/current.json index ef0520be2de52c..296517ca3b5649 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current.json +++ b/i18n/fr/docusaurus-plugin-content-docs/current.json @@ -1636,15 +1636,15 @@ "description": "The label for the doc item 'Drag and Drop' in sidebar 'docs', linking to the doc Desktop/drag-and-drop" }, "sidebar.docs.category.Records & Selections (legacy data access)": { - "message": "Records & Selections (legacy data access)", + "message": "Enregistrements et sélections (accès classique aux données)", "description": "The label for category 'Records & Selections (legacy data access)' in sidebar 'docs'" }, "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.title": { - "message": "Records & Selections (legacy data access)", + "message": "Enregistrements et sélections (accès classique aux données)", "description": "The generated-index page title for category 'Records & Selections (legacy data access)' in sidebar 'docs'" }, "sidebar.docs.category.Records & Selections (legacy data access).link.generated-index.description": { - "message": "Legacy data access based upon records, selections, and sets.", + "message": "Accès historique aux données basé sur les enregistrements, les sélections et les ensembles.", "description": "The generated-index page description for category 'Records & Selections (legacy data access)' in sidebar 'docs'" }, "sidebar.docs.category.Server & Admin": { @@ -1664,11 +1664,11 @@ "description": "The label for category '4D Server' in sidebar 'docs'" }, "sidebar.docs.category.Administration Window": { - "message": "Administration Window", + "message": "Fenêtre d'administration", "description": "The label for category 'Administration Window' in sidebar 'docs'" }, "sidebar.docs.category.Windows Features": { - "message": "Windows Features", + "message": "Fonctionnalités Windows", "description": "The label for category 'Windows Features' in sidebar 'docs'" } } From a0fb7a513b4a85e87d3a97257f9ac526486a5a50 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 15 Sep 2026 10:36:42 +0200 Subject: [PATCH 44/60] New Crowdin updates (#3427) * develop-components.md Spanish * overview.md Spanish * components.md Spanish * sso.md Spanish * vss.md Spanish * compiler.md Spanish --- .../current/Extensions/develop-components.md | 2 +- .../current/Extensions/overview.md | 2 +- .../current/Project/compiler.md | 8 ++++---- .../current/Project/components.md | 6 +++--- .../current/server/sso.md | 16 ++++++++-------- .../current/server/vss.md | 10 +++++----- 6 files changed, 22 insertions(+), 22 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 13ebca7dcf17d3..5b62ae10d676fa 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 @@ -231,7 +231,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. -#### Default namespace +#### Espacio de nombres por defecto When a new component is [created from the host](#creating-components), a default namespace is automatically assigned to the component. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md index e85f66bf00a7f3..e7c7735740d468 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -16,7 +16,7 @@ La [arquitectura del proyecto] 4D (../Project/architecture.md) es abierta y pued ## Componentes desarrollados por 4D -4D propone diferentes componentes a la comunidad 4D, cubriendo muchas necesidades de desarrollo. All 4D components can be found on the [**4D Corner platform**](https://corner.4d.com/). +4D propone diferentes componentes a la comunidad 4D, cubriendo muchas necesidades de desarrollo. Todos los componentes de 4D se pueden encontrar en la [**plataforma 4D Corner**](https://corner.4d.com/). Un subconjunto de estos componentes se muestra por defecto en el panel de Github del [Administrador de dependencias](../Project/components.md#adding-a-github-or-gitlab-dependency), incluyendo: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md index aaf2e89164deb9..0a79a4a1213aa4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -56,7 +56,7 @@ La compilación requiere una [licencia apropiada](../Admin/licenses.md). Sin est While developing your application, you can compile the components used by the host project directly from the host project, without having to open them separately. When the host project contains one or more *eligible* components (see [Requirements](#requirements) below), an additional menu is displayed in the Compiler window. Este menú le permite seleccionar el/los proyecto(s) a compilar: - solo el proyecto anfitrión (por defecto) -- the host project and all its eligible components +- el proyecto anfitrión y todos sus componentes elegibles - un único componente elegible de la lista de todos los componentes elegibles. ![](../assets/en/Project/compile-component.png) @@ -70,8 +70,8 @@ You can open the Compiler window from the **Methods>Component Methods** section En la ventana del compilador se muestra una lista de componentes que se están compilando. If an error is detected in a component, its compilation is stopped but the process continues for other components. - Los componentes que contengan al menos un error se pueden desplegar para mostrar la lista de errores y aparecen **en negrita**. -- Components with at least one warning can be unfolded to display the list of warnings. -- Components wihout errors cannot be unfolded. +- Los componentes que tengan al menos una advertencia se pueden desplegar para mostrar la lista de advertencias. +- Los componentes sin errores no se pueden desplegar. #### Requisitos @@ -95,7 +95,7 @@ The [Settings](../settings/) cannot be edited when a component is selected (the Each component's [settings](../settings/) are applied for the compilation, except the [error file and symbol file generation options](#compilation-options): settings of the host project override the component's options. When enabled, [error and warning file](#error-file) as well as [symbol file](#symbol-file) of each component are stored in the [**Logs** folder of the host project](../Project/architecture.md#logs), within a dedicated folder (the name of the folder is the component name). -When you start a compilation or a syntax check, every processed project is listed in the compiler window. If errors or warnings are detected, they are displayed in hierarchical lists beneath the corresponding project. Projects that contain errors are displayed in **bold**: +When you start a compilation or a syntax check, every processed project is listed in the compiler window. If errors or warnings are detected, they are displayed in hierarchical lists beneath the corresponding project. Los proyectos que contienen errores aparecen en **negrita**: ![](../assets/en/Project/compile-components-errors.png) 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 c0e7cc60bab705..3392dc6642952d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md @@ -564,7 +564,7 @@ Modificar el rango de versiones es útil, por ejemplo, si utiliza la función de ### Uso de 4D Corner -The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive list of ready-to-use 4D components, proposed from the 4D company or from the 4D community. You can browse or search the list to find any component meeting to your needs. +The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive list of ready-to-use 4D components, proposed from the 4D company or from the 4D community. Puede navegar o buscar en la lista para encontrar el componente que mejor se ajuste a sus necesidades. ![4d-corner](../assets/en/Project/4d-corner.png) @@ -572,9 +572,9 @@ You can open the [4D Corner platform](https://corner.4d.com/) from the Dependenc ![4d-corner-access](../assets/en/Project/4d-corner-access.png) -To install a component from the 4D Corner platform: +Para instalar un componente de la plataforma 4D Corner: -1. Click on the "Copy link" button on the top right corner of the component tile: +1. Haga clic en el botón "Copiar enlace" en la esquina superior derecha del título del componente: ![copy button](../assets/en/Project/4d-corner-copy.png) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md index 5cb991866c8a35..13671ecc8d7383 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md @@ -11,7 +11,7 @@ Implementing SSO in your 4D solutions will allow users to access the 4D applicat La funcionalidad SSO está disponible: -- with 4D Server applications on Windows (4D single-user applications do not support SSO), +- con las aplicaciones 4D Server en Windows (las aplicaciones 4D monousuario no soportan la autenticación única), - with the [QUIC or ServerNet network layer](../settings/client-server.md#network-layer) enabled. ## Activar la funcionalidad SSO @@ -39,12 +39,12 @@ El identificador SPN debe respetar este formato: Donde: -- *ServiceName* is the name of the service which the client wants to authenticate. +- *ServiceName* es el nombre del servicio en el que el cliente desea autenticarse. - The *Fully Qualified Domain Name* (FQDN) is a domain name that specifies its exact location in the tree hierarchy of the Active Directory for both computers and users. En las aplicaciones 4D, se puede configurar el SPN: -- in the [structure settings](../Project/architecture.md#sources), for use with 4D Server. +- en las [propiedades de estructura](../Project/architecture.md#sources), para su uso con 4D Server. - or in the [user settings](../Project/architecture.md#settings-user) for deployment needs. ## Implementar el SSO @@ -95,10 +95,10 @@ $login:=Current client authentication($domain;$protocol) Donde: -- *$login* is the ID used by the client to log into the Active Directory (text value). Debe utilizar este valor para identificar al usuario dentro de su proyecto. If the user is not correcty authenticated, an empty string is returned and no error is returned. +- *$login* es el identificador que utiliza el cliente para iniciar sesión en Active Directory (valor de tipo texto). Debe utilizar este valor para identificar al usuario dentro de su proyecto. If the user is not correcty authenticated, an empty string is returned and no error is returned. - *$domain* y *$protocol* son parámetros texto opcionales. They are filled by the command and allow you to accept or reject connections depending on these values: - *$domain* es el nombre de dominio del Active Directory - - *$protocol* is the name of the protocol used by Windows to authenticate the user. + - *$protocol* es el nombre del protocolo que utiliza Windows para autenticar al usuario. ### Configuración requerida para el SSO @@ -112,14 +112,14 @@ The following table provides the requirements for using NTLM or Kerberos authent | El usuario 4D Server está en el dominio | sí | sí | | El 4D remoto está en el mismo AD que el usuario de 4D Server | yes o no(\*) | sí | | El SPN se indica en 4D Server | no | yes(\*\*) | -| Information returned by Current client authentication if requirements are respected | *login*=inicio de sesión esperado, *domain*=dominio esperado, *protocol*="NTLM" | *login*=inicio de sesión esperado, *domain*=dominio esperado, *protocol*="Kerberos" | +| Información devuelta por Current client authentication si se cumplen los requisitos | *login*=inicio de sesión esperado, *domain*=dominio esperado, *protocol*="NTLM" | *login*=inicio de sesión esperado, *domain*=dominio esperado, *protocol*="Kerberos" | -(\*) The following specific configuration is supported: the 4D remote user is a local account on a machine that belongs to the same AD as 4D Server. In this case, the domain parameter is filled with the 4D Server machine name. Note that the support depends on actual user settings: if not available, empty strings are returned. +(\*) The following specific configuration is supported: the 4D remote user is a local account on a machine that belongs to the same AD as 4D Server. En este caso, el parámetro dominio contiene el nombre de la máquina de 4D Server. Note that the support depends on actual user settings: if not available, empty strings are returned. (\*\*) If all Kerberos requirements are respected but the [`Current client authentication`](../commands/current-client-authentication) command returns "NTLM" in protocol, this means that you are facing one of the following situations: - The SPN syntax is not valid; in other words, it does not respect the [constraints imposed by Microsoft](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). -- O bien, el SPN tiene duplicados en el AD. This issue needs to be fixed by the AD administrator. +- O bien, el SPN tiene duplicados en el AD. Este problema debe solucionarlo el administrador del AD. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md index a38af9b91a714b..a741d67d7e46c8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md @@ -16,16 +16,16 @@ Del lado del equipo anfitrión, se admiten los siguientes solicitantes VSS: ## Activación del VSS -The VSS feature is automatically installed/updated when the 4D Server application is launched. The VSS writer application service is started if the session user has admin privileges. +The VSS feature is automatically installed/updated when the 4D Server application is launched. El servicio de aplicación VSS writer se inicia si el usuario de la sesión tiene privilegios de administrador. Generalmente, el escenario inicial será: 1. Inicie 4D Server o la aplicación servidor fusionada por primera vez. -2. If not launched with administration privileges, a warning icon is displayed. +2. Si no se inicia con privilegios de administrador, se mostrará un icono de advertencia. 3. Salga y reinicie 4D Server o la aplicación servidor fusionada como administrador. El servicio 4D VSS se ejecuta y registra automáticamente en VSS. -4. (Optional) Restart 4D Server or merged Application Server using standard privileges. +4. (Opcional) Reinicie 4D Server o la aplicación servidor fusionada con los privilegios estándar. -The VSS writer executable is started as a service with the name "VSS \". One VSS service will run for all 4D Server instances. One VSS service will run for each different engined application (different name) running on the machine (see below). +El ejecutable VSS writer se inicia como un servicio con el nombre "VSS \". Se ejecutará un único servicio VSS para todas las instancias de 4D Server. One VSS service will run for each different engined application (different name) running on the machine (see below). The [Monitor Page](../ServerWindow/monitor.md) of the 4D Server Administration window displays the status of VSS writer service, in Application information area: @@ -45,6 +45,6 @@ The 4D VSS management is handled through a separate application since this progr ::: -The 4D VSS writer executable is automatically installed by 4D Server at first launch. +L'exécutable VSS writer de 4D est automatiquement installé par 4D Server au premier lancement. El servicio 4D VSS Writer gestiona y transmite las solicitudes VSS a 4D Server. These messages are logged in the 4D Server diagnostic log, and in the Windows event viewer. \ No newline at end of file From d09a1254b022e268280415b141bd031953c3bf8d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 15 Sep 2026 17:27:08 +0200 Subject: [PATCH 45/60] Update data-collect.md (#3428) --- docs/Admin/data-collect.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/Admin/data-collect.md b/docs/Admin/data-collect.md index b917d5d5d8853e..da07aa038a5476 100644 --- a/docs/Admin/data-collect.md +++ b/docs/Admin/data-collect.md @@ -39,10 +39,12 @@ Some data is also collected at regular intervals. |cacheReadCount|Object|Number of reads in the cache | |classUsage|Object|Number of instances of certain language classes| |connectionSystems|Collection|Client OS without the build number (in parenthesis) and number of clients using it| +|databases[].backupSettings|Object|Current backup settings values| |databases[].cacheSize|Number|Cache size in bytes| |databases[].compatibilitySettings|Object|Enabled Compatibility settings| |databases[].externalDatastoreOpened|Number|Number of calls to `Open datastore`| |databases[].fluentUI|Boolean|True if Use Fluent UI on Windows setting is checked| +|databases[].flushCacheInterval|Number|Defined time period between each automatic saving of the data cache| |databases[].id|Number|Database ID| |databases[].internalDatastoreOpened|Number|Number of times the datastore is opened by an external server| |databases[].maxConcurrent4DClients|Number|Maximum number of simultaneous 4D Client sessions (using a 4D Client license) over the collection interval | @@ -54,6 +56,7 @@ Some data is also collected at regular intervals. |databases[].numberOfKeepRecordSyncInfo|Number|Number of tables with the "Enable Replication" option checked| |databases[].numberOfRecordsMax|Number|Total number of records| |databases[].numberOfTables|Number|Number of tables| +|databases[].numberOfUncaughtExecutionErrors|Number|Number of times an execution error is displayed as an alert| |databases[].qodly.webforms|Number|Number of Qodly webforms| |databases[].remoteDebugger4DRemoteAttachments|Number|Number of attachments to the remote debugger from a remote 4D| |databases[].remoteDebuggerQodlyAttachments|Number|Number of attachments to the remote debugger from Qodly| @@ -94,6 +97,7 @@ Some data is also collected at regular intervals. |isEncrypted|Boolean|True if the data file is encrypted| |isEngined|Boolean|True if the application is merged with 4D Volume Desktop| |isProjectMode|Boolean|True if the application is a project| +|isShadowCopyActivated|Boolean|True if the Volume Shadow Copy feature is enabled (Windows only| |LDAPLogin|Number|Number of calls to `LDAP LOGIN`| |license.sffPrimaryKey|Number|Server master product number| |machine.CPU|Text|Name, type, and speed of the processor| @@ -104,6 +108,7 @@ Some data is also collected at regular intervals. |maximumUsedPhysicalMemory|Number|Maximum use of physical memory| |maximumUsedVirtualMemory|Number|Maximum use of virtual memory| |mobile|Collection|Information on mobile sessions| +|numberOfCrashes|Number|Number of times 4D has crashed| |numberOfWebServices|Number|Number of methods published as Web Services| |ODBCLogin|Number|Number of calls to `SQL LOGIN` using ODBC| |phpCall|Number|Number of calls to `PHP execute` | From 9ec9c21249e9bbfb650c0f612624735553129330 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 16 Sep 2026 09:45:06 +0200 Subject: [PATCH 46/60] New Crowdin updates (#3429) * updates.md Spanish * updates.md Japanese * components.md Spanish * develop-components.md Spanish * overview.md Spanish * components.md Spanish * service.md Spanish * sso.md Spanish * vss.md Spanish * components.md Japanese * develop-components.md Japanese * overview.md Japanese * compiler.md Spanish * compiler.md Japanese * sdi.md Spanish * sdi.md Spanish * sdi.md Spanish --- .../current/Concepts/components.md | 2 +- .../current/Extensions/develop-components.md | 8 ++--- .../current/Extensions/overview.md | 2 +- .../current/Notes/updates.md | 2 +- .../current/Project/compiler.md | 14 ++++---- .../current/Project/components.md | 6 ++-- .../current/server/service.md | 10 +++--- .../current/server/sso.md | 34 +++++++++---------- .../current/server/vss.md | 12 +++---- .../version-21-R3/Menus/sdi.md | 2 +- .../version-21-R4/Menus/sdi.md | 2 +- .../version-21/Menus/sdi.md | 2 +- .../current/Concepts/components.md | 2 +- .../current/Extensions/develop-components.md | 26 +++++++------- .../current/Extensions/overview.md | 4 +-- .../current/Notes/updates.md | 4 +-- .../current/Project/compiler.md | 2 +- 17 files changed, 67 insertions(+), 67 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 b71b42f2538a0f..3356433af1284f 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 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). -Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components are also proposed by the 4D community. Use the [4D Corner platform](https://corner.4d.com/) to get a detailed list of all available 4D components. +Several components are [developed by 4D](../Extensions/overview.md#components-developed-by-4d), but a lot of 4D components are also proposed by the 4D community. Utilice la [plataforma 4D Corner](https://corner.4d.com/) para obtener una lista detallada de todos los componentes 4D disponibles. 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). 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 5b62ae10d676fa..f3ed728a16b9fe 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 @@ -39,7 +39,7 @@ Interpreted component code can be [edited](#editing-components) and [compiled](. ## Creación y edición de componentes desde el host -In interpreted mode, the 4D IDE allows you to create, edit, and compile components directly from the host project. Facilita el desarrollo y el ajuste de componentes en el contexto real de un proyecto local sin tener que abandonarlo o reiniciarlo. +En modo interpretado, el IDE 4D le permite crear, editar y compilar componentes directamente desde el proyecto principal. Facilita el desarrollo y el ajuste de componentes en el contexto real de un proyecto local sin tener que abandonarlo o reiniciarlo. ### Creación de componentes @@ -57,7 +57,7 @@ Esta acción abre un cuadro de diálogo de selección de carpeta en el que se el :::note Notas - No se puede almacenar un componente **en el paquete del proyecto** pero **fuera de la carpeta Components**. -- When a component is created from the host, it is assigned a [default namespace](#default-namespace). +- Cuando se crea un componente desde el host, se le asigna un [espacio de nombres predeterminado](#default-namespace). ::: @@ -80,7 +80,7 @@ En este contexto, puede abrir, editar y guardar el código de su componente en e Las [clases expuestas del componente](#sharing-of-classes) y los [métodos compartidos](#sharing-of-project-methods) de su componente pueden editarse desde la pestaña **Métodos del componente** del Explorador. -A specific icon indicates that the component contains shared code:
    +Un icono específico indica que el componente contiene código compartido:
    ![](../assets/en/Develop/editable-component.png) Seleccione **Editar...** para abrir el código de su componente en el editor de código. Puede editarlo y guardarlo. @@ -235,7 +235,7 @@ Las clases ORDA de un componente no están disponibles en el proyecto local. Por When a new component is [created from the host](#creating-components), a default namespace is automatically assigned to the component. -The default namespace is the component's name, without characters that do not comply with [property naming rules](../Concepts/identifiers.md#object-properties), if any. For example, for a component named "My Component-2", the default namespace will be "MyComponent2". +The default namespace is the component's name, without characters that do not comply with [property naming rules](../Concepts/identifiers.md#object-properties), if any. Por ejemplo, para un componente llamado "My Component-2", el espacio de nombres por defecto será "MyComponent2". ### Clases ocultas diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md index e7c7735740d468..3e0ad463f6f073 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -11,7 +11,7 @@ La [arquitectura del proyecto] 4D (../Project/architecture.md) es abierta y pued - Los [**comandos SQL**](../commands/theme/SQL) permiten conectar y utilizar diversas fuentes de datos SQL. - El [**cliente HTTP integrado**](../API/HTTPRequestClass.md) puede solicitar cualquier servidor HTTP y procesar datos. - Las [**Áreas Web**](../FormObjects/webArea_overview.md) pueden dar acceso a páginas web o a diversos contenidos HTML dentro de sus formularios. -- [**Componentes**](Concepts/components.md). Los componentes están hechos de código 4D. 4D le propone un conjunto de componentes utilitarios (ver más abajo) que puede instalar y utilizar en función de sus necesidades. También puedes [desarrollar sus propios componentes 4D](develop-components.md), o utilizar componentes de terceros. Muchos desarrolladores de la comunidad 4D han compartido componentes 4D. Browse the [**4D Corner platform**](https://corner.4d.com/) to get a comprehensive list of published components. +- [**Componentes**](Concepts/components.md). Los componentes están hechos de código 4D. 4D le propone un conjunto de componentes utilitarios (ver más abajo) que puede instalar y utilizar en función de sus necesidades. También puedes [desarrollar sus propios componentes 4D](develop-components.md), o utilizar componentes de terceros. Muchos desarrolladores de la comunidad 4D han compartido componentes 4D. Navegue por la [**plataforma 4D Corner**](https://corner.4d.com/) para obtener una lista completa de componentes publicados. - [**Plug-ins**](../Concepts/plug-ins.md). Los plug-ins pueden construirse utilizando cualquier lenguaje. Los plugins hacen cosas que 4D no hace de forma nativa (por ejemplo, una tecnología de plataforma específica), o que serían muy difíciles de escribir sólo con 4D. Como se describe en [esta página](develop-plug-ins.md), puede desarrollar sus propios plug-ins. Muchas funcionalidades están cubiertas por los plug-ins 4D existentes. Navegue por Github para tener una lista de plugins 4D públicos reunidos con el tema [`4d-plugin`](https://github.com/topics/4d-plugin). ## Componentes desarrollados por 4D diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md index 983dac5bff581d..70c9a1cf52272e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,7 +10,7 @@ Lea [**Las novedades en 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), #### Lo más destacado - Soporte de la firma de correo electrónico de S/MIME a través de las nuevas propiedades de clase [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md): [`.certificate`](../API/SMTPTransporterClass.md#certificate) o [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (suministro del certificado) y [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). -- You can now [compile a component directly from the host](../Project/compiler.md#compile-components). +- Ahora puede [compilar un componente directamente desde el host](../Project/compiler.md#compile-components). - Soporte de formularios lista en la [renderización **Fluent UI**](../FormEditor/forms.md#fluent-ui-rendering) en Windows. - Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos los bugs que se han corregido en 4D 21 R5. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md index 0a79a4a1213aa4..dc620640bea595 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -63,11 +63,11 @@ While developing your application, you can compile the components used by the ho :::note -You can open the Compiler window from the **Methods>Component Methods** section of the Explorer: right-click on an eligible component name and select **Compiler...** from the contextuel menu. +Puede abrir la ventana Compilador desde la sección **Métodos>Métodos de componentes** del Explorador: haga clic derecho en el nombre de un componente elegible y seleccione **Compilador...** en el menú contextual. ::: -En la ventana del compilador se muestra una lista de componentes que se están compilando. If an error is detected in a component, its compilation is stopped but the process continues for other components. +En la ventana del compilador se muestra una lista de componentes que se están compilando. Si se detecta un error en un componente, se detiene su compilación, pero el proceso continúa con los demás componentes. - Los componentes que contengan al menos un error se pueden desplegar para mostrar la lista de errores y aparecen **en negrita**. - Los componentes que tengan al menos una advertencia se pueden desplegar para mostrar la lista de advertencias. @@ -75,7 +75,7 @@ En la ventana del compilador se muestra una lista de componentes que se están c #### Requisitos -To be eligible for compilation from the host project, a component must comply with the following requirements: +Para que un componente pueda ser compilado desde el proyecto principal, debe cumplir los siguientes requisitos: - el componente utiliza la [arquitectura del proyecto](../Project/architecture.md), - the component's [interpreted code](../Concepts/interpreted.md) is available and the component is not [running in compiled mode](#run-compiled), @@ -83,7 +83,7 @@ To be eligible for compilation from the host project, a component must comply wi :::note -The additional menu is not displayed if the project does not contain any eligible component. +El menú adicional no se muestra si el proyecto no contiene ningún componente elegible. ::: @@ -91,11 +91,11 @@ The additional menu is not displayed if the project does not contain any eligibl All available features of the Compiler window are applied to the selected component(s): **Compile**, **Check syntax**, **Clear compiled code**. -The [Settings](../settings/) cannot be edited when a component is selected (the button is dimmed). +Los [Parámetros](../settings/) no se pueden editar cuando hay un componente seleccionado (el botón aparece atenuado). -Each component's [settings](../settings/) are applied for the compilation, except the [error file and symbol file generation options](#compilation-options): settings of the host project override the component's options. When enabled, [error and warning file](#error-file) as well as [symbol file](#symbol-file) of each component are stored in the [**Logs** folder of the host project](../Project/architecture.md#logs), within a dedicated folder (the name of the folder is the component name). +Los [parámetros](../settings/) de cada componente se aplican durante la compilación, salvo las [opciones de generación de archivos de errores y de símbolos](#compilation-options): los ajustes del proyecto principal prevalecen sobre las opciones del componente. Cuando está activa esta opción, el [archivo de errores y advertencias](#error-file) y el [archivo de símbolos](#symbol-file) de cada componente se almacenan en la [carpeta **Logs** del proyecto principal](../Project/architecture.md#logs), en una carpeta específica (el nombre de la carpeta es el nombre del componente). -When you start a compilation or a syntax check, every processed project is listed in the compiler window. If errors or warnings are detected, they are displayed in hierarchical lists beneath the corresponding project. Los proyectos que contienen errores aparecen en **negrita**: +Cuando inicia una compilación o una verificación de sintaxis, cada proyecto procesado se muestra en la ventana del compilador. Si se detectan errores o advertencias, estos se muestran en listas jerárquicas debajo del proyecto correspondiente. Los proyectos que contienen errores aparecen en **negrita**: ![](../assets/en/Project/compile-components-errors.png) 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 3392dc6642952d..622099fc8de202 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). -You can [develop](../Extensions/develop-components.md) and [build](../Desktop/building.md) your own 4D components, or download public components proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). +Puede [desarrollar](../Extensions/develop-components.md) y [crear](../Desktop/building.md) sus propios componentes 4D, o descargar componentes públicos propuestos por 4D o la comunidad 4D en la [**plataforma 4D Corner**](https://corner.4d.com/). Una vez instalados en su entorno 4D, las extensiones se manejan como **dependencias** con propiedades específicas. @@ -568,7 +568,7 @@ The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive li ![4d-corner](../assets/en/Project/4d-corner.png) -You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: +Puede abrir la [plataforma 4D Corner](https://corner.4d.com/) desde el administrador de dependencias, ya sea en la parte superior de la [ventana Agregar una dependencia](#adding-a-github-or-gitlab-dependency), o seleccionando **Descubra más componentes en 4D Corner...** en el menú de la parte inferior de la ventana del administrador de dependencias: ![4d-corner-access](../assets/en/Project/4d-corner-access.png) @@ -584,7 +584,7 @@ El enlace de dependencia se añade automáticamente en el área de dirección: ![añadir dependencia](../assets/en/Project/4d-corner-add.png) -3. [Configure the dependency reference](#adding-a-github-or-gitlab-dependency) and click **Add**. +3. [Configure la referencia de dependencia](#adding-a-github-or-gitlab-dependency) y haga clic en **Añadir**. :::tip Entrada de blog relacionada diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/service.md b/i18n/es/docusaurus-plugin-content-docs/current/server/service.md index b96e17f6d73582..147dd5697814f1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/service.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/service.md @@ -16,23 +16,23 @@ Esta operación le permite garantizar la disponibilidad de una aplicación 4D Se ::: -To register a 4D Server application as a Service, select **Register Current Application as Service** in the [**File** menu](./menus.md#file) of 4D Server. The next time the machine is started, 4D Server will be launched automatically and the current project opened. Puede registrar cualquier número de proyectos. Cada proyecto solo se puede registrar una vez. +To register a 4D Server application as a Service, select **Register Current Application as Service** in the [**File** menu](./menus.md#file) of 4D Server. La próxima vez que se inicie el equipo, 4D Server se ejecutará automáticamente y se abrirá el proyecto actual. Puede registrar cualquier número de proyectos. Cada proyecto solo se puede registrar una vez. :::note -Under Windows, this command may be grayed out when access to the service management functions is restricted. In this case, to be able to use this command, you must launch 4D Server with an administrator level (to do this, right click on the application icon and choose the **Run as administrator** command in the context menu). +Sous Windows, cette commande peut apparaître grisée lorsque l'accès aux fonctions de gestion des services est restreint. En este caso, para poder utilizar este comando, debe iniciar 4D Server con privilegios de administrador (para ello, haga clic derecho en el icono de la aplicación y seleccione la opción Ejecutar como administrador en el menú contextual). ::: :::warning -When registered as service, by default 4D Server is configured to use the "Local System Account". You must change this account and select a valid user account having the access rights and settings required to use your application. In particular, if you want to be able to print, you must open the session with a user account which has default print settings. El problema es similar si desea acceder a los volúmenes red. To change the account, go to **Control Panel > System and Security > Administrative Tools > Services**. In the **Services** list, right-click on **4D Server**, choose the **Properties** option, then go to the **Log On** tab and specify the account under which the server must run (setting used at next startup). +Por defecto, cuando se registra como servicio, 4D Server está configurado para usar la "Cuenta de sistema local". You must change this account and select a valid user account having the access rights and settings required to use your application. In particular, if you want to be able to print, you must open the session with a user account which has default print settings. El problema es similar si desea acceder a los volúmenes red. Para cambiar la cuenta, vaya a **Panel de control > Sistema y seguridad > Herramientas administrativas > Servicios**. En la lista **Servicios**, haga clic derecho en **4D Server**, seleccione la opción **Propiedades**, vaya a la pestaña **Iniciar sesión** y especifique la cuenta bajo la cual debe ejecutarse el servidor (ajuste que se aplicará en el próximo inicio). ::: -To unregister your application, select **Unregister Current Application** from the 4D Server **File** menu. Este comando se atenúa si el proyecto no está registrado como servicio. +Para dar de baja su aplicación, seleccione **Dar de baja la aplicación actual** en el menú **Archivo** de 4D Server. Este comando se atenúa si el proyecto no está registrado como servicio. -To unregister all 4D Server databases at once, select **Unregister All Server Services** from the 4D Server **File** menu. Este comando se atenúa si no hay ningún servicio 4D Server activado. +Para anular el registro de todas las bases de datos de 4D Server a la vez, seleccione **Anular el registro de todos los servicios del servidor** en el menú **Archivo** de 4D Server. Este comando se atenúa si no hay ningún servicio 4D Server activado. You cannot change the service registration status of 4D Server from within 4D Server, if the application has been launched as a service on start-up. En este caso, los tres elementos del menú están desactivados. Para detener el servicio, utilice el panel de control **Servicios**. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md index 13671ecc8d7383..fae70c5f7d81a1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md @@ -3,7 +3,7 @@ id: sso title: Autenticación única (SSO) --- -4D Server allows you to implement SSO (*Single Sign On*) capabilities in your client-server solutions on Windows. +4D Server le permite implementar soluciones de autenticación única (*Single Sign On* o *SSO*) en sus aplicaciones cliente-servidor en Windows. Implementing SSO in your 4D solutions will allow users to access the 4D application on Windows without needing to reenter their password when they are already logged into the Windows domain of their company (using Active Directory). Behind the scenes, the 4D Server application delegates the authentication to Active Directory and gets the Windows session login, which you can use to log the 4D user into the application by means of your standard login method. @@ -12,25 +12,25 @@ Implementing SSO in your 4D solutions will allow users to access the 4D applicat La funcionalidad SSO está disponible: - con las aplicaciones 4D Server en Windows (las aplicaciones 4D monousuario no soportan la autenticación única), -- with the [QUIC or ServerNet network layer](../settings/client-server.md#network-layer) enabled. +- con la [capa de red QUIC o ServerNet](../settings/client-server.md#network-layer) activada. ## Activar la funcionalidad SSO -De forma predeterminada, la función SSO no está activa en 4D Server. To benefit from this feature, you need to set the **Authentication of user with domain server** option on the [Client-Server/Network options page](../settings/client-server.md#authentication-of-user-with-domain-server) of the Settings dialog box of 4D Server: +De forma predeterminada, la función SSO no está activa en 4D Server. Para utilizar esta funcionalidad, debe marcar la opción **Autenticación del usuario con el servidor de dominio** en la [página de opciones de cliente-servidor/red](../settings/client-server.md#authentication-of-user-with-domain-server) del cuadro de diálogo Parámetros de 4D Server: ![](../assets/en/server/sso.png) Al marcar esta opción, 4D se conecta de forma transparente al directorio Active del servidor de dominio Windows y obtiene los tokens de autenticación disponibles. -Esta opción permite efectuar una autenticación estándar a través del protocolo NTLM. 4D es compatible con los protocolos NTLM y Kerberos. The protocol used is automatically selected by 4D depending on the [current configuration](#requirements-for-sso). If you want to use the Kerberos protocol, you need to fill in the additional SPN field as well (see below). +Esta opción permite efectuar una autenticación estándar a través del protocolo NTLM. 4D es compatible con los protocolos NTLM y Kerberos. El protocolo utilizado es seleccionado automáticamente por 4D dependiendo de la [configuración actual](#requirements-for-sso). Si desea utilizar el protocolo Kerberos, también debe completar el campo SPN adicional (ver más abajo). ### Utilizar Kerberos -If you want to use Kerberos as your authentication protocol, you also need to fill in the [**Service Principal Name** option on the Client-server/Network options page](../settings/client-server.md#service-principal-name) of the Settings dialog box: +Si desea utilizar Kerberos como protocolo de autenticación, también debe completar la opción [**Nombre principal de servicio** en la página de opciones de cliente-servidor/red](../settings/client-server.md#service-principal-name) del cuadro de diálogo de Parámetros: ![](../assets/en/server/sso-2.png) -Esta opción declara el SPN tal y como se configuró en Active Directory. Un nombre principal de servicio es un identificador único de una instancia de servicio. SPNs are used by Kerberos authentication to associate a service instance with a service logon account. This allows a client application to request that the service authenticates an account even if the client does not have the account name. For more information, please refer to the [SPN page on the MSDN web site](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). +Esta opción declara el SPN tal y como se configuró en Active Directory. Un nombre principal de servicio es un identificador único de una instancia de servicio. Los SPNs son utilizados por la autenticación Kerberos para asociar una instancia de servicio con una cuenta de inicio de sesión de servicio. This allows a client application to request that the service authenticates an account even if the client does not have the account name. For more information, please refer to the [SPN page on the MSDN web site](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). El identificador SPN debe respetar este formato: @@ -45,13 +45,13 @@ Donde: En las aplicaciones 4D, se puede configurar el SPN: - en las [propiedades de estructura](../Project/architecture.md#sources), para su uso con 4D Server. -- or in the [user settings](../Project/architecture.md#settings-user) for deployment needs. +- o en los [parámetros del usuario](../Project/architecture.md#settings-user) para las necesidades de despliegue. ## Implementar el SSO When SSO features are enabled, you can rely on user authentication based on Windows session credentials to open a user session on 4D Server. -Keep in mind that the SSO feature only provides you with an authenticated login; it is up to you to pass this login to your standard 4D login method. When a 4D remote application tries to connect to the server, you have to call the [`Current client authentication`](../commands/current-client-authentication) command, which will return the user login, as defined in the Active Directory. You can then pass this login to your own identification system (using the built-in user and groups, the LDAP commands, or any custom mechanism) to open the appropriate session for the remote user in your 4D application. +Keep in mind that the SSO feature only provides you with an authenticated login; it is up to you to pass this login to your standard 4D login method. Cuando una aplicación remota 4D intenta conectarse al servidor, hay que ejecutar el comando [`Current client authentication`](../commands/current-client-authentication), que devolverá el nombre de usuario, tal y como está definido en Active Directory. You can then pass this login to your own identification system (using the built-in user and groups, the LDAP commands, or any custom mechanism) to open the appropriate session for the remote user in your 4D application. Este principio se ilustra en el siguiente gráfico: @@ -83,11 +83,11 @@ flowchart LR style Ident fill:#ffffff,stroke:#365F91,stroke-width:2px ``` -The [`Current client authentication`](../commands/current-client-authentication) command must be called in the [`On Server Open Connection`](../commands-legacy/on-server-open-connection-database-method.md) database method, which is called each time a remote 4D opens a new connection to the 4D Server application. If authentication fails, you have to return a non-null value in the *$status* to reject the connection. +El comando [`Current client authentication`](../commands/current-client-authentication) debe llamarse en el método de la base de datos [`On Server Open Connection`](../commands-legacy/on-server-open-connection-database-method.md), que se llama cada vez que un 4D remoto abre una nueva conexión a la aplicación 4D Server. Si falla la autenticación, debe devolver un valor distinto de nulo en el parámetro *$status* para rechazar la conexión. ### Uso del comando Current client authentication -To call the [`Current client authentication`](../commands/current-client-authentication) command, use the following syntax: +El comando [`Current client authentication`](../commands/current-client-authentication) se utiliza con la siguiente sintaxis: ```4d $login:=Current client authentication($domain;$protocol) @@ -95,16 +95,16 @@ $login:=Current client authentication($domain;$protocol) Donde: -- *$login* es el identificador que utiliza el cliente para iniciar sesión en Active Directory (valor de tipo texto). Debe utilizar este valor para identificar al usuario dentro de su proyecto. If the user is not correcty authenticated, an empty string is returned and no error is returned. -- *$domain* y *$protocol* son parámetros texto opcionales. They are filled by the command and allow you to accept or reject connections depending on these values: +- *$login* es el identificador que utiliza el cliente para iniciar sesión en Active Directory (valor de tipo texto). Debe utilizar este valor para identificar al usuario dentro de su proyecto. Si el usuario no está autenticado correctamente, se devuelve una cadena vacía y no se devuelve ningún error. +- *$domain* y *$protocol* son parámetros texto opcionales. Se llenan por el comando y permiten aceptar o rechazar conexiones dependiendo de estos valores: - *$domain* es el nombre de dominio del Active Directory - *$protocol* es el nombre del protocolo que utiliza Windows para autenticar al usuario. ### Configuración requerida para el SSO -4D Server handles various SSO configurations, depending on the current architecture and settings. The protocol used for authentication (NTLM or Kerberos) as well as information returned by the [`Current client authentication`](../commands/current-client-authentication) command depend on the actual configuration, if all requirements are respected (see below). The protocol actually used for authentication is returned in the protocol parameter of the [`Current client authentication`](../commands/current-client-authentication) command. +4D Server admite diversas configuraciones de SSO, en función de la arquitectura y los ajustes actuales. El protocolo utilizado para la autenticación (NTLM o Kerberos), así como la información que devuelve el comando [`Current client authentication`](../commands/current-client-authentication), depende de la configuración real, siempre que se cumplan todos los requisitos (ver más abajo). The protocol actually used for authentication is returned in the protocol parameter of the [`Current client authentication`](../commands/current-client-authentication) command. -The following table provides the requirements for using NTLM or Kerberos authentication: +La siguiente tabla muestra los requisitos para utilizar la autenticación NTLM o Kerberos: | | NTLM | Kerberos | | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | @@ -114,11 +114,11 @@ The following table provides the requirements for using NTLM or Kerberos authent | El SPN se indica en 4D Server | no | yes(\*\*) | | Información devuelta por Current client authentication si se cumplen los requisitos | *login*=inicio de sesión esperado, *domain*=dominio esperado, *protocol*="NTLM" | *login*=inicio de sesión esperado, *domain*=dominio esperado, *protocol*="Kerberos" | -(\*) The following specific configuration is supported: the 4D remote user is a local account on a machine that belongs to the same AD as 4D Server. En este caso, el parámetro dominio contiene el nombre de la máquina de 4D Server. Note that the support depends on actual user settings: if not available, empty strings are returned. +(\*) The following specific configuration is supported: the 4D remote user is a local account on a machine that belongs to the same AD as 4D Server. En este caso, el parámetro dominio contiene el nombre de la máquina de 4D Server. Tenga en cuenta que esta función depende de los parámetros de usuario: si no está disponible, se devuelven cadenas vacías. -(\*\*) If all Kerberos requirements are respected but the [`Current client authentication`](../commands/current-client-authentication) command returns "NTLM" in protocol, this means that you are facing one of the following situations: +(\*\*) Si se cumplen todos los requisitos de Kerberos pero el comando [`Current client authentication`](../commands/current-client-authentication) devuelve "NTLM" como protocolo, esto significa que se enfrenta a una de las siguientes situaciones: -- The SPN syntax is not valid; in other words, it does not respect the [constraints imposed by Microsoft](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). +- La sintaxis SPN no es válida; en otras palabras, no cumple las [restricciones impuestas por Microsoft](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). - O bien, el SPN tiene duplicados en el AD. Este problema debe solucionarlo el administrador del AD. :::note diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md index a741d67d7e46c8..485d59afac6370 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md @@ -5,7 +5,7 @@ title: Volume Shadow Copy Service (VSS) 4D Server Windows comes with a dedicated **VSS writer** application that will automatically manage snapshot requests sent through Windows Volume Shadows Copy Service (VSS). -VSS is provided by Windows Server to allow backup applications to capture snapshots (shadow copies) of any files or entire hard disks at a given moment, while applications are running. Thanks to this technology, you can recover, for example, a 4D Server database at the exact state it was at the moment of the snapshot. This mechanism requires that running application files are in a consistent state when the snapshot is performed. For this reason, a VSS-aware application must install a VSS writer application or service. This component is then "warned" by the service when a shadow copy is about to be done and tells the **VSS requestor** (basically the backup application) how to back up its file and data. +VSS is provided by Windows Server to allow backup applications to capture snapshots (shadow copies) of any files or entire hard disks at a given moment, while applications are running. Thanks to this technology, you can recover, for example, a 4D Server database at the exact state it was at the moment of the snapshot. Este mecanismo requiere que los archivos de la aplicación en ejecución estén en un estado consistente cuando se realiza la copia. Por esta razón, una aplicación compatible con VSS debe instalar una aplicación o un servicio VSS writer. This component is then "warned" by the service when a shadow copy is about to be done and tells the **VSS requestor** (basically the backup application) how to back up its file and data. ## Requisitos del sistema del host (hipervisor) @@ -16,7 +16,7 @@ Del lado del equipo anfitrión, se admiten los siguientes solicitantes VSS: ## Activación del VSS -The VSS feature is automatically installed/updated when the 4D Server application is launched. El servicio de aplicación VSS writer se inicia si el usuario de la sesión tiene privilegios de administrador. +La funcionalidad VSS se instala o actualiza automáticamente al iniciar la aplicación 4D Server. El servicio de aplicación VSS writer se inicia si el usuario de la sesión tiene privilegios de administrador. Generalmente, el escenario inicial será: @@ -25,7 +25,7 @@ Generalmente, el escenario inicial será: 3. Salga y reinicie 4D Server o la aplicación servidor fusionada como administrador. El servicio 4D VSS se ejecuta y registra automáticamente en VSS. 4. (Opcional) Reinicie 4D Server o la aplicación servidor fusionada con los privilegios estándar. -El ejecutable VSS writer se inicia como un servicio con el nombre "VSS \". Se ejecutará un único servicio VSS para todas las instancias de 4D Server. One VSS service will run for each different engined application (different name) running on the machine (see below). +El ejecutable VSS writer se inicia como un servicio con el nombre "VSS \". Se ejecutará un único servicio VSS para todas las instancias de 4D Server. Se ejecutará un servicio VSS por cada aplicación con motor integrado (con un nombre distinto) que se ejecute en el equipo (ver más abajo). The [Monitor Page](../ServerWindow/monitor.md) of the 4D Server Administration window displays the status of VSS writer service, in Application information area: @@ -37,14 +37,14 @@ Additional information about the Volume Shadow Copy status can be displayed in a ## Acerca de VSS Writer -The **vss_writer.exe** application is provided to handle Volume Shadow Copy Service (VSS) management for 4D applications. +La aplicación **vss_writer.exe** se proporciona para gestionar el servicio Volume Shadow Copy Service (VSS) en las aplicaciones 4D. :::note -The 4D VSS management is handled through a separate application since this program must run using administration privileges. +La gestión del VSS de 4D se realiza a través de una aplicación independiente, ya que este programa debe ejecutarse con privilegios de administrador. ::: L'exécutable VSS writer de 4D est automatiquement installé par 4D Server au premier lancement. -El servicio 4D VSS Writer gestiona y transmite las solicitudes VSS a 4D Server. These messages are logged in the 4D Server diagnostic log, and in the Windows event viewer. \ No newline at end of file +El servicio 4D VSS Writer gestiona y transmite las solicitudes VSS a 4D Server. Estos mensajes se guardan en el registro de diagnóstico de 4D Server y en el Visor de eventos de Windows. \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Menus/sdi.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Menus/sdi.md index 4eaedf7f8d86db..74af2b8194d9e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Menus/sdi.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Menus/sdi.md @@ -1,6 +1,6 @@ --- id: sdi -title: SDI mode on Windows +title: Modo SDI en Windows --- En Windows, los desarrolladores 4D pueden probar y configurar sus aplicaciones fusionadas 4D para que funcionen como aplicaciones SDI (Single-Document Interface). En las aplicaciones SDI, cada ventana es independiente de las demás y puede tener su propia barra de menús. Las aplicaciones SDI se oponen a las aplicaciones MDI (Multiple Documents Interface), en las que todas las ventanas están contenidas y dependen de la ventana principal. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Menus/sdi.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Menus/sdi.md index 4eaedf7f8d86db..74af2b8194d9e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Menus/sdi.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Menus/sdi.md @@ -1,6 +1,6 @@ --- id: sdi -title: SDI mode on Windows +title: Modo SDI en Windows --- En Windows, los desarrolladores 4D pueden probar y configurar sus aplicaciones fusionadas 4D para que funcionen como aplicaciones SDI (Single-Document Interface). En las aplicaciones SDI, cada ventana es independiente de las demás y puede tener su propia barra de menús. Las aplicaciones SDI se oponen a las aplicaciones MDI (Multiple Documents Interface), en las que todas las ventanas están contenidas y dependen de la ventana principal. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Menus/sdi.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Menus/sdi.md index 4cc25c431f1856..da415515fefb00 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Menus/sdi.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Menus/sdi.md @@ -1,6 +1,6 @@ --- id: sdi -title: SDI mode on Windows +title: Modo SDI en Windows --- En Windows, los desarrolladores 4D pueden probar y configurar sus aplicaciones fusionadas 4D para que funcionen como aplicaciones SDI (Single-Document Interface). En las aplicaciones SDI, cada ventana es independiente de las demás y puede tener su propia barra de menús. Las aplicaciones SDI se oponen a las aplicaciones MDI (Multiple Documents Interface), en las que todas las ventanas están contenidas y dependen de la ventana principal. 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 dfc03c063750de..695a26f5b3ad21 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 コンポーネントが提供されています。 Use the [4D Corner platform](https://corner.4d.com/) to get a detailed list of all available 4D components. +いくつかのコンポーネントが[4D によって開発](../Extensions/overview.md#components-developed-by-4d)されていますが、それ以外にも4D コミュニティによるたくさんの4D コンポーネントが提供されています。 利用可能なすべての4D コンポーネントの詳細なリストを取得するには、[4D Corner platform](https://corner.4d.com/) を使用してください。 また、[独自の 4Dコンポーネントを開発](../Extensions/develop-components.md) することもできます。 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 7b0936e9c1e24b..58d02f9125599f 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 @@ -7,7 +7,7 @@ title: コンポーネントの開発 4D のコンポーネントとは、[4Dアプリケーションにインストール可能](Concepts/components.md) な、1つ以上の機能を持つ 4D関数やメソッド、フォームの一式です。 たとえば、メールの送受信をおこない、それらを 4D アプリケーションに格納するための機能を持ったコンポーネントを作成できます。 -ニーズに合わせて独自の 4Dコンポーネントを開発し、それを非公開とすることができます。 You can also [propose them to 4D Corner](https://corner.4d.com/) and [share them with the 4D community](https://github.com/topics/4d-component). +ニーズに合わせて独自の 4Dコンポーネントを開発し、それを非公開とすることができます。 また、[それらを4D Corner にアップロード](https://corner.4d.com/) して、[4D コミュニティと共有する](https://github.com/topics/4d-component)こともできます。 ## 定義 @@ -17,7 +17,7 @@ title: コンポーネントの開発 :::note -You can [create a component directly from the host](#creating-components) project without needing to go through a separate matrix project. +他の別のマトリックスプロジェクトを開くことなく、[ホストプロジェクトから直接コンポーネントを作成](#コンポーネントの作成) することができます。 ::: @@ -33,13 +33,13 @@ You can [create a component directly from the host](#creating-components) projec :::note -Interpreted component code can be [edited](#editing-components) and [compiled](../Project/compiler.md#compile-components) directly from the host project if the context is supported. +コンテキストがサポートされていれば、インタープリタコンポーネントのコードをホストプロジェクトから直接[編集](#コンポーネントの編集) し、[コンパイル](../Project/compiler.md#コンポーネントのコンパイル) することもできます。 ::: ## ホストからのコンポーネント作成と編集 -In interpreted mode, the 4D IDE allows you to create, edit, and compile components directly from the host project. これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 +インタープリターモードでは、4D IDE を使用することでホストプロジェクトからコンポーネントを直接作成、編集およびコンパイルすることができます。 これにより、ホストプロジェクトを閉じたり再起動したりすることなく、実際のコンテキストにおけるコンポーネント開発とチューニングを容易にします。 ### コンポーネントの作成 @@ -57,7 +57,7 @@ In interpreted mode, the 4D IDE allows you to create, edit, and compile componen :::note 注記 - コンポーネントは、**プロジェクトパッケージ内** で **Components フォルダーの外** に保存することはできません。 -- When a component is created from the host, it is assigned a [default namespace](#default-namespace). +- コンポーネントがホストからコンポーネント作成した場合、それらは[デフォルトの名前空間](#デフォルトの名前空間) が割り当てられます。 ::: @@ -80,7 +80,7 @@ In interpreted mode, the 4D IDE allows you to create, edit, and compile componen コンポーネントの[公開されたコンポーネントクラス](#クラスの共有) および [共有されたメソッド](#プロジェクトメソッドの共有) はエクスプローラーの**コンポーネントメソッド** タブから編集することができます。 -A specific icon indicates that the component contains shared code:
    +エクスプローラーでは、コンポーネントに共有されたコードが含まれていることを表す特定のアイコンが表示されます:
    ![](../assets/en/Develop/editable-component.png) **編集...** を選択するとコードエディターでコンポーネントのコードが開きます。 そこで編集し保存することができます。 @@ -115,9 +115,9 @@ A specific icon indicates that the component contains shared code:
    - メソッドの実行 - ゴミ箱からの復元、あるいはゴミ箱を空にする。 -### Compiling components +### コンポーネントのコンパイル -You can compile a component [directly from the host project](../Project/compiler.md#compile-components) without having to open it separately, provided it is compliant with the [requirements](../Project/compiler.md#requirements). +状況が[要件](../Project/compiler.md#要件) を満たしている場合、別途開くことなく、コンポーネントを[ホストプロジェクトから直接コンパイルする](../Project/compiler.md#コンポーネントのコンパイル) ことができます。 ### 検索と置換 @@ -200,7 +200,7 @@ EXECUTE METHOD($param) ### コンポーネント名前空間の宣言 -ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開するには、マトリクスプロジェクトの設定の [一般ページにある **クラスストア内でのコンポーネント名前空間** オプション](../settings/general.md#クラスストア内でのコンポーネント名前空間) に値を入力します。 By default, the area is empty (except when the component is [created from the host](#default-namespace)): component classes are not available outside of the component context. +ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開するには、マトリクスプロジェクトの設定の [一般ページにある **クラスストア内でのコンポーネント名前空間** オプション](../settings/general.md#クラスストア内でのコンポーネント名前空間) に値を入力します。 デフォルトでは、このエリアは空です(ただしコンポーネントが[ホストから作成された](#デフォルトの名前空間) 場合を除く): コンポーネントのクラスは、コンポーネントのコンテキスト外では利用できません。 ![](../assets/en/settings/namespace.png) @@ -231,11 +231,11 @@ $area:=$rect.getArea() コンポーネントの ORDAクラスは、ホストプロジェクトでは使用できません。 たとえば、コンポーネントに Employees というデータクラスがある場合、ホストプロジェクトで "cs.Mycomponent.Employee" クラスを使用することはできません。 -#### Default namespace +#### デフォルトの名前空間 -When a new component is [created from the host](#creating-components), a default namespace is automatically assigned to the component. +新しいコンポーネントが[ホストから作成された](#コンポーネントの作成) 場合、そのコンポーネントにはデフォルトの名前空間が自動的に割り当てられます。 -The default namespace is the component's name, without characters that do not comply with [property naming rules](../Concepts/identifiers.md#object-properties), if any. For example, for a component named "My Component-2", the default namespace will be "MyComponent2". +デフォルトの名前空間は、コンポーネントの名前から、[プロパティの命名規則](../Concepts/identifiers.md#オブジェクトプロパティ) に合致しない文字があればそれらを取り除いたものになります。 例えば、"My Component-2" と名前がつけられたコンポーネントは、デフォルトの名前空間は"MyComponent2" となります。 ### 非表示クラス @@ -552,5 +552,5 @@ macOS 上では、Finder からこの情報を見ることができます: 開発したコンポーネントを [GitHub](https://github.com/topics/4d-component) で公開し、4D開発者のコミュニティをサポートすることをお勧めします。 正しく参照されるためには、**`4d-component`** トピックをご利用ください。 -Use the [4D Corner platform](https://corner.4d.com/) to browse among existing components, and to register your own 4D components. +既存のコンポーネントを探したいとき、あるいは自分独自の4D コンポーネントを登録したい場合には、[4D Corner プラットフォーム](https://corner.4d.com/) を是非ご使用ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md index fa74850cebb75b..760ebb9a331717 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -11,12 +11,12 @@ title: 4D アプリケーションの拡張 - [**SQL コマンド**](../commands/theme/SQL) を使用すると、様々なSQL データソースに接続して、それらを使用することができます。 - [**ビルトイン HTTP クライアント**](../API/HTTPRequestClass.md) はあらゆるHTTP サーバーへとリクエストを送り、データを処理することができます。 - [**Web エリア**](../FormObjects/webArea_overview.md) を使用するとフォーム内においてWeb ページや様々なHTML コンテンツへのアクセスを提供できるようになります。 -- [**コンポーネント**](Concepts/components.md) コンポーネントは4D コードからできています。 4D はユーティリティコンポーネントのセット(以下参照) を提供しており、これを必要に応じてインストールして使用することができます。 また[自分で独自の4D コンポーネントを開発する](develop-components.md) ことや、あるいはサードパーティ製のコンポーネントを使用することもできます。 Many developers from the 4D community have shared 4D components. Browse the [**4D Corner platform**](https://corner.4d.com/) to get a comprehensive list of published components. +- [**コンポーネント**](Concepts/components.md) コンポーネントは4D コードからできています。 4D はユーティリティコンポーネントのセット(以下参照) を提供しており、これを必要に応じてインストールして使用することができます。 また[自分で独自の4D コンポーネントを開発する](develop-components.md) ことや、あるいはサードパーティ製のコンポーネントを使用することもできます。 たくさんの4D コミュニティのデベロッパーが4D コンポーネントを共有・公開しています。 公開されているコンポーネントの包括的なリストを取得するには、[**4D Corner プラットフォーム**](https://corner.4d.com/) をご覧ください。 - [**プラグイン**](../Concepts/plug-ins.md) プラグインはどんな言語でもビルドすることができます。 プラグインは、4D がネイティブにおこなっていないこと (例: 特定のプラットフォーム技術など) や、4D だけでは困難なことを実現します。 [このページ](develop-plug-ins.md) で説明しているように、独自のプラグインを開発することができます。 多くの機能は、既存の 4Dプラグインでカバーされています。 [`4d-plugin`](https://github.com/topics/4d-plugin) のトピックで公開されている 4Dプラグインの一覧を Github で閲覧することができます。 ## 4Dによって開発されたコンポーネント -4D は様々なコンポーネントを4D コミュニティに対して提供しており、これは幅広い開発需要をカバーしています。 All 4D components can be found on the [**4D Corner platform**](https://corner.4d.com/). +4D は様々なコンポーネントを4D コミュニティに対して提供しており、これは幅広い開発需要をカバーしています。 全ての4D 製のコンポーネントは[**4D Corner platform**](https://corner.4d.com/) にあります。 これらのコンポーネントの一部は、デフォルトで[依存関係マネージャー](../Project/components.md#adding-a-github-or-gitlab-dependency), に登録されています。具体的には以下の通りです: 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 7203df16af638a..6c47ccb3fdf988 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -10,9 +10,9 @@ title: リリースノート #### ハイライト - [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md) クラスの新しいクラスプロパティを使用したS/MIME Eメール署名のサポート: [`.certificate`](../API/SMTPTransporterClass.md#certificate) または [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (証明書の提供)、および[`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword)。 -- You can now [compile a component directly from the host](../Project/compiler.md#compile-components). +- [コンポーネントをホストから直接コンパイルする](../Project/compiler.md#コンポーネントのコンパイル) ことができるようになりました。 - Windows 上での [**fluent UI** レンダリング](../FormEditor/forms.md#fluent-ui-レンダリング) でのリストフォームのサポート。 -- Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). +- [依存関係マネージャー](../Project/components.md#4d-cornerを使用) から[4D Corner プラットフォーム](https://corner.4d.com/) へと直接アクセスできるようになりました。 - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21_R5): 4D 21 R5 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/178/release-note-version-20r5/))。 ## 4D 21 R4 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md index bc878fa5bc2f34..4a5f1bd7ffe9ed 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -43,7 +43,7 @@ Compilation requires an [appropriate license](../Admin/licenses.md). ライセ ::: -### Compile components +### コンポーネントのコンパイル
    履歴 From 254906803b251ff2192dd4944107026087bbd410 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 16 Sep 2026 19:00:39 +0200 Subject: [PATCH 47/60] Update security.md --- docs/settings/security.md | 78 +++++++++++++++++++++++++-------------- 1 file changed, 50 insertions(+), 28 deletions(-) diff --git a/docs/settings/security.md b/docs/settings/security.md index e069c52c8e0867..e49534030b8f0d 100644 --- a/docs/settings/security.md +++ b/docs/settings/security.md @@ -11,45 +11,67 @@ This page contains options related to data access and protection for your deskto > These settings do not apply to project databases opened in single-user mode. -- **Design and Runtime Explorer Access**: Gives the specified group the ability to enter the Design environment of the database and display the Runtime Explorer. +#### Design and Runtime Explorer Access - Note that: - - Setting an access group in the Design environment also lets you deactivate the **Create table** option in the data import dialog box. For more information about this dialog box, refer to [Importing data from files](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.en.html). +Gives the specified group the ability to enter the Design environment of the database and display the Runtime Explorer. - - The Designer and Administrator always have access to the Design environment and Runtime Explorer, even if they are not explicitly part of the specified access group.For more information about users and user groups, refer to the [Users and groups](../Users/handling_users_groups.md) chapter. +Note that: +- Setting an access group in the Design environment also lets you deactivate the **Create table** option in the data import dialog box. For more information about this dialog box, refer to [Importing data from files](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.en.html). -- **Default User**: When a Default User has been set, every user that opens the database or logs onto it has the same access privileges and restrictions defined for this Default User. It is no longer necessary to enter a user name. Moreover, if you have not associated a password with the Default User, the Password dialog box no longer appears and the database opens directly. - This option simplifies access to the database while maintaining a complete data control system. +- The Designer and Administrator always have access to the Design environment and Runtime Explorer, even if they are not explicitly part of the specified access group.For more information about users and user groups, refer to the [Users and groups](../Users/handling_users_groups.md) chapter. - - If you have associated a password with the Default User, a dialog box appears when the database is opened and the users must enter a password. - - 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. To do so, press the **Shift** key while opening the database or connecting to it. +#### Default User -- **Display User List in Password Dialog Box**: If this option is checked, users must choose their name from the list of users and enter their password in the User Identification dialog box. If it is not checked, users must enter both their name and password. 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). +When a Default User has been set, every user that opens the database or logs onto it has the same access privileges and restrictions defined for this Default User. It is no longer necessary to enter a user name. Moreover, if you have not associated a password with the Default User, the Password dialog box no longer appears and the database opens directly. - - **User List in Alphabetical Order** (only available if the previous option is checked): When this option is checked, the list of users in the password entry dialog box is sorted by alphabetical order. +This option simplifies access to the database while maintaining a complete data control system. -- **Users can change their password**: When this option is checked, a **Change** button is displayed in the User Identification dialog box. 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)). If desired, you can hide the **Change** button so that users cannot modify their passwords. To do so, just uncheck this option. +- If you have associated a password with the Default User, a dialog box appears when the database is opened and the users must enter a password. +- 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. To do so, press the **Shift** key while opening the database or connecting to it. + +#### Display User List in Password Dialog Box + +If this option is checked, users must choose their name from the list of users and enter their password in the User Identification dialog box. If it is not checked, users must enter both their name and password. 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). + +#### User List in Alphabetical Order (only available if the previous option is checked) + +When this option is checked, the list of users in the password entry dialog box is sorted by alphabetical order. + +#### Users can change their password + +When this option is checked, a **Change** button is displayed in the User Identification dialog box. 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)). If desired, you can hide the **Change** button so that users cannot modify their passwords. To do so, just uncheck this option. ## Options -- **Filtering of commands and project methods in the formula editor and in the 4D View Pro and 4D Write Pro documents**: - For security reasons, by default 4D restricts access to the commands, functions and project methods in the [Formula editor](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) in Application mode or added to multistyle areas (using [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), 4D Write Pro and 4D View Pro documents: only certain 4D functions and project methods that have been explicitly declared using the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command can be used. You can completely or partially remove this filtering using the following options. - - **Enabled for all** (default option): Access to commands, functions and project methods is restricted for all users, including the Designer and the Administrator. - - **Disable for the Designer and the Administrator**: This option grants full access to 4D commands and to methods only for the Designer and Administrator. It can be used to set up an unlimited access mode to commands and methods while remaining in control of the operations carried out. During the development phase, this mode can be used to freely test all the formulas, reports, and so on. During operation, it can be used to set up secure solutions that allow access to commands and methods on a temporary basis. This consists in changing the user (via the [`CHANGE CURRENT USER`](../commands/change-current-user) command) before calling a dialog box or starting a printing process that requires full access to the commands, then returning to the original user when the specific operation is completed. - **Note:** If full access has been enabled using the previous option, this option will have no effect. - - **Disabled for all**: This option disables control within formulas. When this option is checked, users have access to all the 4D commands and plug-ins as well as all project methods (except for invisible ones). - **Note:** This option takes priority over the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command. When it is checked, this command does nothing. +#### Filtering of commands and project methods in the formula editor and in the 4D View Pro and 4D Write Pro documents + +For security reasons, by default 4D restricts access to the commands, functions and project methods in the [Formula editor](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) in Application mode or added to multistyle areas (using [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), 4D Write Pro and 4D View Pro documents: only certain 4D functions and project methods that have been explicitly declared using the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command can be used. You can completely or partially remove this filtering using the following options. + +- **Enabled for all** (default option): Access to commands, functions and project methods is restricted for all users, including the Designer and the Administrator. + +- **Disable for the Designer and the Administrator**: This option grants full access to 4D commands and to methods only for the Designer and Administrator. It can be used to set up an unlimited access mode to commands and methods while remaining in control of the operations carried out. During the development phase, this mode can be used to freely test all the formulas, reports, and so on. During operation, it can be used to set up secure solutions that allow access to commands and methods on a temporary basis. This consists in changing the user (via the [`CHANGE CURRENT USER`](../commands/change-current-user) command) before calling a dialog box or starting a printing process that requires full access to the commands, then returning to the original user when the specific operation is completed. +**Note:** If full access has been enabled using the previous option, this option will have no effect. + +- **Disabled for all**: This option disables control within formulas. When this option is checked, users have access to all the 4D commands and plug-ins as well as all project methods (except for invisible ones). +**Note:** This option takes priority over the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command. When it is checked, this command does nothing. + +#### Enable User Settings + +You need to check this option to be able to display separated dialog boxes for user settings. When this option is checked, up to three dialog boxes are available: **Structure Settings**, **User Settings**, and **User Settings for Data File**. 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/on-host-database-event-database-method) facilitates the initialization and backup phases for 4D components. For security reasons, you must explicitly authorize the execution of this method in each host database. To do this, you must check this option. By default, it is not checked. -- **Enable User Settings**: You need to check this option to be able to display separated dialog boxes for user settings. When this option is checked, up to three dialog boxes are available: **Structure Settings**, **User Settings**, and **User Settings for Data File**. For more information, refer to [User settings](../settings/overview.md#user-settings). +When this option is checked: -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands/on-host-database-event-database-method) facilitates the initialization and backup phases for 4D components. For security reasons, you must explicitly authorize the execution of this method in each host database. To do this, you must check this option. By default, it is not checked. +* 4D components are loaded, +* each [On Host Database Event database method](../commands/on-host-database-event-database-method) of the component (if any) is called by the host database, +* the code of the method is executed. - When this option is checked: - * 4D components are loaded, - * each [On Host Database Event database method](../commands/on-host-database-event-database-method) of the component (if any) is called by the host database, - * the code of the method is executed. +When it is not checked: - When it is not checked: - * 4D components are loaded but they have to manage their initialization and backup phases themselves. - * the developer of the component has to publish the component methods that must be called by the host database during these phases (startup and shutdown) - * the developer of the host database must call the appropriate methods of the component at the right time (must be covered in the component documentation). +* 4D components are loaded but they have to manage their initialization and backup phases themselves. +* the developer of the component has to publish the component methods that must be called by the host database during these phases (startup and shutdown) +* the developer of the host database must call the appropriate methods of the component at the right time (must be covered in the component documentation). From 3770278efcb89f3724fc3cb4727db6796226868b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 17 Sep 2026 10:59:51 +0200 Subject: [PATCH 48/60] fix split string --- docs/language-legacy/String/split-string.md | 4 ++-- .../current/language-legacy/String/split-string.md | 4 ++-- .../version-21-R3/language-legacy/String/split-string.md | 4 ++-- .../version-21-R4/language-legacy/String/split-string.md | 4 ++-- .../version-21/commands-legacy/split-string.md | 4 ++-- .../current/language-legacy/String/split-string.md | 4 ++-- .../version-21-R3/language-legacy/String/split-string.md | 4 ++-- .../version-21-R4/language-legacy/String/split-string.md | 4 ++-- .../version-21/commands-legacy/split-string.md | 4 ++-- .../current/language-legacy/String/split-string.md | 4 ++-- .../version-21-R3/language-legacy/String/split-string.md | 4 ++-- .../version-21-R4/language-legacy/String/split-string.md | 4 ++-- .../version-21/commands-legacy/split-string.md | 4 ++-- .../current/language-legacy/String/split-string.md | 4 ++-- .../version-21-R3/language-legacy/String/split-string.md | 4 ++-- .../version-21-R4/language-legacy/String/split-string.md | 4 ++-- .../version-21/commands-legacy/split-string.md | 4 ++-- .../version-21-R3/language-legacy/String/split-string.md | 4 ++-- .../version-21-R4/language-legacy/String/split-string.md | 4 ++-- versioned_docs/version-21/commands-legacy/split-string.md | 4 ++-- 20 files changed, 40 insertions(+), 40 deletions(-) diff --git a/docs/language-legacy/String/split-string.md b/docs/language-legacy/String/split-string.md index b5fe8ad9455bc1..ea06ce97980697 100644 --- a/docs/language-legacy/String/split-string.md +++ b/docs/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ The *separator* parameter can be a multiple-character string: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md index c9ddd3f268c891..4644b330ed20d4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ El parámetro *separador* puede ser una cadena de múltiples caracteres: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md index c9ddd3f268c891..4644b330ed20d4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ El parámetro *separador* puede ser una cadena de múltiples caracteres: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md index c9ddd3f268c891..4644b330ed20d4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ El parámetro *separador* puede ser una cadena de múltiples caracteres: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md index 4fc6dee9bc65fa..74cb0831bfa810 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md @@ -61,8 +61,8 @@ El parámetro *separador* puede ser una cadena de múltiples caracteres: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md index 20f922041c8f0f..c728a8c4698ed3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ Le paramètre *séparateur* peut être une chaîne de plusieurs caractères : ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md index dffc7d6e30f77e..192d2bc5192db1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ Le paramètre *séparateur* peut être une chaîne de plusieurs caractères : ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md index 20f922041c8f0f..c728a8c4698ed3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ Le paramètre *séparateur* peut être une chaîne de plusieurs caractères : ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md index c8cd0e9f36dc89..b41f935daf13dd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md @@ -61,8 +61,8 @@ Le paramètre *séparateur* peut être une chaîne de plusieurs caractères : ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md index bf22af9154275e..df77f49e003dcb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ displayed_sidebar: docs ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md index bf22af9154275e..df77f49e003dcb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ displayed_sidebar: docs ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md index bf22af9154275e..df77f49e003dcb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ displayed_sidebar: docs ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md index a5c89566176ce4..db2c2437633b50 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md @@ -61,8 +61,8 @@ displayed_sidebar: docs ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md index 022577359c5d99..8cbb5e3061acc9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ O parâmetro *separador* pode ser uma string de múltiplos caracteres: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md index 022577359c5d99..8cbb5e3061acc9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ O parâmetro *separador* pode ser uma string de múltiplos caracteres: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md index 022577359c5d99..8cbb5e3061acc9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ O parâmetro *separador* pode ser uma string de múltiplos caracteres: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md index 04b8fd31fe1b62..52ea650ab59cca 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands-legacy/split-string.md @@ -61,8 +61,8 @@ O parâmetro *separador* pode ser uma string de múltiplos caracteres: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/versioned_docs/version-21-R3/language-legacy/String/split-string.md b/versioned_docs/version-21-R3/language-legacy/String/split-string.md index b5fe8ad9455bc1..ea06ce97980697 100644 --- a/versioned_docs/version-21-R3/language-legacy/String/split-string.md +++ b/versioned_docs/version-21-R3/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ The *separator* parameter can be a multiple-character string: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/versioned_docs/version-21-R4/language-legacy/String/split-string.md b/versioned_docs/version-21-R4/language-legacy/String/split-string.md index b5fe8ad9455bc1..ea06ce97980697 100644 --- a/versioned_docs/version-21-R4/language-legacy/String/split-string.md +++ b/versioned_docs/version-21-R4/language-legacy/String/split-string.md @@ -61,8 +61,8 @@ The *separator* parameter can be a multiple-character string: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` diff --git a/versioned_docs/version-21/commands-legacy/split-string.md b/versioned_docs/version-21/commands-legacy/split-string.md index feed9df309b0ba..1f29f2dd4a1cf5 100644 --- a/versioned_docs/version-21/commands-legacy/split-string.md +++ b/versioned_docs/version-21/commands-legacy/split-string.md @@ -61,8 +61,8 @@ The *separator* parameter can be a multiple-character string: ```4d  var $vt : Text  var $col : Collection - $vt:="NameSmithage40" - $col:=Split string($vt;"") + $vt:="NameSmithage40" + $col:=Split string($vt;"")   //$col=["Name","Smith","age","40"] ``` From 1b449915ddbafe3bf406c5fef614c0a044c56bac Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 17 Sep 2026 11:28:16 +0200 Subject: [PATCH 49/60] New Crowdin updates (#3430) * updates.md Spanish * develop-components.md Spanish * service.md Spanish * sso.md Spanish * vss.md Spanish * compiler.md Spanish * security.md French * mirror.md French * security.md Spanish * security.md Japanese * security.md Japanese * security.md Japanese * security.md Portuguese, Brazilian --- .../current/Extensions/develop-components.md | 6 +- .../current/Notes/updates.md | 2 +- .../current/Project/compiler.md | 4 +- .../current/server/service.md | 2 +- .../current/server/sso.md | 4 +- .../current/server/vss.md | 4 +- .../current/settings/security.md | 76 ++++++++++++------- .../current/Backup/mirror.md | 2 +- .../current/settings/security.md | 76 ++++++++++++------- .../current/settings/security.md | 76 ++++++++++++------- .../version-21-R3/settings/security.md | 2 +- .../version-21-R4/settings/security.md | 2 +- .../current/settings/security.md | 76 ++++++++++++------- 13 files changed, 206 insertions(+), 126 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 f3ed728a16b9fe..82e8ae856f776c 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 @@ -7,7 +7,7 @@ title: Componentes de desarrollo Un componente 4D es un conjunto de funciones, métodos y formularios 4D que representan una o varias funcionalidades que pueden ser [instaladas y utilizadas en aplicaciones 4D](Concepts/components.md). Por ejemplo, puede desarrollar un componente 4D de correo electrónico que gestione todos los aspectos del envío, la recepción y el almacenamiento de correos electrónicos en aplicaciones 4D. -Puede desarrollar componentes 4D para sus propias necesidades y mantenerlos en privado. You can also [propose them to 4D Corner](https://corner.4d.com/) and [share them with the 4D community](https://github.com/topics/4d-component). +Puede desarrollar componentes 4D para sus propias necesidades y mantenerlos en privado. También puede [proponerlas a 4D Corner](https://corner.4d.com/) y [compartirlas con la comunidad 4D](https://github.com/topics/4d-component). ## Definiciones @@ -233,7 +233,7 @@ Las clases ORDA de un componente no están disponibles en el proyecto local. Por #### Espacio de nombres por defecto -When a new component is [created from the host](#creating-components), a default namespace is automatically assigned to the component. +Cuando se [crea un nuevo componente desde el host](#creating-components), se le asigna automáticamente un espacio de nombres por defecto. The default namespace is the component's name, without characters that do not comply with [property naming rules](../Concepts/identifiers.md#object-properties), if any. Por ejemplo, para un componente llamado "My Component-2", el espacio de nombres por defecto será "MyComponent2". @@ -549,5 +549,5 @@ Para proteger eficazmente el código de un componente, basta con [compilar y gen 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. -Use the [4D Corner platform](https://corner.4d.com/) to browse among existing components, and to register your own 4D components. +Utilice la [plataforma 4D Corner](https://corner.4d.com/) para navegar entre los componentes existentes y registrar sus propios componentes 4D. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md index 70c9a1cf52272e..c9ddc1fd39502e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -12,7 +12,7 @@ Lea [**Las novedades en 4D 21 R5**](https://blog.4d.com/whats-new-in-4d-21-r5/), - Soporte de la firma de correo electrónico de S/MIME a través de las nuevas propiedades de clase [`4D.SMTPTransporter`](../API/SMTPTransporterClass.md): [`.certificate`](../API/SMTPTransporterClass.md#certificate) o [`.certificateName`](../API/SMTPTransporterClass.md#certificatename) (suministro del certificado) y [`.certificatePassword`](../API/SMTPTransporterClass.md#certificatepassword). - Ahora puede [compilar un componente directamente desde el host](../Project/compiler.md#compile-components). - Soporte de formularios lista en la [renderización **Fluent UI**](../FormEditor/forms.md#fluent-ui-rendering) en Windows. -- Direct access to the [4D Corner platform](https://corner.4d.com/) from the [Dependency manager](../Project/components.md#using-4d-corner). +- Acceso directo a la [plataforma 4D Corner](https://corner.4d.com/) desde el [gestor de dependencias](../Project/components.md#using-4d-corner). - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21_R5): lista de todos los bugs que se han corregido en 4D 21 R5. ## 4D 21 R4 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md index dc620640bea595..31ac2193607226 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -78,7 +78,7 @@ En la ventana del compilador se muestra una lista de componentes que se están c Para que un componente pueda ser compilado desde el proyecto principal, debe cumplir los siguientes requisitos: - el componente utiliza la [arquitectura del proyecto](../Project/architecture.md), -- the component's [interpreted code](../Concepts/interpreted.md) is available and the component is not [running in compiled mode](#run-compiled), +- el [código interpretado](../Concepts/interpreted.md) del componente está disponible y el componente no se está [ejecutando en modo compilado](#run-compiled), - el componente utiliza declaraciones de [tipado directo](#enabling-direct-typing). :::note @@ -89,7 +89,7 @@ El menú adicional no se muestra si el proyecto no contiene ningún componente e #### Propiedades y ajustes del compilador -All available features of the Compiler window are applied to the selected component(s): **Compile**, **Check syntax**, **Clear compiled code**. +Todas las funcionalidades disponibles de la ventana del compilador se aplican a los componentes seleccionados: **Compilar**, **Verificar sintaxis**, **Borrar código compilado**. Los [Parámetros](../settings/) no se pueden editar cuando hay un componente seleccionado (el botón aparece atenuado). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/service.md b/i18n/es/docusaurus-plugin-content-docs/current/server/service.md index 147dd5697814f1..72ff0a0f0441a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/service.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/service.md @@ -26,7 +26,7 @@ Sous Windows, cette commande peut apparaître grisée lorsque l'accès aux fonct :::warning -Por defecto, cuando se registra como servicio, 4D Server está configurado para usar la "Cuenta de sistema local". You must change this account and select a valid user account having the access rights and settings required to use your application. In particular, if you want to be able to print, you must open the session with a user account which has default print settings. El problema es similar si desea acceder a los volúmenes red. Para cambiar la cuenta, vaya a **Panel de control > Sistema y seguridad > Herramientas administrativas > Servicios**. En la lista **Servicios**, haga clic derecho en **4D Server**, seleccione la opción **Propiedades**, vaya a la pestaña **Iniciar sesión** y especifique la cuenta bajo la cual debe ejecutarse el servidor (ajuste que se aplicará en el próximo inicio). +Por defecto, cuando se registra como servicio, 4D Server está configurado para usar la "Cuenta de sistema local". Debes cambiar esta cuenta y seleccionar una cuenta de usuario válida que cuente con los derechos de acceso y la configuración necesarios para utilizar su aplicación. En particular, si desea efectuar impresiones, debe abrir la sesión con una cuenta de usuario que tenga la configuración de impresión predeterminada. El problema es similar si desea acceder a los volúmenes red. Para cambiar la cuenta, vaya a **Panel de control > Sistema y seguridad > Herramientas administrativas > Servicios**. En la lista **Servicios**, haga clic derecho en **4D Server**, seleccione la opción **Propiedades**, vaya a la pestaña **Iniciar sesión** y especifique la cuenta bajo la cual debe ejecutarse el servidor (ajuste que se aplicará en el próximo inicio). ::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md index fae70c5f7d81a1..ccb7953135803c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/sso.md @@ -30,7 +30,7 @@ Si desea utilizar Kerberos como protocolo de autenticación, también debe compl ![](../assets/en/server/sso-2.png) -Esta opción declara el SPN tal y como se configuró en Active Directory. Un nombre principal de servicio es un identificador único de una instancia de servicio. Los SPNs son utilizados por la autenticación Kerberos para asociar una instancia de servicio con una cuenta de inicio de sesión de servicio. This allows a client application to request that the service authenticates an account even if the client does not have the account name. For more information, please refer to the [SPN page on the MSDN web site](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). +Esta opción declara el SPN tal y como se configuró en Active Directory. Un nombre principal de servicio es un identificador único de una instancia de servicio. Los SPNs son utilizados por la autenticación Kerberos para asociar una instancia de servicio con una cuenta de inicio de sesión de servicio. Esto permite que una aplicación cliente solicite al servicio que autentifique una cuenta, incluso si el cliente no dispone del nombre de la cuenta. For more information, please refer to the [SPN page on the MSDN web site](https://msdn.microsoft.com/en-us/library/windows/desktop/ms677949%28v=vs.85%29.aspx). El identificador SPN debe respetar este formato: @@ -49,7 +49,7 @@ En las aplicaciones 4D, se puede configurar el SPN: ## Implementar el SSO -When SSO features are enabled, you can rely on user authentication based on Windows session credentials to open a user session on 4D Server. +Cuando la funcionalidad SSO está activa, puede confiar en la autenticación basada en las credenciales de la sesión de Windows para abrir una sesión de usuario en 4D Server. Keep in mind that the SSO feature only provides you with an authenticated login; it is up to you to pass this login to your standard 4D login method. Cuando una aplicación remota 4D intenta conectarse al servidor, hay que ejecutar el comando [`Current client authentication`](../commands/current-client-authentication), que devolverá el nombre de usuario, tal y como está definido en Active Directory. You can then pass this login to your own identification system (using the built-in user and groups, the LDAP commands, or any custom mechanism) to open the appropriate session for the remote user in your 4D application. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md index 485d59afac6370..a219ed0c797db3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/vss.md @@ -5,7 +5,7 @@ title: Volume Shadow Copy Service (VSS) 4D Server Windows comes with a dedicated **VSS writer** application that will automatically manage snapshot requests sent through Windows Volume Shadows Copy Service (VSS). -VSS is provided by Windows Server to allow backup applications to capture snapshots (shadow copies) of any files or entire hard disks at a given moment, while applications are running. Thanks to this technology, you can recover, for example, a 4D Server database at the exact state it was at the moment of the snapshot. Este mecanismo requiere que los archivos de la aplicación en ejecución estén en un estado consistente cuando se realiza la copia. Por esta razón, una aplicación compatible con VSS debe instalar una aplicación o un servicio VSS writer. This component is then "warned" by the service when a shadow copy is about to be done and tells the **VSS requestor** (basically the backup application) how to back up its file and data. +VSS is provided by Windows Server to allow backup applications to capture snapshots (shadow copies) of any files or entire hard disks at a given moment, while applications are running. Gracias a esta tecnología, puede recuperar, por ejemplo, una base 4D Server tal y como estaba en el momento de tomar la instantánea. Este mecanismo requiere que los archivos de la aplicación en ejecución estén en un estado consistente cuando se realiza la copia. Por esta razón, una aplicación compatible con VSS debe instalar una aplicación o un servicio VSS writer. This component is then "warned" by the service when a shadow copy is about to be done and tells the **VSS requestor** (basically the backup application) how to back up its file and data. ## Requisitos del sistema del host (hipervisor) @@ -31,7 +31,7 @@ The [Monitor Page](../ServerWindow/monitor.md) of the 4D Server Administration w ![](../assets/en/server/vss.png) -Additional information about the Volume Shadow Copy status can be displayed in a tips when you hover the mouse over the area: +Se puede mostrar información adicional sobre el estado Volume Shadow Copy en un globo de ayuda al pasar el ratón sobre el área: ![](../assets/en/server/vss-2.png) 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 f0160b53b1b26e..b178e4c4ccd14a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,48 +11,68 @@ 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 al entorno Diseño y al Explorador de ejecución - Note que: +Da al grupo especificado la capacidad de entrar en el entorno Diseño de la base de datos y mostrar el Explorador de ejecución. - - La definición de un grupo de acceso en el entorno Diseño también permite desactivar la opción **Crear una tabla** de la caja de diálogo de importación de datos. Para más información sobre esta caja de diálogo, consulte [Importar los datos desde los archivos](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.en.html). +Note que: - - El Diseñador y el Administrador siempre tienen acceso al entorno de diseño y al Explorador de ejecución, incluso si no son parte explícitamente del grupo de acceso específico. Para más información sobre usuarios y grupos de usuarios, consulta el capítulo [Usuarios y grupos](../Users/handling_users_groups.md). +- La definición de un grupo de acceso en el entorno Diseño también permite desactivar la opción **Crear una tabla** de la caja de diálogo de importación de datos. Para más información sobre esta caja de diálogo, consulte [Importar los datos desde los archivos](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.en.html). -- **Usuario por defecto**: cuando se ha definido un Usuario por defecto, todos los usuarios que abren o se conectan a la base tienen los mismos privilegios y restricciones de acceso definidos para este Usuario por defecto. Ya no es necesario ingresar un nombre de usuario. Además, si no ha asociado una contraseña al usuario por defecto, la caja de diálogo Contraseña ya no aparece y la base se abre directamente. - Esta opción simplifica el acceso a la base de datos a la vez que mantiene un sistema completo de control de datos. +- El Diseñador y el Administrador siempre tienen acceso al entorno de diseño y al Explorador de ejecución, incluso si no son parte explícitamente del grupo de acceso específico. Para más información sobre usuarios y grupos de usuarios, consulta el capítulo [Usuarios y grupos](../Users/handling_users_groups.md). - - 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. +#### Usuario por defecto -- **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 +When a Default User has been set, every user that opens the database or logs onto it has the same access privileges and restrictions defined for this Default User. Ya no es necesario ingresar un nombre de usuario. Además, si no ha asociado una contraseña al usuario por defecto, la caja de diálogo Contraseña ya no aparece y la base se abre directamente. - - **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 +Esta opción simplifica el acceso a la base de datos a la vez que mantiene un sistema completo de control de datos. -- **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. Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. 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)). Para ello, desmarque esta opción. +- 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 por defecto, el cuadro de diálogo de identificación de usuario no aparecerá. + **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 la lista de usuarios en el cuadro de diálogo Contraseña + +Si se marca esta opción, los usuarios deben elegir su nombre de la lista de usuarios e introducir su contraseña en el cuadro de diálogo 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 + +#### Lista de usuarios en orden alfabético (solo disponible si se ha marcado la opción anterior) + +Cuando esta opción está marcada, la lista de usuarios del cuadro de diálogo de introducción de contraseña se ordena alfabéticamente. + +#### Los usuarios pueden cambiar su contraseña + +Cuando esta opción está marcada, se muestra el botón **Cambiar** en el cuadro de diálogo de inicio de sesión de usuario. Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. 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)). Para ello, desmarque esta opción. ## Opciones -- **Filtering of commands and project methods in the formula editor and in the 4D View Pro and 4D Write Pro documents**: - For security reasons, by default 4D restricts access to the commands, functions and project methods in the [Formula editor](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) in Application mode or added to multistyle areas (using [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), 4D Write Pro and 4D View Pro documents: only certain 4D functions and project methods that have been explicitly declared using the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command can be used. Puede eliminar total o parcialmente este filtrado mediante las siguientes opciones. - - **Activado para todos** (opción por defecto): el acceso a los comandos, funciones y métodos proyecto está restringido para todos los usuarios, incluidos el Diseñador y el Administrador. - - **Desactivado para el Diseñador y el Administrador**: esta opción concede acceso completo a los comandos 4D y a los métodos sólo al Diseñador y al Administrador. Permite definir un modo de acceso ilimitado a los comandos y métodos sin perder el control de las operaciones efectuadas. Durante la fase de desarrollo, este modo puede utilizarse para probar libremente todas las fórmulas, informes, etc. Durante el funcionamiento, puede utilizarse para definir soluciones seguras que permitan el acceso temporal a comandos y métodos. Esto consiste en cambiar el usuario (a través del comando [`CHANGE CURRENT USER`](../commands/change-current-user)) antes de llamar a una caja de diálogo o iniciar un proceso de impresión que requiere acceso completo a los comandos, y luego volver al usuario original cuando se complete la operación específica. - **Nota:** si se ha activado el acceso completo mediante la opción anterior, esta opción no tendrá ningún efecto. - - **Desactivado para todos**: esta opción desactiva el control en las fórmulas. Cuando esta opción está marcada, los usuarios tienen acceso a todos los comandos 4D, plug-ins y métodos proyecto (excepto los invisibles). - Cuando esta opción está marcada, los usuarios tienen acceso a todos los comandos 4D, plug-ins y métodos proyecto (excepto los invisibles). Cuando se selecciona, este comando no hace nada. +#### Filtrado de comandos y métodos de proyecto en el editor de fórmulas y en los documentos de 4D View Pro y 4D Write Pro + +For security reasons, by default 4D restricts access to the commands, functions and project methods in the [Formula editor](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) in Application mode or added to multistyle areas (using [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), 4D Write Pro and 4D View Pro documents: only certain 4D functions and project methods that have been explicitly declared using the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command can be used. Puede eliminar total o parcialmente este filtrado mediante las siguientes opciones. + +- **Activado para todos** (opción por defecto): el acceso a los comandos, funciones y métodos proyecto está restringido para todos los usuarios, incluidos el Diseñador y el Administrador. + +- **Desactivado para el Diseñador y el Administrador**: esta opción concede acceso completo a los comandos 4D y a los métodos sólo al Diseñador y al Administrador. Permite definir un modo de acceso ilimitado a los comandos y métodos sin perder el control de las operaciones efectuadas. Durante la fase de desarrollo, este modo puede utilizarse para probar libremente todas las fórmulas, informes, etc. Durante el funcionamiento, puede utilizarse para definir soluciones seguras que permitan el acceso temporal a comandos y métodos. Esto consiste en cambiar el usuario (a través del comando [`CHANGE CURRENT USER`](../commands/change-current-user)) antes de llamar a una caja de diálogo o iniciar un proceso de impresión que requiere acceso completo a los comandos, y luego volver al usuario original cuando se complete la operación específica. + **Nota:** si se ha activado el acceso completo mediante la opción anterior, esta opción no tendrá ningún efecto. + +- **Desactivado para todos**: esta opción desactiva el control en las fórmulas. Cuando esta opción está marcada, los usuarios tienen acceso a todos los comandos 4D, plug-ins y métodos proyecto (excepto los invisibles). + Cuando esta opción está marcada, los usuarios tienen acceso a todos los comandos 4D, plug-ins y métodos proyecto (excepto los invisibles). Cuando se selecciona, este comando no hace nada. + +#### Activar la configuración de usuario + +Debe seleccionar esta opción para poder mostrar cuadros de diálogo independientes para la configuración de 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). -- **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 -- **Ejecutar el método "On Host Database Event" de los componentes**: el [método base On Host Database Event](../commands/on-host-database-event-database-method) 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. +The [On Host Database Event database method](../commands/on-host-database-event-database-method) facilitates the initialization and backup phases for 4D components. 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: +Cuando esta opción está seleccionada: - - los componentes 4D están cargados, - - cada método base [On Host Database Event](../commands/on-host-database-event-database-method) del componente (si lo hay) es llamado por la base local, - - se ejecuta el código del método. +- los componentes 4D están cargados, +- cada método base [On Host Database Event](../commands/on-host-database-event-database-method) del componente (si lo hay) es llamado por la base local, +- se ejecuta el código del método. - Cuando no está marcada: +Cuando no está marcada: - - Los componentes 4D se cargan, pero tienen que gestionar ellos mismos sus fases de inicialización y copia de seguridad. - - el desarrollador del componente tiene que publicar los métodos del componente que deben ser llamados por la base de datos anfitriona durante estas fases (inicio y cierre) - - el desarrollador de la base local debe llamar a los métodos apropiados del componente en el momento adecuado (debe estar contemplado en la documentación del componente). +- Los componentes 4D se cargan, pero tienen que gestionar ellos mismos sus fases de inicialización y copia de seguridad. +- el desarrollador del componente tiene que publicar los métodos del componente que deben ser llamados por la base de datos anfitriona durante estas fases (inicio y cierre) +- el desarrollador de la base local debe llamar a los métodos apropiados del componente en el momento adecuado (debe estar contemplado en la documentación del componente). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/mirror.md b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/mirror.md index d39a7741d768ac..2f42c4577ce26a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Backup/mirror.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Backup/mirror.md @@ -27,7 +27,7 @@ La base miroir ne reflète que les modifications apportées aux **données**. Ce ## Principes de fonctionnement -Setting up a backup system using a logical mirror is based on two commands: [`New log file`](../commands/new-log-file) and [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). +La mise en place d'un système de sauvegarde à l'aide d'un miroir logique repose sur deux commandes : [`New log file`](../commands/new-log-file) et [`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file). Les principes suivants sont mis en œuvre : 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 2e9c58cbe9de99..596e6bcee8113d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,48 +11,68 @@ 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. +#### Design and Runtime Explorer Access - A noter que : +Gives the specified group the ability to enter the Design environment of the database and display the Runtime Explorer. - - La définition d’un groupe d’accès en Développement permet également de désactiver l’option **Créer une table** de la boîte de dialogue d’import de données. Pour plus d'informations sur cette boîte de dialogue, reportez-vous à [Importer des données depuis des fichiers](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.en.html). +A noter que : - - Le Super_Utilisateur et l'Administrateur ont toujours accès à l'environnement de développement et à l'Explorateur d'exécution, même s'ils ne font pas explicitement partie du groupe d'accès spécifié. Pour plus d'information sur les utilisateurs et les groupes d'utilisateurs, veuillez vous référer au chapitre [Utilisateurs et groupes](../Users/handling_users_groups.md). +- La définition d’un groupe d’accès en Développement permet également de désactiver l’option **Créer une table** de la boîte de dialogue d’import de données. Pour plus d'informations sur cette boîte de dialogue, reportez-vous à [Importer des données depuis des fichiers](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.en.html). -- **Utilisateur par défaut** : lorsqu’un utilisateur est défini dans ce menu, chaque utilisateur ouvrant ou se connectant à la base dispose des privilèges et restrictions d’accès qui ont été assignés à cet utilisateur par défaut. Il n’est alors plus nécessaire de saisir un nom d’utilisateur. De plus, si vous n’avez pas associé de mot de passe à l’utilisateur par défaut, la boîte de dialogue de saisie du mot de passe n’apparaît pas, la base s’ouvre directement. - L’intérêt de cette option est de simplifier les accès multiples à la base tout en maintenant un système complet de contrôle des données. +- Le Super_Utilisateur et l'Administrateur ont toujours accès à l'environnement de développement et à l'Explorateur d'exécution, même s'ils ne font pas explicitement partie du groupe d'accès spécifié. Pour plus d'information sur les utilisateurs et les groupes d'utilisateurs, veuillez vous référer au chapitre [Utilisateurs et groupes](../Users/handling_users_groups.md). - - 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. +#### Default User -- **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). +When a Default User has been set, every user that opens the database or logs onto it has the same access privileges and restrictions defined for this Default User. Il n’est alors plus nécessaire de saisir un nom d’utilisateur. De plus, si vous n’avez pas associé de mot de passe à l’utilisateur par défaut, la boîte de dialogue de saisie du mot de passe n’apparaît pas, la base s’ouvre directement. - - **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. +L’intérêt de cette option est de simplifier les accès multiples à la base tout en maintenant un système complet de contrôle des données. -- **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. +- 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, aucune boîte de dialogue n’apparaît. + **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. Pour cela, ouvrez (ou connectez-vous à) la base de données tout en maintenant la touche **Majuscule** enfoncée. + +#### Display User List in Password Dialog Box + +If this option is checked, users must choose their name from the list of users and enter their password in the User Identification dialog box. 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). + +#### User List in Alphabetical Order (only available if the previous option is checked) + +When this option is checked, the list of users in the password entry dialog box is sorted by alphabetical order. + +#### Users can change their password + +When this option is checked, a **Change** button is displayed in the User Identification dialog box. 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 -- **Filtrage des commandes et méthodes de projet dans l'éditeur de formules et dans les documents 4D View Pro et 4D Write Pro** : - Pour des raisons de sécurité, 4D restreint par défaut l'accès aux commandes, fonctions et méthodes projet dans l'[éditeur de formules](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) en mode Application ou ajoutées aux zones multistyles (en utilisant [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), documents 4D Write Pro et 4D View Pro : seules certaines fonctions et méthodes projet 4D qui ont été explicitement déclarées en utilisant la commande [`SET ALLOWED METHODS`](../commands/set-allowed-methods) peuvent être utilisées. A l'aide des options suivantes, vous pouvez supprimer complètement ou partiellement ce filtrage. - - **Activé pour tous** (par défaut) : L'accès aux commandes, fonctions et méthodes projets est limité pour tous les utilisateurs, y compris au Super Utilisateur et à l'Administrateur. - - **Désactivé pour le Super Utilisateur et l'Administrateur** : Cette option accorde, uniquement au Super Utilisateur et à l'Administrateur, un accès complet aux commandes et méthodes 4D. Elle peut être utilisée pour définir un mode d'accès illimité aux commandes et méthodes tout en gardant le contrôle des actions effectuées. En phase de développement, ce mode peut être utilisé pour tester librement toutes les formules, les états, etc. En cours d'exploitation, il peut être utilisé pour mettre en oeuvre des solutions sécurisées permettant un accès temporaire à toutes les commandes et méthodes. Cela consiste à changer l'utilisateur (via la commande [`CHANGE CURRENT USER`](../commands/change-current-user)) avant d'appeler une boîte de dialogue ou de démarrer un process d'impression qui nécessite un accès complet aux commandes, puis à retourner à l'utilisateur d'origine lorsque l'opération spécifique est terminée. - **Note :** Si l'accès complet a été activé à l'aide de l'option précédente, cette option n'aura pas d'effet. - - **Désactivé pour tous** : Cette option désactive le contrôle dans les formules. Lorsque cette option est cochée, les utilisateurs ont accès à l'ensemble des commandes, plug-ins et méthodes projets (à l'exception de ceux qui sont invisibles). - Lorsque cette option est cochée, les utilisateurs ont accès à l'ensemble des commandes, plug-ins et méthodes projets (à l'exception de ceux qui sont invisibles). Lorsqu'elle est cochée, cette commande ne fait rien. +#### Filtering of commands and project methods in the formula editor and in the 4D View Pro and 4D Write Pro documents + +For security reasons, by default 4D restricts access to the commands, functions and project methods in the [Formula editor](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) in Application mode or added to multistyle areas (using [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), 4D Write Pro and 4D View Pro documents: only certain 4D functions and project methods that have been explicitly declared using the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command can be used. A l'aide des options suivantes, vous pouvez supprimer complètement ou partiellement ce filtrage. + +- **Activé pour tous** (par défaut) : L'accès aux commandes, fonctions et méthodes projets est limité pour tous les utilisateurs, y compris au Super Utilisateur et à l'Administrateur. + +- **Désactivé pour le Super Utilisateur et l'Administrateur** : Cette option accorde, uniquement au Super Utilisateur et à l'Administrateur, un accès complet aux commandes et méthodes 4D. Elle peut être utilisée pour définir un mode d'accès illimité aux commandes et méthodes tout en gardant le contrôle des actions effectuées. En phase de développement, ce mode peut être utilisé pour tester librement toutes les formules, les états, etc. En cours d'exploitation, il peut être utilisé pour mettre en oeuvre des solutions sécurisées permettant un accès temporaire à toutes les commandes et méthodes. Cela consiste à changer l'utilisateur (via la commande [`CHANGE CURRENT USER`](../commands/change-current-user)) avant d'appeler une boîte de dialogue ou de démarrer un process d'impression qui nécessite un accès complet aux commandes, puis à retourner à l'utilisateur d'origine lorsque l'opération spécifique est terminée. + **Note :** Si l'accès complet a été activé à l'aide de l'option précédente, cette option n'aura pas d'effet. + +- **Désactivé pour tous** : Cette option désactive le contrôle dans les formules. Lorsque cette option est cochée, les utilisateurs ont accès à l'ensemble des commandes, plug-ins et méthodes projets (à l'exception de ceux qui sont invisibles). + Lorsque cette option est cochée, les utilisateurs ont accès à l'ensemble des commandes, plug-ins et méthodes projets (à l'exception de ceux qui sont invisibles). Lorsqu'elle est cochée, cette commande ne fait rien. + +#### Enable User Settings + +You need to check this option to be able to display separated dialog boxes for user settings. 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). -- **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 -- **Exécuter la méthode "Sur événement base hôte" des composants** : La méthode [On Host Database Event](../commands/on-host-database-event-database-method) facilite les phases d'initialisation et de sauvegarde des composants 4D. 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. +The [On Host Database Event database method](../commands/on-host-database-event-database-method) 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 : +Lorsque cette option est cochée : - - les composants 4D sont chargés, - - chaque méthode [On Host Database Event](../commands/on-host-database-event-database-method) du composant (s'il y en a) est appelée par le projet hôte, - - le code de la méthode est exécuté. +- les composants 4D sont chargés, +- chaque méthode [On Host Database Event](../commands/on-host-database-event-database-method) du composant (s'il y en a) est appelée par le projet hôte, +- le code de la méthode est exécuté. - Lorsque cette option n’est pas cochée : +Lorsque cette option n’est pas cochée : - - les composants 4D sont chargés mais ils doivent gérer eux-mêmes leurs phases d’initialisation et de sauvegarde. - - le développeur du composant doit publier les méthodes du composant qui doivent être appelées par la base hôte lors de ces phases (démarrage et fermeture) - - le développeur de la base hôte doit appeler les méthodes appropriées du composant au bon moment (doit être exposé dans la documentation du composant). +- les composants 4D sont chargés mais ils doivent gérer eux-mêmes leurs phases d’initialisation et de sauvegarde. +- le développeur du composant doit publier les méthodes du composant qui doivent être appelées par la base hôte lors de ces phases (démarrage et fermeture) +- le développeur de la base hôte doit appeler les méthodes appropriées du composant au bon moment (doit être exposé dans la documentation du composant). 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 d57e9a1a58a982..1725ec57b07f3b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,48 +11,68 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 -- **デザインおよびランタイムエクスプローラーアクセス権**: データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 +#### Design and Runtime Explorer Access - 注: +Gives the specified group the ability to enter the Design environment of the database and display the Runtime Explorer. - - デザインモードへのアクセスグループを設定すると、データ読み込みダイアログの **テーブルを作成** オプションが無効となります。 このダイアログボックスに関する詳細は [ファイルからデータを読み込む](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.ja.html) を参照ください。 +注: - - Designer とAdministrator は常にデザインモードとランタイムエクスプローラーにアクセスできます。 設定されるアクセスグループのメンバーに含められる必要はありません。 ユーザーおよびグループに関する詳細は [ユーザー&グループ](../Users/handling_users_groups.md) の章をご参照ください。 +- デザインモードへのアクセスグループを設定すると、データ読み込みダイアログの **テーブルを作成** オプションが無効となります。 このダイアログボックスに関する詳細は [ファイルからデータを読み込む](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.ja.html) を参照ください。 -- **デフォルトユーザー**: デフォルトユーザーが設定されると、データベースを開く、あるいはデータベースにログインするすべてのユーザーは、このデフォルトユーザーに定義されたアクセス権と同じ制限を持つことになります。 ユーザー名の入力が不要になるだけでなく、 ユーザー名の入力が不要になるだけでなく、 デフォルトユーザーにパスワードを割り当てていない場合、パスワードダイアログボックスは表示されず、データベースが直接開かれます。 - このオプションを使用することで、完全なデータコントロールシステムを維持しつつ、データベースへのアクセスをシンプルにすることができます。 +- Designer とAdministrator は常にデザインモードとランタイムエクスプローラーにアクセスできます。 設定されるアクセスグループのメンバーに含められる必要はありません。 ユーザーおよびグループに関する詳細は [ユーザー&グループ](../Users/handling_users_groups.md) の章をご参照ください。 - - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - - デフォルトユーザーにパスワードを割り当てない場合、上記のダイアログは表示されません。
    **注:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。これはたとえば Administrator や Designer としてログインするために必要となります。 これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 +#### Default User -- **パスワードダイアログにユーザーリストを表示する**: このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。 オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 パスワードダイアログボックスの 2つのバージョンに関する詳細は [アクセスシステムの概要](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.ja.html) を参照ください。 +When a Default User has been set, every user that opens the database or logs onto it has the same access privileges and restrictions defined for this Default User. ユーザー名の入力が不要になるだけでなく、 ユーザー名の入力が不要になるだけでなく、 デフォルトユーザーにパスワードを割り当てていない場合、パスワードダイアログボックスは表示されず、データベースが直接開かれます。 - - **ユーザーリストをABC順で表示する** (上記オプションが選択されているときのみ有効です): このオプションが選択されていると、ユーザー認証ダイアログボックスのユーザーリストは名前の ABC順に表示されます。 +このオプションを使用することで、完全なデータコントロールシステムを維持しつつ、データベースへのアクセスをシンプルにすることができます。 -- **ユーザーは自分のパスワードを変更可能**: このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。 このボタンを使用すると、パスワードを変更するためのダイアログボックスが表示されます (このダイアログに関する詳細は [パスワードアクセスシステムの保守](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.ja.html) の "ユーザーによるパスワードの変更" を参照ください)。 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 +- デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 +- デフォルトユーザーにパスワードを割り当てていない場合、パスワードダイアログボックスは表示されません。 + **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. これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 + +#### Display User List in Password Dialog Box + +If this option is checked, users must choose their name from the list of users and enter their password in the User Identification dialog box. オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 パスワードダイアログボックスの 2つのバージョンに関する詳細は [アクセスシステムの概要](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.ja.html) を参照ください。 + +#### User List in Alphabetical Order (only available if the previous option is checked) + +When this option is checked, the list of users in the password entry dialog box is sorted by alphabetical order. + +#### Users can change their password + +When this option is checked, a **Change** button is displayed in the User Identification dialog box. このボタンを使用すると、パスワードを変更するためのダイアログボックスが表示されます (このダイアログに関する詳細は [パスワードアクセスシステムの保守](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.ja.html) の "ユーザーによるパスワードの変更" を参照ください)。 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 ## オプション -- **フォーミュラエディターと 4D View Pro と 4D Write Proドキュメントで使用できるコマンドとプロジェクトメソッドの制限**: - セキュリティのため 4D はデフォルトで、アプリケーションモードの [フォーミュラエディター](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.ja.html) においてコマンド、関数、プロジェクトメソッドへのアクセスを制限しています。これは、[`ST INSERT EXPRESSION`](../commands/st-insert-expression) コマンドによってマルチスタイルエリアに追加されるフォーミュラエディターの他、4D View Pro および 4D Write Proドキュメントにおいても同様です。[`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドを使用して明示的に許可された 4D 関数やプロジェクトメソッドのみを使用することができます。 以下のオプションを使用して、部分的あるいは全体的にこのフィルタリングを無効にできます。 - - **すべてのユーザーを制限する** (デフォルトオプション): Designer と Administrator を含むすべてのユーザーに対し、コマンドや関数、プロジェクトメソッドへのアクセスを制限します。 - - **DesignerとAdministratorは制限しない**: このオプションは Designer と Administrator のみに、4Dコマンドやメソッドへの完全なアクセスを与えます。 他のユーザーには制限をかけつつ、管理者に無制限のアクセスを与えたい場合に使用できます。 開発段階では、このモードを使用してすべてのフォーミュラやレポート等を自由にテストできます。 運用時には、一時的にコマンドやメソッドへのアクセスを与えるためなどに使用できます。 これを行うには、コマンドへのフルアクセスが必要なダイアログを呼び出したり印刷処理を開始したりする前に ([`CHANGE CURRENT USER`](../commands/change-current-user) コマンドを使用して) ユーザーを切り替えます。そしてその処理が終了したのちに元のユーザーに戻します。 - **注:** 前のオプションを使用してフルアクセスが有効にされると、このオプションは効果を失います。 - - **誰も制限しない**: このオプションはフォーミュラの制御を無効にします。 このオプションが選択されると、ユーザーはすべての 4Dコマンドおよびプラグインコマンド、さらにはプロジェクトメソッドを使用できます (非表示のものを除く)。 - **注意:** このオプションは[`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドよりも優先されます。 このオプションが選択されると、コマンドの効果はなくなります。 +#### Filtering of commands and project methods in the formula editor and in the 4D View Pro and 4D Write Pro documents + +For security reasons, by default 4D restricts access to the commands, functions and project methods in the [Formula editor](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) in Application mode or added to multistyle areas (using [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), 4D Write Pro and 4D View Pro documents: only certain 4D functions and project methods that have been explicitly declared using the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command can be used. 以下のオプションを使用して、部分的あるいは全体的にこのフィルタリングを無効にできます。 + +- **すべてのユーザーを制限する** (デフォルトオプション): Designer と Administrator を含むすべてのユーザーに対し、コマンドや関数、プロジェクトメソッドへのアクセスを制限します。 + +- **DesignerとAdministratorは制限しない**: このオプションは Designer と Administrator のみに、4Dコマンドやメソッドへの完全なアクセスを与えます。 他のユーザーには制限をかけつつ、管理者に無制限のアクセスを与えたい場合に使用できます。 開発段階では、このモードを使用してすべてのフォーミュラやレポート等を自由にテストできます。 運用時には、一時的にコマンドやメソッドへのアクセスを与えるためなどに使用できます。 これを行うには、コマンドへのフルアクセスが必要なダイアログを呼び出したり印刷処理を開始したりする前に ([`CHANGE CURRENT USER`](../commands/change-current-user) コマンドを使用して) ユーザーを切り替えます。そしてその処理が終了したのちに元のユーザーに戻します。 + **注:** 前のオプションを使用してフルアクセスが有効にされると、このオプションは効果を失います。 + +- **誰も制限しない**: このオプションはフォーミュラの制御を無効にします。 このオプションが選択されると、ユーザーはすべての 4Dコマンドおよびプラグインコマンド、さらにはプロジェクトメソッドを使用できます (非表示のものを除く)。 + **注意:** このオプションは[`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドよりも優先されます。 このオプションが選択されると、コマンドの効果はなくなります。 + +#### Enable User Settings + +You need to check this option to be able to display separated dialog boxes for user settings. このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 詳細は [ユーザー設定](../settings/overview.md#ユーザー設定) を参照ください。 -- **外部ファイルのユーザー設定を有効にする**: 外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。 このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 詳細は [ユーザー設定](../settings/overview.md#ユーザー設定) を参照ください。 +#### Execute "On Host Database Event" method of the components -- **コンポーネントの "On Host Database Event" メソッドを実行**: [On Host Database Event database method](../commands/on-host-database-event-database-method) は 4Dコンポーネントの初期化とバックアップフェーズを容易にします。 セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 +The [On Host Database Event database method](../commands/on-host-database-event-database-method) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 - このオプションがチェックされていると: +このオプションがチェックされていると: - - 4D コンポーネントがロードされます。 - - コンポーネントそれぞれの [On Host Database Event データベースメソッド](../commands/on-host-database-event-database-method) (あれば) がホストデータベースによって呼び出されます。 - - メソッドのコードが実行されます。 +- 4D コンポーネントがロードされます。 +- コンポーネントそれぞれの [On Host Database Event データベースメソッド](../commands/on-host-database-event-database-method) (あれば) がホストデータベースによって呼び出されます。 +- メソッドのコードが実行されます。 - このオプションがチェックされていないと: +このオプションがチェックされていないと: - - 4D コンポーネントはロードはされるものの、初期化とバックアップフェーズはコンポーネントによって管理されなければなりません。 - - コンポーネントの開発者は、これらのフェーズ (スタートアップとシャットダウン) 中にホストデータベースによって呼び出されなければならないコンポーネントメソッドを公開する必要がります。 - - ホストデータベースの開発者は、コンポーネントの適切なメソッドを適切なタイミングで呼び出さなければなりません (コンポーネントのドキュメンテーションにて解説が必要です)。 +- 4D コンポーネントはロードはされるものの、初期化とバックアップフェーズはコンポーネントによって管理されなければなりません。 +- コンポーネントの開発者は、これらのフェーズ (スタートアップとシャットダウン) 中にホストデータベースによって呼び出されなければならないコンポーネントメソッドを公開する必要がります。 +- ホストデータベースの開発者は、コンポーネントの適切なメソッドを適切なタイミングで呼び出さなければなりません (コンポーネントのドキュメンテーションにて解説が必要です)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/settings/security.md index 4a6528f7bb3567..d57e9a1a58a982 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/settings/security.md @@ -33,7 +33,7 @@ title: セキュリティページ ## オプション -- **フォーミュラエディタと 4D View Pro と 4D Write Proドキュメントで使用できるコマンドとプロジェクトメソッドの制限**: +- **フォーミュラエディターと 4D View Pro と 4D Write Proドキュメントで使用できるコマンドとプロジェクトメソッドの制限**: セキュリティのため 4D はデフォルトで、アプリケーションモードの [フォーミュラエディター](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.ja.html) においてコマンド、関数、プロジェクトメソッドへのアクセスを制限しています。これは、[`ST INSERT EXPRESSION`](../commands/st-insert-expression) コマンドによってマルチスタイルエリアに追加されるフォーミュラエディターの他、4D View Pro および 4D Write Proドキュメントにおいても同様です。[`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドを使用して明示的に許可された 4D 関数やプロジェクトメソッドのみを使用することができます。 以下のオプションを使用して、部分的あるいは全体的にこのフィルタリングを無効にできます。 - **すべてのユーザーを制限する** (デフォルトオプション): Designer と Administrator を含むすべてのユーザーに対し、コマンドや関数、プロジェクトメソッドへのアクセスを制限します。 - **DesignerとAdministratorは制限しない**: このオプションは Designer と Administrator のみに、4Dコマンドやメソッドへの完全なアクセスを与えます。 他のユーザーには制限をかけつつ、管理者に無制限のアクセスを与えたい場合に使用できます。 開発段階では、このモードを使用してすべてのフォーミュラやレポート等を自由にテストできます。 運用時には、一時的にコマンドやメソッドへのアクセスを与えるためなどに使用できます。 これを行うには、コマンドへのフルアクセスが必要なダイアログを呼び出したり印刷処理を開始したりする前に ([`CHANGE CURRENT USER`](../commands/change-current-user) コマンドを使用して) ユーザーを切り替えます。そしてその処理が終了したのちに元のユーザーに戻します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/security.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/security.md index 4a6528f7bb3567..d57e9a1a58a982 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/settings/security.md @@ -33,7 +33,7 @@ title: セキュリティページ ## オプション -- **フォーミュラエディタと 4D View Pro と 4D Write Proドキュメントで使用できるコマンドとプロジェクトメソッドの制限**: +- **フォーミュラエディターと 4D View Pro と 4D Write Proドキュメントで使用できるコマンドとプロジェクトメソッドの制限**: セキュリティのため 4D はデフォルトで、アプリケーションモードの [フォーミュラエディター](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.ja.html) においてコマンド、関数、プロジェクトメソッドへのアクセスを制限しています。これは、[`ST INSERT EXPRESSION`](../commands/st-insert-expression) コマンドによってマルチスタイルエリアに追加されるフォーミュラエディターの他、4D View Pro および 4D Write Proドキュメントにおいても同様です。[`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドを使用して明示的に許可された 4D 関数やプロジェクトメソッドのみを使用することができます。 以下のオプションを使用して、部分的あるいは全体的にこのフィルタリングを無効にできます。 - **すべてのユーザーを制限する** (デフォルトオプション): Designer と Administrator を含むすべてのユーザーに対し、コマンドや関数、プロジェクトメソッドへのアクセスを制限します。 - **DesignerとAdministratorは制限しない**: このオプションは Designer と Administrator のみに、4Dコマンドやメソッドへの完全なアクセスを与えます。 他のユーザーには制限をかけつつ、管理者に無制限のアクセスを与えたい場合に使用できます。 開発段階では、このモードを使用してすべてのフォーミュラやレポート等を自由にテストできます。 運用時には、一時的にコマンドやメソッドへのアクセスを与えるためなどに使用できます。 これを行うには、コマンドへのフルアクセスが必要なダイアログを呼び出したり印刷処理を開始したりする前に ([`CHANGE CURRENT USER`](../commands/change-current-user) コマンドを使用して) ユーザーを切り替えます。そしてその処理が終了したのちに元のユーザーに戻します。 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 44be15e06a5088..f7fadd0494ba25 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,48 +11,68 @@ 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. +#### Design and Runtime Explorer Access - Note que: +Gives the specified group the ability to enter the Design environment of the database and display the Runtime Explorer. - - La definición de un grupo de acceso en el entorno Diseño también permite desactivar la opción **Crear una tabla** de la caja de diálogo de importación de datos. Para más información sobre esta caja de diálogo, consulte [Importar los datos desde los archivos](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.en.html). +Note que: - - The Designer and Administrator always have access to the Design environment and Runtime Explorer, even if they are not explicitly part of the specified access group.For more information about users and user groups, refer to the [Users and groups](../Users/handling_users_groups.md) chapter. +- La definición de un grupo de acceso en el entorno Diseño también permite desactivar la opción **Crear una tabla** de la caja de diálogo de importación de datos. Para más información sobre esta caja de diálogo, consulte [Importar los datos desde los archivos](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.en.html). -- **Usuario por defecto**: cuando se ha definido un Usuario por defecto, todos los usuarios que abren o se conectan a la base tienen los mismos privilegios y restricciones de acceso definidos para este Usuario por defecto. Já não é necessário introduzir um nome de usuário. Além disso, se você não tiver associado uma senha com o usuário padrão, a caixa de diálogo de senha não aparece mais e o banco de dados abre diretamente. - Esta opção simplifica o acesso ao banco de dados, mantendo um sistema completo de controle de dados. +- The Designer and Administrator always have access to the Design environment and Runtime Explorer, even if they are not explicitly part of the specified access group.For more information about users and user groups, refer to the [Users and groups](../Users/handling_users_groups.md) chapter. - - 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. +#### Default User -- **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 +When a Default User has been set, every user that opens the database or logs onto it has the same access privileges and restrictions defined for this Default User. Já não é necessário introduzir um nome de usuário. Além disso, se você não tiver associado uma senha com o usuário padrão, a caixa de diálogo de senha não aparece mais e o banco de dados abre diretamente. - - **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 +Esta opção simplifica o acesso ao banco de dados, mantendo um sistema completo de controle de dados. -- **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. Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. 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)). Para o fazer, basta desmarcar esta opção. +- 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. + +#### Display User List in Password Dialog Box + +If this option is checked, users must choose their name from the list of users and enter their password in the User Identification dialog box. 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 + +#### User List in Alphabetical Order (only available if the previous option is checked) + +When this option is checked, the list of users in the password entry dialog box is sorted by alphabetical order. + +#### Users can change their password + +When this option is checked, a **Change** button is displayed in the User Identification dialog box. Si lo desea, puede ocultar el botón **Cambiar** para que los usuarios no puedan modificar sus contraseñas. 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)). Para o fazer, basta desmarcar esta opção. ## Opções -- **Filtering of commands and project methods in the formula editor and in the 4D View Pro and 4D Write Pro documents**: - For security reasons, by default 4D restricts access to the commands, functions and project methods in the [Formula editor](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) in Application mode or added to multistyle areas (using [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), 4D Write Pro and 4D View Pro documents: only certain 4D functions and project methods that have been explicitly declared using the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command can be used. Você pode remover completamente ou parcialmente esta filtragem usando as seguintes opções. - - **Activado para todos** (opción por defecto): el acceso a los comandos, funciones y métodos proyecto está restringido para todos los usuarios, incluidos el Diseñador y el Administrador. - - **Desactivado para el Diseñador y el Administrador**: esta opción concede acceso completo a los comandos 4D y a los métodos sólo al Diseñador y al Administrador. Ele pode ser usado para definir um modo de acesso ilimitado para comandos e métodos, enquanto permanece no controle das operações realizadas. Durante a fase de desenvolvimento, este modo pode ser usado para testar livremente todas as fórmulas, relatórios e assim por diante. Durante a operação, pode ser usado para configurar soluções seguras que permitam o acesso a comandos e métodos temporários. This consists in changing the user (via the [`CHANGE CURRENT USER`](../commands/change-current-user) command) before calling a dialog box or starting a printing process that requires full access to the commands, then returning to the original user when the specific operation is completed. - **Nota:** si se ha activado el acceso completo mediante la opción anterior, esta opción no tendrá ningún efecto. - - **Desactivado para todos**: esta opción desactiva el control en las fórmulas. Quando esta opção estiver marcada, os usuários terão acesso a todos os comandos 4D e plug-ins, bem como a todos os métodos do projeto (exceto para os invisíveis). - Quando esta opção estiver marcada, os usuários terão acesso a todos os comandos 4D e plug-ins, bem como a todos os métodos do projeto (exceto para os invisíveis). Quando está selecionado, este comando não faz nada. +#### Filtering of commands and project methods in the formula editor and in the 4D View Pro and 4D Write Pro documents + +For security reasons, by default 4D restricts access to the commands, functions and project methods in the [Formula editor](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) in Application mode or added to multistyle areas (using [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), 4D Write Pro and 4D View Pro documents: only certain 4D functions and project methods that have been explicitly declared using the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command can be used. Você pode remover completamente ou parcialmente esta filtragem usando as seguintes opções. + +- **Activado para todos** (opción por defecto): el acceso a los comandos, funciones y métodos proyecto está restringido para todos los usuarios, incluidos el Diseñador y el Administrador. + +- **Desactivado para el Diseñador y el Administrador**: esta opción concede acceso completo a los comandos 4D y a los métodos sólo al Diseñador y al Administrador. Ele pode ser usado para definir um modo de acesso ilimitado para comandos e métodos, enquanto permanece no controle das operações realizadas. Durante a fase de desenvolvimento, este modo pode ser usado para testar livremente todas as fórmulas, relatórios e assim por diante. Durante a operação, pode ser usado para configurar soluções seguras que permitam o acesso a comandos e métodos temporários. This consists in changing the user (via the [`CHANGE CURRENT USER`](../commands/change-current-user) command) before calling a dialog box or starting a printing process that requires full access to the commands, then returning to the original user when the specific operation is completed. + **Nota:** si se ha activado el acceso completo mediante la opción anterior, esta opción no tendrá ningún efecto. + +- **Desactivado para todos**: esta opción desactiva el control en las fórmulas. Quando esta opção estiver marcada, os usuários terão acesso a todos os comandos 4D e plug-ins, bem como a todos os métodos do projeto (exceto para os invisíveis). + Quando esta opção estiver marcada, os usuários terão acesso a todos os comandos 4D e plug-ins, bem como a todos os métodos do projeto (exceto para os invisíveis). Quando está selecionado, este comando não faz nada. + +#### Enable User Settings + +You need to check this option to be able to display separated dialog boxes for user settings. 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). -- **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 -- **Execute "On Host Database Event" method of the components**: The [On Host Database Event database method](../commands/on-host-database-event-database-method) 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. +The [On Host Database Event database method](../commands/on-host-database-event-database-method) 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: +Quando esta opção está seleccionada: - - os componentes 4D são carregados, - - each [On Host Database Event database method](../commands/on-host-database-event-database-method) of the component (if any) is called by the host database, - - o código do método é executado. +- os componentes 4D são carregados, +- each [On Host Database Event database method](../commands/on-host-database-event-database-method) of the component (if any) is called by the host database, +- o código do método é executado. - Quando não é verificado: +Quando não é verificado: - - Os componentes 4D são carregados, mas eles têm que gerenciar suas fases de inicialização e backup por conta própria. - - o desenvolvedor do componente tem que publicar os métodos do componente que devem ser chamados pelo banco de dados de host durante estas fases (inicialização e desligamento) - - o desenvolvedor da base de dados de host deve chamar os métodos apropriados do componente no momento certo (deve ser coberto na documentação do componente). +- Os componentes 4D são carregados, mas eles têm que gerenciar suas fases de inicialização e backup por conta própria. +- o desenvolvedor do componente tem que publicar os métodos do componente que devem ser chamados pelo banco de dados de host durante estas fases (inicialização e desligamento) +- o desenvolvedor da base de dados de host deve chamar os métodos apropriados do componente no momento certo (deve ser coberto na documentação do componente). From 1f637ee0b02ba20de8a84270d954e5b1a72b8a60 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 18 Sep 2026 09:40:41 +0200 Subject: [PATCH 50/60] New Crowdin updates (#3432) * dataclassclass.md Japanese * datastoreclass.md Japanese --- .../version-20/API/DataClassClass.md | 232 +++++++++--------- .../version-20/API/DataStoreClass.md | 128 +++++----- 2 files changed, 180 insertions(+), 180 deletions(-) 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 95d681c1536c06..3457eee7458b92 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 @@ -50,23 +50,23 @@ title: DataClass 返される属性オブジェクトには以下のプロパティが格納されています: -| プロパティ | 型 | 説明 | -| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| autoFilled | Boolean | 属性値が 4D によって自動生成される場合に true です。 このプロパティは次の 4Dフィールドプロパティに対応しています: 数値型フィールドの "自動インクリメント" および UUID (文字型)フィールドの "自動UUID"。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | -| exposed | Boolean | 属性が REST で公開されている場合に trueです | -| fieldNumber | integer | 属性の内部的な 4Dフィールド番号。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | -| fieldType | Integer | 属性の 4Dデータベースフィールドタイプ。 これは属性の種類 (`kind`) によります。 とりうる値:
  • `.kind` = "storage" の場合は、対応する 4Dフィールドタイプ ([`Value type`](https://doc.4d.com/4dv20/help/command/ja/page1509.html) 参照)
  • `.kind` = "relatedEntity" の場合: 38 (`is object`)
  • `.kind` = "relatedEntities" の場合: 42 (`is collection`)
  • `.kind` = "calculated" または "alias" の場合: 結果の値 (フィールドタイプ、relatedEntity または relatedEntities) に応じて、上に同じ
  • | -| indexed | Boolean | 属性に対して B-tree もしくは クラスターB-Tree インデックスが設定されている場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | -| inverseName | Text | リレーション先の属性名。 `.kind` = "relatedEntity" または "relatedEntities" の場合にのみ返されます。 | -| keywordIndexed | Boolean | 属性にキーワードインデックスが存在すれば true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | -| kind | Text | 属性の種類。 とりうる値:
  • "storage": ストレージ (あるいはスカラー) 属性。 つまり、属性は値を保存しており、他の属性への参照ではありません。
  • "calculated": 計算属性。 [`get` 関数](../ORDA/ordaClasses.md#function-get-attributename) によって定義されます。
  • "alias": [他の属性](../ORDA/ordaClasses.md#エイリアス属性-1) を指し示す属性。
  • "relatedEntity": N対1 リレーション属性 (エンティティへの参照)
  • "relatedEntities": 1対N リレーション属性 (エンティティセレクションへの参照)
  • | -| 必須 | Boolean | 属性において Null値の入力が拒否されている場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 注記: このプロパティは、4Dデータベースレベルの "Null値の入力を拒否" フィールドプロパティと対応しています。 フィールドのデータ入力制御オプションである既存の "必須入力" プロパティとは無関係です。 | -| name | Text | 属性名 (文字列) | -| path | Text | リレーションに基づく [エイリアス属性](../ORDA/ordaClasses.md#エイリアス属性-1) のパス。 | -| readOnly | Boolean | 読み取り専用属性の場合に trueです。 たとえば、[`set` 関数](../ORDA/ordaClasses.md#function-set-attributename) を持たない計算属性は読み取り専用です。 | -| relatedDataClass | Text | 属性にリレートされているデータクラスの名称。 `.kind` = "relatedEntity" または "relatedEntities" の場合にのみ返されます。 | -| type | Text | 属性の概念的な値タイプ。 汎用的なプログラミングに有用です。 これは属性の種類 (`kind`) によります。 とりうる値:
  • `.kind` = "storage" の場合: "blob", "bool", "date", "image", "number", "object", または "string"。 時間を含め、数値型の場合は "number" が返されます; UUID、文字列、テキスト型属性の場合は "string" が返されます; [BLOBオブジェクト](../Concepts/dt_blob.md#blob-types) の場合は "blob" が返されます。
  • `.kind` = "relatedEntity" の場合: リレートされたデータクラス名
  • `.kind` = "relatedEntities" の場合: リレートされたデータクラス名 + "Selection" 接尾辞
  • `.kind` = "calculated" または "alias" の場合: 結果の値に応じて、上に同じ
  • | -| unique | Boolean | 属性値が重複不可の場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| プロパティ | 型 | 説明 | +| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| autoFilled | Boolean | 属性値が 4D によって自動生成される場合に true です。このプロパティは次の 4Dフィールドプロパティに対応しています: 数値型フィールドの "自動インクリメント" および UUID (文字型)フィールドの "自動UUID"。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| exposed | Boolean | 属性が REST で公開されている場合に trueです | +| fieldNumber | integer | 属性の内部的な 4Dフィールド番号。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| fieldType | Integer | 属性の 4Dデータベースフィールドタイプ。これは属性の種類 (`kind`) によります。とりうる値:
  • `.kind` = "storage" の場合は、対応する 4Dフィールドタイプ ([`Value type`](https://doc.4d.com/4dv20/help/command/ja/page1509.html) 参照)
  • `.kind` = "relatedEntity" の場合: 38 (`is object`)
  • `.kind` = "relatedEntities" の場合: 42 (`is collection`)
  • `.kind` = "calculated" または "alias" の場合: 結果の値 (フィールドタイプ、relatedEntity または relatedEntities) に応じて、上に同じ
  • | +| indexed | Boolean | 属性に対して B-tree もしくは クラスターB-Tree インデックスが設定されている場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| inverseName | Text | リレーション先の属性名。 `.kind` = "relatedEntity" または "relatedEntities" の場合にのみ返されます。 | +| keywordIndexed | Boolean | 属性にキーワードインデックスが存在すれば true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| kind | Text | 属性の種類。とりうる値:
  • "storage": ストレージ (あるいはスカラー) 属性。 つまり、属性は値を保存しており、他の属性への参照ではありません。
  • "calculated": 計算属性。 [`get` 関数](../ORDA/ordaClasses.md#function-get-attributename) によって定義されます。
  • "alias": [他の属性](../ORDA/ordaClasses.md#エイリアス属性-1) を指し示す属性。
  • "relatedEntity": N対1 リレーション属性 (エンティティへの参照)
  • "relatedEntities": 1対N リレーション属性 (エンティティセレクションへの参照)
  • | +| 必須 | Boolean | 属性において Null値の入力が拒否されている場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。注記: このプロパティは、4Dデータベースレベルの "Null値の入力を拒否" フィールドプロパティと対応しています。フィールドのデータ入力制御オプションである既存の "必須入力" プロパティとは無関係です。 | +| name | Text | 属性名 (文字列) | +| path | Text | リレーションに基づく [エイリアス属性](../ORDA/ordaClasses.md#エイリアス属性-1) のパス。 | +| readOnly | Boolean | 読み取り専用属性の場合に trueです。たとえば、[`set` 関数](../ORDA/ordaClasses.md#function-set-attributename) を持たない計算属性は読み取り専用です。 | +| relatedDataClass | Text | 属性にリレートされているデータクラスの名称。 `.kind` = "relatedEntity" または "relatedEntities" の場合にのみ返されます。 | +| type | Text | 属性の概念的な値タイプ。 汎用的なプログラミングに有用です。これは属性の種類 (`kind`) によります。とりうる値:
  • `.kind` = "storage" の場合: "blob", "bool", "date", "image", "number", "object", または "string"。時間を含め、数値型の場合は "number" が返されます; UUID、文字列、テキスト型属性の場合は "string" が返されます; [BLOBオブジェクト](../Concepts/dt_blob.md#blob-types) の場合は "blob" が返されます。
  • `.kind` = "relatedEntity" の場合: リレートされたデータクラス名
  • `.kind` = "relatedEntities" の場合: リレートされたデータクラス名 + "Selection" 接尾辞
  • `.kind` = "calculated" または "alias" の場合: 結果の値に応じて、上に同じ
  • | +| unique | Boolean | 属性値が重複不可の場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | :::tip @@ -148,7 +148,7 @@ var $firstnameAtt;$employerAtt;$employeesAtt : Object `.all()` 関数は データストアをクエリして、データクラスの全エンティティをエンティティセレクションとして返します。 -エンティティはデフォルトの順番で返され、通常は作成順になっています。 ただし、エンティティ削除後に新規追加した場合には、デフォルトの順番は作成順を反映しない点に留意が必要です。 +エンティティはデフォルトの順番で返され、通常は作成順になっています。ただし、エンティティ削除後に新規追加した場合には、デフォルトの順番は作成順を反映しない点に留意が必要です。 エンティティが見つからない場合、空のエンティティセレクションが返されます。 @@ -156,11 +156,11 @@ var $firstnameAtt;$employerAtt;$employeesAtt : Object **settings** -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。 エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | +| プロパティ | 型 | 説明 | +| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | > データクラス内の総エンティティ数を知るには、`ds.myClass.all().length` 式よりも最適化された [`getCount()`](#getcount) 関数を使用することが推奨されます。 @@ -257,23 +257,23 @@ $ds.Persons.clearRemoteCache() `.fromCollection()` 関数は、 *objectCol* 引数のオブジェクトのコレクションに基づいてデータクラスのエンティティを更新あるいは作成し、対応するエンティティセレクションを返します。 -*objectCol* パラメーターには、データクラスの既存エンティティを更新、または新規エンティティを作成するためのオブジェクトのコレクションを渡します。 プロパティ名は、データクラスの属性名と同一である必要があります。 プロパティ名がデータクラスに存在しない場合、それは無視されます。 コレクション内で属性値が定義されていない場合、その値は null になります。 +*objectCol* パラメーターには、データクラスの既存エンティティを更新、または新規エンティティを作成するためのオブジェクトのコレクションを渡します。プロパティ名は、データクラスの属性名と同一である必要があります。プロパティ名がデータクラスに存在しない場合、それは無視されます。コレクション内で属性値が定義されていない場合、その値は null になります。 -コレクションのオブジェクト要素とエンティティのマッピングは、**属性名** と **型の合致** をもって行われます。 オブジェクトプロパティがエンティティ属性と同じ名前であっても、型が合致しない場合には、エンティティの属性は空のままです。 +コレクションのオブジェクト要素とエンティティのマッピングは、**属性名** と **型の合致** をもって行われます。オブジェクトプロパティがエンティティ属性と同じ名前であっても、型が合致しない場合には、エンティティの属性は空のままです。 **作成モードと更新モード** *objectCol* 引数の各オブジェクトついて: -* オブジェクトがブール型の "\_\_NEW" プロパティを含み、それが **false** に設定されている場合(あるいは "\_\_NEW" プロパティが含まれていない場合)、オブジェクトの対応する値でエンティティが更新あるいは作成されます。 プライマリーキーに関するチェックはおこなわれません: - * プライマリーキーが指定されていて実在する場合、エンティティは更新されます。 この場合、プライマリーキーはそのまま、あるいは "\_\_KEY" プロパティを (プライマリーキー値とともに) 使って指定することができます。 +* オブジェクトがブール型の "\_\_NEW" プロパティを含み、それが **false** に設定されている場合(あるいは "\_\_NEW" プロパティが含まれていない場合)、オブジェクトの対応する値でエンティティが更新あるいは作成されます。プライマリーキーに関するチェックはおこなわれません: + * プライマリーキーが指定されていて実在する場合、エンティティは更新されます。この場合、プライマリーキーはそのまま、あるいは "\_\_KEY" プロパティを (プライマリーキー値とともに) 使って指定することができます。 * そのまま指定したプライマリーキーが実在しない場合、エンティティは作成されます。 * プライマリーキーを指定していない場合、エンティティは作成され、標準のデータベースのルールに基づいてプライマリーキー値が割り当てられます。 -* オブジェクトがブール型の "\_\_NEW" プロパティを含み、それが **true** に設定されている場合、オブジェクトの対応する値でエンティティが作成されます。 プライマリーキーに関するチェックがおこなわれます: +* オブジェクトがブール型の "\_\_NEW" プロパティを含み、それが **true** に設定されている場合、オブジェクトの対応する値でエンティティが作成されます。プライマリーキーに関するチェックがおこなわれます: * そのまま指定したプライマリーキーが実在する場合、エラーが返されます。 * そのまま指定したプライマリーキーが実在しない場合、エンティティは作成されます。 * プライマリーキーを指定していない場合、エンティティは作成され、標準のデータベースのルールに基づいてプライマリーキー値が割り当てられます。 -> プライマリーキーを指定していない場合、エンティティは作成され、標準のデータベースのルールに基づいてプライマリーキー値が割り当てられます。 > 値を持つ "\_\_KEY" プロパティは、"\_\_NEW" プロパティが **false** に設定 (あるいは省略) されていて、かつ対応するエンティティが存在する場合のみ、考慮されます。 それ以外の場合には、"\_\_KEY" プロパティ値は無視されるため、プライマリーキーの値はそのまま渡さなければなりません。 +> プライマリーキーを指定していない場合、エンティティは作成され、標準のデータベースのルールに基づいてプライマリーキー値が割り当てられます。 > 値を持つ "\_\_KEY" プロパティは、"\_\_NEW" プロパティが **false** に設定 (あるいは省略) されていて、かつ対応するエンティティが存在する場合のみ、考慮されます。それ以外の場合には、"\_\_KEY" プロパティ値は無視されるため、プライマリーキーの値はそのまま渡さなければなりません。 **リレートエンティティ** @@ -284,15 +284,15 @@ $ds.Persons.clearRemoteCache() **スタンプ** -"\_\_STAMP" プロパティが指定された場合、データストアのスタンプとのチェックがおこなわれ、エラーが返されることがあります ("与えられたスタンプはテーブルXXX のレコード# XXのカレントのものと合致しません")。 詳細については [エンティティロッキング](ORDA/entities.md#エンティティロッキング) を参照ください。 +"\_\_STAMP" プロパティが指定された場合、データストアのスタンプとのチェックがおこなわれ、エラーが返されることがあります ("与えられたスタンプはテーブルXXX のレコード# XXのカレントのものと合致しません")。詳細については [エンティティロッキング](ORDA/entities.md#エンティティロッキング) を参照ください。 **settings** -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。 エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | +| プロパティ | 型 | 説明 | +| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | #### 例題 1 @@ -457,7 +457,7 @@ $ds.Persons.clearRemoteCache() `.get()` 関数は データクラスをクエリして、*primaryKey* に渡したプライマリーキーに合致するエンティティを返します。 -*primaryKey* には、取得したいエンティティのプライマリーキーの値を渡します。 値の型は、データストアで設定されたプライマリーキーの型 (倍長整数あるいはテキスト) と合致している必要があります。 [`.getKey()`](EntityClass.md#getkey) 関数に `dk key as string` 引数を渡すと、プライマリーキーの値が常にテキスト型で返されるように指定することができます。 +*primaryKey* には、取得したいエンティティのプライマリーキーの値を渡します。値の型は、データストアで設定されたプライマリーキーの型 (倍長整数あるいはテキスト) と合致している必要があります。 [`.getKey()`](EntityClass.md#getkey) 関数に `dk key as string` 引数を渡すと、プライマリーキーの値が常にテキスト型で返されるように指定することができます。 *primaryKey* 引数のプライマリーキーを持つエンティティが見つからない場合、**Null** エンティティが返されます。 @@ -465,15 +465,15 @@ $ds.Persons.clearRemoteCache() **settings** -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| context | Text | エンティティに適用されている自動の最適化コンテキストのラベル。 エンティティを読み込む以降のコードは、このコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | +| プロパティ | 型 | 説明 | +| ------- | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| context | Text | エンティティに適用されている自動の最適化コンテキストのラベル。エンティティを読み込む以降のコードは、このコンテキストを使うことで最適化の恩恵を受けます。 [ORDA クライアントサーバー通信](../ORDA/remoteDatastores.md#クライアントサーバーの最適化)で使用することができます。 | :::info -*settings* パラメーターを**使わずに** `.get()` 関数を使用した場合には、属性値を求めるリクエストが直接サーバーに送信されます([ORDAキャッシュ](../ORDA/remoteDatastores.md#ORDAキャッシュ)は使われません)。 一方、*settings* パラメーターを介して `context` を渡す形で `.get()` 関数を呼び出すと、コンテキストに対応する ORDAキャッシュから属性値が取得されます。 この場合、[`reload()`](EntityClass.md#reload) を呼び出して、最新のデータがサーバーから取得されていることを確認することをお勧めします。 +*settings* パラメーターを**使わずに** `.get()` 関数を使用した場合には、属性値を求めるリクエストが直接サーバーに送信されます([ORDAキャッシュ](../ORDA/remoteDatastores.md#ORDAキャッシュ)は使われません)。一方、*settings* パラメーターを介して `context` を渡す形で `.get()` 関数を呼び出すと、コンテキストに対応する ORDAキャッシュから属性値が取得されます。この場合、[`reload()`](EntityClass.md#reload) を呼び出して、最新のデータがサーバーから取得されていることを確認することをお勧めします。 ::: @@ -636,7 +636,7 @@ $number:=$ds.Persons.getCount() #### 説明 -`.getInfo()` 関数は、 データクラスの情報を提供するオブジェクトを返します。 このメソッドは汎用的なコードを書くのに有用です。 +`.getInfo()` 関数は、 データクラスの情報を提供するオブジェクトを返します。このメソッドは汎用的なコードを書くのに有用です。 **返されるオブジェクト** @@ -710,7 +710,7 @@ $number:=$ds.Persons.getCount() -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -749,11 +749,11 @@ $number:=$ds.Persons.getCount() #### 例題 -次の例で、`$ds.Persons.all()` は、先頭エンティティをそのすべての属性とともにロードします。 その後リクエストの最適化がおこなわれ、`firstname` と `address.city` のみがロードされます。 +次の例で、`$ds.Persons.all()` は、先頭エンティティをそのすべての属性とともにロードします。その後リクエストの最適化がおこなわれ、`firstname` と `address.city` のみがロードされます。 `address.city` は、`Persons` データクラスのキャッシュにロードされることに注意してください。 -`Address` データクラスの先頭エンティティだけがキャッシュに格納されます。 先頭エンティティは、ループの最初の繰り返しでロードされます。 +`Address` データクラスの先頭エンティティだけがキャッシュに格納されます。先頭エンティティは、ループの最初の繰り返しでロードされます。 ```4d var $ds : 4D.DataStoreImplementation @@ -806,7 +806,7 @@ $cacheAddress:=$ds.Adress.getRemoteCache() `.new()` 関数は、 メモリ内にデータクラスに空のエンティティを新規作成しそれを返します。 -エンティティオブジェクトはメモリ内に作成されますが、[`.save( )`](EntityClass.md#save) 関数が呼び出されるまでデータベースには保存されません。 エンティティを保存する前に削除した場合、復元することはできません。 +エンティティオブジェクトはメモリ内に作成されますが、[`.save( )`](EntityClass.md#save) 関数が呼び出されるまでデータベースには保存されません。エンティティを保存する前に削除した場合、復元することはできません。 **4D Server**: クライアント/サーバーにおいては、対応するテーブルのプライマリーキーが自動インクリメントであった場合、エンティティがサーバー側に保存されたときに計算されます。 @@ -857,9 +857,9 @@ $cacheAddress:=$ds.Adress.getRemoteCache() > 追加可能なエンティティセレクションについての詳細は [共有可能/追加可能なエンティティセレクション](ORDA/entities.md#shareable-or-alterable-entity-selections) を参照ください。 -順列ありのエンティティセレクションを作成するには、*keepOrder* に `dk keep ordered` セレクターを渡します。 この引数を省略した場合のデフォルト、あるいは `dk non ordered` セレクターを渡した場合には、関数は順列なしのエンティティセレクションを返します。 順列なしのエンティティセレクションの方が速いですが、エンティティの位置に頼ることはできません。 詳細については、[エンティティセレクションの順列あり/順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください。 +順列ありのエンティティセレクションを作成するには、*keepOrder* に `dk keep ordered` セレクターを渡します。この引数を省略した場合のデフォルト、あるいは `dk non ordered` セレクターを渡した場合には、関数は順列なしのエンティティセレクションを返します。順列なしのエンティティセレクションの方が速いですが、エンティティの位置に頼ることはできません。詳細については、[エンティティセレクションの順列あり/順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください。 -作成された時点では、エンティティセレクションにエンティティは含まれていません(`mySelection.length` は0を返します)。 あとから [`add()`](EntitySelectionClass.md#add) 関数を呼び出すことで、エンティティセレクションを徐々にビルドしていくことができます。 +作成された時点では、エンティティセレクションにエンティティは含まれていません(`mySelection.length` は0を返します)。あとから [`add()`](EntitySelectionClass.md#add) 関数を呼び出すことで、エンティティセレクションを徐々にビルドしていくことができます。 #### 例題 @@ -902,7 +902,7 @@ $cacheAddress:=$ds.Adress.getRemoteCache() #### 説明 -`.query()` 関数は、 データクラスの全エンティティから、*queryString* または *formula* と任意の *value* 引数で指定した検索条件に合致するエンティティを検索します。 戻り値は、見つかったエンティティをすべて格納する `EntitySelection` 型の新しいオブジェクトです。 この関数には、レイジーローディングが適用されます。 +`.query()` 関数は、 データクラスの全エンティティから、*queryString* または *formula* と任意の *value* 引数で指定した検索条件に合致するエンティティを検索します。 戻り値は、見つかったエンティティをすべて格納する `EntitySelection` 型の新しいオブジェクトです。この関数には、レイジーローディングが適用されます。 エンティティが見つからない場合、空のエンティティセレクションが返されます。 @@ -918,64 +918,64 @@ attributePath|formula 比較演算子 値 詳細は以下の通りです: -* **attributePath**: クエリの実行対象となる属性パス。 この引数は、単純な名前 ("country" など) のほか、あらゆる有効な属性パス ("country.name" など) の形をとることができます。 属性パスが `Collection` 型である場合、すべてのオカレンスを管理するには `[]` 記法を使用してください (例: `children[].age` など)。 +* **attributePath**: クエリの実行対象となる属性パス。この引数は、単純な名前 ("country" など) のほか、あらゆる有効な属性パス ("country.name" など) の形をとることができます。属性パスが `Collection` 型である場合、すべてのオカレンスを管理するには `[]` 記法を使用してください (例: `children[].age` など)。 > *queryString* には、すべての種類の引数を混ぜて渡すことができます。 *queryString* 引数は、*attributePath* と *formula* と *値* に以下のものを含めることができます: -* **formula**: テキストまたはオブジェクト形式で渡された有効なフォーミュラ。 フォーミュラは処理されるエンティティごとに評価され、ブール値を返さなくてはなりません。 処理中のエンティティはフォーミュラ内において `This` で参照されます。 +* **formula**: テキストまたはオブジェクト形式で渡された有効なフォーミュラ。フォーミュラは処理されるエンティティごとに評価され、ブール値を返さなくてはなりません。処理中のエンティティはフォーミュラ内において `This` で参照されます。 - * **テキスト**: フォーミュラ文字列の前に `eval( )` ステートメントが必要です。 これにより、クエリが式を正しく解釈します。 例: *"eval(length(This.lastname) >=30)"* - * **オブジェクト**: [フォーミュラオブジェクト](FunctionClass.md) は **プレースホルダー** (後述参照) を使って受け渡します。 このフォーミュラは、[`Formula`](FunctionClass.md#formula) または [`Formula from string`](FunctionClass.md#formula-from-string) コマンドによって作成されたものでなくてはなりません。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。 + * **テキスト**: フォーミュラ文字列の前に `eval( )` ステートメントが必要です。 これにより、クエリが式を正しく解釈します。例: *"eval(length(This.lastname) >=30)"* + * **オブジェクト**: [フォーミュラオブジェクト](FunctionClass.md) は **プレースホルダー** (後述参照) を使って受け渡します。このフォーミュラは、[`Formula`](FunctionClass.md#formula) または [`Formula from string`](FunctionClass.md#formula-from-string) コマンドによって作成されたものでなくてはなりません。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。 - クエリに使用するフォーミュラは $1 に引数を受け取ることができます。 詳細については後述の **フォーミュラ引数** を参照ください。 -> * フォーミュラが複雑な場合など、`queryString` パラメーターを使わずに、`formula` パラメーターにオブジェクトを直接渡すこともできます。 後述の **フォーミュラ引数** を参照ください。 + クエリに使用するフォーミュラは $1 に引数を受け取ることができます。詳細については後述の **フォーミュラ引数** を参照ください。 +> * フォーミュラが複雑な場合など、`queryString` パラメーターを使わずに、`formula` パラメーターにオブジェクトを直接渡すこともできます。後述の **フォーミュラ引数** を参照ください。 > * セキュリティのため、 `query()` 関数内のフォーミュラ使用を禁止することができます。 `querySettings` パラメーターの説明を参照ください。 -* *querySettings* 引数は、追加のオプションを格納したオブジェクトです。 以下のプロパティがサポートされています: - - | 比較 | 記号 | 説明 | - | ------------- | ----------- | --------------------------------------------------------------------------------------- | - | 等しい | =, == | 一致するデータを取得します。 ワイルドカード (@) をサポートし、文字の大小/アクセントの有無は区別しません。 | - | | ===, IS | 一致するデータを取得します。 ワイルドカード (@) は標準の文字として認識され、文字の大小/アクセント記号の有無は区別しません。 | - | 等しくない | #, != | ワイルドカード (@) をサポートします。 "宣言に Not 条件を適用" と同じです ([後述参照](#コレクションにおける-等しくない)) | - | | !==, IS NOT | ワイルドカード (@) は標準の文字として認識されます | - | 宣言に Not 条件を適用 | NOT | 複数の演算子が含まれる宣言の前に NOT を使用する場合にはカッコをつける必要があります。 "等しくない" と同じです ([後述参照](#コレクションにおける-等しくない)) | - | 小さい | < | | - | 大きい | > | | - | 以下 | <= | | - | 以上 | >= | | - | 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。 ワイルドカード (@) をサポートします。 | - | キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | - -* **値**: コレクションの各要素、あるいはエンティティセレクションの各エンティティのプロパティのカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 スカラー型(テキスト、日付、数値、など)で型が合致しない場合、4D は可能な限り**value** 引数の値を属性のデータ型へと変換しようとします。 例えば、**value** 引数に"v20" という文字列が整数属性と比較するために与えられた場合、それは 20 へと変換されます。 定数値を使用する場合、以下の原則に従う必要があります: - * **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。 文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。 また以下のキーワードはテキスト定数においては使用できません: true, false。 +* *querySettings* 引数は、追加のオプションを格納したオブジェクトです。以下のプロパティがサポートされています: + + | 比較 | 記号 | 説明 | + | ------------- | ----------- | -------------------------------------------------------------------------------------- | + | 等しい | =, == | 一致するデータを取得します。 ワイルドカード (@) をサポートし、文字の大小/アクセントの有無は区別しません。 | + | | ===, IS | 一致するデータを取得します。 ワイルドカード (@) は標準の文字として認識され、文字の大小/アクセント記号の有無は区別しません。 | + | 等しくない | #, != | ワイルドカード (@) をサポートします。"宣言に Not 条件を適用" と同じです ([後述参照](#コレクションにおける-等しくない)) | + | | !==, IS NOT | ワイルドカード (@) は標準の文字として認識されます | + | 宣言に Not 条件を適用 | NOT | 複数の演算子が含まれる宣言の前に NOT を使用する場合にはカッコをつける必要があります。"等しくない" と同じです ([後述参照](#コレクションにおける-等しくない)) | + | 小さい | < | | + | 大きい | > | | + | 以下 | <= | | + | 以上 | >= | | + | 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。 ワイルドカード (@) をサポートします。 | + | キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | + +* **値**: コレクションの各要素、あるいはエンティティセレクションの各エンティティのプロパティのカレント値に対して比較する値。**プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。スカラー型(テキスト、日付、数値、など)で型が合致しない場合、4D は可能な限り**value** 引数の値を属性のデータ型へと変換しようとします。例えば、**value** 引数に"v20" という文字列が整数属性と比較するために与えられた場合、それは 20 へと変換されます。定数値を使用する場合、以下の原則に従う必要があります: + * **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。また以下のキーワードはテキスト定数においては使用できません: true, false。 * **ブール** 型の定数値: **true** または **false** (文字の大小を区別します) * **数値** 型の定数値: 浮動小数点は '.' * **日付** 型の定数値: "YYYY-MM-DD" フォーマット。 * **null** 定数値: "null" キーワードを使用した場合、**null** と **undefined** プロパティの両方が検索されます。 * IN 記号を使用したクエリの場合、*値* はコレクションか、attributePath の型に合致する、\[ ] でくくられたカンマ区切りの値である必要があります (文字列においては、`"` の記号は `\` でエスケープする必要があります)。 -* **論理演算子**: 複数の条件をクエリ内で結合させるのに使用します(任意)。 以下の論理演算子のいずれか一つを使用できます (名前あるいは記号のどちらかを渡します): +* **論理演算子**: 複数の条件をクエリ内で結合させるのに使用します(任意)。以下の論理演算子のいずれか一つを使用できます (名前あるいは記号のどちらかを渡します): | 結合 | 記号 | | --- | ----------------------- | | AND | &, &&, and | | OR | |,||, or | -* **order by attributePath**: クエリに "order by attributePath" ステートメントを追加することで、結果をソートすることができます。 カンマで区切ることで、複数の order by ステートメントを使用することもできます (例: order by *attributePath1* desc, *attributePath2* asc)。 デフォルトの並び順は昇順です。 並び順を指定するには、降順の場合は 'desc'、昇順の場合は 'asc' を追加します。 >このステートメントを使用した場合、順序ありエンティティセレクションが返されます (詳細については [エンティティセレクションの順列あり/順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください)。 +* **order by attributePath**: クエリに "order by attributePath" ステートメントを追加することで、結果をソートすることができます。カンマで区切ることで、複数の order by ステートメントを使用することもできます (例: order by *attributePath1* desc, *attributePath2* asc)。デフォルトの並び順は昇順です。並び順を指定するには、降順の場合は 'desc'、昇順の場合は 'asc' を追加します。 >このステートメントを使用した場合、順序ありエンティティセレクションが返されます (詳細については [エンティティセレクションの順列あり/順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください)。 #### 引用符を使用する -クエリに変数や式を使用することができます。 例: +クエリに変数や式を使用することができます。例: ```4d "employee.name = 'smith' AND employee.firstname = 'john'" ``` -> 単一引用符 (') は、クエリ文字列を分解してしまうため、検索値としてはサポートされていません。 たとえば、"comp.name = 'John's pizza' " はエラーを生成します。 単一引用符を含む値を検索するには、プレースホルダーを使用します (後述参照)。 +> 単一引用符 (') は、クエリ文字列を分解してしまうため、検索値としてはサポートされていません。たとえば、"comp.name = 'John's pizza' " はエラーを生成します。単一引用符を含む値を検索するには、プレースホルダーを使用します (後述参照)。 #### カッコを使用する -クエリ内でカッコを使用すると、計算に優先順位をつけることができます。 たとえば、以下のようにクエリを整理することができます: +クエリ内でカッコを使用すると、計算に優先順位をつけることができます。たとえば、以下のようにクエリを整理することができます: ```4d "(employee.age >= 30 OR employee.age <= 65) AND (employee.salary <= 10000 OR employee.status = 'Manager')" @@ -983,14 +983,14 @@ attributePath|formula 比較演算子 値 #### プレースホルダーを使用する -4D では、*queryString* 引数内の *attributePath*、*formula* および *値* にプレースホルダーを使用することができます。 プレースホルダーとは、クエリ文字列に挿入するパラメーターで、クエリ文字列が評価される際に他の値で置き換えられるものです。 プレースホルダーの値はクエリ開始時に一度だけ評価されます。 各要素に対して毎回評価されるわけではありません。 +4D では、*queryString* 引数内の *attributePath*、*formula* および *値* にプレースホルダーを使用することができます。プレースホルダーとは、クエリ文字列に挿入するパラメーターで、クエリ文字列が評価される際に他の値で置き換えられるものです。プレースホルダーの値はクエリ開始時に一度だけ評価されます。 各要素に対して毎回評価されるわけではありません。 **インデックスプレースホルダー** および **命名プレースホルダー** です: -| | インデックスプレースホルダー | 命名プレースホルダー | -| -- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| 定義 | *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。 最大で 128個の *value* 引数を渡すことができます。 | `:paramName` (例: myparam など) という形でパラメーターが挿入され、その値は *querySettings* 引数の attributes または parameters オブジェクトで提供されます。 | -| 例題 | `$r:=class.query(":1=:2";"city";"Chicago")` | `$o.attributes:=New object("att";"city")`
    `$o.parameters:=New object("name";"Chicago")`
    `$r:=class.query(":att=:name";$o)` | +| | インデックスプレースホルダー | 命名プレースホルダー | +| -- | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| 定義 | *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。最大で 128個の *value* 引数を渡すことができます。 | `:paramName` (例: myparam など) という形でパラメーターが挿入され、その値は *querySettings* 引数の attributes または parameters オブジェクトで提供されます。 | +| 例題 | `$r:=class.query(":1=:2";"city";"Chicago")` | `$o.attributes:=New object("att";"city")`
    `$o.parameters:=New object("name";"Chicago")`
    `$r:=class.query(":att=:name";$o)` | *queryString* には、すべての種類の引数を混ぜて渡すことができます。 *queryString* 引数は、*attributePath* と *formula* と *値* に以下のものを含めることができます: @@ -999,14 +999,14 @@ attributePath|formula 比較演算子 値 以下の理由から、クエリでのプレースホルダーの使用が **推奨されます**: -1. 悪意あるコードの挿入を防ぎます: ユーザーによって値が代入された変数をクエリ文字列として直接使用した場合、余計なクエリ引数を入力することでユーザーがクエリ条件を変更する可能性があります。 たとえば、以下のようなクエリ文字列を考えます: +1. 悪意あるコードの挿入を防ぎます: ユーザーによって値が代入された変数をクエリ文字列として直接使用した場合、余計なクエリ引数を入力することでユーザーがクエリ条件を変更する可能性があります。たとえば、以下のようなクエリ文字列を考えます: ```4d $vquery:="status = 'public' & name = "+myname // ユーザーが自分の名前を入力します $result:=$col.query($vquery) ``` - 非公開のデータがフィルタリングされているため、このクエリは一見安全なように見えます。 しかしながら、もしユーザーが *myname* に *smith OR status='private'* のような入力をした場合、クエリ文字列は解釈時に変更され、非公開データも返してしまう可能性があります。 + 非公開のデータがフィルタリングされているため、このクエリは一見安全なように見えます。しかしながら、もしユーザーが *myname* に *smith OR status='private'* のような入力をした場合、クエリ文字列は解釈時に変更され、非公開データも返してしまう可能性があります。 プレースホルダーを使用した場合、セキュリティ条件を上書きすることは不可能です: @@ -1018,7 +1018,7 @@ attributePath|formula 比較演算子 値 2. フォーマットや文字の問題を心配する必要がありません。 これは、*attributePath* や *値* がたとえば "."、"[' ...などの英数字でない文字を格納している可能性がある場合にとくに有用です。 -3. クエリに変数や式を使用することができます。 例: +3. クエリに変数や式を使用することができます。例: ```4d $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") @@ -1027,13 +1027,13 @@ attributePath|formula 比較演算子 値 #### null値を検索する -null値を検索する場合、プレースホルダーシンタックスは使用できません。 なぜならクエリエンジンは null を予期せぬ比較値としてみなすからです。 たとえば、以下のクエリを実行した場合: +null値を検索する場合、プレースホルダーシンタックスは使用できません。 なぜならクエリエンジンは null を予期せぬ比較値としてみなすからです。たとえば、以下のクエリを実行した場合: ```4d $vSingles:=ds.Person.query("spouse = :1";Null) // 機能しません ``` -この場合 4D は null値を、引数の評価 (別のクエリから渡された属性など) に起因するエラーと解釈するため、期待した結果は得られません。 このようなクエリをおこなうには、直接的なシンタックスを使用する必要があります: +この場合 4D は null値を、引数の評価 (別のクエリから渡された属性など) に起因するエラーと解釈するため、期待した結果は得られません。このようなクエリをおこなうには、直接的なシンタックスを使用する必要があります: ```4d $vSingles:=ds.Person.query("spouse = null") // 正しいシンタックス @@ -1041,7 +1041,7 @@ $vSingles:=ds.Person.query("spouse = :1";Null) // 機能しません #### null または未定義の値と等しくない -"*value* と等しくない" 比較演算子は(`#` または `!=`) は値がnull または未定義である属性は返しません。 例えば、以下のクエリは"info.married" のステータスが `false` である人物のみを返し、"info.married" プロパティが"null" または欠けている人物は返しません: +"*value* と等しくない" 比較演算子は(`#` または `!=`) は値がnull または未定義である属性は返しません。例えば、以下のクエリは"info.married" のステータスが `false` である人物のみを返し、"info.married" プロパティが"null" または欠けている人物は返しません: ```4d $notMarried:=ds.Person.query("info.married#true") // 属性の値がfalseである人物のみを探す @@ -1056,7 +1056,7 @@ $notMarried:=ds.Person.query("info.married#true | info.married=null") // 属性 #### コレクションにおける "等しくない" -コレクションを含むデータクラス属性内を検索する場合、"*値* と等しくない" 比較演算子 (`#` または `!=`) は、すべてのプロパティが *値* と異なる要素を検索します (ほかの比較演算子とは異なり、少なくとも 1つのプロパティが *値* と異なる要素は検索しません)。 つまり、"Not(プロパティ値が *value* と等しいコレクション要素を検索する)" を検索することと同じです。 たとえば、以下のような エンティティがあるとき: +コレクションを含むデータクラス属性内を検索する場合、"*値* と等しくない" 比較演算子 (`#` または `!=`) は、すべてのプロパティが *値* と異なる要素を検索します (ほかの比較演算子とは異なり、少なくとも 1つのプロパティが *値* と異なる要素は検索しません)。つまり、"Not(プロパティ値が *value* と等しいコレクション要素を検索する)" を検索することと同じです。たとえば、以下のような エンティティがあるとき: ``` エンティティ1: @@ -1113,11 +1113,11 @@ ds.Class.query("info.coll[a].val != :1";0) :::info -この機能は、データクラスおよび [エンティティセレクション](EntitySelectionClass.md#query) をクエリする場合にのみ利用可能です。 [コレクション](CollectionClass.md#query) をクエリする場合には利用できません。 +この機能は、データクラスおよび [エンティティセレクション](EntitySelectionClass.md#query) をクエリする場合にのみ利用可能です。[コレクション](CollectionClass.md#query) をクエリする場合には利用できません。 ::: -コレクションを含むデータクラス属性を対象に、AND 演算子で結合された複数のクエリ条件を使用して検索するにあたって、検索条件に合致するプロパティが複数のコレクション要素にバラけているのではなく、一つのコレクション要素がすべてまとまっているエンティティを探したいとします。 これには、すべての条件に合致するコレクション要素のみが検出されるよう、クエリ条件をコレクション要素にリンクする必要があります。 +コレクションを含むデータクラス属性を対象に、AND 演算子で結合された複数のクエリ条件を使用して検索するにあたって、検索条件に合致するプロパティが複数のコレクション要素にバラけているのではなく、一つのコレクション要素がすべてまとまっているエンティティを探したいとします。これには、すべての条件に合致するコレクション要素のみが検出されるよう、クエリ条件をコレクション要素にリンクする必要があります。 たとえば、以下のような 2件のエンティティがあるとき: @@ -1142,7 +1142,7 @@ ds.People.places: } ] } ``` -"locations" 属性に、"kind=home" かつ "city=paris" である要素を持つ人を探したいとします。 以下のように書いた場合: +"locations" 属性に、"kind=home" かつ "city=paris" である要素を持つ人を探したいとします。以下のように書いた場合: ```4d ds.People.query("places.locations[].kind= :1 and places.locations[].city= :2";"home";"paris") @@ -1150,10 +1150,10 @@ ds.People.query("places.locations[].kind= :1 and places.locations[].city= :2";"h ... クエリは "martin" と "smith" の**両方**を返します。 なぜなら "smith" も "kind=home" である "location" 要素を持っており、"city=paris" である "location" 要素をも持っているからです (ですがこれら 2つは異なるコレクション要素です)。 -検索条件に合致する属性が同一のコレクション要素に含まれるエンティティのみを取得するには、**クエリ条件をリンク** します。 クエリ条件をリンクするには: +検索条件に合致する属性が同一のコレクション要素に含まれるエンティティのみを取得するには、**クエリ条件をリンク** します。クエリ条件をリンクするには: -* リンクする最初のクエリ条件にてパスの \[] 内に文字を追加し、同様に他のクエリ条件でも同じ文字を追加します。 例: `locations[a].city and locations[a].kind`。 ローマ字であればどの文字でも使用可能です (文字の大小は区別されません)。 -* 同じクエリ内に、異なるリンク条件を追加するには、別の文字を使用します。 単一のクエリ内では、最大で 26組のリンク条件を使用することができます。 +* リンクする最初のクエリ条件にてパスの \[] 内に文字を追加し、同様に他のクエリ条件でも同じ文字を追加します。例: `locations[a].city and locations[a].kind`。ローマ字であればどの文字でも使用可能です (文字の大小は区別されません)。 +* 同じクエリ内に、異なるリンク条件を追加するには、別の文字を使用します。単一のクエリ内では、最大で 26組のリンク条件を使用することができます。 上記の 2件のエンティティにおいて、以下のように書いた場合: @@ -1167,7 +1167,7 @@ ds.People.query("places.locations[a].kind= :1 and places.locations[a].city= :2"; #### N対Nリレーションのクエリ -ORDA は、N対Nリレーションにおけるクエリを容易にするための特別な構文を提供します。 このような場合には `AND` 演算子を使って、同じ属性内に格納されている異なる値を検索する必要があるかもしれません。 たとえば、以下のようなストラクチャーの場合を考えます: +ORDA は、N対Nリレーションにおけるクエリを容易にするための特別な構文を提供します。このような場合には `AND` 演算子を使って、同じ属性内に格納されている異なる値を検索する必要があるかもしれません。たとえば、以下のようなストラクチャーの場合を考えます: ![alt-text](../assets/en/API/manytomany.png) @@ -1187,7 +1187,7 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor.lastName = :2";"H "relationAttribute.attribute = :1 AND relationAttribute{x}.attribute = :2 [AND relationAttribute{y}.attribute...]" ``` -**{x}** は、リレーション属性のために新たな参照を作成するよう、ORDA に指示します。 すると、ORDA は必要なビットマップ操作を内部で実行します。 **x** には **0 以外** の任意の数値を使用できます: {1}、{2}、{1540}...。 ORDA は、各クラスインデックス用の一意な参照をクエリ内においてのみ必要とします。 +**{x}** は、リレーション属性のために新たな参照を作成するよう、ORDA に指示します。すると、ORDA は必要なビットマップ操作を内部で実行します。 **x** には **0 以外** の任意の数値を使用できます: {1}、{2}、{1540}...。 ORDA は、各クラスインデックス用の一意な参照をクエリ内においてのみ必要とします。 この例では、次のようになります: @@ -1201,11 +1201,11 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" #### formula 引数 -*queryString* 引数にフォーミュラを挿入 (上記参照) する代わりに、formula オブジェクトをブール検索条件として直接渡すことができます。 トークナイズの利点を生かせる、コードが検索しやすく読みやすい、などといった面から、クエリにおけるフォーミュラオブジェクトの使用は **推奨されています**。 +*queryString* 引数にフォーミュラを挿入 (上記参照) する代わりに、formula オブジェクトをブール検索条件として直接渡すことができます。トークナイズの利点を生かせる、コードが検索しやすく読みやすい、などといった面から、クエリにおけるフォーミュラオブジェクトの使用は **推奨されています**。 -このフォーミュラは、[`Formula`](FunctionClass.md#formula) または [`Formula from string`](FunctionClass.md#formula-from-string) コマンドによって作成されたものでなくてはなりません。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。 この場合において: +このフォーミュラは、[`Formula`](FunctionClass.md#formula) または [`Formula from string`](FunctionClass.md#formula-from-string) コマンドによって作成されたものでなくてはなりません。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。この場合において: -* フォーミュラは処理されるエンティティごとに評価され、true または false を返さなくてはなりません。 クエリの実行中、フォーミュラの結果がブール値でなかった場合、それは false であるとみなされます。 +* フォーミュラは処理されるエンティティごとに評価され、true または false を返さなくてはなりません。クエリの実行中、フォーミュラの結果がブール値でなかった場合、それは false であるとみなされます。 * *queryString* または *formula* に **値の命名プレースホルダー** を使用した場合に渡すオブジェクト。 * `Formula` オブジェクトが **null** の場合、エラー1626 ("テキストまたはフォーミュラが必要です") が生成されます。 > セキュリティのため、 `query()` 関数内のフォーミュラ使用を禁止することができます。 *querySettings* パラメーターの説明を参照ください。 @@ -1226,25 +1226,25 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" さらなる使用例は、例題3にて紹介されています。 -**4D Server**: クライアント/サーバーにおいては、フォーミュラはサーバー上で実行されます。 このコンテキストにおいては、`querySettings.args` オブジェクトのみがフォーミュラに送信されます。 +**4D Server**: クライアント/サーバーにおいては、フォーミュラはサーバー上で実行されます。このコンテキストにおいては、`querySettings.args` オブジェクトのみがフォーミュラに送信されます。 #### querySettings 引数 -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| parameters | Object | *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。 インデックスプレースホルダー (value引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | -| attributes | Object | *queryString* または *formula* に **属性パスの命名プレースホルダー** を使用した場合に渡すオブジェクト。 プロパティは、*queryString* または *formula* に属性パスの代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、属性パスを表す文字列または文字列のコレクションです。 値には、データクラスのスカラー属性・リレート属性・オブジェクトフィールド内のプロパティへの属性パスを指定することができます。
    型説明
    Stringドット記法を使用して表現された attributePath (例: "name" または "user.address.zipCode")
    String の Collectionコレクションの各要素が attributePath の階層を表します (例: ["name"] または ["user","address","zipCode"])。 コレクションを使用することで、ドット記法に準じていない名前の属性に対してもクエリすることができます (例: \["4Dv17.1","en/fr"])。
    インデックスプレースホルダー (*value* 引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | -| args | Object | フォーミュラに渡す引数。 **args** オブジェクトは、フォーミュラ内の $1 が受け取るので、その値は *$1.property* という形で利用可能です (例題3 参照)。 | -| allowFormulas | Boolean | クエリ内でフォーミュラの呼び出しを許可するには true (デフォルト)。 フォーミュラ実行を禁止するには false を渡します。 false に設定されているときに、フォーミュラが `query()` に渡された場合、エラーが発生します (1278 - フォーミュラはこのメンバーメソッドでは許可されていません)。 | -| context | Text | エンティティセレクションに適用されている自動の最適化コンテキストのラベル。 エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 この機能はクライアント/サーバー処理を想定して設計されています。 詳細な情報については、[**クライアント/サーバーの最適化**](../ORDA/remoteDatastores.md#クライアントサーバーの最適化) の章を参照ください。 | -| queryPlan | Boolean | 戻り値のエンティティコレクションに、実行する直前のクエリの詳細 (クエリプラン) を含めるかどうかを指定します。 返されるプロパティは、クエリプラン あるいはサブクエリ (複合クエリの場合) を格納したオブジェクトです。 このオプションはアプリケーションの開発フェーズにおいて有用です。 このオプションは通常 queryPath と組み合わせて使用されます。 省略時のデフォルト: false。 **注:** このプロパティは `entitySelection.query()` および `dataClass.query()` 関数においてのみサポートされます。 | -| queryPath | Boolean | 戻り値のエンティティコレクションに、実際に実行されたクエリの詳細を含めるかどうかを指定します。 返されたプロパティは、クエリで実際に使用されたパス (通常は queryPlan と同一ですが、エンジンがクエリを最適化した場合には異なる場合があります)、処理時間と検出レコード数を格納したオブジェクトです。 このオプションはアプリケーションの開発フェーズにおいて有用です。 省略時のデフォルト: false。 **注:** このプロパティは `entitySelection.query()` および `dataClass.query()` 関数においてのみサポートされます。 | +| プロパティ | 型 | 説明 | +| ------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| parameters | Object | *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。インデックスプレースホルダー (value引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | +| attributes | Object | *queryString* または *formula* に **属性パスの命名プレースホルダー** を使用した場合に渡すオブジェクト。プロパティは、*queryString* または *formula* に属性パスの代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、属性パスを表す文字列または文字列のコレクションです。値には、データクラスのスカラー属性・リレート属性・オブジェクトフィールド内のプロパティへの属性パスを指定することができます。
    型説明
    Stringドット記法を使用して表現された attributePath (例: "name" または "user.address.zipCode")
    String の Collectionコレクションの各要素が attributePath の階層を表します (例: ["name"] または ["user","address","zipCode"])。コレクションを使用することで、ドット記法に準じていない名前の属性に対してもクエリすることができます (例: \["4Dv17.1","en/fr"])。
    インデックスプレースホルダー (*value* 引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | +| args | Object | フォーミュラに渡す引数。 **args** オブジェクトは、フォーミュラ内の $1 が受け取るので、その値は *$1.property* という形で利用可能です (例題3 参照)。 | +| allowFormulas | Boolean | クエリ内でフォーミュラの呼び出しを許可するには true (デフォルト)。フォーミュラ実行を禁止するには false を渡します。 false に設定されているときに、フォーミュラが `query()` に渡された場合、エラーが発生します (1278 - フォーミュラはこのメンバーメソッドでは許可されていません)。 | +| context | Text | エンティティセレクションに適用されている自動の最適化コンテキストのラベル。エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。この機能はクライアント/サーバー処理を想定して設計されています。 詳細な情報については、[**クライアント/サーバーの最適化**](../ORDA/remoteDatastores.md#クライアントサーバーの最適化) の章を参照ください。 | +| queryPlan | Boolean | 戻り値のエンティティコレクションに、実行する直前のクエリの詳細 (クエリプラン) を含めるかどうかを指定します。返されるプロパティは、クエリプラン あるいはサブクエリ (複合クエリの場合) を格納したオブジェクトです。このオプションはアプリケーションの開発フェーズにおいて有用です。このオプションは通常 queryPath と組み合わせて使用されます。省略時のデフォルト: false。**注:** このプロパティは `entitySelection.query()` および `dataClass.query()` 関数においてのみサポートされます。 | +| queryPath | Boolean | 戻り値のエンティティコレクションに、実際に実行されたクエリの詳細を含めるかどうかを指定します。返されたプロパティは、クエリで実際に使用されたパス (通常は queryPlan と同一ですが、エンジンがクエリを最適化した場合には異なる場合があります)、処理時間と検出レコード数を格納したオブジェクトです。このオプションはアプリケーションの開発フェーズにおいて有用です。省略時のデフォルト: false。**注:** このプロパティは `entitySelection.query()` および `dataClass.query()` 関数においてのみサポートされます。 | #### queryPlan と queryPath について -`queryPlan`/`queryPath` に格納される情報には、クエリの種類 (インデックスあるいはシーケンシャル)、必要なサブクエリおよびその連結演算子が含まれます。 クエリパスには、見つかったエンティティの数と各検索条件を実行するのにかかった時間も含まれます。 この情報は、アプリケーションの開発中に解析することで有効に活用できます。 一般的には、クエリプランとクエリパスの詳細は同一になるはずですが、4D はパフォーマンス向上のために動的な最適化をクエリ実行時に実装することがあり、異なることもあります。 たとえば、その方が早いと判断した場合には、4Dエンジンはインデックス付きクエリをシーケンシャルなものへと動的に変換することがあります。 これは検索されているエンティティの数が少ないときに起こりえます。 +`queryPlan`/`queryPath` に格納される情報には、クエリの種類 (インデックスあるいはシーケンシャル)、必要なサブクエリおよびその連結演算子が含まれます。クエリパスには、見つかったエンティティの数と各検索条件を実行するのにかかった時間も含まれます。この情報は、アプリケーションの開発中に解析することで有効に活用できます。一般的には、クエリプランとクエリパスの詳細は同一になるはずですが、4D はパフォーマンス向上のために動的な最適化をクエリ実行時に実装することがあり、異なることもあります。たとえば、その方が早いと判断した場合には、4Dエンジンはインデックス付きクエリをシーケンシャルなものへと動的に変換することがあります。これは検索されているエンティティの数が少ないときに起こりえます。 たとえば、以下のクエリを実行した場合: @@ -1578,7 +1578,7 @@ softwares:{
  • -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -1591,17 +1591,17 @@ softwares:{ | timeout | Integer | タイムアウト (秒単位)。 | | maxEntries | Integer | エンティティの最大数 | -`timeout` は、データクラスの ORDAキャッシュのタイムアウトを設定します (デフォルトは 30秒)。 タイムアウトを過ぎると、キャッシュ内のデータクラスのエンティティは期限切れとみなされます。 これは、次のことを意味します: +`timeout` は、データクラスの ORDAキャッシュのタイムアウトを設定します (デフォルトは 30秒)。タイムアウトを過ぎると、キャッシュ内のデータクラスのエンティティは期限切れとみなされます。これは、次のことを意味します: * データはまだ存在します * 次にそのデータが必要になったときには、サーバーに要求します * エンティティの最大数に達すると、4D は期限切れのデータを自動的に削除します -`timeout` プロパティを設定すると、すでにキャッシュに存在するエンティティに新しいタイムアウトが設定されます。 これは頻繁に変更されないデータを扱う場合、つまり、サーバーへの新たな要求が必要ない場合に便利です。 +`timeout` プロパティを設定すると、すでにキャッシュに存在するエンティティに新しいタイムアウトが設定されます。これは頻繁に変更されないデータを扱う場合、つまり、サーバーへの新たな要求が必要ない場合に便利です。 -`maxEntries` は、ORDAキャッシュ内のエンティティの最大数を設定します。 デフォルトは 30,000 です。 +`maxEntries` は、ORDAキャッシュ内のエンティティの最大数を設定します。デフォルトは 30,000 です。 -最小エントリー数は 300 のため、`maxEntries` の値は 300以上でなくてはなりません。 それ以外の場合は無視され、最大エントリー数は 300 に設定されます。 +最小エントリー数は 300 のため、`maxEntries` の値は 300以上でなくてはなりません。それ以外の場合は無視され、最大エントリー数は 300 に設定されます。 `timeout` および `maxEntries` として有効なプロパティが渡されない場合、キャッシュはデフォルト値または以前に設定された値のまま変更されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataStoreClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataStoreClass.md index 14a48536c4f465..07e3ee5e042616 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataStoreClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/DataStoreClass.md @@ -60,9 +60,9 @@ title: DataStore `ds` コマンドは、 カレントの 4Dデータベース、または *localID* で指定したデータベースに合致するデータストアの参照を返します。 -*localID* を省略した (または空の文字列 "" を渡した) 場合には、ローカル4Dデータベース (4D Server でリモートデータベースを開いている場合にはそのデータベース) に合致するデータストアの参照を返します。 データストアは自動的に開かれ、`ds` を介して直接利用することができます。 +*localID* を省略した (または空の文字列 "" を渡した) 場合には、ローカル4Dデータベース (4D Server でリモートデータベースを開いている場合にはそのデータベース) に合致するデータストアの参照を返します。データストアは自動的に開かれ、`ds` を介して直接利用することができます。 -開かれているリモートデータストアのローカルIDを *localID* パラメーターに渡すと、その参照を取得できます。 このデータストアは、あらかじめカレントデータベース (ホストまたはコンポーネント) によって [`Open datastore`](#open-datastore) コマンドで開かれている必要があります。 このコマンドを使用したときにローカルIDが定義されます。 +開かれているリモートデータストアのローカルIDを *localID* パラメーターに渡すと、その参照を取得できます。このデータストアは、あらかじめカレントデータベース (ホストまたはコンポーネント) によって [`Open datastore`](#open-datastore) コマンドで開かれている必要があります。このコマンドを使用したときにローカルIDが定義されます。 > ローカルIDのスコープは、当該データストアを開いたデータベースです。 *localID* に合致するデータストアが見つからない場合、コマンドは **Null** を返します。 @@ -140,7 +140,7 @@ $foreignStudents:=Open datastore($connectTo;"foreign") 合致するデータベースが見つからない場合、`Open datastore` は **Null** を返します。 -*localID* 引数は、リモートデータストア上で開かれるセッションのローカルエイリアスです。 *localID* 引数の ID がすでにアプリケーションに存在している場合、その ID が使用されています。 そうでない場合、データストアオブジェクトが使用されたときに *localID* のセッションが新規に作成されます。 +*localID* 引数は、リモートデータストア上で開かれるセッションのローカルエイリアスです。 *localID* 引数の ID がすでにアプリケーションに存在している場合、その ID が使用されています。そうでない場合、データストアオブジェクトが使用されたときに *localID* のセッションが新規に作成されます。 `4D.DataStoreImplementation` のオブジェクトは[変換のルール](ORDA/dsMapping.md#general-rules)に従い、リモートデータストアからマッピングされます。 @@ -152,23 +152,23 @@ $foreignStudents:=Open datastore($connectTo;"foreign") //$myds と $myds2 は同一のものです ``` -*connectionInfo* には、接続したいリモートデータストアの詳細を格納したオブジェクトを渡します。 オブジェクトは以下のプロパティを格納することができます (*hostname* を除き、すべてのプロパティは任意です): +*connectionInfo* には、接続したいリモートデータストアの詳細を格納したオブジェクトを渡します。オブジェクトは以下のプロパティを格納することができます (*hostname* を除き、すべてのプロパティは任意です): -| プロパティ | 型 | 説明 | -| ----------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| hostname | Text | リモートデータストアの名前または IPアドレス + ":" + ポート番号 (ポート番号は必須) | -| user | Text | ユーザー名 | -| password | Text | ユーザーパスワード。 デフォルトでは、パスワードは平文で送信されるため、`tls` プロパティに `true` を渡して暗号化通信を使用することが**強く推奨**されます。 | -| idleTimeout | Integer | アクティビティがなかった場合に、セッションがタイムアウトするまでの時間 (分単位)。 この時間を過ぎると、4D によって自動的にセッションが閉じられます。 省略時のデフォルトは 60 (1時間) です。 60 (分) 未満の値を指定することはできません (60 未満の値を渡した場合、タイムアウトは 60 (分) に設定されます)。 詳細については、[**セッションの終了**](../ORDA/remoteDatastores.md#セッションの終了) を参照ください。 | -| tls | Boolean | 安全な接続を使用します(*)。 省略時のデフォルトは false です。 可能なかぎり安全な接続を使用することが推奨されます。 | -| passwordAlgorithm | Text | [`Validate password`](https://doc.4d.com/4dv20/help/command/ja/page638.html) コマンドで *digest* パラメーターを `true` に設定してサーバーがパスワードを検証する場合は、"4d-rest-digest" を指定します。 | -| type | Text | "4D Server" でなければなりません | +| プロパティ | 型 | 説明 | +| ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| hostname | Text | リモートデータストアの名前または IPアドレス + ":" + ポート番号 (ポート番号は必須) | +| user | Text | ユーザー名 | +| password | Text | ユーザーパスワード。デフォルトでは、パスワードは平文で送信されるため、`tls` プロパティに `true` を渡して暗号化通信を使用することが**強く推奨**されます。 | +| idleTimeout | Integer | アクティビティがなかった場合に、セッションがタイムアウトするまでの時間 (分単位)。 この時間を過ぎると、4D によって自動的にセッションが閉じられます。省略時のデフォルトは 60 (1時間) です。 60 (分) 未満の値を指定することはできません (60 未満の値を渡した場合、タイムアウトは 60 (分) に設定されます)。詳細については、[**セッションの終了**](../ORDA/remoteDatastores.md#セッションの終了) を参照ください。 | +| tls | Boolean | 安全な接続を使用します(*)。省略時のデフォルトは false です。可能なかぎり安全な接続を使用することが推奨されます。 | +| passwordAlgorithm | Text | [`Validate password`](https://doc.4d.com/4dv20/help/command/ja/page638.html) コマンドで *digest* パラメーターを `true` に設定してサーバーがパスワードを検証する場合は、"4d-rest-digest" を指定します。 | +| type | Text | "4D Server" でなければなりません | (*) tls が true だった場合、以下の条件が満たされていれば、HTTPSプロトコルが使用されます: * リモートデータストアで HTTPS が有効化されている。 * 指定されたポート番号は、データベース設定で設定されている HTTPS ポートと合致している。 -* データベースに有効な証明書と非公開暗号鍵がインストールされている。 条件を満たさない場合、エラー "1610 - ホスト xxx へのリモートリクエストに失敗しました" が生成されます。 +* データベースに有効な証明書と非公開暗号鍵がインストールされている。条件を満たさない場合、エラー "1610 - ホスト xxx へのリモートリクエストに失敗しました" が生成されます。 #### 例題 1 @@ -212,7 +212,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude #### エラー管理 -エラーが起きた場合、コマンドは **Null** を返します。 リモートデータベースにアクセスできなかった場合 (アドレス違い、Webサーバーが開始されていない、http/https が有効化されていない、等)、エラー1610 "ホスト XXX へのリモートリクエストに失敗しました" が生成されます。 このエラーは `ON ERR CALL` で実装されたメソッドで割り込み可能です。 +エラーが起きた場合、コマンドは **Null** を返します。リモートデータベースにアクセスできなかった場合 (アドレス違い、Webサーバーが開始されていない、http/https が有効化されていない、等)、エラー1610 "ホスト XXX へのリモートリクエストに失敗しました" が生成されます。このエラーは `ON ERR CALL` で実装されたメソッドで割り込み可能です。 ## *.dataclassName* @@ -229,7 +229,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude #### 説明 -データストアの各データクラスは [DataStore オブジェクト](ORDA/dsMapping.md#データストア) のプロパティとして利用可能です。 戻り値のオブジェクトには、 データクラスの詳細が格納されています。 +データストアの各データクラスは [DataStore オブジェクト](ORDA/dsMapping.md#データストア) のプロパティとして利用可能です。戻り値のオブジェクトには、 データクラスの詳細が格納されています。 #### 例題 @@ -275,7 +275,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude `.cancelTransaction()` 関数は、トランザクション中におこなわれたデータ変更をすべてキャンセルします。 -複数のトランザクションをネストすること (サブトランザクション) が可能です。 メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に[`.validateTransaction()`](#validatetransaction) 関数で承認されていても) すべてキャンセルされます。 +複数のトランザクションをネストすること (サブトランザクション) が可能です。メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に[`.validateTransaction()`](#validatetransaction) 関数で承認されていても) すべてキャンセルされます。 #### 例題 @@ -309,7 +309,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude `.clearAllRemoteContexts()` 関数は、 データストアのすべてのアクティブコンテキストの全属性をクリアします。 -この機能は主にデバッグで使用されます。 注意しなければならないのは、デバッガーを開くと、デバッガーはサーバーにリクエストを送り、データクラス属性をすべてクエリして表示することです。 このため、不要なデータでコンテキストが過負荷になることがあります。 +この機能は主にデバッグで使用されます。注意しなければならないのは、デバッガーを開くと、デバッガーはサーバーにリクエストを送り、データクラス属性をすべてクエリして表示することです。このため、不要なデータでコンテキストが過負荷になることがあります。 そのような場合は、`.clearAllRemoteContexts()` を使用してコンテキストをクリアし、クリーンな状態を保つことができます。 @@ -342,7 +342,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude #### 説明 -`.encryptionStatus()` 関数は、 カレントデータファイルの暗号化状態を示すオブジェクトを返します 。 カレントデータファイルとはつまり、`ds` データストアのデータファイルです。 各テーブルの状態も提供されます。 +`.encryptionStatus()` 関数は、 カレントデータファイルの暗号化状態を示すオブジェクトを返します 。 カレントデータファイルとはつまり、`ds` データストアのデータファイルです。各テーブルの状態も提供されます。 > その他のデータファイルの暗号化状態を調べるには、`Data file encryption status` コマンドを使います。 **戻り値** @@ -419,7 +419,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude #### 説明 -`.flushAndLock()` 関数は、 ローカルデータストアのキャッシュをフラッシュし、データベースに対して他のプロセスが書き込み操作をおこなうのを防ぎます。 これにより、データストアは凍結状態におかれます。 この関数は、たとえばアプリケーションのスナップショットを実行する前に呼び出す必要があります。 +`.flushAndLock()` 関数は、 ローカルデータストアのキャッシュをフラッシュし、データベースに対して他のプロセスが書き込み操作をおこなうのを防ぎます。これにより、データストアは凍結状態におかれます。この関数は、たとえばアプリケーションのスナップショットを実行する前に呼び出す必要があります。 :::info @@ -447,7 +447,7 @@ ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign stude :::caution -[バックアップ](../Backup/backup.md) や [VSS](https://doc.4d.com/4Dv19R7/4D/19-R7/Using-Volume-Shadow-Copy-Service-on-Windows.300-6078959.ja.html) 、[MSC](../MSC/overview.md) を含む他の 4D機能およびサービスもデータストアをロックすることがあります。 予期せぬ相互作用を避けるため、`.flushAndLock()` を呼び出す前に、データストアをロックするような他の操作がおこなわれていないことを確認してください。 +[バックアップ](../Backup/backup.md) や [VSS](https://doc.4d.com/4Dv19R7/4D/19-R7/Using-Volume-Shadow-Copy-Service-on-Windows.300-6078959.ja.html) 、[MSC](../MSC/overview.md) を含む他の 4D機能およびサービスもデータストアをロックすることがあります。予期せぬ相互作用を避けるため、`.flushAndLock()` を呼び出す前に、データストアをロックするような他の操作がおこなわれていないことを確認してください。 ::: @@ -498,7 +498,7 @@ ds.unlock() // コピー操作をおこなったので、データストアの
    -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -579,16 +579,16 @@ $info:=$ds.getAllRemoteContexts() #### 説明 -`.getInfo()` 関数は、 データストアの情報を提供するオブジェクトを返します。 このメソッドは汎用的なコードを書くのに有用です。 +`.getInfo()` 関数は、 データストアの情報を提供するオブジェクトを返します。このメソッドは汎用的なコードを書くのに有用です。 **返されるオブジェクト** -| プロパティ | 型 | 説明 | -| ---------- | ------- | ----------------------------------------------------------------------------------------- | -| type | string |
  • "4D": ds で利用可能なメインデータストア
  • "4D Server": Open datastore で開かれたリモートデータストア
  • | -| networked | boolean |
  • true: ネットワーク接続を介してアクセスされたデータストア
  • false: ネットワーク接続を介さずにアクセスしているデータストア (ローカルデータベース)
  • | -| localID | text | マシン上のデータストアID。 これは、`Open datastore` コマンドで返される localId 文字列です。 メインデータストアの場合は空の文字列 ("") です。 | -| connection | object | リモートデータストア接続の情報を格納したオブジェクト (メインデータストアの場合は返されません)。 次のプロパティを含みます:
    プロパティ型説明
    hostnametextリモートデータストアの IPアドレスまたは名称 + ":" + ポート番号
    tlsbooleanリモートデータストアとセキュア接続を利用している場合は true
    idleTimeoutnumberセッション非アクティブタイムアウト (分単位)。
    usertextリモートデータストアにて認証されたユーザー
    | +| プロパティ | 型 | 説明 | +| ---------- | ------- | ---------------------------------------------------------------------------------------- | +| type | string |
  • "4D": ds で利用可能なメインデータストア
  • "4D Server": Open datastore で開かれたリモートデータストア
  • | +| networked | boolean |
  • true: ネットワーク接続を介してアクセスされたデータストア
  • false: ネットワーク接続を介さずにアクセスしているデータストア (ローカルデータベース)
  • | +| localID | text | マシン上のデータストアID。これは、`Open datastore` コマンドで返される localId 文字列です。メインデータストアの場合は空の文字列 ("") です。 | +| connection | object | リモートデータストア接続の情報を格納したオブジェクト (メインデータストアの場合は返されません)。次のプロパティを含みます:
    プロパティ型説明
    hostnametextリモートデータストアの IPアドレスまたは名称 + ":" + ポート番号
    tlsbooleanリモートデータストアとセキュア接続を利用している場合は true
    idleTimeoutnumberセッション非アクティブタイムアウト (分単位)。
    usertextリモートデータストアにて認証されたユーザー
    | * `.getInfo()` 関数が、4D Server またはシングルユーザー版 4D 上で実行された場合、`networked` は false となります。 * `.getInfo()` 関数が、リモート版 4D 上で実行された場合、`networked` は true となります。 @@ -649,7 +649,7 @@ $info:=$remoteDS.getInfo()
    -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -661,12 +661,12 @@ $info:=$remoteDS.getInfo() 戻り値のオブジェクトには、以下のプロパティが格納されています: -| プロパティ | 型 | 説明 | -| ---------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | Text | コンテキストの名称 | -| main | Text | コンテキストに関連する属性 (複数の場合はカンマ区切り) | -| dataclass | Text | データクラスの名称 | -| currentItem (任意) | Text | コンテキストがリストボックスとリンクしている場合の [ページモード](../ORDA/remoteDatastores.md#エンティティセレクション型リストボックス) の属性。 コンテキスト名がリストボックスに使用されていない場合、または currentItem に対応するコンテキストが存在しない場合は、`Null` または空のテキスト要素として返されます。 | +| プロパティ | 型 | 説明 | +| ---------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| name | Text | コンテキストの名称 | +| main | Text | コンテキストに関連する属性 (複数の場合はカンマ区切り) | +| dataclass | Text | データクラスの名称 | +| currentItem (任意) | Text | コンテキストがリストボックスとリンクしている場合の [ページモード](../ORDA/remoteDatastores.md#エンティティセレクション型リストボックス) の属性。コンテキスト名がリストボックスに使用されていない場合、または currentItem に対応するコンテキストが存在しない場合は、`Null` または空のテキスト要素として返されます。 | コンテキストは属性に対するフィルターとして動作するため、*main* が空で返された場合、それはフィルターが適用されておらず、サーバーがすべてのデータクラス属性を返すことを意味します。 @@ -705,11 +705,11 @@ $info:=$remoteDS.getInfo() `.getRequestLog()` 関数は、 クライアント側のメモリに記録されている ORDAリクエストを返します。 ORDAリクエストのログが、[`.startRequestLog()`](#startrequestlog) 関数によって事前に有効化されている必要があります。 -このメソッドはリモートの 4D で呼び出す必要があり、そうでない場合には空のコレクションを返します。 これはクライアント/サーバー環境でのデバッグを想定して設計されています。 +このメソッドはリモートの 4D で呼び出す必要があり、そうでない場合には空のコレクションを返します。これはクライアント/サーバー環境でのデバッグを想定して設計されています。 **戻り値** -スタックされたリクエストオブジェクトのコレクションが返されます。 直近のリクエストにはインデックス 0 が振られています。 +スタックされたリクエストオブジェクトのコレクションが返されます。直近のリクエストにはインデックス 0 が振られています。 ORDAリクエストログのフォーマットの詳細は、[**ORDAクライアントリクエスト**](https://doc.4d.com/4Dv18R6/4D/18-R6/Description-of-log-files.300-5217819.ja.html#4385373) の章を参照ください。 @@ -822,13 +822,13 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア #### 説明 -`.makeSelectionsAlterable()` 関数は、 カレントアプリケーションのデータストアにおいて、すべての新規エンティティセレクションをデフォルトで追加可能に設定します ([リモートデータストア](ORDA/remoteDatastores.md) を含む)。 これはたとえば `On Startup` データベースメソッドなどで、一度だけ使用することが想定されています。 +`.makeSelectionsAlterable()` 関数は、 カレントアプリケーションのデータストアにおいて、すべての新規エンティティセレクションをデフォルトで追加可能に設定します ([リモートデータストア](ORDA/remoteDatastores.md) を含む)。これはたとえば `On Startup` データベースメソッドなどで、一度だけ使用することが想定されています。 この関数が呼ばれなかった場合、新規エンティティセレクションが共有可能かどうかは、共有可能エンティティセレクションを"元"にしたのか、あるいは[どんな関数を呼び出して作成したのか](ORDA/entities.md#共有可能追加可能なエンティティセレクション)で決まります。 > この関数は、`OB Copy` または [`.copy()`](./EntitySelectionClass.md#copy) に `ck shared` オプションを明示的に使用して作成されたエンティティセレクションには適用されません。 -> **互換性に関する注記**: このメソッドは 4D v18 R5 より前のバージョンから変換されたプロジェクトで、[.add()](EntitySelectionClass.md#add) の呼び出しを使用しているものにおいてのみ使用してください。 このコンテキストにおいては、`.makeSelectionsAlterable()` を使用することで、既存プロジェクト内で以前の 4D のふるまいを再現し、時間を節約できます。 逆に、4D v18 R5 以降のバージョンで作成された新規プロジェクトにおいては、この関数の使用は **推奨されていません**。 エンティティセレクションを共有可能にできないため、パフォーマンスとスケーラビリティの観点で妨げになるからです。 +> **互換性に関する注記**: このメソッドは 4D v18 R5 より前のバージョンから変換されたプロジェクトで、[.add()](EntitySelectionClass.md#add) の呼び出しを使用しているものにおいてのみ使用してください。このコンテキストにおいては、`.makeSelectionsAlterable()` を使用することで、既存プロジェクト内で以前の 4D のふるまいを再現し、時間を節約できます。逆に、4D v18 R5 以降のバージョンで作成された新規プロジェクトにおいては、この関数の使用は **推奨されていません**。 エンティティセレクションを共有可能にできないため、パフォーマンスとスケーラビリティの観点で妨げになるからです。 @@ -859,13 +859,13 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア #### 説明 -`.provideDataKey()` 関数は、 データストアのカレントデータファイルのデータ暗号化キーを受け取り、暗号化されたデータと合致するかどうかチェックします。 この関数は、暗号化されたデータベースを開くときや、データファイルの再暗号化など暗号化キーが必要となる暗号化オペレーションを実行する際に使用します。 -> * `.provideDataKey()` 関数は暗号化されたデータベース内で呼び出される必要があります。 暗号化されていないデータベース内で呼び出した場合、エラー2003 (暗号化キーはデータと合致しません) が返されます。 データベースが暗号化されているかどうかを調べるには `Data file encryption status` コマンドを使用します。 +`.provideDataKey()` 関数は、 データストアのカレントデータファイルのデータ暗号化キーを受け取り、暗号化されたデータと合致するかどうかチェックします。この関数は、暗号化されたデータベースを開くときや、データファイルの再暗号化など暗号化キーが必要となる暗号化オペレーションを実行する際に使用します。 +> * `.provideDataKey()` 関数は暗号化されたデータベース内で呼び出される必要があります。暗号化されていないデータベース内で呼び出した場合、エラー2003 (暗号化キーはデータと合致しません) が返されます。データベースが暗号化されているかどうかを調べるには `Data file encryption status` コマンドを使用します。 > * リモートの 4D または暗号化されたリモートデータストアから、`.provideDataKey()` 関数を呼び出すことはできません。 -*curPassPhrase* パラメーターを使用する場合は、データ暗号化キーの生成に使用した文字列を渡します。 このパラメーターを使用した場合、暗号化キーが生成されます。 +*curPassPhrase* パラメーターを使用する場合は、データ暗号化キーの生成に使用した文字列を渡します。このパラメーターを使用した場合、暗号化キーが生成されます。 -*curDataKey* パラメーターを使用する場合は、データ暗号化キー (*encodedKey* プロパティ) を格納するオブジェクトを渡します。 このキーは、`New data key` コマンドで生成された可能性があります。 +*curDataKey* パラメーターを使用する場合は、データ暗号化キー (*encodedKey* プロパティ) を格納するオブジェクトを渡します。このキーは、`New data key` コマンドで生成された可能性があります。 有効な暗号化キーが提供された場合、そのキーはメモリ内の *keyChain* に追加され、暗号化モードが有効になります: @@ -882,7 +882,7 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア | | | | 以下のプロパティは、success が *FALSE* であった場合にのみ返されます。 | | status | | Number | エラーコード (提供された暗号化キーが間違っていた場合には 4) | | statusText | | Text | エラーメッセージ | -| errors | | Collection | エラーのスタック。 最初のエラーに最も高いインデックスが割り当てられます。 | +| errors | | Collection | エラーのスタック。最初のエラーに最も高いインデックスが割り当てられます。 | | | \[ ].componentSignature | Text | 内部コンポーネント名 | | | \[ ].errCode | Number | エラー番号 | | | \[ ].message | Text | エラーメッセージ | @@ -934,9 +934,9 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア `.setAdminProtection()` 関数は、 `WebAdmin`セッションにおける [データエクスプローラー](Admin/dataExplorer.md) 含め、[Web管理ポート](Admin/webAdmin.md#httpポート)上でのデータアクセスを無効に設定することができます。 -この関数が呼び出されなかった場合のデフォルトでは、データエクスプローラーを使用した `WebAdmin` 権限を持つセッションについて、Web管理ポート上のデータアクセスは常に許可されます。 環境によっては (たとえば、アプリケーションサーバーが第三者のマシン上でホストされている場合)、 管理者に対して [access key](Admin/webAdmin.md#access-key) 設定を含むサーバー設定の編集は許可しても、データ閲覧はできないようにしたいかもしれません。 +この関数が呼び出されなかった場合のデフォルトでは、データエクスプローラーを使用した `WebAdmin` 権限を持つセッションについて、Web管理ポート上のデータアクセスは常に許可されます。環境によっては (たとえば、アプリケーションサーバーが第三者のマシン上でホストされている場合)、 管理者に対して [access key](Admin/webAdmin.md#access-key) 設定を含むサーバー設定の編集は許可しても、データ閲覧はできないようにしたいかもしれません。 -このような場合にこの関数を呼び出すことで、ユーザーセッションが `WebAdmin` 権限を持っていても、マシンの Web管理ポート上でのデータエクスプローラーによるデータアクセスを無効にすることができます。 この関数を実行するとデータファイルは即座に保護され、そのステータスがディスク上に保存されます: アプリケーションを再起動しても、データファイルは保護されたままです。 +このような場合にこの関数を呼び出すことで、ユーザーセッションが `WebAdmin` 権限を持っていても、マシンの Web管理ポート上でのデータエクスプローラーによるデータアクセスを無効にすることができます。この関数を実行するとデータファイルは即座に保護され、そのステータスがディスク上に保存されます: アプリケーションを再起動しても、データファイルは保護されたままです。 #### 例題 @@ -981,11 +981,11 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAクライア
    -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 -`.setRemoteContextInfo()` 関数は、 指定したデータクラス属性を *contextName* の最適化コンテキストにリンクします。 指定した属性に対して最適化コンテキストが既に存在する場合、このコマンドはそれを置き換えます。 +`.setRemoteContextInfo()` 関数は、 指定したデータクラス属性を *contextName* の最適化コンテキストにリンクします。指定した属性に対して最適化コンテキストが既に存在する場合、このコマンドはそれを置き換えます。 ORDAクラスの関数にコンテキストを渡すと、RESTリクエストの最適化が即座に発動します: @@ -1000,16 +1000,16 @@ ORDAクラスの関数にコンテキストを渡すと、RESTリクエストの コンテキストにリンクする属性を指定するには、*attributes* (テキスト) にカンマ区切りの属性リストを渡すか、属性名のコレクションを *attributesColl* (テキストのコレクション) に渡します。 -*attributes* が空のテキスト、または *attributesColl* が空のコレクションの場合、データクラスのすべてのスカラー属性が最適化コンテキストに置かれます。 データクラスに存在しない属性を渡した場合、それは無視され、エラーが返されます。 +*attributes* が空のテキスト、または *attributesColl* が空のコレクションの場合、データクラスのすべてのスカラー属性が最適化コンテキストに置かれます。データクラスに存在しない属性を渡した場合、それは無視され、エラーが返されます。 *contextType* を渡して、コンテキストが標準コンテキストか、リストボックスに表示されているカレントエンティティセレクション項目のコンテキストかを指定することができます。 * "main" (デフォルト) を渡すと、*contextName* は標準コンテキストを指定します。 -* "currentItem" の場合には、渡された属性はカレント項目のコンテキストに置かれます。 [エンティティセレクション型リストボックス](../ORDA/remoteDatastores.md#エンティティセレクション型リストボックス) を参照ください。 +* "currentItem" の場合には、渡された属性はカレント項目のコンテキストに置かれます。[エンティティセレクション型リストボックス](../ORDA/remoteDatastores.md#エンティティセレクション型リストボックス) を参照ください。 *pageLength* には、サーバーに要求するデータクラスエンティティの数を指定します。 -エンティティセレクションであるリレーション属性 (1対N) について、*pageLength* を渡すことができます。 シンタックスは、`relationAttributeName:pageLength` です (例: employees:20)。 +エンティティセレクションであるリレーション属性 (1対N) について、*pageLength* を渡すことができます。シンタックスは、`relationAttributeName:pageLength` です (例: employees:20)。 #### 例題 1 @@ -1044,7 +1044,7 @@ $info:=$ds.getRemoteContextInfo("contextA") #### 例題 2 -以下のコードでは、`Address` データクラスのエンティティ 30件のページをサーバーに要求しています。 返されるエンティティは、`zipCode` 属性のみを含みます。 +以下のコードでは、`Address` データクラスのエンティティ 30件のページをサーバーに要求しています。返されるエンティティは、`zipCode` 属性のみを含みます。 各 `Address` エンティティに対して、20件の Persons エンティティが返され、それらには `lastname` と `firstname` 属性のみが含まれます: @@ -1113,7 +1113,7 @@ Form.currentItemLearntAttributes:=Form.selectedPerson.getRemoteContextAttributes #### 説明 -`.startRequestLog()` 関数は、 クライアント側またはサーバー側で ORDAリクエストのログを開始します。 これはクライアント/サーバー環境でのデバッグを想定して設計されています。 +`.startRequestLog()` 関数は、 クライアント側またはサーバー側で ORDAリクエストのログを開始します。これはクライアント/サーバー環境でのデバッグを想定して設計されています。 :::info @@ -1123,21 +1123,21 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAリクエス #### クライアント側 -クライアント側の ORDAリクエストログを作成するには、リモートマシン上でこの関数を呼び出します。 ログは、渡した引数によってファイルまたはメモリに送ることができます: +クライアント側の ORDAリクエストログを作成するには、リモートマシン上でこの関数を呼び出します。ログは、渡した引数によってファイルまたはメモリに送ることができます: -* `File` コマンドで作成された *file* オブジェクトを渡した場合、ログデータはオブジェクト (JSON フォーマット) のコレクションとしてこのファイルに書き込まれます。 各オブジェクトは一つのリクエストを表します。
    ファイルがまだ存在しない場合には、作成されます。 もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。 メモリへのログ記録が既に始まっている状態で、 `.startRequestLog()`が file 引数付きで呼び出された場合、メモリに記録されていたログは停止され消去されます。 +* `File` コマンドで作成された *file* オブジェクトを渡した場合、ログデータはオブジェクト (JSON フォーマット) のコレクションとしてこのファイルに書き込まれます。各オブジェクトは一つのリクエストを表します。
    ファイルがまだ存在しない場合には、作成されます。もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。メモリへのログ記録が既に始まっている状態で、 `.startRequestLog()`が file 引数付きで呼び出された場合、メモリに記録されていたログは停止され消去されます。 > JSON 評価を実行するには、ファイルの終わりに手動で \] 文字を追加する必要があります。 -* 引数を何も渡さなかった場合、ログはメモリに記録されていきます。 前もって `.startRequestLog()` が*reqNum* 引数付きで 呼び出されていた場合 (ただし `.stopRequestLog()` の前)、ログが次回消去されるかまたは`.stopRequestLog()` が呼び出されるまで、ログデータはメモリ内にスタックされます。 +* 引数を何も渡さなかった場合、ログはメモリに記録されていきます。前もって `.startRequestLog()` が*reqNum* 引数付きで 呼び出されていた場合 (ただし `.stopRequestLog()` の前)、ログが次回消去されるかまたは`.stopRequestLog()` が呼び出されるまで、ログデータはメモリ内にスタックされます。 * 引数を何も渡さなかった場合、ログはメモリに記録されていきます。
    ファイルへのログ記録が既に始まっている状態で、`.startRequestLog()` が *reqNum* 引数付きで呼び出された場合、ファイルへのログは停止されます。 #### サーバー側 -サーバー側の ORDAリクエストログを作成するには、サーバーマシン上でこの関数を呼び出します。 ログは、`.jsonl` 形式のファイルに書き込まれます。 各オブジェクトは 1つのリクエストを表します。 ファイルが存在しない場合は、作成されます。 もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。 +サーバー側の ORDAリクエストログを作成するには、サーバーマシン上でこの関数を呼び出します。ログは、`.jsonl` 形式のファイルに書き込まれます。各オブジェクトは 1つのリクエストを表します。ファイルが存在しない場合は、作成されます。もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。 - *file* 引数を渡した場合、ログデータはこのファイルの指定位置に書き込まれます。 - *file* 引数を省略した場合、または引数が NULL の場合、ログデータは *ordaRequests.jsonl* という名前のファイルに書き込まれ、"/LOGS" フォルダーに保存されます。 -- *options* 引数を使って、サーバーのレスポンスをログに記録するかどうか、および本文をログに含めるかどうかを指定することができます。 引数を省略した場合のデフォルトでは、全レスポンスがログに記録されます。 この引数には、以下の定数を使用することができます: +- *options* 引数を使って、サーバーのレスポンスをログに記録するかどうか、および本文をログに含めるかどうかを指定することができます。引数を省略した場合のデフォルトでは、全レスポンスがログに記録されます。この引数には、以下の定数を使用することができます: | 定数 | 説明 | | ----------------------------- | ----------------------- | @@ -1228,10 +1228,10 @@ SET DATABASE PARAMETER(4D Server Log Recording;0) #### 説明 -`.startTransaction()` 関数は、 対象データストアに対応するデータベース上で、カレントプロセス内のトランザクションを開始します。 トランザクションプロセス中にデータストアのエンティティに加えられた変更は、トランザクションが確定されるかキャンセルされるまで一時的に保管されたままになります。 +`.startTransaction()` 関数は、 対象データストアに対応するデータベース上で、カレントプロセス内のトランザクションを開始します。トランザクションプロセス中にデータストアのエンティティに加えられた変更は、トランザクションが確定されるかキャンセルされるまで一時的に保管されたままになります。 > このメソッドがメインのデータストア (`ds` コマンドで返されるデータストア) で呼ばれた場合、トランザクションはメインのデータストアとそのデータベースで実行されるすべてのオペレーションに適用されます。 これには、そこで実行される ORDA とクラシック言語も含まれます。 -複数のトランザクションをネストすること (サブトランザクション) が可能です。 個々のトランザクションまたはサブトランザクションは、それぞれキャンセルするか確定される必要があります。 メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に`.validateTransaction()` 関数で承認されていても) すべてキャンセルされます。 +複数のトランザクションをネストすること (サブトランザクション) が可能です。個々のトランザクションまたはサブトランザクションは、それぞれキャンセルするか確定される必要があります。メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に`.validateTransaction()` 関数で承認されていても) すべてキャンセルされます。 #### 例題 @@ -1296,7 +1296,7 @@ End if `.stopRequestLog()` 関数は、 クライアント側またはサーバー側の ORDAリクエストのログをすべて停止します。 -実際には、ディスク上で開かれているドキュメントを閉じます。 クライアント側で、メモリ上でログの記録が開始されていた場合、そのログを停止します。 +実際には、ディスク上で開かれているドキュメントを閉じます。クライアント側で、メモリ上でログの記録が開始されていた場合、そのログを停止します。 ORDAリクエストログがマシン上で開始されていない場合、この関数は何もしません。 @@ -1333,7 +1333,7 @@ ORDAリクエストログがマシン上で開始されていない場合、こ #### 説明 -`.unlock()` 関数は、 データストアにおける、書き込み操作に対する現在のロックが同じプロセスで設定されていた場合、そのロックを解除します。 ローカルデータストアの書き込み操作は、[`.flushAndLock()`](#flushandlock) 関数を使用してロックすることができます。 +`.unlock()` 関数は、 データストアにおける、書き込み操作に対する現在のロックが同じプロセスで設定されていた場合、そのロックを解除します。ローカルデータストアの書き込み操作は、[`.flushAndLock()`](#flushandlock) 関数を使用してロックすることができます。 現在のロックがデータストアの唯一のロックであった場合、書き込み操作は直ちに可能になります。 `.flushAndLock()` 関数がプロセス内で複数回呼ばれている場合、データストアのロックを解除するには、同じ回数だけ `.unlock()` を呼び出す必要があります。 @@ -1376,7 +1376,7 @@ ORDAリクエストログがマシン上で開始されていない場合、こ この関数は、トランザクション中におこなわれたデータストア上のデータの変更を保存します。 -複数のトランザクションをネストすること (サブトランザクション) が可能です。 メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々にこの関数で承認されていても) すべてキャンセルされます。 +複数のトランザクションをネストすること (サブトランザクション) が可能です。メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々にこの関数で承認されていても) すべてキャンセルされます。 #### 例題 From d73ce7ac7e3fb000e087207481a646e1e64f3f02 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 18 Sep 2026 12:05:40 +0200 Subject: [PATCH 51/60] fixed garbage in call worker FR --- .../Process (Communications)/call-worker.md | 14 +++++++------- .../Process (Communications)/call-worker.md | 14 +++++++------- .../Process (Communications)/call-worker.md | 14 +++++++------- .../version-21/commands-legacy/call-worker.md | 14 +++++++------- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Process (Communications)/call-worker.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Process (Communications)/call-worker.md index bb569a28b8e2bb..590ef0dea51957 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Process (Communications)/call-worker.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/Process (Communications)/call-worker.md @@ -65,23 +65,23 @@ Dans un formulaire, un bouton démarre un calcul, par exemple des statistiques p Voici la méthode du bouton : ```4d -  //appelle le process worker vNomWorker avec le paramètre - var $vAnn: éeInteger - $vAnnée:=2015 //peut être sélectionné par l’utilisateur dans le formulaire - CALL WORKER("monWorker";Formula(workerMethod);vAnnée;Current form window) +  //appelle le worker monWorker avec le paramètre + var $vAnnée : Integer + $vAnnée:=2015 //peut avoir été sélectionné par l’utilisateur dans le formulaire + CALL WORKER("monWorker";Formula(workerMethod);$vAnnée;Current form window) ``` -Voici le code de *méthodeWorker* : +Voici le code de *workerMethod* : ```4d   //voici la méthode du worker   //peut être préemptif ou coopératif  #DECLARE($vAnnéeInteger;$fenetreInteger) //référence de l'année et de la fenêtre - var $vR: ésultatStatistiquesObject //stockage de résultats statistiques + var $vRésultatStatistiques : Object //stockage de résultats statistiques  ... //calcul des statistiques   //une fois le calcul terminé, rappel du formulaire avec les valeurs calculées   //$vRésultatStatistiques peut afficher les résultats dans le formulaire - CALL FORM($fenetre;Formula(affichageStats);vRésultatStatistiques) + CALL FORM($fenetre;Formula(affichageStats);$vRésultatStatistiques) ``` ## Voir aussi diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Process (Communications)/call-worker.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Process (Communications)/call-worker.md index 49d12a87fdf145..417fedc1b54228 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Process (Communications)/call-worker.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/Process (Communications)/call-worker.md @@ -65,23 +65,23 @@ Dans un formulaire, un bouton démarre un calcul, par exemple des statistiques p Voici la méthode du bouton : ```4d -  //appelle le process worker vNomWorker avec le paramètre - var $vAnn: éeInteger - $vAnnée:=2015 //peut être sélectionné par l’utilisateur dans le formulaire - CALL WORKER("monWorker";Formula(workerMethod);vAnnée;Current form window) +  //appelle le worker monWorker avec le paramètre + var $vAnnée : Integer + $vAnnée:=2015 //peut avoir été sélectionné par l’utilisateur dans le formulaire + CALL WORKER("monWorker";Formula(workerMethod);$vAnnée;Current form window) ``` -Voici le code de *méthodeWorker* : +Voici le code de *workerMethod* : ```4d   //voici la méthode du worker   //peut être préemptif ou coopératif  #DECLARE($vAnnéeInteger;$fenetreInteger) //référence de l'année et de la fenêtre - var $vR: ésultatStatistiquesObject //stockage de résultats statistiques + var $vRésultatStatistiques : Object //stockage de résultats statistiques  ... //calcul des statistiques   //une fois le calcul terminé, rappel du formulaire avec les valeurs calculées   //$vRésultatStatistiques peut afficher les résultats dans le formulaire - CALL FORM($fenetre;Formula(affichageStats);vRésultatStatistiques) + CALL FORM($fenetre;Formula(affichageStats);$vRésultatStatistiques) ``` ## Voir aussi diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Process (Communications)/call-worker.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Process (Communications)/call-worker.md index bb569a28b8e2bb..590ef0dea51957 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Process (Communications)/call-worker.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/Process (Communications)/call-worker.md @@ -65,23 +65,23 @@ Dans un formulaire, un bouton démarre un calcul, par exemple des statistiques p Voici la méthode du bouton : ```4d -  //appelle le process worker vNomWorker avec le paramètre - var $vAnn: éeInteger - $vAnnée:=2015 //peut être sélectionné par l’utilisateur dans le formulaire - CALL WORKER("monWorker";Formula(workerMethod);vAnnée;Current form window) +  //appelle le worker monWorker avec le paramètre + var $vAnnée : Integer + $vAnnée:=2015 //peut avoir été sélectionné par l’utilisateur dans le formulaire + CALL WORKER("monWorker";Formula(workerMethod);$vAnnée;Current form window) ``` -Voici le code de *méthodeWorker* : +Voici le code de *workerMethod* : ```4d   //voici la méthode du worker   //peut être préemptif ou coopératif  #DECLARE($vAnnéeInteger;$fenetreInteger) //référence de l'année et de la fenêtre - var $vR: ésultatStatistiquesObject //stockage de résultats statistiques + var $vRésultatStatistiques : Object //stockage de résultats statistiques  ... //calcul des statistiques   //une fois le calcul terminé, rappel du formulaire avec les valeurs calculées   //$vRésultatStatistiques peut afficher les résultats dans le formulaire - CALL FORM($fenetre;Formula(affichageStats);vRésultatStatistiques) + CALL FORM($fenetre;Formula(affichageStats);$vRésultatStatistiques) ``` ## Voir aussi diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/call-worker.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/call-worker.md index 80028bd7ee8e7a..13096015ad4dd2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/call-worker.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands-legacy/call-worker.md @@ -65,23 +65,23 @@ Dans un formulaire, un bouton démarre un calcul, par exemple des statistiques p Voici la méthode du bouton : ```4d -  //appelle le process worker vNomWorker avec le paramètre - var $vAnn: éeInteger - $vAnnée:=2015 //peut être sélectionné par l’utilisateur dans le formulaire - CALL WORKER("monWorker";Formula(workerMethod);vAnnée;Current form window) +  //appelle le worker monWorker avec le paramètre + var $vAnnée : Integer + $vAnnée:=2015 //peut avoir été sélectionné par l’utilisateur dans le formulaire + CALL WORKER("monWorker";Formula(workerMethod);$vAnnée;Current form window) ``` -Voici le code de *méthodeWorker* : +Voici le code de *workerMethod* : ```4d   //voici la méthode du worker   //peut être préemptif ou coopératif  #DECLARE($vAnnéeInteger;$fenetreInteger) //référence de l'année et de la fenêtre - var $vR: ésultatStatistiquesObject //stockage de résultats statistiques + var $vRésultatStatistiques : Object //stockage de résultats statistiques  ... //calcul des statistiques   //une fois le calcul terminé, rappel du formulaire avec les valeurs calculées   //$vRésultatStatistiques peut afficher les résultats dans le formulaire - CALL FORM($fenetre;Formula(affichageStats);vRésultatStatistiques) + CALL FORM($fenetre;Formula(affichageStats);$vRésultatStatistiques) ``` ## Voir aussi From 5e4f37739dc2c4ce14c72627221dda4e2b282752 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 21 Sep 2026 10:47:54 +0200 Subject: [PATCH 52/60] fix zip issues --- .../File and Folder/zip-create-archive.md | 4 ++-- .../File and Folder/zip-create-archive.md | 10 +++++----- .../File and Folder/zip-read-archive.md | 8 ++++---- .../version-19/API/ZipArchiveClass.md | 2 +- .../version-20/API/ZipArchiveClass.md | 2 +- .../File and Folder/zip-create-archive.md | 10 +++++----- .../File and Folder/zip-read-archive.md | 8 ++++---- .../File and Folder/zip-create-archive.md | 10 +++++----- .../File and Folder/zip-read-archive.md | 8 ++++---- .../version-21/commands/zip-create-archive.md | 2 +- .../language-legacy/File and Folder/folder.md | 8 ++++---- .../File and Folder/zip-create-archive.md | 18 +++++++++--------- .../File and Folder/zip-read-archive.md | 8 ++++---- .../version-19/API/ZipArchiveClass.md | 4 ++-- .../version-20/API/ZipArchiveClass.md | 4 ++-- .../language-legacy/File and Folder/folder.md | 8 ++++---- .../File and Folder/zip-create-archive.md | 16 ++++++++-------- .../File and Folder/zip-read-archive.md | 8 ++++---- .../language-legacy/File and Folder/folder.md | 8 ++++---- .../File and Folder/zip-create-archive.md | 16 ++++++++-------- .../File and Folder/zip-read-archive.md | 8 ++++---- .../version-21/commands/zip-create-archive.md | 8 ++++---- .../File and Folder/zip-create-archive.md | 10 +++++----- .../File and Folder/zip-read-archive.md | 8 ++++---- .../version-19/API/ZipArchiveClass.md | 2 +- .../version-20/API/ZipArchiveClass.md | 2 +- .../File and Folder/zip-create-archive.md | 10 +++++----- .../File and Folder/zip-read-archive.md | 8 ++++---- .../File and Folder/zip-create-archive.md | 10 +++++----- .../File and Folder/zip-read-archive.md | 8 ++++---- .../version-21/commands/zip-create-archive.md | 2 +- .../File and Folder/zip-create-archive.md | 12 ++++++------ .../File and Folder/zip-read-archive.md | 8 ++++---- .../version-19/API/ZipArchiveClass.md | 2 +- .../version-20/API/ZipArchiveClass.md | 2 +- .../File and Folder/zip-create-archive.md | 12 ++++++------ .../File and Folder/zip-read-archive.md | 8 ++++---- .../File and Folder/zip-create-archive.md | 12 ++++++------ .../File and Folder/zip-read-archive.md | 8 ++++---- .../version-21/commands/zip-create-archive.md | 4 ++-- .../version-19/API/ZipArchiveClass.md | 4 ++-- .../version-20/API/ZipArchiveClass.md | 4 ++-- .../File and Folder/zip-create-archive.md | 4 ++-- .../File and Folder/zip-create-archive.md | 4 ++-- .../version-21/commands/zip-create-archive.md | 4 ++-- 45 files changed, 163 insertions(+), 163 deletions(-) diff --git a/docs/language-legacy/File and Folder/zip-create-archive.md b/docs/language-legacy/File and Folder/zip-create-archive.md index fa69aacdaf91ca..b9825ffdb16267 100644 --- a/docs/language-legacy/File and Folder/zip-create-archive.md +++ b/docs/language-legacy/File and Folder/zip-create-archive.md @@ -50,8 +50,8 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| |compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -|encryption|Integer|The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +|encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| |files|Collection|
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | |callback|4D.Function|A callback formula that will receive the compression progress (0 - 100) in $1.| diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md index 6a9b41bb93ffcc..e9ba46a80b9850 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md @@ -49,7 +49,7 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará | Propiedad | Tipo | Descripción | | ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Compresión Deflate (por defecto)
  • `ZIP Compression LZMA`: Compression LZMA
  • `ZIP Compresión XZ`: Compression XZ
  • `ZIP Compresión`: sin compresión
  • | -| 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:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| 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:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | El cifrado a usar si se define una contraseña:
  • `ZIP Encryption AES128`: encriptación AES utilizando llave de 128 bits.
  • `ZIP Encryption AES192`: encriptación AES utilizando llave de 192 bits.
  • `ZIP Encryption AES256`: encriptación AES utilizando llave de 256 bits (por defecto si se define la contraseña).
  • `ZIP Encryption none`: los datos no están cifrados (por defecto si no se define una contraseña)
  • | | contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | | Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • 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
    | @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## Ver también -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## Propiedades diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md index 5264cbbcc606ef..7f2af22130cf18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ Para extraer desde la carpeta root: ## Ver también -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## Propiedades diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md b/i18n/es/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md index 9ba3141af38033..98d4df4b17d980 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md @@ -77,7 +77,7 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará | Propiedad | Tipo | Descripción | | ------------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: reducir la compresión (por defecto)
  • `ZIP Compression LZMA`: compresión LZMA
  • `ZIP Compression XZ`: compresión XZ
  • `ZIP Compression none`: sin compresión
  • | -| 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 omiten:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| 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 omiten:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | La encriptación a utilizar si se define una contraseña:
  • `ZIP Encryption AES128`: encriptación AES con una llave de 128 bits.
  • `ZIP Encryption AES192`: encriptación AES con una llave de 192 bits.
  • `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
  • `ZIP Encryption none`: los datos no están encriptados (por defecto si no se define una contraseña)
  • | | contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | | Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • PropiedadTipoDescripción
    source4D.File o 4D.FolderFile o Folder
    destinationText(opcional) - Especifica 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
    | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 924626c22cedb8..3997ee79953635 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -78,7 +78,7 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará | Propiedad | Tipo | Descripción | | ------------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: reducir la compresión (por defecto)
  • `ZIP Compression LZMA`: compresión LZMA
  • `ZIP Compression XZ`: compresión XZ
  • `ZIP Compression none`: sin compresión
  • | -| 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 omiten:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| 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 omiten:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | La encriptación a utilizar si se define una contraseña:
  • `ZIP Encryption AES128`: encriptación AES con una llave de 128 bits.
  • `ZIP Encryption AES192`: encriptación AES con una llave de 192 bits.
  • `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
  • `ZIP Encryption none`: los datos no están encriptados (por defecto si no se define una contraseña)
  • | | contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | | Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • PropiedadTipoDescripción
    source4D.File o 4D.FolderFile o Folder
    destinationText(opcional) - Especifica 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
    | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md index 6a9b41bb93ffcc..e9ba46a80b9850 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md @@ -49,7 +49,7 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará | Propiedad | Tipo | Descripción | | ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Compresión Deflate (por defecto)
  • `ZIP Compression LZMA`: Compression LZMA
  • `ZIP Compresión XZ`: Compression XZ
  • `ZIP Compresión`: sin compresión
  • | -| 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:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| 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:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | El cifrado a usar si se define una contraseña:
  • `ZIP Encryption AES128`: encriptación AES utilizando llave de 128 bits.
  • `ZIP Encryption AES192`: encriptación AES utilizando llave de 192 bits.
  • `ZIP Encryption AES256`: encriptación AES utilizando llave de 256 bits (por defecto si se define la contraseña).
  • `ZIP Encryption none`: los datos no están cifrados (por defecto si no se define una contraseña)
  • | | contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | | Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • 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
    | @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## Ver también -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## Propiedades diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md index 5264cbbcc606ef..7f2af22130cf18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ Para extraer desde la carpeta root: ## Ver también -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## Propiedades diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md index 6a9b41bb93ffcc..e9ba46a80b9850 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md @@ -49,7 +49,7 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará | Propiedad | Tipo | Descripción | | ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Compresión Deflate (por defecto)
  • `ZIP Compression LZMA`: Compression LZMA
  • `ZIP Compresión XZ`: Compression XZ
  • `ZIP Compresión`: sin compresión
  • | -| 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:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| 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:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | El cifrado a usar si se define una contraseña:
  • `ZIP Encryption AES128`: encriptación AES utilizando llave de 128 bits.
  • `ZIP Encryption AES192`: encriptación AES utilizando llave de 192 bits.
  • `ZIP Encryption AES256`: encriptación AES utilizando llave de 256 bits (por defecto si se define la contraseña).
  • `ZIP Encryption none`: los datos no están cifrados (por defecto si no se define una contraseña)
  • | | contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | | Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • 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
    | @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## Ver también -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## Propiedades diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md index 5264cbbcc606ef..7f2af22130cf18 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ Para extraer desde la carpeta root: ## Ver también -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## Propiedades 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 02bbf74cf63ee2..a326c49e8cc41d 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 @@ -48,7 +48,7 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará | Propiedad | Tipo | Descripción | | ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Compresión Deflate (por defecto)
  • `ZIP Compression LZMA`: Compression LZMA
  • `ZIP Compresión XZ`: Compression XZ
  • `ZIP Compresión`: sin compresión
  • | -| 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:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| 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:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | El cifrado a utilizar si se define una contraseña
  • :`ZIP Encryption AES128`: Cifrado AES con clave de 128 bits.
  • `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
  • `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
  • `ZIP Encryption none`: los datos no se encriptan (por defecto si no se define contraseña).
  • | | contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | | Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • 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
    | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/folder.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/folder.md index 8ff6cd5b8cc711..d45ea55fc16bf8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/folder.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/folder.md @@ -77,10 +77,10 @@ Si la commande est appelée à partir d'un composant, passez le paramètre optio ## Voir également -[classe `4D.Folder`](../../API/FolderClass.md) -[File](../commands/file)\ -[Object to path](../../commands-legacy/object-to-path)\ -[Path to object](../../commands-legacy/path-to-object) +[classe `4D.Folder`](../../API/FolderClass.md) +[File](../commands/file) +[Object to path](../../commands-legacy/object-to-path) +[Path to object](../../commands-legacy/path-to-object) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md index 437e187c33af76..38e0a5a669c012 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md @@ -49,17 +49,17 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | -| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -| encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
  • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
  • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
  • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
  • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
  • | +| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
    • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | -| Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets avec les propriétés suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnombre(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | +| files | Collection |
    • une collection d'objets `4D.File` ou `4D.Folder` ou
    • une collection d'objets avec les propriétés suivantes :
    PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnumérique(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | | callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | -Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel. +Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par n'importe quel logiciel. Une fois que l'archive est créée, vous pouvez utiliser la commande [ZIP Read archive](../commands/zip-read-archive) pour y accéder. -**Status object** +**Objet statut** L'objet statut retourné contient les propriétés suivantes : @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## Voir également -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md index 70f90d1885755c..4c036b9f1e6819 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ Pour extraire à partir du dossier root : ## Voir également -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md index daa2e3f8b86fe9..5edc09d2c35be1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md @@ -77,13 +77,13 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Réduire la compression (par défaut)
  • `ZIP Compression LZMA`: compression LZMA
  • `ZIP Compression XZ`: compression XZ
  • `ZIP Compression none`: Pas de compression
  • | -| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeur par défaut (si omis) :
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeur par défaut (si omis) :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | Le chiffrement à utiliser si un mot de passe est défini :
  • `ZIP Encryption AES128`: chiffrement AES à l'aide d'une clé 128 octets.
  • `ZIP Encryption AES192`: chiffrement AES à l'aide d'une clé 192 octets.
  • `ZIP Encryption AES256`: chiffrement AES à l'aide d'une clé 256 octets (par défaut si un mot de passe est défini).
  • `ZIP Encryption none`: les données ne sont pas chiffrées (par défaut si aucun mot de passe n'est défini)
  • | | password | Text | Un mot de passe à définir si le chiffrement est requis. | | Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets dont les propriétés sont les suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFile ou Folder
    destinationText(facultatif) - Indiquer un chemin de fichier relatif pour modifier l'organisation du contenu de l'archive
    optionnumber(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser tout le fichier
    | | callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | -Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel. +Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par n'importe quel logiciel. Une fois que l'archive est créée, vous pouvez utiliser la commande [ZIP Read archive](#zip-read-archive) pour y accéder. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 844e542a8b8f4c..86a03dc638078c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -78,13 +78,13 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Réduire la compression (par défaut)
  • `ZIP Compression LZMA`: compression LZMA
  • `ZIP Compression XZ`: compression XZ
  • `ZIP Compression none`: Pas de compression
  • | -| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeur par défaut (si omis) :
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeur par défaut (si omis) :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | Le chiffrement à utiliser si un mot de passe est défini :
  • `ZIP Encryption AES128`: chiffrement AES à l'aide d'une clé 128 octets.
  • `ZIP Encryption AES192`: chiffrement AES à l'aide d'une clé 192 octets.
  • `ZIP Encryption AES256`: chiffrement AES à l'aide d'une clé 256 octets (par défaut si un mot de passe est défini).
  • `ZIP Encryption none`: les données ne sont pas chiffrées (par défaut si aucun mot de passe n'est défini)
  • | | password | Text | Un mot de passe à définir si le chiffrement est requis. | | Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets dont les propriétés sont les suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFile ou Folder
    destinationText(facultatif) - Indiquer un chemin de fichier relatif pour modifier l'organisation du contenu de l'archive
    optionnumber(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser tout le fichier
    | | callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | -Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel. +Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par n'importe quel logiciel. Une fois que l'archive est créée, vous pouvez utiliser la commande [ZIP Read archive](#zip-read-archive) pour y accéder. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/folder.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/folder.md index 8ff6cd5b8cc711..d45ea55fc16bf8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/folder.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/folder.md @@ -77,10 +77,10 @@ Si la commande est appelée à partir d'un composant, passez le paramètre optio ## Voir également -[classe `4D.Folder`](../../API/FolderClass.md) -[File](../commands/file)\ -[Object to path](../../commands-legacy/object-to-path)\ -[Path to object](../../commands-legacy/path-to-object) +[classe `4D.Folder`](../../API/FolderClass.md) +[File](../commands/file) +[Object to path](../../commands-legacy/object-to-path) +[Path to object](../../commands-legacy/path-to-object) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md index 437e187c33af76..4446e9969fbff8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md @@ -49,13 +49,13 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | -| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -| encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
  • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
  • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
  • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
  • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
  • | +| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
    • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | -| Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets avec les propriétés suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnombre(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | +| files | Collection |
    • une collection d'objets `4D.File` ou `4D.Folder` ou
    • une collection d'objets avec les propriétés suivantes :
    PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnumérique(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | | callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | -Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel. +Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par n'importe quel logiciel. Une fois que l'archive est créée, vous pouvez utiliser la commande [ZIP Read archive](../commands/zip-read-archive) pour y accéder. @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## Voir également -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md index 70f90d1885755c..4c036b9f1e6819 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ Pour extraire à partir du dossier root : ## Voir également -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/folder.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/folder.md index 8ff6cd5b8cc711..d45ea55fc16bf8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/folder.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/folder.md @@ -77,10 +77,10 @@ Si la commande est appelée à partir d'un composant, passez le paramètre optio ## Voir également -[classe `4D.Folder`](../../API/FolderClass.md) -[File](../commands/file)\ -[Object to path](../../commands-legacy/object-to-path)\ -[Path to object](../../commands-legacy/path-to-object) +[classe `4D.Folder`](../../API/FolderClass.md) +[File](../commands/file) +[Object to path](../../commands-legacy/object-to-path) +[Path to object](../../commands-legacy/path-to-object) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md index 437e187c33af76..4446e9969fbff8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md @@ -49,13 +49,13 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | -| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -| encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
  • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
  • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
  • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
  • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
  • | +| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
    • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | -| Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets avec les propriétés suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnombre(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | +| files | Collection |
    • une collection d'objets `4D.File` ou `4D.Folder` ou
    • une collection d'objets avec les propriétés suivantes :
    PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnumérique(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | | callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | -Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel. +Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par n'importe quel logiciel. Une fois que l'archive est créée, vous pouvez utiliser la commande [ZIP Read archive](../commands/zip-read-archive) pour y accéder. @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## Voir également -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md index 70f90d1885755c..4c036b9f1e6819 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ Pour extraire à partir du dossier root : ## Voir également -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## Propriétés diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index c640734d60a9fe..843f55389df8a2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -48,13 +48,13 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | -| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -| encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
  • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
  • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
  • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
  • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
  • | +| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
    • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | -| Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets avec les propriétés suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnombre(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | +| files | Collection |
    • une collection d'objets `4D.File` ou `4D.Folder` ou
    • une collection d'objets avec les propriétés suivantes :
    PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnumérique(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | | callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | -Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel. +Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par n'importe quel logiciel. Une fois qu'une archive est créée, vous pouvez utiliser la commande [ZIP Read archive] (zip-read-archive.md) pour y accéder. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md index 0ccfde243239af..49155d8c3d0a14 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md @@ -49,7 +49,7 @@ displayed_sidebar: docs | プロパティ | 型 | 説明 | | ----------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | -| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
  • `ZIP Encryption AES128`: 128-bit キーを使った AES による暗号化
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化
  • `ZIP Encryption AES256`: 256-bit キーを使った AES による暗号化 (パスワードが設定されている場合のデフォルト)
  • `ZIP Encryption none`: 暗号化なし (パスワードが設定されてない場合のデフォルト)
  • | | password | Text | 暗号化が必要な場合に使用するパスワード | | files | Collection |
  • `4D.File` または` 4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティタイプ説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## 参照 -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## プロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md index c6d2ea5562f2b0..33d4b26916d8d2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ root フォルダーから取り出します: ## 参照 -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## プロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md index 349c02b1d3453d..3192eabb552ceb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md @@ -77,7 +77,7 @@ End if | プロパティ | 型 | 説明 | | ----------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | -| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
  • `ZIP Encryption AES128`: 128-bit キーを使った AES による暗号化
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化
  • `ZIP Encryption AES256`: 256-bit キーを使った AES による暗号化 (パスワードが設定されている場合のデフォルト)
  • `ZIP Encryption none`: 暗号化なし (パスワードが設定されてない場合のデフォルト)
  • | | password | Text | 暗号化が必要な場合に使用するパスワード | | files | Collection |
  • `4D.File` または `4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティ型説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index acd7dec97938a8..6e604cbd1826b2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -78,7 +78,7 @@ End if | プロパティ | 型 | 説明 | | ----------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | -| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
  • `ZIP Encryption AES128`: 128-bit キーを使った AES による暗号化
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化
  • `ZIP Encryption AES256`: 256-bit キーを使った AES による暗号化 (パスワードが設定されている場合のデフォルト)
  • `ZIP Encryption none`: 暗号化なし (パスワードが設定されてない場合のデフォルト)
  • | | password | Text | 暗号化が必要な場合に使用するパスワード | | files | Collection |
  • `4D.File` または `4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティ型説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md index 0ccfde243239af..49155d8c3d0a14 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md @@ -49,7 +49,7 @@ displayed_sidebar: docs | プロパティ | 型 | 説明 | | ----------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | -| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
  • `ZIP Encryption AES128`: 128-bit キーを使った AES による暗号化
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化
  • `ZIP Encryption AES256`: 256-bit キーを使った AES による暗号化 (パスワードが設定されている場合のデフォルト)
  • `ZIP Encryption none`: 暗号化なし (パスワードが設定されてない場合のデフォルト)
  • | | password | Text | 暗号化が必要な場合に使用するパスワード | | files | Collection |
  • `4D.File` または` 4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティタイプ説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## 参照 -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## プロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md index c6d2ea5562f2b0..33d4b26916d8d2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ root フォルダーから取り出します: ## 参照 -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## プロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md index 0ccfde243239af..49155d8c3d0a14 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md @@ -49,7 +49,7 @@ displayed_sidebar: docs | プロパティ | 型 | 説明 | | ----------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | -| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
  • `ZIP Encryption AES128`: 128-bit キーを使った AES による暗号化
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化
  • `ZIP Encryption AES256`: 256-bit キーを使った AES による暗号化 (パスワードが設定されている場合のデフォルト)
  • `ZIP Encryption none`: 暗号化なし (パスワードが設定されてない場合のデフォルト)
  • | | password | Text | 暗号化が必要な場合に使用するパスワード | | files | Collection |
  • `4D.File` または` 4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティタイプ説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## 参照 -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## プロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md index c6d2ea5562f2b0..33d4b26916d8d2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ root フォルダーから取り出します: ## 参照 -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## プロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index 937a4d82169bbc..560a3047d3f07b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -48,7 +48,7 @@ displayed_sidebar: docs | プロパティ | 型 | 説明 | | ----------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | -| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
  • `ZIP Encryption AES128`: 128-bit キーを使用したAES 暗号化。
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化。
  • `ZIP Encryption AES256`: AES encryption using 256-bit キーを使用したAES 暗号化 (パスワードが設定されていた場合のデフォルト)。
  • `ZIP Encryption none`: 暗号化なし(パスワードが設定されていない場合のデフォルト)
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化。
  • `ZIP Encryption AES256`: AES encryption using 256-bit キーを使用したAES 暗号化 (パスワードが設定されていた場合のデフォルト)。
  • `ZIP Encryption none`: 暗号化なし(パスワードが設定されていない場合のデフォルト)
  • | | password | Text | 暗号化が必要な場合に使用するパスワード | | files | Collection |
  • `4D.File` または` 4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティタイプ説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md index 0d37c67e7b742b..3258d198e4e451 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md @@ -49,8 +49,8 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -| encryption | Integer | The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | | files | Collection |
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | | callback | 4D. Function | Uma fórmula de callback (retrochamada) que recebe o progresso da compactação (0-100) em $1. | @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## Veja também -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## Propriedades diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md index 9a49a2556ca025..6f2091cb3ec3ad 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ Para ler todos os conteúdos de um arquivo sem extraí-lo da pasta root: ## Veja também -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## Propriedades diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md index a7fbb1201b2fc5..df153b238d27a9 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-19/API/ZipArchiveClass.md @@ -75,7 +75,7 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Reduz a compactação (padrão)
  • `ZIP Compression LZMA`: compactação LZMA
  • `ZIP Compression XZ`: compactação XZ
  • `ZIP Compression none`: Sem compactação
  • | -| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Valores padrão se omitidos:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Valores padrão se omitidos:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | A criptografia a usar se uma senha for estabelecida:
  • `ZIP Encryption AES128`: criptografia AES com uma chave de 128-bits.
  • `ZIP Encryption AES192`: criptografia AES com uma chave de 192-bits.
  • `ZIP Encryption AES256`: criptografia AES com chave de 256-bits (padrão se uma senha for estabelecida).
  • `ZIP Encryption none`: os dados não são criptografados (padrão se não estabelecer uma senha)
  • | | senha | Text | Uma senha a usar se a criptografia for necessária. | | files | Collection |
  • a collection of `4D. File` or `4D. Folder` objects or
  • uma coleção de objetos com as propriedades abaixo:
  • PropriedadeTipoDescrição
    source4D. File or 4D. FolderFile ou Folder
    destinationText(opcional) especifique uma rota de arquivo relativa para mudar a organização dos conteúdos do arquivo
    optionnumber(opcional) - 'ZIP ignore invisible files' ou 0 para compactar o arquivo inteiro
    | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 62f397d77c8772..1baf097be25b17 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -76,7 +76,7 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Reduz a compactação (padrão)
  • `ZIP Compression LZMA`: compactação LZMA
  • `ZIP Compression XZ`: compactação XZ
  • `ZIP Compression none`: Sem compactação
  • | -| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Valores padrão se omitidos:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | +| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Valores padrão se omitidos:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | A criptografia a usar se uma senha for estabelecida:
  • `ZIP Encryption AES128`: criptografia AES com uma chave de 128-bits.
  • `ZIP Encryption AES192`: criptografia AES com uma chave de 192-bits.
  • `ZIP Encryption AES256`: criptografia AES com chave de 256-bits (padrão se uma senha for estabelecida).
  • `ZIP Encryption none`: os dados não são criptografados (padrão se não estabelecer uma senha)
  • | | senha | Text | Uma senha a usar se a criptografia for necessária. | | files | Collection |
  • a collection of `4D. File` or `4D. Folder` objects or
  • uma coleção de objetos com as propriedades abaixo:
  • PropriedadeTipoDescrição
    source4D. File or 4D. FolderFile ou Folder
    destinationText(opcional) especifique uma rota de arquivo relativa para mudar a organização dos conteúdos do arquivo
    optionnumber(opcional) - 'ZIP ignore invisible files' ou 0 para compactar o arquivo inteiro
    | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md index 0d37c67e7b742b..3258d198e4e451 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md @@ -49,8 +49,8 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -| encryption | Integer | The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | | files | Collection |
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | | callback | 4D. Function | Uma fórmula de callback (retrochamada) que recebe o progresso da compactação (0-100) em $1. | @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## Veja também -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## Propriedades diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md index 9a49a2556ca025..6f2091cb3ec3ad 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ Para ler todos os conteúdos de um arquivo sem extraí-lo da pasta root: ## Veja também -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## Propriedades diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md index 0d37c67e7b742b..3258d198e4e451 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md @@ -49,8 +49,8 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -| encryption | Integer | The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | | files | Collection |
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | | callback | 4D. Function | Uma fórmula de callback (retrochamada) que recebe o progresso da compactação (0-100) em $1. | @@ -165,10 +165,10 @@ $err:=ZIP Create archive($zip; $destination) ## Veja também -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Read archive`](../commands/zip-read-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Read archive`](../commands/zip-read-archive) ## Propriedades diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md index 9a49a2556ca025..6f2091cb3ec3ad 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-read-archive.md @@ -86,10 +86,10 @@ Para ler todos os conteúdos de um arquivo sem extraí-lo da pasta root: ## Veja também -[ZipArchive Class](../../API/ZipArchiveClass.md) -[ZipFile Class](../../API/ZipFileClass.md) -[ZipFolder Class](../../API/ZipFolderClass.md) -[`ZIP Create archive`](../commands/zip-create-archive) +[ZipArchive Class](../../API/ZipArchiveClass.md) +[ZipFile Class](../../API/ZipFileClass.md) +[ZipFolder Class](../../API/ZipFolderClass.md) +[`ZIP Create archive`](../commands/zip-create-archive) ## Propriedades diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index b4f29d21eec33d..a87c6bd9e16d1c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -48,8 +48,8 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -| encryption | Integer | The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | | files | Collection |
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | | callback | 4D. Function | Uma fórmula de callback (retrochamada) que recebe o progresso da compactação (0-100) em $1. | diff --git a/versioned_docs/version-19/API/ZipArchiveClass.md b/versioned_docs/version-19/API/ZipArchiveClass.md index e2f7a2a0711210..a5e75fa6d8d9f8 100644 --- a/versioned_docs/version-19/API/ZipArchiveClass.md +++ b/versioned_docs/version-19/API/ZipArchiveClass.md @@ -77,8 +77,8 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| |compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -|encryption|Integer|The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +|encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| |files|Collection|
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | |callback|4D.Function|A callback formula that will receive the compression progress (0 - 100) in $1.| diff --git a/versioned_docs/version-20/API/ZipArchiveClass.md b/versioned_docs/version-20/API/ZipArchiveClass.md index 49d84609f57548..828bde27c28658 100644 --- a/versioned_docs/version-20/API/ZipArchiveClass.md +++ b/versioned_docs/version-20/API/ZipArchiveClass.md @@ -78,8 +78,8 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| |compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -|encryption|Integer|The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +|encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| |files|Collection|
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | |callback|4D.Function|A callback formula that will receive the compression progress (0 - 100) in $1.| diff --git a/versioned_docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md b/versioned_docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md index fa69aacdaf91ca..b9825ffdb16267 100644 --- a/versioned_docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md +++ b/versioned_docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md @@ -50,8 +50,8 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| |compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -|encryption|Integer|The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +|encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| |files|Collection|
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | |callback|4D.Function|A callback formula that will receive the compression progress (0 - 100) in $1.| diff --git a/versioned_docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md b/versioned_docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md index fa69aacdaf91ca..b9825ffdb16267 100644 --- a/versioned_docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md +++ b/versioned_docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md @@ -50,8 +50,8 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| |compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -|encryption|Integer|The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +|encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| |files|Collection|
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | |callback|4D.Function|A callback formula that will receive the compression progress (0 - 100) in $1.| diff --git a/versioned_docs/version-21/commands/zip-create-archive.md b/versioned_docs/version-21/commands/zip-create-archive.md index e7dd59a187ded3..b6768856a4d823 100644 --- a/versioned_docs/version-21/commands/zip-create-archive.md +++ b/versioned_docs/version-21/commands/zip-create-archive.md @@ -49,8 +49,8 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| |compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
  • `ZIP Compression standard`: 6
  • `ZIP Compression LZMA`: 4
  • `ZIP Compression XZ`: 4
  • | -|encryption|Integer|The encryption to use if a password is set:
  • `ZIP Encryption AES128`: AES encryption using 128-bit key.
  • `ZIP Encryption AES192`: AES encryption using 192-bit key.
  • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
  • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
  • | +|level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +|encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| |files|Collection|
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | |callback|4D.Function|A callback formula that will receive the compression progress (0 - 100) in $1.| From b20ea8c6792a8c8cb46f9ebef3b7f592d918585e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 21 Sep 2026 11:35:25 +0200 Subject: [PATCH 53/60] added codes to events --- docs/Events/overview.md | 124 ++++++++--------- versioned_docs/version-20/Events/overview.md | 125 ++++++++--------- .../version-21-R3/Events/overview.md | 124 ++++++++--------- .../version-21-R4/Events/overview.md | 124 ++++++++--------- versioned_docs/version-21/Events/overview.md | 129 +++++++++--------- 5 files changed, 314 insertions(+), 312 deletions(-) diff --git a/docs/Events/overview.md b/docs/Events/overview.md index 462bf67efa6a2d..3dedf933bc4874 100644 --- a/docs/Events/overview.md +++ b/docs/Events/overview.md @@ -50,68 +50,68 @@ The number of objects involved in an event depends on the nature of the event. The following table summarizes how object and form methods are called for each event type: -|Event|Object Methods|Form Method|Which Objects| -|---|---|----|---| -|On Load|Yes|Yes|All objects| -|On Unload|Yes|Yes|All objects| -|On Validate|Yes|Yes|All objects| -|On Clicked|Yes |Yes|Involved object only| -|On Double Clicked|Yes|Yes|Involved object only| -|On Before Keystroke|Yes|Yes|Involved object only| -|On After Keystroke|Yes|Yes|Involved object only| -|On After Edit|Yes|Yes|Involved object only| -|On Getting Focus|Yes|Yes|Involved object only| -|On Losing Focus|Yes|Yes|Involved object only| -|On Activate|Never|Yes|None| -|On Deactivate|Never|Yes|None| -|On Outside Call|Never|Yes|None| -|On Page Change|Never|Yes|None| -|On Begin Drag Over|Yes|Yes|Involved object only| -|On Drop|Yes|Yes|Involved object only| -|On Drag Over|Yes|Never |Involved object only| -|On Mouse Enter|Yes|Yes|All objects| -|On Mouse Move|Yes|Yes|All objects| -|On Mouse Leave|Yes|Yes|All objects| -|On Mouse Up|Yes|Never|Involved object only| -|On Menu Selected|Never|Yes|None| -|On Bound variable change|Never|Yes|None| -|On Data Change|Yes|Yes|Involved object only| -|On Plug in Area|Yes|Yes|Involved object only| -|On Header|Yes|Yes|All objects| -|On Printing Detail|Yes|Yes |All objects| -|On Printing Break|Yes |Yes|All objects| -|On Printing Footer|Yes |Yes|All objects| -|On Close Box|Never|Yes |None| -|On Display Detail|Yes|Yes|All objects| -|On Open Detail|Yes (List box)|Yes|None except List boxes| -|On Close Detail|Yes (List box)|Yes|None except List boxes| -|On Resize|Never|Yes|None| -|On Selection Change|Yes|Yes|Involved object only| -|On Load Record|Never|Yes|None| -|On Timer|Never|Yes|None| -|On Scroll|Yes|Never|Involved object only| -|On Before Data Entry|Yes (List box)|Never|Involved object only| -|On Column Moved|Yes (List box)|Never|Involved object only| -|On Row Moved|Yes (List box)|Never|Involved object only| -|On Column Resize|Yes (List box and 4D View Pro Area)| Never|Involved object only| -|On Header Click|Yes (List box and 4D View Pro Area)|Never|Involved object only| -|On Footer Click|Yes (List box)|Never|Involved object only| -|On After Sort|Yes (List box)|Never|Involved object only| -|On Long Click|Yes (Button)|Yes|Involved object only| -|On Alternative Click|Yes (Button and List box)|Never| Involved object only| -|On Expand|Yes (Hier. list and list box)|Never|Involved object only| -|On Collapse|Yes (Hier. list and list box)|Never|Involved object only| -|On Delete Action|Yes (Hier. list and list box)|Never|Involved object only| -|On URL Resource Loading|Yes (Web Area)|Never|Involved object only| -|On Begin URL Loading|Yes (Web Area)|Never|Involved object only| -|On URL Loading Error|Yes (Web Area)|Never|Involved object only| -|On URL Filtering|Yes (Web Area)|Never|Involved object only| -|On End URL Loading|Yes (Web Area)|Never|Involved object only| -|On Open External Link|Yes (Web Area)|Never|Involved object only| -|On Window Opening Denied|Yes (Web Area)|Never|Involved object only| -|On VP Range Changed|Yes (4D View Pro Area)|Never|Involved object only| -|On VP Ready|Yes (4D View Pro Area)|Never|Involved object only| -|On Row Resize|Yes (4D View Pro Area)|Never|Involved object only| +|Event|Code|Object Methods|Form Method|Which Objects| +|---|---|---|----|---| +|On Activate|11|Never|Yes|None| +|On After Edit|45|Yes|Yes|Involved object only| +|On After Keystroke|28|Yes|Yes|Involved object only| +|On After Sort|30|Yes (List box)|Never|Involved object only| +|On Alternative Click|38|Yes (Button and List box)|Never| Involved object only| +|On Before Data Entry|41|Yes (List box)|Never|Involved object only| +|On Before Keystroke|17|Yes|Yes|Involved object only| +|On Begin Drag Over|46|Yes|Yes|Involved object only| +|On Begin URL Loading|47|Yes (Web Area)|Never|Involved object only| +|On Bound variable change|54|Never|Yes|None| +|On Clicked|4|Yes |Yes|Involved object only| +|On Close Box|22|Never|Yes |None| +|On Close Detail|26|Yes (List box)|Yes|None except List boxes| +|On Collapse|44|Yes (Hier. list and list box)|Never|Involved object only| +|On Column Moved|32|Yes (List box)|Never|Involved object only| +|On Column Resize|33|Yes (List box and 4D View Pro Area)| Never|Involved object only| +|On Data Change|20|Yes|Yes|Involved object only| +|On Deactivate|12|Never|Yes|None| +|On Delete Action|58|Yes (Hier. list and list box)|Never|Involved object only| +|On Display Detail|8|Yes|Yes|All objects| +|On Double Clicked|13|Yes|Yes|Involved object only| +|On Drag Over|21|Yes|Never |Involved object only| +|On Drop|16|Yes|Yes|Involved object only| +|On End URL Loading|49|Yes (Web Area)|Never|Involved object only| +|On Expand|43|Yes (Hier. list and list box)|Never|Involved object only| +|On Footer Click|57|Yes (List box)|Never|Involved object only| +|On Getting Focus|15|Yes|Yes|Involved object only| +|On Header|5|Yes|Yes|All objects| +|On Header Click|42|Yes (List box and 4D View Pro Area)|Never|Involved object only| +|On Load|1|Yes|Yes|All objects| +|On Load Record|40|Never|Yes|None| +|On Long Click|39|Yes (Button)|Yes|Involved object only| +|On Losing Focus|14|Yes|Yes|Involved object only| +|On Menu Selected|18|Never|Yes|None| +|On Mouse Enter|35|Yes|Yes|All objects| +|On Mouse Leave|36|Yes|Yes|All objects| +|On Mouse Move|37|Yes|Yes|All objects| +|On Mouse Up|2|Yes|Never|Involved object only| +|On Open Detail|25|Yes (List box)|Yes|None except List boxes| +|On Open External Link|52|Yes (Web Area)|Never|Involved object only| +|On Outside Call|10|Never|Yes|None| +|On Page Change|56|Never|Yes|None| +|On Plug in Area|19|Yes|Yes|Involved object only| +|On Printing Break|6|Yes |Yes|All objects| +|On Printing Detail|23|Yes|Yes |All objects| +|On Printing Footer|7|Yes |Yes|All objects| +|On Resize|29|Never|Yes|None| +|On Row Moved|34|Yes (List box)|Never|Involved object only| +|On Row Resize|60|Yes (4D View Pro Area)|Never|Involved object only| +|On Scroll|59|Yes|Never|Involved object only| +|On Selection Change|31|Yes|Yes|Involved object only| +|On Timer|27|Never|Yes|None| +|On Unload|24|Yes|Yes|All objects| +|On URL Filtering|51|Yes (Web Area)|Never|Involved object only| +|On URL Loading Error|50|Yes (Web Area)|Never|Involved object only| +|On URL Resource Loading|48|Yes (Web Area)|Never|Involved object only| +|On Validate|3|Yes|Yes|All objects| +|On VP Range Changed|61|Yes (4D View Pro Area)|Never|Involved object only| +|On VP Ready|9|Yes (4D View Pro Area)|Never|Involved object only| +|On Window Opening Denied|53|Yes (Web Area)|Never|Involved object only| Always keep in mind that, for any event, the method of a form or an object is called if the corresponding event property is selected for the form or objects. The benefit of disabling events in the Design environment (using the Property List of the Form editor) is that you can reduce the number of calls to methods and therefore significantly optimize the execution speed of your forms. diff --git a/versioned_docs/version-20/Events/overview.md b/versioned_docs/version-20/Events/overview.md index 8dbd1b97ec34ff..ff0cc1a3f54c8d 100644 --- a/versioned_docs/version-20/Events/overview.md +++ b/versioned_docs/version-20/Events/overview.md @@ -50,70 +50,71 @@ The number of objects involved in an event depends on the nature of the event. The following table summarizes how object and form methods are called for each event type: -|Event|Object Methods|Form Method|Which Objects| -|---|---|----|---| -|On Load|Yes|Yes|All objects| -|On Unload|Yes|Yes|All objects| -|On Validate|Yes|Yes|All objects| -|On Clicked|Yes |Yes|Involved object only| -|On Double Clicked|Yes|Yes|Involved object only| -|On Before Keystroke|Yes|Yes|Involved object only| -|On After Keystroke|Yes|Yes|Involved object only| -|On After Edit|Yes|Yes|Involved object only| -|On Getting Focus|Yes|Yes|Involved object only| -|On Losing Focus|Yes|Yes|Involved object only| -|On Activate|Never|Yes|None| -|On Deactivate|Never|Yes|None| -|On Outside Call|Never|Yes|None| -|On Page Change|Never|Yes|None| -|On Begin Drag Over|Yes|Yes|Involved object only| -|On Drop|Yes|Yes|Involved object only| -|On Drag Over|Yes|Never |Involved object only| -|On Mouse Enter|Yes|Yes|All objects| -|On Mouse Move|Yes|Yes|All objects| -|On Mouse Leave|Yes|Yes|All objects| -|On Mouse Up|Yes|Never|Involved object only| -|On Menu Selected|Never|Yes|None| -|On Bound variable change|Never|Yes|None| -|On Data Change|Yes|Yes|Involved object only| -|On Plug in Area|Yes|Yes|Involved object only| -|On Header|Yes|Yes|All objects| -|On Printing Detail|Yes|Yes |All objects| -|On Printing Break|Yes |Yes|All objects| -|On Printing Footer|Yes |Yes|All objects| -|On Close Box|Never|Yes |None| -|On Display Detail|Yes|Yes|All objects| -|On Open Detail|Yes (List box)|Yes|None except List boxes| -|On Close Detail|Yes (List box)|Yes|None except List boxes| -|On Resize|Never|Yes|None| -|On Selection Change|Yes|Yes|Involved object only| -|On Load Record|Never|Yes|None| -|On Timer|Never|Yes|None| -|On Scroll|Yes|Never|Involved object only| -|On Before Data Entry|Yes (List box)|Never|Involved object only| -|On Column Moved|Yes (List box)|Never|Involved object only| -|On Row Moved|Yes (List box)|Never|Involved object only| -|On Column Resize|Yes (List box and 4D View Pro Area)| Never|Involved object only| -|On Header Click|Yes (List box and 4D View Pro Area)|Never|Involved object only| -|On Footer Click|Yes (List box)|Never|Involved object only| -|On After Sort|Yes (List box)|Never|Involved object only| -|On Long Click|Yes (Button)|Yes|Involved object only| -|On Alternative Click|Yes (Button and List box)|Never| Involved object only| -|On Expand|Yes (Hier. list and list box)|Never|Involved object only| -|On Collapse|Yes (Hier. list and list box)|Never|Involved object only| -|On Delete Action|Yes (Hier. list and list box)|Never|Involved object only| -|On URL Resource Loading|Yes (Web Area)|Never|Involved object only| -|On Begin URL Loading|Yes (Web Area)|Never|Involved object only| -|On URL Loading Error|Yes (Web Area)|Never|Involved object only| -|On URL Filtering|Yes (Web Area)|Never|Involved object only| -|On End URL Loading|Yes (Web Area)|Never|Involved object only| -|On Open External Link|Yes (Web Area)|Never|Involved object only| -|On Window Opening Denied|Yes (Web Area)|Never|Involved object only| -|On VP Range Changed|Yes (4D View Pro Area)|Never|Involved object only| -|On VP Ready|Yes (4D View Pro Area)|Never|Involved object only| -|On Row Resize|Yes (4D View Pro Area)|Never|Involved object only| +|Event|Code|Object Methods|Form Method|Which Objects| +|---|---|---|----|---| +|On Activate|11|Never|Yes|None| +|On After Edit|45|Yes|Yes|Involved object only| +|On After Keystroke|28|Yes|Yes|Involved object only| +|On After Sort|30|Yes (List box)|Never|Involved object only| +|On Alternative Click|38|Yes (Button and List box)|Never| Involved object only| +|On Before Data Entry|41|Yes (List box)|Never|Involved object only| +|On Before Keystroke|17|Yes|Yes|Involved object only| +|On Begin Drag Over|46|Yes|Yes|Involved object only| +|On Begin URL Loading|47|Yes (Web Area)|Never|Involved object only| +|On Bound variable change|54|Never|Yes|None| +|On Clicked|4|Yes |Yes|Involved object only| +|On Close Box|22|Never|Yes |None| +|On Close Detail|26|Yes (List box)|Yes|None except List boxes| +|On Collapse|44|Yes (Hier. list and list box)|Never|Involved object only| +|On Column Moved|32|Yes (List box)|Never|Involved object only| +|On Column Resize|33|Yes (List box and 4D View Pro Area)| Never|Involved object only| +|On Data Change|20|Yes|Yes|Involved object only| +|On Deactivate|12|Never|Yes|None| +|On Delete Action|58|Yes (Hier. list and list box)|Never|Involved object only| +|On Display Detail|8|Yes|Yes|All objects| +|On Double Clicked|13|Yes|Yes|Involved object only| +|On Drag Over|21|Yes|Never |Involved object only| +|On Drop|16|Yes|Yes|Involved object only| +|On End URL Loading|49|Yes (Web Area)|Never|Involved object only| +|On Expand|43|Yes (Hier. list and list box)|Never|Involved object only| +|On Footer Click|57|Yes (List box)|Never|Involved object only| +|On Getting Focus|15|Yes|Yes|Involved object only| +|On Header|5|Yes|Yes|All objects| +|On Header Click|42|Yes (List box and 4D View Pro Area)|Never|Involved object only| +|On Load|1|Yes|Yes|All objects| +|On Load Record|40|Never|Yes|None| +|On Long Click|39|Yes (Button)|Yes|Involved object only| +|On Losing Focus|14|Yes|Yes|Involved object only| +|On Menu Selected|18|Never|Yes|None| +|On Mouse Enter|35|Yes|Yes|All objects| +|On Mouse Leave|36|Yes|Yes|All objects| +|On Mouse Move|37|Yes|Yes|All objects| +|On Mouse Up|2|Yes|Never|Involved object only| +|On Open Detail|25|Yes (List box)|Yes|None except List boxes| +|On Open External Link|52|Yes (Web Area)|Never|Involved object only| +|On Outside Call|10|Never|Yes|None| +|On Page Change|56|Never|Yes|None| +|On Plug in Area|19|Yes|Yes|Involved object only| +|On Printing Break|6|Yes |Yes|All objects| +|On Printing Detail|23|Yes|Yes |All objects| +|On Printing Footer|7|Yes |Yes|All objects| +|On Resize|29|Never|Yes|None| +|On Row Moved|34|Yes (List box)|Never|Involved object only| +|On Row Resize|60|Yes (4D View Pro Area)|Never|Involved object only| +|On Scroll|59|Yes|Never|Involved object only| +|On Selection Change|31|Yes|Yes|Involved object only| +|On Timer|27|Never|Yes|None| +|On Unload|24|Yes|Yes|All objects| +|On URL Filtering|51|Yes (Web Area)|Never|Involved object only| +|On URL Loading Error|50|Yes (Web Area)|Never|Involved object only| +|On URL Resource Loading|48|Yes (Web Area)|Never|Involved object only| +|On Validate|3|Yes|Yes|All objects| +|On VP Range Changed|61|Yes (4D View Pro Area)|Never|Involved object only| +|On VP Ready|9|Yes (4D View Pro Area)|Never|Involved object only| +|On Window Opening Denied|53|Yes (Web Area)|Never|Involved object only| Always keep in mind that, for any event, the method of a form or an object is called if the corresponding event property is selected for the form or objects. The benefit of disabling events in the Design environment (using the Property List of the Form editor) is that you can reduce the number of calls to methods and therefore significantly optimize the execution speed of your forms. > WARNING: The [On Load](onLoad.md) and [On Unload](onUnload.md) events are generated for objects if they are enabled for both the objects and the form to which the objects belong. If the events are enabled for objects only, they will not occur; these two events must also be enabled at the form level. + diff --git a/versioned_docs/version-21-R3/Events/overview.md b/versioned_docs/version-21-R3/Events/overview.md index 462bf67efa6a2d..3dedf933bc4874 100644 --- a/versioned_docs/version-21-R3/Events/overview.md +++ b/versioned_docs/version-21-R3/Events/overview.md @@ -50,68 +50,68 @@ The number of objects involved in an event depends on the nature of the event. The following table summarizes how object and form methods are called for each event type: -|Event|Object Methods|Form Method|Which Objects| -|---|---|----|---| -|On Load|Yes|Yes|All objects| -|On Unload|Yes|Yes|All objects| -|On Validate|Yes|Yes|All objects| -|On Clicked|Yes |Yes|Involved object only| -|On Double Clicked|Yes|Yes|Involved object only| -|On Before Keystroke|Yes|Yes|Involved object only| -|On After Keystroke|Yes|Yes|Involved object only| -|On After Edit|Yes|Yes|Involved object only| -|On Getting Focus|Yes|Yes|Involved object only| -|On Losing Focus|Yes|Yes|Involved object only| -|On Activate|Never|Yes|None| -|On Deactivate|Never|Yes|None| -|On Outside Call|Never|Yes|None| -|On Page Change|Never|Yes|None| -|On Begin Drag Over|Yes|Yes|Involved object only| -|On Drop|Yes|Yes|Involved object only| -|On Drag Over|Yes|Never |Involved object only| -|On Mouse Enter|Yes|Yes|All objects| -|On Mouse Move|Yes|Yes|All objects| -|On Mouse Leave|Yes|Yes|All objects| -|On Mouse Up|Yes|Never|Involved object only| -|On Menu Selected|Never|Yes|None| -|On Bound variable change|Never|Yes|None| -|On Data Change|Yes|Yes|Involved object only| -|On Plug in Area|Yes|Yes|Involved object only| -|On Header|Yes|Yes|All objects| -|On Printing Detail|Yes|Yes |All objects| -|On Printing Break|Yes |Yes|All objects| -|On Printing Footer|Yes |Yes|All objects| -|On Close Box|Never|Yes |None| -|On Display Detail|Yes|Yes|All objects| -|On Open Detail|Yes (List box)|Yes|None except List boxes| -|On Close Detail|Yes (List box)|Yes|None except List boxes| -|On Resize|Never|Yes|None| -|On Selection Change|Yes|Yes|Involved object only| -|On Load Record|Never|Yes|None| -|On Timer|Never|Yes|None| -|On Scroll|Yes|Never|Involved object only| -|On Before Data Entry|Yes (List box)|Never|Involved object only| -|On Column Moved|Yes (List box)|Never|Involved object only| -|On Row Moved|Yes (List box)|Never|Involved object only| -|On Column Resize|Yes (List box and 4D View Pro Area)| Never|Involved object only| -|On Header Click|Yes (List box and 4D View Pro Area)|Never|Involved object only| -|On Footer Click|Yes (List box)|Never|Involved object only| -|On After Sort|Yes (List box)|Never|Involved object only| -|On Long Click|Yes (Button)|Yes|Involved object only| -|On Alternative Click|Yes (Button and List box)|Never| Involved object only| -|On Expand|Yes (Hier. list and list box)|Never|Involved object only| -|On Collapse|Yes (Hier. list and list box)|Never|Involved object only| -|On Delete Action|Yes (Hier. list and list box)|Never|Involved object only| -|On URL Resource Loading|Yes (Web Area)|Never|Involved object only| -|On Begin URL Loading|Yes (Web Area)|Never|Involved object only| -|On URL Loading Error|Yes (Web Area)|Never|Involved object only| -|On URL Filtering|Yes (Web Area)|Never|Involved object only| -|On End URL Loading|Yes (Web Area)|Never|Involved object only| -|On Open External Link|Yes (Web Area)|Never|Involved object only| -|On Window Opening Denied|Yes (Web Area)|Never|Involved object only| -|On VP Range Changed|Yes (4D View Pro Area)|Never|Involved object only| -|On VP Ready|Yes (4D View Pro Area)|Never|Involved object only| -|On Row Resize|Yes (4D View Pro Area)|Never|Involved object only| +|Event|Code|Object Methods|Form Method|Which Objects| +|---|---|---|----|---| +|On Activate|11|Never|Yes|None| +|On After Edit|45|Yes|Yes|Involved object only| +|On After Keystroke|28|Yes|Yes|Involved object only| +|On After Sort|30|Yes (List box)|Never|Involved object only| +|On Alternative Click|38|Yes (Button and List box)|Never| Involved object only| +|On Before Data Entry|41|Yes (List box)|Never|Involved object only| +|On Before Keystroke|17|Yes|Yes|Involved object only| +|On Begin Drag Over|46|Yes|Yes|Involved object only| +|On Begin URL Loading|47|Yes (Web Area)|Never|Involved object only| +|On Bound variable change|54|Never|Yes|None| +|On Clicked|4|Yes |Yes|Involved object only| +|On Close Box|22|Never|Yes |None| +|On Close Detail|26|Yes (List box)|Yes|None except List boxes| +|On Collapse|44|Yes (Hier. list and list box)|Never|Involved object only| +|On Column Moved|32|Yes (List box)|Never|Involved object only| +|On Column Resize|33|Yes (List box and 4D View Pro Area)| Never|Involved object only| +|On Data Change|20|Yes|Yes|Involved object only| +|On Deactivate|12|Never|Yes|None| +|On Delete Action|58|Yes (Hier. list and list box)|Never|Involved object only| +|On Display Detail|8|Yes|Yes|All objects| +|On Double Clicked|13|Yes|Yes|Involved object only| +|On Drag Over|21|Yes|Never |Involved object only| +|On Drop|16|Yes|Yes|Involved object only| +|On End URL Loading|49|Yes (Web Area)|Never|Involved object only| +|On Expand|43|Yes (Hier. list and list box)|Never|Involved object only| +|On Footer Click|57|Yes (List box)|Never|Involved object only| +|On Getting Focus|15|Yes|Yes|Involved object only| +|On Header|5|Yes|Yes|All objects| +|On Header Click|42|Yes (List box and 4D View Pro Area)|Never|Involved object only| +|On Load|1|Yes|Yes|All objects| +|On Load Record|40|Never|Yes|None| +|On Long Click|39|Yes (Button)|Yes|Involved object only| +|On Losing Focus|14|Yes|Yes|Involved object only| +|On Menu Selected|18|Never|Yes|None| +|On Mouse Enter|35|Yes|Yes|All objects| +|On Mouse Leave|36|Yes|Yes|All objects| +|On Mouse Move|37|Yes|Yes|All objects| +|On Mouse Up|2|Yes|Never|Involved object only| +|On Open Detail|25|Yes (List box)|Yes|None except List boxes| +|On Open External Link|52|Yes (Web Area)|Never|Involved object only| +|On Outside Call|10|Never|Yes|None| +|On Page Change|56|Never|Yes|None| +|On Plug in Area|19|Yes|Yes|Involved object only| +|On Printing Break|6|Yes |Yes|All objects| +|On Printing Detail|23|Yes|Yes |All objects| +|On Printing Footer|7|Yes |Yes|All objects| +|On Resize|29|Never|Yes|None| +|On Row Moved|34|Yes (List box)|Never|Involved object only| +|On Row Resize|60|Yes (4D View Pro Area)|Never|Involved object only| +|On Scroll|59|Yes|Never|Involved object only| +|On Selection Change|31|Yes|Yes|Involved object only| +|On Timer|27|Never|Yes|None| +|On Unload|24|Yes|Yes|All objects| +|On URL Filtering|51|Yes (Web Area)|Never|Involved object only| +|On URL Loading Error|50|Yes (Web Area)|Never|Involved object only| +|On URL Resource Loading|48|Yes (Web Area)|Never|Involved object only| +|On Validate|3|Yes|Yes|All objects| +|On VP Range Changed|61|Yes (4D View Pro Area)|Never|Involved object only| +|On VP Ready|9|Yes (4D View Pro Area)|Never|Involved object only| +|On Window Opening Denied|53|Yes (Web Area)|Never|Involved object only| Always keep in mind that, for any event, the method of a form or an object is called if the corresponding event property is selected for the form or objects. The benefit of disabling events in the Design environment (using the Property List of the Form editor) is that you can reduce the number of calls to methods and therefore significantly optimize the execution speed of your forms. diff --git a/versioned_docs/version-21-R4/Events/overview.md b/versioned_docs/version-21-R4/Events/overview.md index 462bf67efa6a2d..3dedf933bc4874 100644 --- a/versioned_docs/version-21-R4/Events/overview.md +++ b/versioned_docs/version-21-R4/Events/overview.md @@ -50,68 +50,68 @@ The number of objects involved in an event depends on the nature of the event. The following table summarizes how object and form methods are called for each event type: -|Event|Object Methods|Form Method|Which Objects| -|---|---|----|---| -|On Load|Yes|Yes|All objects| -|On Unload|Yes|Yes|All objects| -|On Validate|Yes|Yes|All objects| -|On Clicked|Yes |Yes|Involved object only| -|On Double Clicked|Yes|Yes|Involved object only| -|On Before Keystroke|Yes|Yes|Involved object only| -|On After Keystroke|Yes|Yes|Involved object only| -|On After Edit|Yes|Yes|Involved object only| -|On Getting Focus|Yes|Yes|Involved object only| -|On Losing Focus|Yes|Yes|Involved object only| -|On Activate|Never|Yes|None| -|On Deactivate|Never|Yes|None| -|On Outside Call|Never|Yes|None| -|On Page Change|Never|Yes|None| -|On Begin Drag Over|Yes|Yes|Involved object only| -|On Drop|Yes|Yes|Involved object only| -|On Drag Over|Yes|Never |Involved object only| -|On Mouse Enter|Yes|Yes|All objects| -|On Mouse Move|Yes|Yes|All objects| -|On Mouse Leave|Yes|Yes|All objects| -|On Mouse Up|Yes|Never|Involved object only| -|On Menu Selected|Never|Yes|None| -|On Bound variable change|Never|Yes|None| -|On Data Change|Yes|Yes|Involved object only| -|On Plug in Area|Yes|Yes|Involved object only| -|On Header|Yes|Yes|All objects| -|On Printing Detail|Yes|Yes |All objects| -|On Printing Break|Yes |Yes|All objects| -|On Printing Footer|Yes |Yes|All objects| -|On Close Box|Never|Yes |None| -|On Display Detail|Yes|Yes|All objects| -|On Open Detail|Yes (List box)|Yes|None except List boxes| -|On Close Detail|Yes (List box)|Yes|None except List boxes| -|On Resize|Never|Yes|None| -|On Selection Change|Yes|Yes|Involved object only| -|On Load Record|Never|Yes|None| -|On Timer|Never|Yes|None| -|On Scroll|Yes|Never|Involved object only| -|On Before Data Entry|Yes (List box)|Never|Involved object only| -|On Column Moved|Yes (List box)|Never|Involved object only| -|On Row Moved|Yes (List box)|Never|Involved object only| -|On Column Resize|Yes (List box and 4D View Pro Area)| Never|Involved object only| -|On Header Click|Yes (List box and 4D View Pro Area)|Never|Involved object only| -|On Footer Click|Yes (List box)|Never|Involved object only| -|On After Sort|Yes (List box)|Never|Involved object only| -|On Long Click|Yes (Button)|Yes|Involved object only| -|On Alternative Click|Yes (Button and List box)|Never| Involved object only| -|On Expand|Yes (Hier. list and list box)|Never|Involved object only| -|On Collapse|Yes (Hier. list and list box)|Never|Involved object only| -|On Delete Action|Yes (Hier. list and list box)|Never|Involved object only| -|On URL Resource Loading|Yes (Web Area)|Never|Involved object only| -|On Begin URL Loading|Yes (Web Area)|Never|Involved object only| -|On URL Loading Error|Yes (Web Area)|Never|Involved object only| -|On URL Filtering|Yes (Web Area)|Never|Involved object only| -|On End URL Loading|Yes (Web Area)|Never|Involved object only| -|On Open External Link|Yes (Web Area)|Never|Involved object only| -|On Window Opening Denied|Yes (Web Area)|Never|Involved object only| -|On VP Range Changed|Yes (4D View Pro Area)|Never|Involved object only| -|On VP Ready|Yes (4D View Pro Area)|Never|Involved object only| -|On Row Resize|Yes (4D View Pro Area)|Never|Involved object only| +|Event|Code|Object Methods|Form Method|Which Objects| +|---|---|---|----|---| +|On Activate|11|Never|Yes|None| +|On After Edit|45|Yes|Yes|Involved object only| +|On After Keystroke|28|Yes|Yes|Involved object only| +|On After Sort|30|Yes (List box)|Never|Involved object only| +|On Alternative Click|38|Yes (Button and List box)|Never| Involved object only| +|On Before Data Entry|41|Yes (List box)|Never|Involved object only| +|On Before Keystroke|17|Yes|Yes|Involved object only| +|On Begin Drag Over|46|Yes|Yes|Involved object only| +|On Begin URL Loading|47|Yes (Web Area)|Never|Involved object only| +|On Bound variable change|54|Never|Yes|None| +|On Clicked|4|Yes |Yes|Involved object only| +|On Close Box|22|Never|Yes |None| +|On Close Detail|26|Yes (List box)|Yes|None except List boxes| +|On Collapse|44|Yes (Hier. list and list box)|Never|Involved object only| +|On Column Moved|32|Yes (List box)|Never|Involved object only| +|On Column Resize|33|Yes (List box and 4D View Pro Area)| Never|Involved object only| +|On Data Change|20|Yes|Yes|Involved object only| +|On Deactivate|12|Never|Yes|None| +|On Delete Action|58|Yes (Hier. list and list box)|Never|Involved object only| +|On Display Detail|8|Yes|Yes|All objects| +|On Double Clicked|13|Yes|Yes|Involved object only| +|On Drag Over|21|Yes|Never |Involved object only| +|On Drop|16|Yes|Yes|Involved object only| +|On End URL Loading|49|Yes (Web Area)|Never|Involved object only| +|On Expand|43|Yes (Hier. list and list box)|Never|Involved object only| +|On Footer Click|57|Yes (List box)|Never|Involved object only| +|On Getting Focus|15|Yes|Yes|Involved object only| +|On Header|5|Yes|Yes|All objects| +|On Header Click|42|Yes (List box and 4D View Pro Area)|Never|Involved object only| +|On Load|1|Yes|Yes|All objects| +|On Load Record|40|Never|Yes|None| +|On Long Click|39|Yes (Button)|Yes|Involved object only| +|On Losing Focus|14|Yes|Yes|Involved object only| +|On Menu Selected|18|Never|Yes|None| +|On Mouse Enter|35|Yes|Yes|All objects| +|On Mouse Leave|36|Yes|Yes|All objects| +|On Mouse Move|37|Yes|Yes|All objects| +|On Mouse Up|2|Yes|Never|Involved object only| +|On Open Detail|25|Yes (List box)|Yes|None except List boxes| +|On Open External Link|52|Yes (Web Area)|Never|Involved object only| +|On Outside Call|10|Never|Yes|None| +|On Page Change|56|Never|Yes|None| +|On Plug in Area|19|Yes|Yes|Involved object only| +|On Printing Break|6|Yes |Yes|All objects| +|On Printing Detail|23|Yes|Yes |All objects| +|On Printing Footer|7|Yes |Yes|All objects| +|On Resize|29|Never|Yes|None| +|On Row Moved|34|Yes (List box)|Never|Involved object only| +|On Row Resize|60|Yes (4D View Pro Area)|Never|Involved object only| +|On Scroll|59|Yes|Never|Involved object only| +|On Selection Change|31|Yes|Yes|Involved object only| +|On Timer|27|Never|Yes|None| +|On Unload|24|Yes|Yes|All objects| +|On URL Filtering|51|Yes (Web Area)|Never|Involved object only| +|On URL Loading Error|50|Yes (Web Area)|Never|Involved object only| +|On URL Resource Loading|48|Yes (Web Area)|Never|Involved object only| +|On Validate|3|Yes|Yes|All objects| +|On VP Range Changed|61|Yes (4D View Pro Area)|Never|Involved object only| +|On VP Ready|9|Yes (4D View Pro Area)|Never|Involved object only| +|On Window Opening Denied|53|Yes (Web Area)|Never|Involved object only| Always keep in mind that, for any event, the method of a form or an object is called if the corresponding event property is selected for the form or objects. The benefit of disabling events in the Design environment (using the Property List of the Form editor) is that you can reduce the number of calls to methods and therefore significantly optimize the execution speed of your forms. diff --git a/versioned_docs/version-21/Events/overview.md b/versioned_docs/version-21/Events/overview.md index 00a2ab310ca2b5..3dedf933bc4874 100644 --- a/versioned_docs/version-21/Events/overview.md +++ b/versioned_docs/version-21/Events/overview.md @@ -5,7 +5,7 @@ title: Form Events Form events are events that can lead to the execution of the form method and/or form object method(s). Form events allow you to control the flow of your application and to write code that is executed only when a specific event occurs. -In your code, you control the events using the [`FORM Event`](../commands/form-event.md) command, that returns the triggered event. For example: +In your code, you control the events using the [`FORM Event`](../commands/form-event) command, that returns the triggered event. For example: ```4d //code of a button @@ -19,7 +19,7 @@ End if ## Event object -Each event is returned as an object by the [`FORM Event`](../commands/form-event.md) command. By default, it contains the following properties: +Each event is returned as an object by the [`FORM Event`](../commands/form-event) command. By default, it contains the following properties: |Property|Type|Description| |---|---|---| @@ -50,70 +50,71 @@ The number of objects involved in an event depends on the nature of the event. The following table summarizes how object and form methods are called for each event type: -|Event|Object Methods|Form Method|Which Objects| -|---|---|----|---| -|On Load|Yes|Yes|All objects| -|On Unload|Yes|Yes|All objects| -|On Validate|Yes|Yes|All objects| -|On Clicked|Yes |Yes|Involved object only| -|On Double Clicked|Yes|Yes|Involved object only| -|On Before Keystroke|Yes|Yes|Involved object only| -|On After Keystroke|Yes|Yes|Involved object only| -|On After Edit|Yes|Yes|Involved object only| -|On Getting Focus|Yes|Yes|Involved object only| -|On Losing Focus|Yes|Yes|Involved object only| -|On Activate|Never|Yes|None| -|On Deactivate|Never|Yes|None| -|On Outside Call|Never|Yes|None| -|On Page Change|Never|Yes|None| -|On Begin Drag Over|Yes|Yes|Involved object only| -|On Drop|Yes|Yes|Involved object only| -|On Drag Over|Yes|Never |Involved object only| -|On Mouse Enter|Yes|Yes|All objects| -|On Mouse Move|Yes|Yes|All objects| -|On Mouse Leave|Yes|Yes|All objects| -|On Mouse Up|Yes|Never|Involved object only| -|On Menu Selected|Never|Yes|None| -|On Bound variable change|Never|Yes|None| -|On Data Change|Yes|Yes|Involved object only| -|On Plug in Area|Yes|Yes|Involved object only| -|On Header|Yes|Yes|All objects| -|On Printing Detail|Yes|Yes |All objects| -|On Printing Break|Yes |Yes|All objects| -|On Printing Footer|Yes |Yes|All objects| -|On Close Box|Never|Yes |None| -|On Display Detail|Yes|Yes|All objects| -|On Open Detail|Yes (List box)|Yes|None except List boxes| -|On Close Detail|Yes (List box)|Yes|None except List boxes| -|On Resize|Never|Yes|None| -|On Selection Change|Yes|Yes|Involved object only| -|On Load Record|Never|Yes|None| -|On Timer|Never|Yes|None| -|On Scroll|Yes|Never|Involved object only| -|On Before Data Entry|Yes (List box)|Never|Involved object only| -|On Column Moved|Yes (List box)|Never|Involved object only| -|On Row Moved|Yes (List box)|Never|Involved object only| -|On Column Resize|Yes (List box and 4D View Pro Area)| Never|Involved object only| -|On Header Click|Yes (List box and 4D View Pro Area)|Never|Involved object only| -|On Footer Click|Yes (List box)|Never|Involved object only| -|On After Sort|Yes (List box)|Never|Involved object only| -|On Long Click|Yes (Button)|Yes|Involved object only| -|On Alternative Click|Yes (Button and List box)|Never| Involved object only| -|On Expand|Yes (Hier. list and list box)|Never|Involved object only| -|On Collapse|Yes (Hier. list and list box)|Never|Involved object only| -|On Delete Action|Yes (Hier. list and list box)|Never|Involved object only| -|On URL Resource Loading|Yes (Web Area)|Never|Involved object only| -|On Begin URL Loading|Yes (Web Area)|Never|Involved object only| -|On URL Loading Error|Yes (Web Area)|Never|Involved object only| -|On URL Filtering|Yes (Web Area)|Never|Involved object only| -|On End URL Loading|Yes (Web Area)|Never|Involved object only| -|On Open External Link|Yes (Web Area)|Never|Involved object only| -|On Window Opening Denied|Yes (Web Area)|Never|Involved object only| -|On VP Range Changed|Yes (4D View Pro Area)|Never|Involved object only| -|On VP Ready|Yes (4D View Pro Area)|Never|Involved object only| -|On Row Resize|Yes (4D View Pro Area)|Never|Involved object only| +|Event|Code|Object Methods|Form Method|Which Objects| +|---|---|---|----|---| +|On Activate|11|Never|Yes|None| +|On After Edit|45|Yes|Yes|Involved object only| +|On After Keystroke|28|Yes|Yes|Involved object only| +|On After Sort|30|Yes (List box)|Never|Involved object only| +|On Alternative Click|38|Yes (Button and List box)|Never| Involved object only| +|On Before Data Entry|41|Yes (List box)|Never|Involved object only| +|On Before Keystroke|17|Yes|Yes|Involved object only| +|On Begin Drag Over|46|Yes|Yes|Involved object only| +|On Begin URL Loading|47|Yes (Web Area)|Never|Involved object only| +|On Bound variable change|54|Never|Yes|None| +|On Clicked|4|Yes |Yes|Involved object only| +|On Close Box|22|Never|Yes |None| +|On Close Detail|26|Yes (List box)|Yes|None except List boxes| +|On Collapse|44|Yes (Hier. list and list box)|Never|Involved object only| +|On Column Moved|32|Yes (List box)|Never|Involved object only| +|On Column Resize|33|Yes (List box and 4D View Pro Area)| Never|Involved object only| +|On Data Change|20|Yes|Yes|Involved object only| +|On Deactivate|12|Never|Yes|None| +|On Delete Action|58|Yes (Hier. list and list box)|Never|Involved object only| +|On Display Detail|8|Yes|Yes|All objects| +|On Double Clicked|13|Yes|Yes|Involved object only| +|On Drag Over|21|Yes|Never |Involved object only| +|On Drop|16|Yes|Yes|Involved object only| +|On End URL Loading|49|Yes (Web Area)|Never|Involved object only| +|On Expand|43|Yes (Hier. list and list box)|Never|Involved object only| +|On Footer Click|57|Yes (List box)|Never|Involved object only| +|On Getting Focus|15|Yes|Yes|Involved object only| +|On Header|5|Yes|Yes|All objects| +|On Header Click|42|Yes (List box and 4D View Pro Area)|Never|Involved object only| +|On Load|1|Yes|Yes|All objects| +|On Load Record|40|Never|Yes|None| +|On Long Click|39|Yes (Button)|Yes|Involved object only| +|On Losing Focus|14|Yes|Yes|Involved object only| +|On Menu Selected|18|Never|Yes|None| +|On Mouse Enter|35|Yes|Yes|All objects| +|On Mouse Leave|36|Yes|Yes|All objects| +|On Mouse Move|37|Yes|Yes|All objects| +|On Mouse Up|2|Yes|Never|Involved object only| +|On Open Detail|25|Yes (List box)|Yes|None except List boxes| +|On Open External Link|52|Yes (Web Area)|Never|Involved object only| +|On Outside Call|10|Never|Yes|None| +|On Page Change|56|Never|Yes|None| +|On Plug in Area|19|Yes|Yes|Involved object only| +|On Printing Break|6|Yes |Yes|All objects| +|On Printing Detail|23|Yes|Yes |All objects| +|On Printing Footer|7|Yes |Yes|All objects| +|On Resize|29|Never|Yes|None| +|On Row Moved|34|Yes (List box)|Never|Involved object only| +|On Row Resize|60|Yes (4D View Pro Area)|Never|Involved object only| +|On Scroll|59|Yes|Never|Involved object only| +|On Selection Change|31|Yes|Yes|Involved object only| +|On Timer|27|Never|Yes|None| +|On Unload|24|Yes|Yes|All objects| +|On URL Filtering|51|Yes (Web Area)|Never|Involved object only| +|On URL Loading Error|50|Yes (Web Area)|Never|Involved object only| +|On URL Resource Loading|48|Yes (Web Area)|Never|Involved object only| +|On Validate|3|Yes|Yes|All objects| +|On VP Range Changed|61|Yes (4D View Pro Area)|Never|Involved object only| +|On VP Ready|9|Yes (4D View Pro Area)|Never|Involved object only| +|On Window Opening Denied|53|Yes (Web Area)|Never|Involved object only| Always keep in mind that, for any event, the method of a form or an object is called if the corresponding event property is selected for the form or objects. The benefit of disabling events in the Design environment (using the Property List of the Form editor) is that you can reduce the number of calls to methods and therefore significantly optimize the execution speed of your forms. > WARNING: The [On Load](onLoad.md) and [On Unload](onUnload.md) events are generated for objects if they are enabled for both the objects and the form to which the objects belong. If the events are enabled for objects only, they will not occur; these two events must also be enabled at the form level. + From c95e998c0b3d6c7ce0e27036a39d1c28bd039472 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 21 Sep 2026 12:04:17 +0200 Subject: [PATCH 54/60] New Crowdin updates (#3433) * service.md Spanish * components.md Japanese * security.md Japanese * data-collect.md French * data-collect.md Spanish * data-collect.md Japanese * data-collect.md Portuguese, Brazilian --- .../current/Admin/data-collect.md | 5 + .../current/server/service.md | 2 +- .../current/Admin/data-collect.md | 5 + .../current/Admin/data-collect.md | 11 +- .../current/Project/components.md | 122 +++++++++--------- .../current/settings/security.md | 42 +++--- .../current/Admin/data-collect.md | 5 + 7 files changed, 105 insertions(+), 87 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md b/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md index 6d17d7ebc6c656..c9185fc9e8c3a7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md @@ -37,10 +37,12 @@ También se recogen algunos datos a intervalos regulares. | cacheReadCount | Object | Número de lecturas en la caché | | classUsage | Object | Número de instancias de ciertas clases de lenguaje | | connectionSystems | Collection | Sistema operativo del cliente sin el número de compilación (entre paréntesis) y número de clientes que lo utilizan | +| databases[].backupSettings | Object | Valores actuales de la configuración de copias de seguridad | | databases[].cacheSize | Number | Tamaño de caché en bytes | | databases[].compatibilitySettings | Object | Configuración de compatibilidad activada | | databases[].externalDatastoreOpened | Number | Número de llamadas a `Open datastore` | | databases[].fluentUI | Boolean | True si la opción "Utilizar Fluent UI en Windows" está seleccionada | +| databases[].flushCacheInterval | Number | Período de tiempo definido entre cada guardado automático de la caché de datos | | databases[].id | Number | ID de la base de datos | | databases[].internalDatastoreOpened | Number | Número de veces que un servidor externo abre el almacén de datos | | databases[].maxConcurrent4DClients | Number | Número máximo de sesiones 4D Client simultáneas (utilizando una licencia 4D Client) durante el intervalo de recolección | @@ -52,6 +54,7 @@ También se recogen algunos datos a intervalos regulares. | databases[].numberOfKeepRecordSyncInfo | Number | Número de tablas con la opción "Activar la replicación" marcada | | databases[].numberOfRecordsMax | Number | Número total de registros | | databases[].numberOfTables | Number | Número de tablas | +| databases[].numberOfUncaughtExecutionErrors | Number | Número de veces que se muestra un error de ejecución como alerta | | databases[].qodly.webforms | Number | Número de formularios web Qodly | | databases[].remoteDebugger4DRemoteAttachments | Number | Número de adjuntos al depurador remoto desde un 4D remoto | | databases[].remoteDebuggerQodlyAttachments | Number | Número de archivos adjuntos al depurador remoto de Qodly | @@ -92,6 +95,7 @@ También se recogen algunos datos a intervalos regulares. | isEncrypted | Boolean | True si el archivo de datos está encriptado | | isEngined | Boolean | True si la aplicación se fusiona con 4D Volume Desktop | | isProjectMode | Boolean | True si la aplicación es un proyecto | +| isShadowCopyActivated | Boolean | True if the Volume Shadow Copy feature is enabled (Windows only | | LDAPLogin | Number | Número de llamadas a `LDAP LOGIN` | | license.sffPrimaryKey | Number | Número de producto del servidor principal | | machine.CPU | Text | Nombre, tipo y velocidad del procesador | @@ -102,6 +106,7 @@ También se recogen algunos datos a intervalos regulares. | maximumUsedPhysicalMemory | Number | Uso máximo de la memoria física | | maximumUsedVirtualMemory | Number | Uso máximo de la memoria virtual | | mobile | Collection | Información sobre sesiones móviles | +| numberOfCrashes | Number | Número de veces que se ha bloqueado 4D | | numberOfWebServices | Number | Número de métodos publicados como servicios web | | ODBCLogin | Number | Número de llamadas a `SQL LOGIN` utilizando ODBC | | phpCall | Number | Número de llamadas a `PHP execute` | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/server/service.md b/i18n/es/docusaurus-plugin-content-docs/current/server/service.md index 72ff0a0f0441a2..5cb40e749d24f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/server/service.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/server/service.md @@ -34,5 +34,5 @@ Para dar de baja su aplicación, seleccione **Dar de baja la aplicación actual* Para anular el registro de todas las bases de datos de 4D Server a la vez, seleccione **Anular el registro de todos los servicios del servidor** en el menú **Archivo** de 4D Server. Este comando se atenúa si no hay ningún servicio 4D Server activado. -You cannot change the service registration status of 4D Server from within 4D Server, if the application has been launched as a service on start-up. En este caso, los tres elementos del menú están desactivados. Para detener el servicio, utilice el panel de control **Servicios**. +No es posible modificar el estado de registro del servicio de 4D Server desde el propio 4D Server si la aplicación se ha iniciado como servicio al arrancar el sistema. En este caso, los tres elementos del menú están desactivados. Para detener el servicio, utilice el panel de control **Servicios**. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/data-collect.md b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/data-collect.md index 64d9ff9a007ea4..3374812340dcf9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/data-collect.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/data-collect.md @@ -37,10 +37,12 @@ Certaines données sont également collectées à intervalles réguliers. | cacheReadCount | Object | Nombre de lectures dans le cache | | classUsage | Object | Nombre d'instances de certaines classes du langage | | connectionSystems | Collection | Système d'exploitation du client sans le numéro de build (entre parenthèses) et nombre de clients qui l'utilisent | +| databases[].backupSettings | Object | Current backup settings values | | databases[].cacheSize | Number | Taille du cache en octets | | databases[].compatibilitySettings | Object | Paramètres de compatibilité activés | | databases[].externalDatastoreOpened | Number | Nombre d'appels à `Open datastore` | | databases[].fluentUI | Boolean | Vrai si l'option "Utiliser Fluent UI sous Windows" est sélectionnée | +| databases[].flushCacheInterval | Number | Defined time period between each automatic saving of the data cache | | databases[].id | Number | ID de la base de données | | databases[].internalDatastoreOpened | Number | Nombre de fois où le datastore est ouvert par un serveur externe | | databases[].maxConcurrent4DClients | Number | Nombre maximum de sessions 4D Client simultanées (utilisant une licence 4D Client) sur l'intervalle de collecte | @@ -52,6 +54,7 @@ Certaines données sont également collectées à intervalles réguliers. | databases[].numberOfKeepRecordSyncInfo | Number | Nombre de tables dont l'option "Activer la réplication" est cochée | | databases[].numberOfRecordsMax | Number | Nombre total d'enregistrements | | databases[].numberOfTables | Number | Nombre de tables | +| databases[].numberOfUncaughtExecutionErrors | Number | Number of times an execution error is displayed as an alert | | databases[].qodly.webforms | Number | Nombre de webforms Qodly | | databases[].remoteDebugger4DRemoteAttachments | Number | Nombre de rattachements au débogueur distant à partir d'un 4D distant | | databases[].remoteDebuggerQodlyAttachments | Number | Nombre de rattachements au débogueur distant à partir de Qodly | @@ -92,6 +95,7 @@ Certaines données sont également collectées à intervalles réguliers. | isEncrypted | Boolean | Vrai si le fichier de données est chiffré | | isEngined | Boolean | True si l'application est fusionnée avec 4D Volume Desktop | | isProjectMode | Boolean | True si l'application est un projet | +| isShadowCopyActivated | Boolean | True if the Volume Shadow Copy feature is enabled (Windows only | | LDAPLogin | Number | Nombre d'appels à la fonction `LDAP LOGIN` | | license.sffPrimaryKey | Number | Numéro de produit du serveur principal | | machine.CPU | Text | Nom, type et vitesse du processeur | @@ -102,6 +106,7 @@ Certaines données sont également collectées à intervalles réguliers. | maximumUsedPhysicalMemory | Number | Utilisation maximale de la mémoire physique | | maximumUsedVirtualMemory | Number | Utilisation maximale de la mémoire virtuelle | | mobile | Collection | Informations sur les sessions mobiles | +| numberOfCrashes | Number | Number of times 4D has crashed | | numberOfWebServices | Number | Nombre de méthodes publiées en tant que Services Web | | ODBCLogin | Number | Nombre d'appels à `SQL LOGIN` utilisant ODBC | | phpCall | Number | Nombre d'appels à `PHP execute` | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/data-collect.md b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/data-collect.md index 09b0dcd4a17e4c..138d67d5c9de1a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/data-collect.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/data-collect.md @@ -3,7 +3,7 @@ id: data-collect title: データ収集 --- -4D製品を改善し続けるために、実行中の 4D Server アプリケーションの使用状況データを自動的に収集します。 収集されたデータは、ユーザーエクスペリエンスに影響を与えない形で送信されます。 個人データは収集されません。 個人データ保護に関する4D ポリシーの詳細については、[こちらのページ](https://us.4d.com/privacy-policy)を参照してください。 +4D製品を改善し続けるために、実行中の 4D Server アプリケーションの使用状況データを自動的に収集します。収集されたデータは、ユーザーエクスペリエンスに影響を与えない形で送信されます。個人データは収集されません。個人データ保護に関する4D ポリシーの詳細については、[こちらのページ](https://us.4d.com/privacy-policy)を参照してください。 以下の章では次のようなことを説明しています: @@ -37,10 +37,12 @@ title: データ収集 | cacheReadCount | Object | キャッシュの読み出し回数 | | classUsage | Object | 特定の言語クラスのインスタンス数 | | connectionSystems | Collection | ビルド番号 (括弧内) なしのクライアントOSと、それを使用しているクライアント数 | +| databases[].backupSettings | Object | カレントのバックアップ設定値 | | databases[].cacheSize | Number | キャッシュのサイズ (バイト単位) | | databases[].compatibilitySettings | Object | 有効化された互換性設定 | | databases[].externalDatastoreOpened | Number | `Open datastore` への呼び出し回数 | | databases[].fluentUI | Boolean | Windows上でFluent UIを使用 設定がチェックされている場合にはTrue | +| databases[].flushCacheInterval | Number | データキャッシュの各自動保存間の時間として定義された時間間隔 | | databases[].id | Number | データベースID | | databases[].internalDatastoreOpened | Number | 外部サーバーによってデータストアが開かれた回数 | | databases[].maxConcurrent4DClients | Number | 回収期間の中での、(4D クライアントライセンスを使用した)同時4Dクライアントセッションの最大数 | @@ -52,6 +54,7 @@ title: データ収集 | databases[].numberOfKeepRecordSyncInfo | Number | "複製を許可"オプションがチェックされているテーブルの数 | | databases[].numberOfRecordsMax | Number | レコードの総数 | | databases[].numberOfTables | Number | テーブルの総数 | +| databases[].numberOfUncaughtExecutionErrors | Number | 実行エラーがアラートとして表示された回数 | | databases[].qodly.webforms | Number | Qodly Webフォームの数 | | databases[].remoteDebugger4DRemoteAttachments | Number | リモート4D から有効化されているリモートデバッガーの数 | | databases[].remoteDebuggerQodlyAttachments | Number | Qodly から有効化されているリモートデバッガーの数 | @@ -92,6 +95,7 @@ title: データ収集 | isEncrypted | Boolean | データファイルが暗号化されていれば true | | isEngined | Boolean | アプリケーションに 4D Volume Desktop が組み込まれている場合は true | | isProjectMode | Boolean | アプリケーションがプロジェクトの場合は true | +| isShadowCopyActivated | Boolean | ボリュームシャドウコピー機能が有効化されていればTrue (Windows のみ)。 | | LDAPLogin | Number | `LDAP LOGIN` の呼び出し回数 | | license.sffPrimaryKey | Number | サーバーのマスタープロダクト番号 | | machine.CPU | Text | プロセッサーの名前、種類、および速度 | @@ -102,6 +106,7 @@ title: データ収集 | maximumUsedPhysicalMemory | Number | 最大使用した物理メモリ | | maximumUsedVirtualMemory | Number | 最大使用した仮想メモリ | | mobile | Collection | モバイルセッションに関する情報 | +| numberOfCrashes | Number | 4D がクラッシュした回数 | | numberOfWebServices | Number | Webサービスとして公開されているメソッドの数 | | ODBCLogin | Number | ODBC を使用しての `SQL LOGIN`への呼出回数 | | phpCall | Number | `PHP execute` の呼び出し回数 | @@ -140,12 +145,12 @@ title: データ収集 ## 保存先と送信先 -収集されたデータは、4D Server の起動やシャットダウンなどの特定のイベントが発生した際に、データベースごとにテキストファイル(JSON 形式)に書き込まれます。 このファイルは[active 4D folder](../commands/get-4d-folder) 内、つまり以下の場所に保存されます: +収集されたデータは、4D Server の起動やシャットダウンなどの特定のイベントが発生した際に、データベースごとにテキストファイル(JSON 形式)に書き込まれます。このファイルは[active 4D folder](../commands/get-4d-folder) 内、つまり以下の場所に保存されます: - Windows: `Users\[userName]\AppData\Roaming\4D Server` - macOS: `/Users/[userName]/Library/ApplicationSupport/4D Server` -週に一度、ファイルはネットワーク経由で自動的に 4D に送信されます。 その後、ファイルは Active 4D Folder から削除されます。 +週に一度、ファイルはネットワーク経由で自動的に 4D に送信されます。その後、ファイルは Active 4D Folder から削除されます。 ![](../assets/en/Admin/data-collect.png) 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 e5ce387e15ec05..b7078e739ed537 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/components.md @@ -3,9 +3,9 @@ id: components title: 依存関係 --- -4D [プロジェクトアーキテクチャー](../Project/architecture.md) はモジュール式です。 [**コンポーネント**](../../Concepts/components.md) や [**プラグイン**](../Concepts/plug-ins.md) をインストールすることで、4Dプロジェクトに追加機能を持たせることができます。 コンポーネントは4D コードで書かれていますが、プラグインは[あらゆる言語を使用してビルドすることができます](../Extensions/develop-plug-ins.md)。 +4D [プロジェクトアーキテクチャー](../Project/architecture.md) はモジュール式です。[**コンポーネント**](../../Concepts/components.md) や [**プラグイン**](../Concepts/plug-ins.md) をインストールすることで、4Dプロジェクトに追加機能を持たせることができます。コンポーネントは4D コードで書かれていますが、プラグインは[あらゆる言語を使用してビルドすることができます](../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 proposed by 4D or the 4D community on the [**4D Corner platform**](https://corner.4d.com/). +独自の 4Dコンポーネントを [開発](../Extensions/develop-components.md) し、[ビルド](../Desktop/building.md) することもできますし、4D あるいは4Dコミュニティによって公開されているパブリックなコンポーネントを [**4D Corner プラットフォーム**](https://corner.4d.com/) からダウンロードすることもできます。 4D 環境にインストールされると、拡張機能は特別なプロパティを持つ**依存関係** として扱われます。 @@ -14,13 +14,13 @@ You can [develop](../Extensions/develop-components.md) and [build](../Desktop/bu コンポーネントは、インタープリターまたは [コンパイル済み](./compiler.md#compile-components) のものが使えます。 - インタープリターモードで動作する 4Dプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 -- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 +- コンパイルモードで実行される 4Dプロジェクトでは、インタープリターのコンポーネントを使用できません。この場合、コンパイル済みコンポーネントのみが利用可能です。 ### パッケージフォルダー コンポーネントのパッケージフォルダー (*MyComponent.4dbase* フォルダー) には以下のものを含めることができます: -- **インタープリター版コンポーネント**の場合: 標準の [Project フォルダー](../Project/architecture.md)。 [プロジェクトの**Components** フォルダー](architecture.md#コンポーネント)にインストールする場合には、パッケージフォルダー名の末尾を **.4dbase** にする必要があります。 +- **インタープリター版コンポーネント**の場合: 標準の [Project フォルダー](../Project/architecture.md)。[プロジェクトの**Components** フォルダー](architecture.md#コンポーネント)にインストールする場合には、パッケージフォルダー名の末尾を **.4dbase** にする必要があります。 - **コンパイル版コンポーネント**の場合: - .4DZ ファイル、*Resources* フォルダー、*Info.plist* ファイルを格納している"Contents" フォルダー推奨されるアーキテクチャー) - *Resources* などの他のフォルダーを格納している.4DZ ファイル。 @@ -37,7 +37,7 @@ You can [develop](../Extensions/develop-components.md) and [build](../Desktop/bu :::note -この章では、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。 他の環境では、コンポーネントの管理は異なります: +この章では、**4D** と **4D Server** 環境でのコンポーネントの使用方法について説明します。他の環境では、コンポーネントの管理は異なります: - [リモートモードの 4D](../Desktop/clientServer.md) では、サーバーがコンポーネントを読み込み、リモートアプリケーションに送信します。 - 統合されたアプリケーションでは、コンポーネントは [ビルドする際に組み込まれます](../Desktop/building.md#プラグインコンポーネントページ)。 @@ -63,7 +63,7 @@ You can [develop](../Extensions/develop-components.md) and [build](../Desktop/bu #### dependencies.json -**dependencies.json** ファイルは、4Dプロジェクトに必要なすべてのコンポーネントを宣言します。 このファイルは、4Dプロジェクトフォルダーの **Sources** フォルダーに置く必要があります。例: +**dependencies.json** ファイルは、4Dプロジェクトに必要なすべてのコンポーネントを宣言します。このファイルは、4Dプロジェクトフォルダーの **Sources** フォルダーに置く必要があります。例: ``` /MyProjectRoot/Project/Sources/dependencies.json @@ -76,7 +76,7 @@ You can [develop](../Extensions/develop-components.md) and [build](../Desktop/bu #### environment4d.json -**environment4d.json** ファイルは必須ではありません。 このファイルは、**dependencies.json** ファイル内で宣言された一部またはすべてのコンポーネントのついて、**カスタムパス** を定義するのに使用します。 このファイルは、プロジェクトパッケージフォルダーまたはその親フォルダーのいずれかに保存することができます (ルートまでの任意のレベル)。 +**environment4d.json** ファイルは必須ではありません。このファイルは、**dependencies.json** ファイル内で宣言された一部またはすべてのコンポーネントのついて、**カスタムパス** を定義するのに使用します。このファイルは、プロジェクトパッケージフォルダーまたはその親フォルダーのいずれかに保存することができます (ルートまでの任意のレベル)。 このアーキテクチャーの主な利点は次のとおりです: @@ -169,9 +169,9 @@ flowchart TB パスは、POSIXシンタックスで表します ([POSIXシンタックス](../Concepts/paths#posix-シンタックス) 参照)。 -相対パスは、[`environment4d.json`](#environment4djson) ファイルを基準とした相対パスです。 絶対パスは、ユーザーのマシンにリンクされています。 +相対パスは、[`environment4d.json`](#environment4djson) ファイルを基準とした相対パスです。絶対パスは、ユーザーのマシンにリンクされています。 -コンポーネントアーキテクチャーの柔軟性と移植性のため、ほとんどの場合、相対パスを使用することが **推奨** されます (特に、プロジェクトがソース管理ツールにホストされている場合)。 絶対パスは、1台のマシンと 1人のユーザーに特化したコンポーネントの場合にのみ使用すべきです。 +コンポーネントアーキテクチャーの柔軟性と移植性のため、ほとんどの場合、相対パスを使用することが **推奨** されます (特に、プロジェクトがソース管理ツールにホストされている場合)。絶対パスは、1台のマシンと 1人のユーザーに特化したコンポーネントの場合にのみ使用すべきです。 ### Gitホスティングプラットフォームに保存されたコンポーネント{#components-stored-on-git-hosting-platforms} @@ -188,7 +188,7 @@ GitHub またはGitLab に保存された 4Dコンポーネントを直接参照 #### GitHubリポジトリの設定 1. ZIP形式でコンポーネントファイルを圧縮します。 -2. GitHubリポジトリと同じ名前をこのアーカイブに付けます。 例えば、"my-4D-Component" というリポジトリに対しては、アーカイブは"my-4D-Component.zip" という名前をつけなければなりません。 +2. GitHubリポジトリと同じ名前をこのアーカイブに付けます。例えば、"my-4D-Component" というリポジトリに対しては、アーカイブは"my-4D-Component.zip" という名前をつけなければなりません。 - このリポジトリの [GitHubリリース](https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository) にアーカイブを統合します。 @@ -196,7 +196,7 @@ GitHub またはGitLab に保存された 4Dコンポーネントを直接参照 #### GitLabリポジトリの設定 -GitLab リリースは対象の名前とURL のみを保存するため、アップロードされたファイルは含みません。 コンポーネントのzip ファイルをリンクとして提供する必要があります。 +GitLab リリースは対象の名前とURL のみを保存するため、アップロードされたファイルは含みません。コンポーネントのzip ファイルをリンクとして提供する必要があります。 1. コンポーネントのzip ファイルをどこか(外部サーバー、またはを[GitLab パッケージレジストリ](#gitlabパッケージレジストリを使用) (汎用パッケージ)を使用して)アップロードします。 2. コンポーネントに対して[GitLab リリース](https://docs.gitlab.com/user/project/releases/) を作成し、そこにコンポーネントのファイルへのリンクをリリースアセットとして含めます。 @@ -205,7 +205,7 @@ GitLab リリースは対象の名前とURL のみを保存するため、アッ #### Gitlabパッケージレジストリを使用 -[GitLab パッケージレジストリ](https://docs.gitlab.com/user/packages/package_registry/) を使用すると、ファイルをGitLab 自身にファイルをホストすることができるようになります。 主な利点は、認証されたアクセス、安全かつバージョン分けされたURL、またリリースタグにバイナリーを割り当てることができる機能などです。 パッケージレジストリを使用するには: +[GitLab パッケージレジストリ](https://docs.gitlab.com/user/packages/package_registry/) を使用すると、ファイルをGitLab 自身にファイルをホストすることができるようになります。主な利点は、認証されたアクセス、安全かつバージョン分けされたURL、またリリースタグにバイナリーを割り当てることができる機能などです。パッケージレジストリを使用するには: 1. コンポーネントファイルをビルドします(例: *MyComponent.zip*) 2. それをスクリプトを使用して[汎用パッケージリポジトリ](https://docs.gitlab.com/user/packages/generic_packages/) へとアップロードします([GitLab ドキュメンテーション内の例題](https://docs.gitlab.com/user/packages/generic_packages/#publish-a-single-file))。 @@ -242,7 +242,7 @@ GitHub およびGitLab に保存されているコンポーネントは [**depen ``` - (GitLab 依存関係のみ) "host" プロパティを使用してプライベートなGitLab のセルフホストインスタンスを宣言します。 "gitlab" プロパティのみを使用する場合、それはhttps://gitlab.com にホストされているGitLab リポジトリであるということを意味します。 -- "myGitHubComponent1" は宣言とパス定義の両方がされていますが、"myComponent2" は宣言されているだけです。 そのため、[**environment4d.json**](#environment4djson) ファイルにパスを定義する必要があります: +- "myGitHubComponent1" は宣言とパス定義の両方がされていますが、"myComponent2" は宣言されているだけです。そのため、[**environment4d.json**](#environment4djson) ファイルにパスを定義する必要があります: ```json title="environment4d.json" { @@ -258,7 +258,7 @@ GitHub およびGitLab に保存されているコンポーネントは [**depen #### タグとバージョン -GitHubでリリースが作成されると、そこに**タグ** と**バージョン** が関連づけられます。 依存関係マネージャーはこれらの情報を使用してコンポーネントの自動利用可能性を管理します。 +GitHubでリリースが作成されると、そこに**タグ** と**バージョン** が関連づけられます。依存関係マネージャーはこれらの情報を使用してコンポーネントの自動利用可能性を管理します。 :::note @@ -266,7 +266,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ::: -- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。 たとえば: +- **タグ** はリリースを一意に参照するテキストです。 [**dependencies.json** ファイル](#dependenciesjson) および [**environment4d.json**](#environment4djson) ファイルでは、プロジェクトで使用するリリースタグを指定することができます。たとえば: ```json title="dependencies.json" { @@ -279,7 +279,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ } ``` -- リリースは **バージョン** によっても識別されます。 使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。 各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。 タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: +- リリースは **バージョン** によっても識別されます。使用されるバージョニングシステムは一般的に使用されている [*セマンティックバージョニング*](https://regex101.com/r/Ly7O1x/3/) コンセプトに基づいています。各バージョン番号は次のように識別されます: `majorNumber.minorNumber.pathNumber`。タグと同様に、プロジェクトで使用したいコンポーネントのバージョンを指定することができます。例: ```json title="dependencies.json" { @@ -311,15 +311,15 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ タグやバージョンを指定しない場合、4D は自動的に "latest" バージョンを取得します。 -依存関係マネージャーはコンポーネントの更新がGitHub上で利用可能かどうかを定期的にチェックします。 コンポーネントに対して新しいバージョンが利用可能だった場合、[設定に応じて](#依存関係バージョン範囲)依存関係一覧の中で更新マークが表示されます。 +依存関係マネージャーはコンポーネントの更新がGitHub上で利用可能かどうかを定期的にチェックします。コンポーネントに対して新しいバージョンが利用可能だった場合、[設定に応じて](#依存関係バージョン範囲)依存関係一覧の中で更新マークが表示されます。 #### 4Dバージョンタグの命名規則 [**4Dのバージョンに追随する**](#依存関係のバージョン範囲を定義) 依存関係ルールを使用したい場合、コンポーネントのリリースのタグは、特定の命名規則に従う必要があります。 -- **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 @@ -343,7 +343,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ #### 依存関係のローカルキャッシュ -参照された GitHub およびGitLab コンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。 ローカルキャッシュフォルダーは以下の場所に保存されます: +参照された GitHub およびGitLab コンポーネントはローカルのキャッシュフォルダーにダウンロードされ、その後環境に読み込まれます。ローカルキャッシュフォルダーは以下の場所に保存されます: - macOS: `$HOME/Library/Caches//Dependencies` - Windows: `C:\Users\\AppData\Local\\Dependencies` @@ -352,14 +352,14 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ### 依存関係の自動解決 -コンポーネントを([ローカルで](#local-components) 、あるいは [Git ホスティングプラットフォーム経由で](#components-stored-on-git-hosting-platforms))追加またはアップデートした場合、4D コンポーネントが必要とする依存関係を自動的に解決してインストールします。 構成には次の内容が含まれます: +コンポーネントを([ローカルで](#local-components) 、あるいは [Git ホスティングプラットフォーム経由で](#components-stored-on-git-hosting-platforms))追加またはアップデートした場合、4D コンポーネントが必要とする依存関係を自動的に解決してインストールします。構成には次の内容が含まれます: - **一次依存関係**: `dependencies.json` ファイル内で明示的に宣言したコンポーネント - **二次依存関係**: 一次依存関係または他の二次依存関係が必要とするコンポーネントで、自動的に解決され、インストールされます。 -依存関係マネージャーは、それぞれのコンポーネントが持つ `dependencies.json` ファイルを読み込み、可能な限り指定されたバージョンを遵守しつつ全ての必要な依存関係を回帰的にインストールします。 これによって、ネストされた依存関係を手動で特定し、一つずつ追加しなくても済むようになります。 +依存関係マネージャーは、それぞれのコンポーネントが持つ `dependencies.json` ファイルを読み込み、可能な限り指定されたバージョンを遵守しつつ全ての必要な依存関係を回帰的にインストールします。これによって、ネストされた依存関係を手動で特定し、一つずつ追加しなくても済むようになります。 -- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#defining-a-dependency-version-range) を必要とする場合、依存関係マネージャーは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。 一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 +- **コンフリクトの解決**: 複数の依存関係が同じコンポーネントの[異なるバージョン](#defining-a-dependency-version-range) を必要とする場合、依存関係マネージャーは全ての重なったバージョン範囲を満たすバージョンを探し出すことでコンフリクトを自動的に解決しようとします。一次依存関係が二次依存関係とコンフリクトを起こした場合には、一次依存関係が優先されます。 :::note @@ -371,7 +371,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ プロジェクトの [`userPreferences` フォルダー](architecture.md#userpreferencesusername) に `dependency-lock.json` ファイルが作成されます。 -このファイルは、依存関係・パス・url・読み込みエラー・その他の情報などをログに記録します。 これは、コンポーネントの読み込み管理やトラブルシューティングに役立ちます。 +このファイルは、依存関係・パス・url・読み込みエラー・その他の情報などをログに記録します。これは、コンポーネントの読み込み管理やトラブルシューティングに役立ちます。 ## プロジェクトの依存関係をモニタリング {#monitoring-project-dependencies} @@ -385,7 +385,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ - 4D Server では、**ウインドウ/プロジェクト依存関係** メニューアイテムを選択します。
    ![dependency-menu-server](../assets/en/Project/dependency-menu-server.png) -依存関係パネルが表示されます。 依存関係は ABC順にソートされます。 +依存関係パネルが表示されます。依存関係は ABC順にソートされます。 ![dependency](../assets/en/Project/dependency.png) @@ -393,14 +393,14 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ### 依存関係のフィルタリング -デフォルトでは、依存関係マネージャーによって識別されたすべての依存関係は、それらの [ステータス](#依存関係のステータス) に関係なくリストされます。 依存関係パネル上部のタブを選択することで、依存関係のステータスに応じてリストの表示をフィルタリングできます: +デフォルトでは、依存関係マネージャーによって識別されたすべての依存関係は、それらの [ステータス](#依存関係のステータス) に関係なくリストされます。依存関係パネル上部のタブを選択することで、依存関係のステータスに応じてリストの表示をフィルタリングできます: ![dependency-tabs](../assets/en/Project/dependency-tabs.png) - **全て**: 一次依存関係(宣言されたもの)と二次依存関係(自動的に解決されたもの)を含めた全ての依存関係がフラットな一覧ビューで表示します。 -- **宣言済み**: `dependencies.json` ファイルで明示的に宣言された一次依存関係。 このタブを使用することで、あなたが直接追加した依存関係と[自動的に解決された](#自動依存関係解決)を区別するのに役立ちます。 -- **アクティブ**: プロジェクトに読み込まれ、使用できる依存関係。 実際にロードされた *Overloading* な依存関係が含まれます。 *Overloaded* である方の依存関係は、その他の競合している依存関係とともに **コンフリクト** パネルに表示されます。 -- **非アクティブ**: プロジェクトに読み込まれておらず、利用できない依存関係。 このステータスには様々な理由が考えられます: ファイルの欠落、バージョンの非互換性など… +- **宣言済み**: `dependencies.json` ファイルで明示的に宣言された一次依存関係。このタブを使用することで、あなたが直接追加した依存関係と[自動的に解決された](#自動依存関係解決)を区別するのに役立ちます。 +- **アクティブ**: プロジェクトに読み込まれ、使用できる依存関係。実際にロードされた *Overloading* な依存関係が含まれます。 *Overloaded* である方の依存関係は、その他の競合している依存関係とともに **コンフリクト** パネルに表示されます。 +- **非アクティブ**: プロジェクトに読み込まれておらず、利用できない依存関係。このステータスには様々な理由が考えられます: ファイルの欠落、バージョンの非互換性など… - **コンフリクト**: ロードはされたものの、より低い[優先レベル](#優先順位) にある依存関係を少なくとも一つはオーバーロードする依存関係。 *Overloaded* な依存関係も表示されるため、競合の原因を確認し、適切に対処することができます。 ### 二次依存関係 @@ -409,7 +409,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ![recursive-dependency](../assets/en/Project/recursive.png) -二次依存関係の上をホバーすると、それを必要とする親依存関係を示すツールTip が表示されます。 二次依存関係は直接 [削除する](#依存関係の削除) ことはできません。それを必要とする一次依存関係を削除するか編集する必要があります。 +二次依存関係の上をホバーすると、それを必要とする親依存関係を示すツールTip が表示されます。二次依存関係は直接 [削除する](#依存関係の削除) ことはできません。それを必要とする一次依存関係を削除するか編集する必要があります。 ### 依存関係のステータス @@ -442,7 +442,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ### 依存関係のオリジン -依存関係パネルには、各依存関係のオリジン (由来) にかかわらず、プロジェクトの依存関係すべてがリストされます。 依存関係のオリジンは、名前の下に表示されるタグによって判断することができます: +依存関係パネルには、各依存関係のオリジン (由来) にかかわらず、プロジェクトの依存関係すべてがリストされます。依存関係のオリジンは、名前の下に表示されるタグによって判断することができます: ![dependency-origin](../assets/en/Project/dependency-origin.png) @@ -475,11 +475,11 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ### ローカルな依存関係の追加 -ローカルな依存関係を追加するには、パネルのフッターエリアの **[+]** ボタンをクリックします。 次のようなダイアログボックスが表示されます: +ローカルな依存関係を追加するには、パネルのフッターエリアの **[+]** ボタンをクリックします。次のようなダイアログボックスが表示されます: ![dependency-add](../assets/en/Project/dependency-add.png) -**ローカル** タブが選択されていることを確認し、**...** ボタンをクリックします。 標準の "ファイルを開く" ダイアログボックスが表示され、追加するコンポーネントを選択できます。 [**.4DZ**](../Desktop/building.md#コンポーネントをビルド) または [**.4DProject**](architecture.md#applicationname4dproject-ファイル) ファイルを選択できます。 +**ローカル** タブが選択されていることを確認し、**...** ボタンをクリックします。標準の "ファイルを開く" ダイアログボックスが表示され、追加するコンポーネントを選択できます。 [**.4DZ**](../Desktop/building.md#コンポーネントをビルド) または [**.4DProject**](architecture.md#applicationname4dproject-ファイル) ファイルを選択できます。 選択した項目が有効であれば、その名前と場所がダイアログボックスに表示されます。 @@ -490,7 +490,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ プロジェクトに依存関係を追加するには、**追加** をクリックします。 - プロジェクトパッケージフォルダーの隣 (デフォルトの場所) にあるコンポーネントを選択すると、[**dependencies.json**](#dependenciesjson)ファイル内で宣言されます。 -- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。 依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 +- プロジェクトのパッケージフォルダーの隣にないコンポーネントを選択した場合、そのコンポーネントは [**dependencies.json**](#dependenciesjson) ファイルで宣言され、そのパスも [**environment4d.json**](#environment4djson) ファイルで宣言されます (注記参照)。依存関係パネルでは、[相対パスまたは絶対パス](#相対パス-vs-絶対パス) のどちらを保存するか尋ねられます。 :::note @@ -498,7 +498,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ::: -この依存関係は、[非アクティブな依存関係のリスト](#依存関係のステータス) に **Available after restart** (再起動後に利用可能) というステータスで追加されます。 このコンポーネントはアプリケーションの再起動後にロードされます。 +この依存関係は、[非アクティブな依存関係のリスト](#依存関係のステータス) に **Available after restart** (再起動後に利用可能) というステータスで追加されます。このコンポーネントはアプリケーションの再起動後にロードされます。 ### GitHubまたはGitLab依存関係を追加する @@ -518,7 +518,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ::: -2. 依存関係の GitHub またはGitLab リポジトリのパスを入力します。 例: +2. 依存関係の GitHub またはGitLab リポジトリのパスを入力します。例: - **リポジトリURL** (例: "https://github.com/vdelachaux/UI-with-Classes") - (GitLab のみ) セルフホストインスタンスのプライベートなサーバーのURL (例: "https://git-my-server.com/4d/components/mycomponent") @@ -526,7 +526,7 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ![dependency-add-git-2](../assets/en/Project/dependency-add-git-2.png) -接続が確立されると、入力エリアの右側にアイコン ![dependency-gitlogo](../assets/en/Project/dependency-gitlogo.png) が表示されます。 このアイコンをクリックすると、既定のブラウザーでリポジトリを開くことができます。 +接続が確立されると、入力エリアの右側にアイコン ![dependency-gitlogo](../assets/en/Project/dependency-gitlogo.png) が表示されます。このアイコンをクリックすると、既定のブラウザーでリポジトリを開くことができます。 :::note @@ -534,11 +534,11 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ::: -3. このプロジェクトで使用する[依存関係のバージョン範囲](#タグとバージョン) を定義します。 デフォルトでは"自動更新する(latest)" (GitHub) または "Highest" (GitLab) が選択されており、これは最新のバージョンが自動的に使用されるということを意味します。 +3. このプロジェクトで使用する[依存関係のバージョン範囲](#タグとバージョン) を定義します。デフォルトでは"自動更新する(latest)" (GitHub) または "Highest" (GitLab) が選択されており、これは最新のバージョンが自動的に使用されるということを意味します。 4. プロジェクトに依存関係を追加するには、**追加** ボタンをクリックします。 -依存関係は[**dependencies.json**](#dependenciesjson) ファイル内で宣言され、[無効化依存関係一覧](#dependency-status) 内に、**Available at restart** のステータスで追加されます。 このコンポーネントはアプリケーションの再起動後にロードされます。 +依存関係は[**dependencies.json**](#dependenciesjson) ファイル内で宣言され、[無効化依存関係一覧](#dependency-status) 内に、**Available at restart** のステータスで追加されます。このコンポーネントはアプリケーションの再起動後にロードされます。 #### 依存関係のバージョン範囲を定義 @@ -546,11 +546,11 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ ![dependency-git-tag](../assets/en/Project/dependency-git-tag.png) -- **4D のバージョンに追随する** (デフォルト、推奨されるオプション): 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。 この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。 このオプションは、特に[4D によって開発されたコンポーネント](../Extensions/overview.md#4d-によって開発されたコンポーネント) に対して推奨されます。 +- **4D のバージョンに追随する** (デフォルト、推奨されるオプション): 実行中の4D バージョンと互換性のある最新のコンポーネントリリースをダウンロードします。この依存関係ルールは、コンポーネントのリリースタグが適切な[命名規則](#4dバージョンタグの命名規則) に従っていた場合にのみ使用できます。このオプションは、特に[4D によって開発されたコンポーネント](../Extensions/overview.md#4d-によって開発されたコンポーネント) に対して推奨されます。 - **メジャー更新の手前まで**: [セマンティックバージョニングの範囲](#タグとバージョン)を定義して、更新を次のメジャーバージョンの手前までに制限します。 - **マイナー更新の手前まで**: 上と同様に、更新を次のマイナーバージョンの手前までに制限します。 - **自動更新しない(タグ指定)**: 利用可能なリストから [特定のタグ](#セマンティックバージョン範囲]) を選択するか、手動で入力します。 -- **自動更新する(latest)** (GitHub) あるいは **自動更新する(Highest)** (GitLab): 対応するタグを持ったリリースをダウンロードすることを許可します。これらは通常最新のリリースです。 **警告:** このオプションを使用するのは開発の初期段階では便利かもしれませんが、ベータリリースを含め新しいリリースを自動的に取り込むため、予期せぬアップデートや変更を引き起こす可能性があります。そのため、製品環境や共有プロジェクトでは避けた方が賢明です。 +- **自動更新する(latest)** (GitHub) あるいは **自動更新する(Highest)** (GitLab): 対応するタグを持ったリリースをダウンロードすることを許可します。これらは通常最新のリリースです。**警告:** このオプションを使用するのは開発の初期段階では便利かもしれませんが、ベータリリースを含め新しいリリースを自動的に取り込むため、予期せぬアップデートや変更を引き起こす可能性があります。そのため、製品環境や共有プロジェクトでは避けた方が賢明です。 現在の依存関係バージョンは、依存関係の項目の右側に表示されます: @@ -558,33 +558,33 @@ GitHubでリリースが作成されると、そこに**タグ** と**バージ #### 依存関係バージョン範囲の変更 -一覧に表示された依存関係に対して[バージョン設定](#依存関係のバージョン範囲を定義) を編集することができます: 編集する依存関係を選択し、コンテキストメニューから**依存関係を編集...** を選択して下さい。 "依存関係を編集" ダイアログボックス内にて、依存関係のルールメニューを編集し、**適用** をクリックします。 +一覧に表示された依存関係に対して[バージョン設定](#依存関係のバージョン範囲を定義) を編集することができます: 編集する依存関係を選択し、コンテキストメニューから**依存関係を編集...** を選択して下さい。"依存関係を編集" ダイアログボックス内にて、依存関係のルールメニューを編集し、**適用** をクリックします。 バージョン範囲の変更は、自動アップデート機能を使用しているときに依存関係を特定のバージョン番号にロックしておきたいときに有用です。 -### Using 4D Corner +### 4D Cornerを使用する -The [**4D Corner platform**](https://corner.4d.com/) proposes a comprehensive list of ready-to-use 4D components, proposed from the 4D company or from the 4D community. You can browse or search the list to find any component meeting to your needs. +[**4D Corner プラットフォーム**](https://corner.4d.com/) は、4D 社または4D コミュニティによって公開されたすぐに使える4D コンポーネントの包括的なリストを掲載しています。リストの中を閲覧または検索して、ご要望にあうコンポーネントをお探しください。 ![4d-corner](../assets/en/Project/4d-corner.png) -You can open the [4D Corner platform](https://corner.4d.com/) from the Dependency manager, either in the top of the [Add a dependency window](#adding-a-github-or-gitlab-dependency), or by selecting **Discover more components on 4D Corner...** from the menu at the bottom of the Dependency manager window: +依存関係マネージャーからを開くこともできます。[依存関係を追加ウィンドウ](#githubまたはgitlab依存関係を追加する) のトップから、あるいは依存関係マネージャーウィンドウの下部のメニューから**4D Corner でさらにコンポーネントを探す...** を選択することで開けます。 ![4d-corner-access](../assets/en/Project/4d-corner-access.png) -To install a component from the 4D Corner platform: +4D Corner プラットフォームからコンポーネントをインストールするには、以下のようにします: -1. Click on the "Copy link" button on the top right corner of the component tile: +1. コンポーネントファイルの右上隅の"リンクをコピー"ボタンをクリック: ![copy button](../assets/en/Project/4d-corner-copy.png) -2. Open the Dependency manager and click on the **[+]** button. +2. 依存関係マネージャーを開き、**[+]** ボタンをクリックします。 -The dependency link is automatically added in the address area: +依存関係のリンクがアドレスエリアに自動的に追加されます: ![add dependency](../assets/en/Project/4d-corner-add.png) -3. [Configure the dependency reference](#adding-a-github-or-gitlab-dependency) and click **Add**. +3. [依存関係参照を設定](#githubまたはgitlab依存関係を追加する) し、**追加** をクリックします。 :::tip 関連したblog 記事 @@ -594,7 +594,7 @@ The dependency link is automatically added in the address area: ### 依存関係の更新 -依存関係マネージャーは GitHub 上の更新を統合的に管理する方法を提供します。 以下の機能がサポートされています: +依存関係マネージャーは GitHub 上の更新を統合的に管理する方法を提供します。以下の機能がサポートされています: - 利用可能なバージョンの自動および手動でのチェック - コンポーネントの自動および手動での更新 @@ -603,7 +603,7 @@ The dependency link is automatically added in the address area: #### 新バージョンをチェック -依存関係は、GitHub 上での更新を定期的にチェックされています。 このチェックはバックグラウンドで透過的に行われています。 +依存関係は、GitHub 上での更新を定期的にチェックされています。このチェックはバックグラウンドで透過的に行われています。 :::note @@ -647,16 +647,16 @@ The dependency link is automatically added in the address area: 更新コマンドを選択すると: -- ダイアログボックスが表示され**プロジェクトを再起動する**ことが提示されます。再起動することによって更新された依存関係が直ちに利用可能になります。 通常、更新された依存関係を直ちに有効化するためにプロジェクトを再起動することが推奨されます。 +- ダイアログボックスが表示され**プロジェクトを再起動する**ことが提示されます。再起動することによって更新された依存関係が直ちに利用可能になります。通常、更新された依存関係を直ちに有効化するためにプロジェクトを再起動することが推奨されます。 - **あとで** をクリックすると、更新コマンドはメニューには表示されなくなります。これは次回起動時に更新が予定されるということになります。 #### 自動アップデート 依存関係マネージャーウィンドウの下部の**オプション**メニューから、**自動アップデート** オプションを選択することができます。 -このオプションがチェックされている場合(デフォルトでチェック)、GitHub コンポーネントあるいはGitLab コンポーネントで[コンポーネントバージョン設定](#defining-a-dependency-version-range) に合致している新しいバージョンは、次回プロジェクト起動時に自動的に更新されます。 このオプションは手動で更新を洗濯する必要性を排除することで、日々の依存関係アップデートの管理を容易にします。 +このオプションがチェックされている場合(デフォルトでチェック)、GitHub コンポーネントあるいはGitLab コンポーネントで[コンポーネントバージョン設定](#defining-a-dependency-version-range) に合致している新しいバージョンは、次回プロジェクト起動時に自動的に更新されます。このオプションは手動で更新を洗濯する必要性を排除することで、日々の依存関係アップデートの管理を容易にします。 -このオプションがチェックされていない場合、[コンポーネントバージョン設定](#github依存関係バージョン範囲の定義) に合致している新しいコンポーネントバージョンは、利用可能であることが表示されるに止まり、[手動での更新](#依存関係の更新) を必要とします。 依存関係の更新を正確に監視したい場合には、**自動アップデート** オプションの選択を外します。 +このオプションがチェックされていない場合、[コンポーネントバージョン設定](#github依存関係バージョン範囲の定義) に合致している新しいコンポーネントバージョンは、利用可能であることが表示されるに止まり、[手動での更新](#依存関係の更新) を必要とします。依存関係の更新を正確に監視したい場合には、**自動アップデート** オプションの選択を外します。 ### アクセストークンの提供 @@ -683,28 +683,28 @@ GitHub またはGitLab アクセストークンを提供するには、次のい #### トークンの編集 -パーソナルアクセストークンはホストにつき 1つしか入力できません。 入力したトークンは、その後 **編集** することができます。 +パーソナルアクセストークンはホストにつき 1つしか入力できません。入力したトークンは、その後 **編集** することができます。 提供されたトークンは、[アクティブな4Dフォルダー](../commands/get-4d-folder#active-4d-folder) 内の**github.json** ファイルに保存されます。 ### 依存関係の削除 -依存関係パネルから依存関係を削除するには、対象の依存関係を選択し、パネルの **-** ボタンをクリックするか、コンテキストメニューから **依存関係の削除...** を選択します。 依存関係は複数選択することができ、その場合、操作は選択したすべての依存関係に適用されます。 +依存関係パネルから依存関係を削除するには、対象の依存関係を選択し、パネルの **-** ボタンをクリックするか、コンテキストメニューから **依存関係の削除...** を選択します。依存関係は複数選択することができ、その場合、操作は選択したすべての依存関係に適用されます。 :::note -依存関係パネルを使用して削除できるのは、[**dependencies.json**](#dependenciesjson) ファイルで宣言されている一次依存関係に限られます。 二次依存関係は直接削除することはできません。二次依存関係を削除するには、それを必要とする一次依存関係を削除する必要があります。 選択した依存関係を削除できない場合、**-** ボタンは無効化され、**依存関係の削除...** メニュー項目は非表示になります。 +依存関係パネルを使用して削除できるのは、[**dependencies.json**](#dependenciesjson) ファイルで宣言されている一次依存関係に限られます。二次依存関係は直接削除することはできません。二次依存関係を削除するには、それを必要とする一次依存関係を削除する必要があります。選択した依存関係を削除できない場合、**-** ボタンは無効化され、**依存関係の削除...** メニュー項目は非表示になります。 ::: -確認用のダイアログボックスが表示されます。 依存関係が **environment4d.json** ファイルで宣言されている場合、以下のオプションでそれを削除することができます: +確認用のダイアログボックスが表示されます。依存関係が **environment4d.json** ファイルで宣言されている場合、以下のオプションでそれを削除することができます: ![dependency-remove](../assets/en/Project/remove-comp.png) -ダイアログボックスを確定すると、削除された依存関係の [ステータス](#依存関係のステータス) には "Unloaded after restart" (再起動時にアンロード) フラグが自動的に付きます。 このコンポーネントはアプリケーションの再起動時にアンロードされます。 +ダイアログボックスを確定すると、削除された依存関係の [ステータス](#依存関係のステータス) には "Unloaded after restart" (再起動時にアンロード) フラグが自動的に付きます。このコンポーネントはアプリケーションの再起動時にアンロードされます。 #### 依存関係の使用に関する警告 -プロジェクト内の他の依存関係が必要とする一次依存関係を削除しようとした場合、その依存関係が使用されているという警告が表示されます。 そのまま削除した場合にはそれを必要としている依存関係コンポーネントが正常に動作しなくなる可能性があるため、システムはどの依存関係がそれを必要としているかを表示した上で、削除するかどうかの確認を求めます。 +プロジェクト内の他の依存関係が必要とする一次依存関係を削除しようとした場合、その依存関係が使用されているという警告が表示されます。そのまま削除した場合にはそれを必要としている依存関係コンポーネントが正常に動作しなくなる可能性があるため、システムはどの依存関係がそれを必要としているかを表示した上で、削除するかどうかの確認を求めます。 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 1725ec57b07f3b..d1adb393ce8e11 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/security.md @@ -11,59 +11,57 @@ title: セキュリティページ > これらの設定は、シングルユーザーモードで開かれたプロジェクトデータベースには適用されません。 -#### Design and Runtime Explorer Access +#### デザイン環境やランタイムエクスプローラー -Gives the specified group the ability to enter the Design environment of the database and display the Runtime Explorer. +データベースのデザインモードにアクセスし、ランタイムエクスプローラーを表示する権利を特定のグループに付与します。 注: -- デザインモードへのアクセスグループを設定すると、データ読み込みダイアログの **テーブルを作成** オプションが無効となります。 このダイアログボックスに関する詳細は [ファイルからデータを読み込む](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.ja.html) を参照ください。 +- デザインモードへのアクセスグループを設定すると、データ読み込みダイアログの **テーブルを作成** オプションが無効となります。このダイアログボックスに関する詳細は [ファイルからデータを読み込む](https://doc.4d.com/4Dv20/4D/20.2/Importing-data-from-files.300-6750325.ja.html) を参照ください。 - Designer とAdministrator は常にデザインモードとランタイムエクスプローラーにアクセスできます。 設定されるアクセスグループのメンバーに含められる必要はありません。 ユーザーおよびグループに関する詳細は [ユーザー&グループ](../Users/handling_users_groups.md) の章をご参照ください。 -#### Default User +#### デフォルトユーザ -When a Default User has been set, every user that opens the database or logs onto it has the same access privileges and restrictions defined for this Default User. ユーザー名の入力が不要になるだけでなく、 ユーザー名の入力が不要になるだけでなく、 デフォルトユーザーにパスワードを割り当てていない場合、パスワードダイアログボックスは表示されず、データベースが直接開かれます。 +デフォルトユーザーが設定されると、データベースを開く、あるいはデータベースにログインするすべてのユーザーは、このデフォルトユーザーに定義されたアクセス権と同じ制限を持つことになります。ユーザー名の入力が不要になるだけでなく、ユーザー名の入力が不要になるだけでなく、 デフォルトユーザーにパスワードを割り当てていない場合、パスワードダイアログボックスは表示されず、データベースが直接開かれます。 このオプションを使用することで、完全なデータコントロールシステムを維持しつつ、データベースへのアクセスをシンプルにすることができます。 - デフォルトユーザーにパスワードを割り当てた場合、データベースが開かれるときにダイアログが表示され、パスワードの入力を求められます。 - デフォルトユーザーにパスワードを割り当てていない場合、パスワードダイアログボックスは表示されません。 - **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. これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 + **注意:** "デフォルトユーザー" モードが有効になっているときでも、強制的にユーザー認証ダイアログを表示させることができます。 これはたとえば Administrator や Designer としてログインするために必要となります。これには、データベースを開いたり接続したりする際に **Shift**キーを押したままにします。 -#### Display User List in Password Dialog Box +#### パスワードダイアログにユーザーリストを表示する -If this option is checked, users must choose their name from the list of users and enter their password in the User Identification dialog box. オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。 パスワードダイアログボックスの 2つのバージョンに関する詳細は [アクセスシステムの概要](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.ja.html) を参照ください。 +このオプションが選択されていると、ユーザー認証ダイアログにユーザーリストが表示され、ユーザーはその中から名前を選択し、パスワードを入力することになります。オプションが選択されていない場合、ユーザーは名前とパスワードの両方を入力します。パスワードダイアログボックスの 2つのバージョンに関する詳細は [アクセスシステムの概要](https://doc.4d.com/4Dv20/4D/20.2/Access-system-overview.300-6750353.ja.html) を参照ください。 -#### User List in Alphabetical Order (only available if the previous option is checked) +#### ユーザーリストをABC順に表示する(前のオプションがチェックされている時のみ利用可能) -When this option is checked, the list of users in the password entry dialog box is sorted by alphabetical order. +このオプションがチェックされていると、パスワード入力ダイアログボックスに表示されるユーザーの一覧がアルファベット順に並べ替えられます。 -#### Users can change their password +#### ユーザーは自分のパスワードを変更可能 -When this option is checked, a **Change** button is displayed in the User Identification dialog box. このボタンを使用すると、パスワードを変更するためのダイアログボックスが表示されます (このダイアログに関する詳細は [パスワードアクセスシステムの保守](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.ja.html) の "ユーザーによるパスワードの変更" を参照ください)。 必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。 それには、このオプションの選択を外します。 +このオプションが選択されていると、ユーザー認証ダイアログに **変更** ボタンが表示されます。このボタンを使用すると、パスワードを変更するためのダイアログボックスが表示されます (このダイアログに関する詳細は [パスワードアクセスシステムの保守](https://doc.4d.com/4Dv20/4D/20.2/Ensuring-system-maintenance.300-6750352.ja.html) の "ユーザーによるパスワードの変更" を参照ください)。必要であれば **変更** ボタンを非表示にし、パスワードの変更を禁止することができます。それには、このオプションの選択を外します。 ## オプション -#### Filtering of commands and project methods in the formula editor and in the 4D View Pro and 4D Write Pro documents +#### フォーミュラエディタと4D View Proと4D Write Pro ドキュメントで使用できるメソッドとプロジェクトメソッドの制限 -For security reasons, by default 4D restricts access to the commands, functions and project methods in the [Formula editor](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.en.html) in Application mode or added to multistyle areas (using [`ST INSERT EXPRESSION`](../commands/st-insert-expression)), 4D Write Pro and 4D View Pro documents: only certain 4D functions and project methods that have been explicitly declared using the [`SET ALLOWED METHODS`](../commands/set-allowed-methods) command can be used. 以下のオプションを使用して、部分的あるいは全体的にこのフィルタリングを無効にできます。 +セキュリティのため 4D はデフォルトで、アプリケーションモードの [フォーミュラエディター](https://doc.4d.com/4Dv20/4D/20.2/Formula-editor.200-6750079.ja.html) においてコマンド、関数、プロジェクトメソッドへのアクセスを制限しています。これは、[`ST INSERT EXPRESSION`](../commands/st-insert-expression) コマンドによってマルチスタイルエリアに追加されるフォーミュラエディターの他、4D View Pro および 4D Write Proドキュメントにおいても同様です。[`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドを使用して明示的に許可された 4D 関数やプロジェクトメソッドのみを使用することができます。以下のオプションを使用して、部分的あるいは全体的にこのフィルタリングを無効にできます。 - **すべてのユーザーを制限する** (デフォルトオプション): Designer と Administrator を含むすべてのユーザーに対し、コマンドや関数、プロジェクトメソッドへのアクセスを制限します。 -- **DesignerとAdministratorは制限しない**: このオプションは Designer と Administrator のみに、4Dコマンドやメソッドへの完全なアクセスを与えます。 他のユーザーには制限をかけつつ、管理者に無制限のアクセスを与えたい場合に使用できます。 開発段階では、このモードを使用してすべてのフォーミュラやレポート等を自由にテストできます。 運用時には、一時的にコマンドやメソッドへのアクセスを与えるためなどに使用できます。 これを行うには、コマンドへのフルアクセスが必要なダイアログを呼び出したり印刷処理を開始したりする前に ([`CHANGE CURRENT USER`](../commands/change-current-user) コマンドを使用して) ユーザーを切り替えます。そしてその処理が終了したのちに元のユーザーに戻します。 - **注:** 前のオプションを使用してフルアクセスが有効にされると、このオプションは効果を失います。 +- **DesignerとAdministratorは制限しない**: このオプションは Designer と Administrator のみに、4Dコマンドやメソッドへの完全なアクセスを与えます。他のユーザーには制限をかけつつ、管理者に無制限のアクセスを与えたい場合に使用できます。開発段階では、このモードを使用してすべてのフォーミュラやレポート等を自由にテストできます。運用時には、一時的にコマンドやメソッドへのアクセスを与えるためなどに使用できます。これを行うには、コマンドへのフルアクセスが必要なダイアログを呼び出したり印刷処理を開始したりする前に ([`CHANGE CURRENT USER`](../commands/change-current-user) コマンドを使用して) ユーザーを切り替えます。そしてその処理が終了したのちに元のユーザーに戻します。**注:** 前のオプションを使用してフルアクセスが有効にされると、このオプションは効果を失います。 -- **誰も制限しない**: このオプションはフォーミュラの制御を無効にします。 このオプションが選択されると、ユーザーはすべての 4Dコマンドおよびプラグインコマンド、さらにはプロジェクトメソッドを使用できます (非表示のものを除く)。 - **注意:** このオプションは[`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドよりも優先されます。 このオプションが選択されると、コマンドの効果はなくなります。 +- **誰も制限しない**: このオプションはフォーミュラの制御を無効にします。このオプションが選択されると、ユーザーはすべての 4Dコマンドおよびプラグインコマンド、さらにはプロジェクトメソッドを使用できます (非表示のものを除く)。**注意:** このオプションは[`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドよりも優先されます。このオプションが選択されると、コマンドの効果はなくなります。 -#### Enable User Settings +#### ユーザー設定を有効にする -You need to check this option to be able to display separated dialog boxes for user settings. このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。 詳細は [ユーザー設定](../settings/overview.md#ユーザー設定) を参照ください。 +外部ファイル化したユーザー設定を使用するにはこのオプションを選択します。このオプションが選択されると、設定をおこなうダイアログが最大 3つになります: **ストラクチャー設定**、**ユーザー設定**、そして **データファイル用のユーザー設定** です。詳細は [ユーザー設定](../settings/overview.md#ユーザー設定) を参照ください。 -#### Execute "On Host Database Event" method of the components +#### コンポーネントの "On Host Database Event" メソッドを実行 -The [On Host Database Event database method](../commands/on-host-database-event-database-method) facilitates the initialization and backup phases for 4D components. セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。 そのためにはこのオプションをチェックします。 デフォルトでは、チェックされていません。 +[On Host Database Event database method](../commands/on-host-database-event-database-method) は 4Dコンポーネントの初期化とバックアップフェーズを容易にします。セキュリティ上の理由から、このメソッドの実行はそれぞれのホストデータベースにおいて明示的に許可されなければなりません。そのためにはこのオプションをチェックします。デフォルトでは、チェックされていません。 このオプションがチェックされていると: diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/data-collect.md b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/data-collect.md index c8102a29d60c1d..697b41ebe723f4 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/data-collect.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/data-collect.md @@ -37,10 +37,12 @@ Alguns dados são também recolhidos a intervalos regulares. | cacheReadCount | Object | Número de leituras na cache | | classUsage | Object | Number of instances of certain language classes | | connectionSystems | Collection | SO do cliente sem o número de compilação (entre parêntesis) e número de clientes que o utilizam | +| databases[].backupSettings | Object | Current backup settings values | | databases[].cacheSize | Number | Tamanho da cache em bytes | | databases[].compatibilitySettings | Object | Enabled Compatibility settings | | databases[].externalDatastoreOpened | Number | Número de chamadas para 'Open datastore' | | databases[].fluentUI | Parâmetros | True if Use Fluent UI on Windows setting is checked | +| databases[].flushCacheInterval | Number | Defined time period between each automatic saving of the data cache | | databases[].id | Number | Database ID | | databases[].internalDatastoreOpened | Number | Número de vezes que o armazenamento de dados é aberto por um servidor externo | | databases[].maxConcurrent4DClients | Number | Maximum number of simultaneous 4D Client sessions (using a 4D Client license) over the collection interval | @@ -52,6 +54,7 @@ Alguns dados são também recolhidos a intervalos regulares. | databases[].numberOfKeepRecordSyncInfo | Number | Number of tables with the "Enable Replication" option checked | | databases[].numberOfRecordsMax | Number | Total number of records | | databases[].numberOfTables | Number | Number of tables | +| databases[].numberOfUncaughtExecutionErrors | Number | Number of times an execution error is displayed as an alert | | databases[].qodly.webforms | Number | Número de formulários web Qodly | | databases[].remoteDebugger4DRemoteAttachments | Number | Número de anexos ao depurador remoto de um 4D remoto | | databases[].remoteDebuggerQodlyAttachments | Number | Número de anexos ao depurador remoto da Qodly | @@ -92,6 +95,7 @@ Alguns dados são também recolhidos a intervalos regulares. | isEncrypted | Parâmetros | True se o arquivo de dados estiver criptografado | | isEngined | Parâmetros | Verdadeiro se a aplicação for fundida com o Volume Desktop 4D | | isProjectMode | Parâmetros | Verdadeiro se a aplicação for compilada | +| isShadowCopyActivated | Parâmetros | True if the Volume Shadow Copy feature is enabled (Windows only | | LDAPLogin | Number | Number of calls to `LDAP LOGIN` | | license.sffPrimaryKey | Number | Server master product number | | machine.CPU | Text | Nome, tipo, e velocidade do processador | @@ -102,6 +106,7 @@ Alguns dados são também recolhidos a intervalos regulares. | maximumUsedPhysicalMemory | Number | Utilização máxima da memória física | | maximumUsedVirtualMemory | Number | Utilização máxima da memória virtual | | mobile | Collection | Informação sobre sessões móveis | +| numberOfCrashes | Number | Number of times 4D has crashed | | numberOfWebServices | Number | Number of methods published as Web Services | | ODBCLogin | Number | Number of calls to `SQL LOGIN` using ODBC | | phpCall | Number | Número de chamadas para 'PHP execute' | From 0c2cf9b6cf02a540ce713915349925a374c508c0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 21 Sep 2026 13:52:13 +0200 Subject: [PATCH 55/60] New Crowdin updates (#3434) * updates.md Japanese * collectionclass.md Japanese * directory.md Japanese * ziparchiveclass.md French * overview.md French * overview.md French * overview.md French * zip-create-archive.md French * overview.md French * overview.md French * ziparchiveclass.md Spanish * overview.md Spanish * overview.md Spanish * overview.md Spanish * zip-create-archive.md Spanish * overview.md Spanish * overview.md Spanish * document.md Japanese * entityclass.md Japanese * fileclass.md Japanese * imaptransporterclass.md Japanese * ziparchiveclass.md Japanese * data-types.md Japanese * debuglogfiles.md Japanese * onactivate.md Japanese * onafterkeystroke.md Japanese * onalternativeclick.md Japanese * onbeforedataentry.md Japanese * onclosedetail.md Japanese * oncolumnresize.md Japanese * ondeleteaction.md Japanese * ondragover.md Japanese * onfooterclick.md Japanese * onheaderclick.md Japanese * onloadrecord.md Japanese * onlongclick.md Japanese * onmouseenter.md Japanese * onmouseleave.md Japanese * onmousemove.md Japanese * onpagechange.md Japanese * onresize.md Japanese * onrowmoved.md Japanese * onrowresize.md Japanese * onscroll.md Japanese * onselectionchange.md Japanese * onunload.md Japanese * onvprangechanged.md Japanese * onwindowopeningdenied.md Japanese * overview.md Japanese * overview.md Japanese * overview.md Japanese * zip-create-archive.md Japanese * overview.md Japanese * overview.md Japanese * ziparchiveclass.md Portuguese, Brazilian * overview.md Portuguese, Brazilian * overview.md Portuguese, Brazilian * overview.md Portuguese, Brazilian * zip-create-archive.md Portuguese, Brazilian * overview.md Portuguese, Brazilian * overview.md Portuguese, Brazilian --- .../current/Events/overview.md | 124 +++++++-------- .../version-20/API/ZipArchiveClass.md | 14 +- .../version-20/Events/overview.md | 125 +++++++-------- .../version-21-R3/Events/overview.md | 124 +++++++-------- .../version-21-R4/Events/overview.md | 124 +++++++-------- .../version-21/Events/overview.md | 129 +++++++-------- .../version-21/commands/zip-create-archive.md | 16 +- .../current/Events/overview.md | 124 +++++++-------- .../version-20/API/ZipArchiveClass.md | 16 +- .../version-20/Events/overview.md | 125 +++++++-------- .../version-21-R3/Events/overview.md | 124 +++++++-------- .../version-21-R4/Events/overview.md | 124 +++++++-------- .../version-21/Events/overview.md | 129 +++++++-------- .../version-21/commands/zip-create-archive.md | 20 +-- .../current/Events/overview.md | 146 ++++++++--------- .../version-20/API/CollectionClass.md | 146 ++++++++--------- .../version-20/API/Directory.md | 16 +- .../version-20/API/Document.md | 18 +-- .../version-20/API/EntityClass.md | 98 ++++++------ .../version-20/API/FileClass.md | 142 ++++++++--------- .../version-20/API/IMAPTransporterClass.md | 114 +++++++------- .../version-20/API/ZipArchiveClass.md | 32 ++-- .../version-20/Concepts/data-types.md | 8 +- .../version-20/Debugging/debugLogFiles.md | 62 ++++---- .../version-20/Events/onActivate.md | 2 +- .../version-20/Events/onAfterKeystroke.md | 4 +- .../version-20/Events/onAlternativeClick.md | 8 +- .../version-20/Events/onBeforeDataEntry.md | 2 +- .../version-20/Events/onCloseDetail.md | 2 +- .../version-20/Events/onColumnResize.md | 4 +- .../version-20/Events/onDeleteAction.md | 2 +- .../version-20/Events/onDragOver.md | 8 +- .../version-20/Events/onFooterClick.md | 2 +- .../version-20/Events/onHeaderClick.md | 6 +- .../version-20/Events/onLoadRecord.md | 2 +- .../version-20/Events/onLongClick.md | 4 +- .../version-20/Events/onMouseEnter.md | 2 +- .../version-20/Events/onMouseLeave.md | 2 +- .../version-20/Events/onMouseMove.md | 4 +- .../version-20/Events/onPageChange.md | 4 +- .../version-20/Events/onResize.md | 2 +- .../version-20/Events/onRowMoved.md | 2 +- .../version-20/Events/onRowResize.md | 2 +- .../version-20/Events/onScroll.md | 4 +- .../version-20/Events/onSelectionChange.md | 2 +- .../version-20/Events/onUnload.md | 6 +- .../version-20/Events/onVpRangeChanged.md | 2 +- .../Events/onWindowOpeningDenied.md | 2 +- .../version-20/Events/overview.md | 145 ++++++++--------- .../version-20/Notes/updates.md | 68 ++++---- .../version-21-R3/Events/overview.md | 146 ++++++++--------- .../version-21-R4/Events/overview.md | 146 ++++++++--------- .../version-21/Events/overview.md | 147 +++++++++--------- .../version-21/commands/zip-create-archive.md | 20 +-- .../current/Events/overview.md | 124 +++++++-------- .../version-20/API/ZipArchiveClass.md | 14 +- .../version-20/Events/overview.md | 125 +++++++-------- .../version-21-R3/Events/overview.md | 124 +++++++-------- .../version-21-R4/Events/overview.md | 124 +++++++-------- .../version-21/Events/overview.md | 129 +++++++-------- .../version-21/commands/zip-create-archive.md | 4 +- 61 files changed, 1752 insertions(+), 1744 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Events/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Events/overview.md index 118c302d472f12..648d7fd48c9981 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Events/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Events/overview.md @@ -48,68 +48,68 @@ El número de objetos asociados a un evento depende de la naturaleza del mismo. El número de objetos asociados a un evento depende de la naturaleza del mismo. -| Evento | Método objeto | Método formulario | Objetos | -| ------------------------ | ---------------------------------------------------------------- | ----------------- | ------------------------------- | -| On Load | Sí | Sí | Todos los objetos | -| On Unload | Sí | Sí | Todos los objetos | -| On Validate | Sí | Sí | Todos los objetos | -| On Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Double Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Before Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Edit | Sí | Sí | Objetos involucrados únicamente | -| On Getting Focus | Sí | Sí | Objetos involucrados únicamente | -| On Losing Focus | Sí | Sí | Objetos involucrados únicamente | -| On Activate | Nunca | Sí | Ninguno | -| On Deactivate | Nunca | Sí | Ninguno | -| On Outside Call | Nunca | Sí | Ninguno | -| On Page Change | Nunca | Sí | Ninguno | -| On Begin Drag Over | Sí | Sí | Objetos involucrados únicamente | -| On Drop | Sí | Sí | Objetos involucrados únicamente | -| On Drag Over | Sí | Nunca | Objetos involucrados únicamente | -| On Mouse Enter | Sí | Sí | Todos los objetos | -| On Mouse Move | Sí | Sí | Todos los objetos | -| On Mouse Leave | Sí | Sí | Todos los objetos | -| On Mouse Up | Sí | Nunca | Objetos involucrados únicamente | -| On Menu Selected | Nunca | Sí | Ninguno | -| On Bound variable change | Nunca | Sí | Ninguno | -| On Data Change | Sí | Sí | Objetos involucrados únicamente | -| On Plug in Area | Sí | Sí | Objetos involucrados únicamente | -| On Header | Sí | Sí | Todos los objetos | -| On Printing Detail | Sí | Sí | Todos los objetos | -| On Printing Break | Sí | Sí | Todos los objetos | -| On Printing Footer | Sí | Sí | Todos los objetos | -| On Close Box | Nunca | Sí | Ninguno | -| On Display Detail | Sí | Sí | Todos los objetos | -| On Open Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Close Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Resize | Nunca | Sí | Ninguno | -| On Selection Change | Sí | Sí | Objetos involucrados únicamente | -| On Load Record | Nunca | Sí | Ninguno | -| On Timer | Nunca | Sí | Ninguno | -| On Scroll | Sí | Nunca | Objetos involucrados únicamente | -| On Before Data Entry | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Row Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Resize | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Header Click | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Footer Click | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On After Sort | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Long Click | Sí (botón) | Sí | Objetos involucrados únicamente | -| On Alternative Click | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | -| On Expand | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Collapse | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Delete Action | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On URL Resource Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Begin URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Loading Error | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Filtering | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On End URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Open External Link | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Window Opening Denied | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On VP Range Changed | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On VP Ready | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Row Resize | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| Evento | Code | Método objeto | Método formulario | Objetos | +| ------------------------ | ---- | ---------------------------------------------------------------- | ----------------- | ------------------------------- | +| On Activate | 11 | Nunca | Sí | Ninguno | +| On After Edit | 45 | Sí | Sí | Objetos involucrados únicamente | +| On After Keystroke | 28 | Sí | Sí | Objetos involucrados únicamente | +| On After Sort | 30 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Alternative Click | 38 | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | +| On Before Data Entry | 41 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Before Keystroke | 17 | Sí | Sí | Objetos involucrados únicamente | +| On Begin Drag Over | 46 | Sí | Sí | Objetos involucrados únicamente | +| On Begin URL Loading | 47 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Bound variable change | 54 | Nunca | Sí | Ninguno | +| On Clicked | 4 | Sí | Sí | Objetos involucrados únicamente | +| On Close Box | 22 | Nunca | Sí | Ninguno | +| On Close Detail | 26 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Collapse | 44 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Column Moved | 32 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Column Resize | 33 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Data Change | 20 | Sí | Sí | Objetos involucrados únicamente | +| On Deactivate | 12 | Nunca | Sí | Ninguno | +| On Delete Action | 58 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Display Detail | 8 | Sí | Sí | Todos los objetos | +| On Double Clicked | 13 | Sí | Sí | Objetos involucrados únicamente | +| On Drag Over | 21 | Sí | Nunca | Objetos involucrados únicamente | +| On Drop | 16 | Sí | Sí | Objetos involucrados únicamente | +| On End URL Loading | 49 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Expand | 43 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Footer Click | 57 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Getting Focus | 15 | Sí | Sí | Objetos involucrados únicamente | +| On Header | 5 | Sí | Sí | Todos los objetos | +| On Header Click | 42 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Load | 1 | Sí | Sí | Todos los objetos | +| On Load Record | 40 | Nunca | Sí | Ninguno | +| On Long Click | 39 | Sí (botón) | Sí | Objetos involucrados únicamente | +| On Losing Focus | 14 | Sí | Sí | Objetos involucrados únicamente | +| On Menu Selected | 18 | Nunca | Sí | Ninguno | +| On Mouse Enter | 35 | Sí | Sí | Todos los objetos | +| On Mouse Leave | 36 | Sí | Sí | Todos los objetos | +| On Mouse Move | 37 | Sí | Sí | Todos los objetos | +| On Mouse Up | 2 | Sí | Nunca | Objetos involucrados únicamente | +| On Open Detail | 25 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Open External Link | 52 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Outside Call | 10 | Nunca | Sí | Ninguno | +| On Page Change | 56 | Nunca | Sí | Ninguno | +| On Plug in Area | 19 | Sí | Sí | Objetos involucrados únicamente | +| On Printing Break | 6 | Sí | Sí | Todos los objetos | +| On Printing Detail | 23 | Sí | Sí | Todos los objetos | +| On Printing Footer | 7 | Sí | Sí | Todos los objetos | +| On Resize | 29 | Nunca | Sí | Ninguno | +| On Row Moved | 34 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Row Resize | 60 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Scroll | 59 | Sí | Nunca | Objetos involucrados únicamente | +| On Selection Change | 31 | Sí | Sí | Objetos involucrados únicamente | +| On Timer | 27 | Nunca | Sí | Ninguno | +| On Unload | 24 | Sí | Sí | Todos los objetos | +| On URL Filtering | 51 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Loading Error | 50 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Resource Loading | 48 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Validate | 3 | Sí | Sí | Todos los objetos | +| On VP Range Changed | 61 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On VP Ready | 9 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Window Opening Denied | 53 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | Tenga siempre en cuenta que, para todo evento, se llama al método de un formulario o de un objeto si se selecciona la correspondiente propiedad del evento para el formulario o los objetos. La ventaja de desactivar los eventos en el entorno de diseño (utilizando la lista de propiedades del editor de formularios) es que puede reducir el número de llamadas a los métodos y, por tanto, optimizar significativamente la velocidad de ejecución de sus formularios. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 3997ee79953635..1ff861bb04b851 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -75,14 +75,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 |
  • `ZIP Compression standard`: reducir la compresión (por defecto)
  • `ZIP Compression LZMA`: compresión LZMA
  • `ZIP Compression XZ`: compresión XZ
  • `ZIP Compression none`: sin compresión
  • | +| Propiedad | Tipo | Descripción | +| ------------ | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| compression | Integer |
  • `ZIP Compression standard`: reducir la compresión (por defecto)
  • `ZIP Compression LZMA`: compresión LZMA
  • `ZIP Compression XZ`: compresión XZ
  • `ZIP Compression none`: sin compresión
  • | | 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 omiten:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | -| encryption | Integer | La encriptación a utilizar si se define una contraseña:
  • `ZIP Encryption AES128`: encriptación AES con una llave de 128 bits.
  • `ZIP Encryption AES192`: encriptación AES con una llave de 192 bits.
  • `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
  • `ZIP Encryption none`: los datos no están encriptados (por defecto si no se define una contraseña)
  • | -| contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | -| Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • PropiedadTipoDescripción
    source4D.File o 4D.FolderFile o Folder
    destinationText(opcional) - Especifica 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. | +| encryption | Integer | La encriptación a utilizar si se define una contraseña:
    • `ZIP Encryption AES128`: encriptación AES con una llave de 128 bits.
    • `ZIP Encryption AES192`: encriptación AES con una llave de 192 bits.
    • `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
    • `ZIP Encryption none`: los datos no están encriptados (por defecto si no se define una contraseña)
    | +| contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | +| Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • PropiedadTipoDescripción
    source4D.File o 4D.FolderFile o Folder
    destinationText(opcional) - Especifica 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` describiendo 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-20/Events/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Events/overview.md index 462b586912af54..8d1ead12039cd1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Events/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Events/overview.md @@ -49,70 +49,71 @@ El número de objetos asociados a un evento depende de la naturaleza del mismo. El número de objetos asociados a un evento depende de la naturaleza del mismo. -| Evento | Método objeto | Método formulario | Objetos | -| ------------------------ | -------------------------------- | ----------------- | ------------------------------- | -| On Load | Sí | Sí | Todos los objetos | -| On Unload | Sí | Sí | Todos los objetos | -| On Validate | Sí | Sí | Todos los objetos | -| On Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Double Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Before Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Edit | Sí | Sí | Objetos involucrados únicamente | -| On Getting Focus | Sí | Sí | Objetos involucrados únicamente | -| On Losing Focus | Sí | Sí | Objetos involucrados únicamente | -| On Activate | Nunca | Sí | Ninguno | -| On Deactivate | Nunca | Sí | Ninguno | -| On Outside Call | Nunca | Sí | Ninguno | -| On Page Change | Nunca | Sí | Ninguno | -| On Begin Drag Over | Sí | Sí | Objetos involucrados únicamente | -| On Drop | Sí | Sí | Objetos involucrados únicamente | -| On Drag Over | Sí | Nunca | Objetos involucrados únicamente | -| On Mouse Enter | Sí | Sí | Todos los objetos | -| On Mouse Move | Sí | Sí | Todos los objetos | -| On Mouse Leave | Sí | Sí | Todos los objetos | -| On Mouse Up | Sí | Nunca | Objetos involucrados únicamente | -| On Menu Selected | Nunca | Sí | Ninguno | -| On Bound variable change | Nunca | Sí | Ninguno | -| On Data Change | Sí | Sí | Objetos involucrados únicamente | -| On Plug in Area | Sí | Sí | Objetos involucrados únicamente | -| On Header | Sí | Sí | Todos los objetos | -| On Printing Detail | Sí | Sí | Todos los objetos | -| On Printing Break | Sí | Sí | Todos los objetos | -| On Printing Footer | Sí | Sí | Todos los objetos | -| On Close Box | Nunca | Sí | Ninguno | -| On Display Detail | Sí | Sí | Todos los objetos | -| On Open Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Close Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Resize | Nunca | Sí | Ninguno | -| On Selection Change | Sí | Sí | Objetos involucrados únicamente | -| On Load Record | Nunca | Sí | Ninguno | -| On Timer | Nunca | Sí | Ninguno | -| On Scroll | Sí | Nunca | Objetos involucrados únicamente | -| On Before Data Entry | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Row Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Resize | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Header Click | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Footer Click | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On After Sort | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Long Click | Sí (botón) | Sí | Objetos involucrados únicamente | -| On Alternative Click | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | -| On Expand | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Collapse | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Delete Action | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On URL Resource Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Begin URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Loading Error | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Filtering | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On End URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Open External Link | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Window Opening Denied | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On VP Range Changed | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On VP Ready | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Row Resize | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| Evento | Code | Método objeto | Método formulario | Objetos | +| ------------------------ | ---- | -------------------------------- | ----------------- | ------------------------------- | +| On Activate | 11 | Nunca | Sí | Ninguno | +| On After Edit | 45 | Sí | Sí | Objetos involucrados únicamente | +| On After Keystroke | 28 | Sí | Sí | Objetos involucrados únicamente | +| On After Sort | 30 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Alternative Click | 38 | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | +| On Before Data Entry | 41 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Before Keystroke | 17 | Sí | Sí | Objetos involucrados únicamente | +| On Begin Drag Over | 46 | Sí | Sí | Objetos involucrados únicamente | +| On Begin URL Loading | 47 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Bound variable change | 54 | Nunca | Sí | Ninguno | +| On Clicked | 4 | Sí | Sí | Objetos involucrados únicamente | +| On Close Box | 22 | Nunca | Sí | Ninguno | +| On Close Detail | 26 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Collapse | 44 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Column Moved | 32 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Column Resize | 33 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Data Change | 20 | Sí | Sí | Objetos involucrados únicamente | +| On Deactivate | 12 | Nunca | Sí | Ninguno | +| On Delete Action | 58 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Display Detail | 8 | Sí | Sí | Todos los objetos | +| On Double Clicked | 13 | Sí | Sí | Objetos involucrados únicamente | +| On Drag Over | 21 | Sí | Nunca | Objetos involucrados únicamente | +| On Drop | 16 | Sí | Sí | Objetos involucrados únicamente | +| On End URL Loading | 49 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Expand | 43 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Footer Click | 57 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Getting Focus | 15 | Sí | Sí | Objetos involucrados únicamente | +| On Header | 5 | Sí | Sí | Todos los objetos | +| On Header Click | 42 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Load | 1 | Sí | Sí | Todos los objetos | +| On Load Record | 40 | Nunca | Sí | Ninguno | +| On Long Click | 39 | Sí (botón) | Sí | Objetos involucrados únicamente | +| On Losing Focus | 14 | Sí | Sí | Objetos involucrados únicamente | +| On Menu Selected | 18 | Nunca | Sí | Ninguno | +| On Mouse Enter | 35 | Sí | Sí | Todos los objetos | +| On Mouse Leave | 36 | Sí | Sí | Todos los objetos | +| On Mouse Move | 37 | Sí | Sí | Todos los objetos | +| On Mouse Up | 2 | Sí | Nunca | Objetos involucrados únicamente | +| On Open Detail | 25 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Open External Link | 52 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Outside Call | 10 | Nunca | Sí | Ninguno | +| On Page Change | 56 | Nunca | Sí | Ninguno | +| On Plug in Area | 19 | Sí | Sí | Objetos involucrados únicamente | +| On Printing Break | 6 | Sí | Sí | Todos los objetos | +| On Printing Detail | 23 | Sí | Sí | Todos los objetos | +| On Printing Footer | 7 | Sí | Sí | Todos los objetos | +| On Resize | 29 | Nunca | Sí | Ninguno | +| On Row Moved | 34 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Row Resize | 60 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Scroll | 59 | Sí | Nunca | Objetos involucrados únicamente | +| On Selection Change | 31 | Sí | Sí | Objetos involucrados únicamente | +| On Timer | 27 | Nunca | Sí | Ninguno | +| On Unload | 24 | Sí | Sí | Todos los objetos | +| On URL Filtering | 51 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Loading Error | 50 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Resource Loading | 48 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Validate | 3 | Sí | Sí | Todos los objetos | +| On VP Range Changed | 61 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On VP Ready | 9 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Window Opening Denied | 53 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | Tenga siempre en cuenta que, para todo evento, se llama al método de un formulario o de un objeto si se selecciona la correspondiente propiedad del evento para el formulario o los objetos. La ventaja de desactivar los eventos en el entorno de diseño (utilizando la lista de propiedades del editor de formularios) es que puede reducir el número de llamadas a los métodos y, por tanto, optimizar significativamente la velocidad de ejecución de sus formularios. > ATENCIÓN: los eventos [On Load](onLoad.md) y [On Unload](onUnload.md) se generan para los objetos si están activados a la vez para los objetos y para el formulario al que pertenecen los objetos. Si los eventos están activados sólo para los objetos, no se producirán; estos dos eventos también deben estar activados a nivel del formulario. + diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md index 118c302d472f12..648d7fd48c9981 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md @@ -48,68 +48,68 @@ El número de objetos asociados a un evento depende de la naturaleza del mismo. El número de objetos asociados a un evento depende de la naturaleza del mismo. -| Evento | Método objeto | Método formulario | Objetos | -| ------------------------ | ---------------------------------------------------------------- | ----------------- | ------------------------------- | -| On Load | Sí | Sí | Todos los objetos | -| On Unload | Sí | Sí | Todos los objetos | -| On Validate | Sí | Sí | Todos los objetos | -| On Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Double Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Before Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Edit | Sí | Sí | Objetos involucrados únicamente | -| On Getting Focus | Sí | Sí | Objetos involucrados únicamente | -| On Losing Focus | Sí | Sí | Objetos involucrados únicamente | -| On Activate | Nunca | Sí | Ninguno | -| On Deactivate | Nunca | Sí | Ninguno | -| On Outside Call | Nunca | Sí | Ninguno | -| On Page Change | Nunca | Sí | Ninguno | -| On Begin Drag Over | Sí | Sí | Objetos involucrados únicamente | -| On Drop | Sí | Sí | Objetos involucrados únicamente | -| On Drag Over | Sí | Nunca | Objetos involucrados únicamente | -| On Mouse Enter | Sí | Sí | Todos los objetos | -| On Mouse Move | Sí | Sí | Todos los objetos | -| On Mouse Leave | Sí | Sí | Todos los objetos | -| On Mouse Up | Sí | Nunca | Objetos involucrados únicamente | -| On Menu Selected | Nunca | Sí | Ninguno | -| On Bound variable change | Nunca | Sí | Ninguno | -| On Data Change | Sí | Sí | Objetos involucrados únicamente | -| On Plug in Area | Sí | Sí | Objetos involucrados únicamente | -| On Header | Sí | Sí | Todos los objetos | -| On Printing Detail | Sí | Sí | Todos los objetos | -| On Printing Break | Sí | Sí | Todos los objetos | -| On Printing Footer | Sí | Sí | Todos los objetos | -| On Close Box | Nunca | Sí | Ninguno | -| On Display Detail | Sí | Sí | Todos los objetos | -| On Open Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Close Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Resize | Nunca | Sí | Ninguno | -| On Selection Change | Sí | Sí | Objetos involucrados únicamente | -| On Load Record | Nunca | Sí | Ninguno | -| On Timer | Nunca | Sí | Ninguno | -| On Scroll | Sí | Nunca | Objetos involucrados únicamente | -| On Before Data Entry | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Row Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Resize | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Header Click | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Footer Click | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On After Sort | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Long Click | Sí (botón) | Sí | Objetos involucrados únicamente | -| On Alternative Click | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | -| On Expand | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Collapse | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Delete Action | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On URL Resource Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Begin URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Loading Error | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Filtering | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On End URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Open External Link | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Window Opening Denied | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On VP Range Changed | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On VP Ready | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Row Resize | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| Evento | Code | Método objeto | Método formulario | Objetos | +| ------------------------ | ---- | ---------------------------------------------------------------- | ----------------- | ------------------------------- | +| On Activate | 11 | Nunca | Sí | Ninguno | +| On After Edit | 45 | Sí | Sí | Objetos involucrados únicamente | +| On After Keystroke | 28 | Sí | Sí | Objetos involucrados únicamente | +| On After Sort | 30 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Alternative Click | 38 | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | +| On Before Data Entry | 41 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Before Keystroke | 17 | Sí | Sí | Objetos involucrados únicamente | +| On Begin Drag Over | 46 | Sí | Sí | Objetos involucrados únicamente | +| On Begin URL Loading | 47 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Bound variable change | 54 | Nunca | Sí | Ninguno | +| On Clicked | 4 | Sí | Sí | Objetos involucrados únicamente | +| On Close Box | 22 | Nunca | Sí | Ninguno | +| On Close Detail | 26 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Collapse | 44 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Column Moved | 32 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Column Resize | 33 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Data Change | 20 | Sí | Sí | Objetos involucrados únicamente | +| On Deactivate | 12 | Nunca | Sí | Ninguno | +| On Delete Action | 58 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Display Detail | 8 | Sí | Sí | Todos los objetos | +| On Double Clicked | 13 | Sí | Sí | Objetos involucrados únicamente | +| On Drag Over | 21 | Sí | Nunca | Objetos involucrados únicamente | +| On Drop | 16 | Sí | Sí | Objetos involucrados únicamente | +| On End URL Loading | 49 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Expand | 43 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Footer Click | 57 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Getting Focus | 15 | Sí | Sí | Objetos involucrados únicamente | +| On Header | 5 | Sí | Sí | Todos los objetos | +| On Header Click | 42 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Load | 1 | Sí | Sí | Todos los objetos | +| On Load Record | 40 | Nunca | Sí | Ninguno | +| On Long Click | 39 | Sí (botón) | Sí | Objetos involucrados únicamente | +| On Losing Focus | 14 | Sí | Sí | Objetos involucrados únicamente | +| On Menu Selected | 18 | Nunca | Sí | Ninguno | +| On Mouse Enter | 35 | Sí | Sí | Todos los objetos | +| On Mouse Leave | 36 | Sí | Sí | Todos los objetos | +| On Mouse Move | 37 | Sí | Sí | Todos los objetos | +| On Mouse Up | 2 | Sí | Nunca | Objetos involucrados únicamente | +| On Open Detail | 25 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Open External Link | 52 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Outside Call | 10 | Nunca | Sí | Ninguno | +| On Page Change | 56 | Nunca | Sí | Ninguno | +| On Plug in Area | 19 | Sí | Sí | Objetos involucrados únicamente | +| On Printing Break | 6 | Sí | Sí | Todos los objetos | +| On Printing Detail | 23 | Sí | Sí | Todos los objetos | +| On Printing Footer | 7 | Sí | Sí | Todos los objetos | +| On Resize | 29 | Nunca | Sí | Ninguno | +| On Row Moved | 34 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Row Resize | 60 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Scroll | 59 | Sí | Nunca | Objetos involucrados únicamente | +| On Selection Change | 31 | Sí | Sí | Objetos involucrados únicamente | +| On Timer | 27 | Nunca | Sí | Ninguno | +| On Unload | 24 | Sí | Sí | Todos los objetos | +| On URL Filtering | 51 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Loading Error | 50 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Resource Loading | 48 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Validate | 3 | Sí | Sí | Todos los objetos | +| On VP Range Changed | 61 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On VP Ready | 9 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Window Opening Denied | 53 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | Tenga siempre en cuenta que, para todo evento, se llama al método de un formulario o de un objeto si se selecciona la correspondiente propiedad del evento para el formulario o los objetos. La ventaja de desactivar los eventos en el entorno de diseño (utilizando la lista de propiedades del editor de formularios) es que puede reducir el número de llamadas a los métodos y, por tanto, optimizar significativamente la velocidad de ejecución de sus formularios. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md index 118c302d472f12..648d7fd48c9981 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md @@ -48,68 +48,68 @@ El número de objetos asociados a un evento depende de la naturaleza del mismo. El número de objetos asociados a un evento depende de la naturaleza del mismo. -| Evento | Método objeto | Método formulario | Objetos | -| ------------------------ | ---------------------------------------------------------------- | ----------------- | ------------------------------- | -| On Load | Sí | Sí | Todos los objetos | -| On Unload | Sí | Sí | Todos los objetos | -| On Validate | Sí | Sí | Todos los objetos | -| On Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Double Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Before Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Edit | Sí | Sí | Objetos involucrados únicamente | -| On Getting Focus | Sí | Sí | Objetos involucrados únicamente | -| On Losing Focus | Sí | Sí | Objetos involucrados únicamente | -| On Activate | Nunca | Sí | Ninguno | -| On Deactivate | Nunca | Sí | Ninguno | -| On Outside Call | Nunca | Sí | Ninguno | -| On Page Change | Nunca | Sí | Ninguno | -| On Begin Drag Over | Sí | Sí | Objetos involucrados únicamente | -| On Drop | Sí | Sí | Objetos involucrados únicamente | -| On Drag Over | Sí | Nunca | Objetos involucrados únicamente | -| On Mouse Enter | Sí | Sí | Todos los objetos | -| On Mouse Move | Sí | Sí | Todos los objetos | -| On Mouse Leave | Sí | Sí | Todos los objetos | -| On Mouse Up | Sí | Nunca | Objetos involucrados únicamente | -| On Menu Selected | Nunca | Sí | Ninguno | -| On Bound variable change | Nunca | Sí | Ninguno | -| On Data Change | Sí | Sí | Objetos involucrados únicamente | -| On Plug in Area | Sí | Sí | Objetos involucrados únicamente | -| On Header | Sí | Sí | Todos los objetos | -| On Printing Detail | Sí | Sí | Todos los objetos | -| On Printing Break | Sí | Sí | Todos los objetos | -| On Printing Footer | Sí | Sí | Todos los objetos | -| On Close Box | Nunca | Sí | Ninguno | -| On Display Detail | Sí | Sí | Todos los objetos | -| On Open Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Close Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Resize | Nunca | Sí | Ninguno | -| On Selection Change | Sí | Sí | Objetos involucrados únicamente | -| On Load Record | Nunca | Sí | Ninguno | -| On Timer | Nunca | Sí | Ninguno | -| On Scroll | Sí | Nunca | Objetos involucrados únicamente | -| On Before Data Entry | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Row Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Resize | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Header Click | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Footer Click | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On After Sort | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Long Click | Sí (botón) | Sí | Objetos involucrados únicamente | -| On Alternative Click | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | -| On Expand | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Collapse | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Delete Action | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On URL Resource Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Begin URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Loading Error | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Filtering | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On End URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Open External Link | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Window Opening Denied | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On VP Range Changed | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On VP Ready | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Row Resize | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| Evento | Code | Método objeto | Método formulario | Objetos | +| ------------------------ | ---- | ---------------------------------------------------------------- | ----------------- | ------------------------------- | +| On Activate | 11 | Nunca | Sí | Ninguno | +| On After Edit | 45 | Sí | Sí | Objetos involucrados únicamente | +| On After Keystroke | 28 | Sí | Sí | Objetos involucrados únicamente | +| On After Sort | 30 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Alternative Click | 38 | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | +| On Before Data Entry | 41 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Before Keystroke | 17 | Sí | Sí | Objetos involucrados únicamente | +| On Begin Drag Over | 46 | Sí | Sí | Objetos involucrados únicamente | +| On Begin URL Loading | 47 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Bound variable change | 54 | Nunca | Sí | Ninguno | +| On Clicked | 4 | Sí | Sí | Objetos involucrados únicamente | +| On Close Box | 22 | Nunca | Sí | Ninguno | +| On Close Detail | 26 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Collapse | 44 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Column Moved | 32 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Column Resize | 33 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Data Change | 20 | Sí | Sí | Objetos involucrados únicamente | +| On Deactivate | 12 | Nunca | Sí | Ninguno | +| On Delete Action | 58 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Display Detail | 8 | Sí | Sí | Todos los objetos | +| On Double Clicked | 13 | Sí | Sí | Objetos involucrados únicamente | +| On Drag Over | 21 | Sí | Nunca | Objetos involucrados únicamente | +| On Drop | 16 | Sí | Sí | Objetos involucrados únicamente | +| On End URL Loading | 49 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Expand | 43 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Footer Click | 57 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Getting Focus | 15 | Sí | Sí | Objetos involucrados únicamente | +| On Header | 5 | Sí | Sí | Todos los objetos | +| On Header Click | 42 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Load | 1 | Sí | Sí | Todos los objetos | +| On Load Record | 40 | Nunca | Sí | Ninguno | +| On Long Click | 39 | Sí (botón) | Sí | Objetos involucrados únicamente | +| On Losing Focus | 14 | Sí | Sí | Objetos involucrados únicamente | +| On Menu Selected | 18 | Nunca | Sí | Ninguno | +| On Mouse Enter | 35 | Sí | Sí | Todos los objetos | +| On Mouse Leave | 36 | Sí | Sí | Todos los objetos | +| On Mouse Move | 37 | Sí | Sí | Todos los objetos | +| On Mouse Up | 2 | Sí | Nunca | Objetos involucrados únicamente | +| On Open Detail | 25 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Open External Link | 52 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Outside Call | 10 | Nunca | Sí | Ninguno | +| On Page Change | 56 | Nunca | Sí | Ninguno | +| On Plug in Area | 19 | Sí | Sí | Objetos involucrados únicamente | +| On Printing Break | 6 | Sí | Sí | Todos los objetos | +| On Printing Detail | 23 | Sí | Sí | Todos los objetos | +| On Printing Footer | 7 | Sí | Sí | Todos los objetos | +| On Resize | 29 | Nunca | Sí | Ninguno | +| On Row Moved | 34 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Row Resize | 60 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Scroll | 59 | Sí | Nunca | Objetos involucrados únicamente | +| On Selection Change | 31 | Sí | Sí | Objetos involucrados únicamente | +| On Timer | 27 | Nunca | Sí | Ninguno | +| On Unload | 24 | Sí | Sí | Todos los objetos | +| On URL Filtering | 51 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Loading Error | 50 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Resource Loading | 48 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Validate | 3 | Sí | Sí | Todos los objetos | +| On VP Range Changed | 61 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On VP Ready | 9 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Window Opening Denied | 53 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | Tenga siempre en cuenta que, para todo evento, se llama al método de un formulario o de un objeto si se selecciona la correspondiente propiedad del evento para el formulario o los objetos. La ventaja de desactivar los eventos en el entorno de diseño (utilizando la lista de propiedades del editor de formularios) es que puede reducir el número de llamadas a los métodos y, por tanto, optimizar significativamente la velocidad de ejecución de sus formularios. diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/overview.md index cd5d6b107e2d73..648d7fd48c9981 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Events/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Events/overview.md @@ -5,7 +5,7 @@ title: Eventos formulario Los eventos formulario son eventos que pueden llevar a la ejecución del método de formulario y/o del o de los métodos objeto de formulario. Los eventos de formulario le permiten controlar el flujo de su aplicación y escribir código que se ejecuta sólo cuando ocurre un evento específico. -En su código, usted controla los eventos utilizando el comando [`FORM Event`](../commands/form-event.md), que devuelve el evento accionado. Por ejemplo: +En su código, usted controla los eventos utilizando el comando [`FORM Event`](../commands/form-event), que devuelve el evento accionado. Por ejemplo: ```4d //code of a button @@ -18,7 +18,7 @@ End if ## Objeto evento -Cada evento es devuelto como un objeto por el comando [`FORM Event`](../commands/form-event.md). Por defecto, contiene las siguientes propiedades: +Cada evento es devuelto como un objeto por el comando [`FORM Event`](../commands/form-event). Por defecto, contiene las siguientes propiedades: | Propiedad | Tipo | Descripción | | ----------- | ------------ | ---------------------------------------------------------------------------------------------------------- | @@ -48,70 +48,71 @@ El número de objetos asociados a un evento depende de la naturaleza del mismo. El número de objetos asociados a un evento depende de la naturaleza del mismo. -| Evento | Método objeto | Método formulario | Objetos | -| ------------------------ | ---------------------------------------------------------------- | ----------------- | ------------------------------- | -| On Load | Sí | Sí | Todos los objetos | -| On Unload | Sí | Sí | Todos los objetos | -| On Validate | Sí | Sí | Todos los objetos | -| On Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Double Clicked | Sí | Sí | Objetos involucrados únicamente | -| On Before Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Keystroke | Sí | Sí | Objetos involucrados únicamente | -| On After Edit | Sí | Sí | Objetos involucrados únicamente | -| On Getting Focus | Sí | Sí | Objetos involucrados únicamente | -| On Losing Focus | Sí | Sí | Objetos involucrados únicamente | -| On Activate | Nunca | Sí | Ninguno | -| On Deactivate | Nunca | Sí | Ninguno | -| On Outside Call | Nunca | Sí | Ninguno | -| On Page Change | Nunca | Sí | Ninguno | -| On Begin Drag Over | Sí | Sí | Objetos involucrados únicamente | -| On Drop | Sí | Sí | Objetos involucrados únicamente | -| On Drag Over | Sí | Nunca | Objetos involucrados únicamente | -| On Mouse Enter | Sí | Sí | Todos los objetos | -| On Mouse Move | Sí | Sí | Todos los objetos | -| On Mouse Leave | Sí | Sí | Todos los objetos | -| On Mouse Up | Sí | Nunca | Objetos involucrados únicamente | -| On Menu Selected | Nunca | Sí | Ninguno | -| On Bound variable change | Nunca | Sí | Ninguno | -| On Data Change | Sí | Sí | Objetos involucrados únicamente | -| On Plug in Area | Sí | Sí | Objetos involucrados únicamente | -| On Header | Sí | Sí | Todos los objetos | -| On Printing Detail | Sí | Sí | Todos los objetos | -| On Printing Break | Sí | Sí | Todos los objetos | -| On Printing Footer | Sí | Sí | Todos los objetos | -| On Close Box | Nunca | Sí | Ninguno | -| On Display Detail | Sí | Sí | Todos los objetos | -| On Open Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Close Detail | Sí (List box) | Sí | Ninguna, excepto los list box | -| On Resize | Nunca | Sí | Ninguno | -| On Selection Change | Sí | Sí | Objetos involucrados únicamente | -| On Load Record | Nunca | Sí | Ninguno | -| On Timer | Nunca | Sí | Ninguno | -| On Scroll | Sí | Nunca | Objetos involucrados únicamente | -| On Before Data Entry | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Row Moved | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Column Resize | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Header Click | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Footer Click | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On After Sort | Sí (List box) | Nunca | Objetos involucrados únicamente | -| On Long Click | Sí (botón) | Sí | Objetos involucrados únicamente | -| On Alternative Click | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | -| On Expand | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Collapse | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On Delete Action | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | -| On URL Resource Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Begin URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Loading Error | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On URL Filtering | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On End URL Loading | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Open External Link | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On Window Opening Denied | Sí (Área Web) | Nunca | Objetos involucrados únicamente | -| On VP Range Changed | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On VP Ready | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | -| On Row Resize | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| Evento | Code | Método objeto | Método formulario | Objetos | +| ------------------------ | ---- | ---------------------------------------------------------------- | ----------------- | ------------------------------- | +| On Activate | 11 | Nunca | Sí | Ninguno | +| On After Edit | 45 | Sí | Sí | Objetos involucrados únicamente | +| On After Keystroke | 28 | Sí | Sí | Objetos involucrados únicamente | +| On After Sort | 30 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Alternative Click | 38 | Sí (Botón y List box) | Nunca | Objetos involucrados únicamente | +| On Before Data Entry | 41 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Before Keystroke | 17 | Sí | Sí | Objetos involucrados únicamente | +| On Begin Drag Over | 46 | Sí | Sí | Objetos involucrados únicamente | +| On Begin URL Loading | 47 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Bound variable change | 54 | Nunca | Sí | Ninguno | +| On Clicked | 4 | Sí | Sí | Objetos involucrados únicamente | +| On Close Box | 22 | Nunca | Sí | Ninguno | +| On Close Detail | 26 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Collapse | 44 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Column Moved | 32 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Column Resize | 33 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Data Change | 20 | Sí | Sí | Objetos involucrados únicamente | +| On Deactivate | 12 | Nunca | Sí | Ninguno | +| On Delete Action | 58 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Display Detail | 8 | Sí | Sí | Todos los objetos | +| On Double Clicked | 13 | Sí | Sí | Objetos involucrados únicamente | +| On Drag Over | 21 | Sí | Nunca | Objetos involucrados únicamente | +| On Drop | 16 | Sí | Sí | Objetos involucrados únicamente | +| On End URL Loading | 49 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Expand | 43 | Sí (Lista jerarq. y list box) | Nunca | Objetos involucrados únicamente | +| On Footer Click | 57 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Getting Focus | 15 | Sí | Sí | Objetos involucrados únicamente | +| On Header | 5 | Sí | Sí | Todos los objetos | +| On Header Click | 42 | Sí (List box y Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Load | 1 | Sí | Sí | Todos los objetos | +| On Load Record | 40 | Nunca | Sí | Ninguno | +| On Long Click | 39 | Sí (botón) | Sí | Objetos involucrados únicamente | +| On Losing Focus | 14 | Sí | Sí | Objetos involucrados únicamente | +| On Menu Selected | 18 | Nunca | Sí | Ninguno | +| On Mouse Enter | 35 | Sí | Sí | Todos los objetos | +| On Mouse Leave | 36 | Sí | Sí | Todos los objetos | +| On Mouse Move | 37 | Sí | Sí | Todos los objetos | +| On Mouse Up | 2 | Sí | Nunca | Objetos involucrados únicamente | +| On Open Detail | 25 | Sí (List box) | Sí | Ninguna, excepto los list box | +| On Open External Link | 52 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Outside Call | 10 | Nunca | Sí | Ninguno | +| On Page Change | 56 | Nunca | Sí | Ninguno | +| On Plug in Area | 19 | Sí | Sí | Objetos involucrados únicamente | +| On Printing Break | 6 | Sí | Sí | Todos los objetos | +| On Printing Detail | 23 | Sí | Sí | Todos los objetos | +| On Printing Footer | 7 | Sí | Sí | Todos los objetos | +| On Resize | 29 | Nunca | Sí | Ninguno | +| On Row Moved | 34 | Sí (List box) | Nunca | Objetos involucrados únicamente | +| On Row Resize | 60 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Scroll | 59 | Sí | Nunca | Objetos involucrados únicamente | +| On Selection Change | 31 | Sí | Sí | Objetos involucrados únicamente | +| On Timer | 27 | Nunca | Sí | Ninguno | +| On Unload | 24 | Sí | Sí | Todos los objetos | +| On URL Filtering | 51 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Loading Error | 50 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On URL Resource Loading | 48 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | +| On Validate | 3 | Sí | Sí | Todos los objetos | +| On VP Range Changed | 61 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On VP Ready | 9 | Sí (Área 4D View Pro) | Nunca | Objetos involucrados únicamente | +| On Window Opening Denied | 53 | Sí (Área Web) | Nunca | Objetos involucrados únicamente | Tenga siempre en cuenta que, para todo evento, se llama al método de un formulario o de un objeto si se selecciona la correspondiente propiedad del evento para el formulario o los objetos. La ventaja de desactivar los eventos en el entorno de diseño (utilizando la lista de propiedades del editor de formularios) es que puede reducir el número de llamadas a los métodos y, por tanto, optimizar significativamente la velocidad de ejecución de sus formularios. > Excepto en los eventos [En carga](onLoad.md) y [En descarga](onUnload.md) (ver más abajo), si la propiedad del evento formulario no está seleccionada para un evento determinado, esto no impide las llamadas a los métodos objetos cuya misma propiedad de eve En otras palabras, la activación o desactivación de un evento a nivel de formulario no tiene ningún efecto sobre las propiedades del evento del objeto. Si los eventos están activados sólo para los objetos, no se producirán; estos dos eventos también deben estar activados a nivel del formulario. + 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 a326c49e8cc41d..fac2fb49c3f3a1 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 @@ -45,14 +45,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 |
  • `ZIP Compression standard`: Compresión Deflate (por defecto)
  • `ZIP Compression LZMA`: Compression LZMA
  • `ZIP Compresión XZ`: Compression XZ
  • `ZIP Compresión`: sin compresión
  • | -| 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:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | -| encryption | Integer | El cifrado a utilizar si se define una contraseña
  • :`ZIP Encryption AES128`: Cifrado AES con clave de 128 bits.
  • `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
  • `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
  • `ZIP Encryption none`: los datos no se encriptan (por defecto si no se define contraseña).
  • | -| contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | -| Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • 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 |
  • `ZIP Compression standard`: Compresión Deflate (por defecto)
  • `ZIP Compression LZMA`: Compression LZMA
  • `ZIP Compresión XZ`: Compression XZ
  • `ZIP Compresión`: sin compresión
  • | +| 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. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
    • `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | +| contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | +| Histórico | Collection |
  • una colección de objetos `4D.File` o `4D.Folder` o
  • una colección de objetos con las siguientes propiedades:
  • 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/Events/overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/Events/overview.md index d4ee3bf70015fe..a53136e95d81c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Events/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Events/overview.md @@ -48,68 +48,68 @@ Le nombre d'objets associés à un événement dépend de la nature de l'événe Le tableau suivant résume la manière dont les méthodes objet et formulaire sont appelées pour chaque type d'événement : -| Evénement | Méthode objet | Méthode formulaire | Objets | -| ------------------------ | ------------------------------------------------------------------ | ------------------ | --------------------------- | -| On Load | Oui | Oui | Tous les objets | -| On Unload | Oui | Oui | Tous les objets | -| On Validate | Oui | Oui | Tous les objets | -| On Clicked | Oui | Oui | Objets concernés uniquement | -| On Double Clicked | Oui | Oui | Objets concernés uniquement | -| On Before Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Edit | Oui | Oui | Objets concernés uniquement | -| On Getting Focus | Oui | Oui | Objets concernés uniquement | -| On Losing Focus | Oui | Oui | Objets concernés uniquement | -| On Activate | Jamais | Oui | Aucun | -| On Deactivate | Jamais | Oui | Aucun | -| On Outside Call | Jamais | Oui | Aucun | -| On Page Change | Jamais | Oui | Aucun | -| On Begin Drag Over | Oui | Oui | Objets concernés uniquement | -| On Drop | Oui | Oui | Objets concernés uniquement | -| On Drag Over | Oui | Jamais | Objets concernés uniquement | -| On Mouse Enter | Oui | Oui | Tous les objets | -| On Mouse Move | Oui | Oui | Tous les objets | -| On Mouse Leave | Oui | Oui | Tous les objets | -| On Mouse Up | Oui | Jamais | Objets concernés uniquement | -| On Menu Selected | Jamais | Oui | Aucun | -| On Bound variable change | Jamais | Oui | Aucun | -| On Data Change | Oui | Oui | Objets concernés uniquement | -| On Plug in Area | Oui | Oui | Objets concernés uniquement | -| On Header | Oui | Oui | Tous les objets | -| On Printing Detail | Oui | Oui | Tous les objets | -| On Printing Break | Oui | Oui | Tous les objets | -| On Printing Footer | Oui | Oui | Tous les objets | -| On Close Box | Jamais | Oui | Aucun | -| On Display Detail | Oui | Oui | Tous les objets | -| On Open Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Close Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Resize | Jamais | Oui | Aucun | -| On Selection Change | Oui | Oui | Objets concernés uniquement | -| On Load Record | Jamais | Oui | Aucun | -| On Timer | Jamais | Oui | Aucun | -| On Scroll | Oui | Jamais | Objets concernés uniquement | -| On Before Data Entry | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Row Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Resize | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Header Click | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Footer Click | Oui (List box) | Jamais | Objets concernés uniquement | -| On After Sort | Oui (List box) | Jamais | Objets concernés uniquement | -| On Long Click | Oui (Bouton) | Oui | Objets concernés uniquement | -| On Alternative Click | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | -| On Expand | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Collapse | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Delete Action | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On URL Resource Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Begin URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Loading Error | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Filtering | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On End URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Open External Link | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Window Opening Denied | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On VP Range Changed | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On VP Ready | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On Row Resize | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| Evénement | Code | Méthode objet | Méthode formulaire | Objets | +| ------------------------ | ---- | ------------------------------------------------------------------ | ------------------ | --------------------------- | +| On Activate | 11 | Jamais | Oui | Aucun | +| On After Edit | 45 | Oui | Oui | Objets concernés uniquement | +| On After Keystroke | 28 | Oui | Oui | Objets concernés uniquement | +| On After Sort | 30 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Alternative Click | 38 | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | +| On Before Data Entry | 41 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Before Keystroke | 17 | Oui | Oui | Objets concernés uniquement | +| On Begin Drag Over | 46 | Oui | Oui | Objets concernés uniquement | +| On Begin URL Loading | 47 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Bound variable change | 54 | Jamais | Oui | Aucun | +| On Clicked | 4 | Oui | Oui | Objets concernés uniquement | +| On Close Box | 22 | Jamais | Oui | Aucun | +| On Close Detail | 26 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Collapse | 44 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Column Moved | 32 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Column Resize | 33 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Data Change | 20 | Oui | Oui | Objets concernés uniquement | +| On Deactivate | 12 | Jamais | Oui | Aucun | +| On Delete Action | 58 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Display Detail | 8 | Oui | Oui | Tous les objets | +| On Double Clicked | 13 | Oui | Oui | Objets concernés uniquement | +| On Drag Over | 21 | Oui | Jamais | Objets concernés uniquement | +| On Drop | 16 | Oui | Oui | Objets concernés uniquement | +| On End URL Loading | 49 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Expand | 43 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Footer Click | 57 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Getting Focus | 15 | Oui | Oui | Objets concernés uniquement | +| On Header | 5 | Oui | Oui | Tous les objets | +| On Header Click | 42 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Load | 1 | Oui | Oui | Tous les objets | +| On Load Record | 40 | Jamais | Oui | Aucun | +| On Long Click | 39 | Oui (Bouton) | Oui | Objets concernés uniquement | +| On Losing Focus | 14 | Oui | Oui | Objets concernés uniquement | +| On Menu Selected | 18 | Jamais | Oui | Aucun | +| On Mouse Enter | 35 | Oui | Oui | Tous les objets | +| On Mouse Leave | 36 | Oui | Oui | Tous les objets | +| On Mouse Move | 37 | Oui | Oui | Tous les objets | +| On Mouse Up | 2 | Oui | Jamais | Objets concernés uniquement | +| On Open Detail | 25 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Open External Link | 52 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Outside Call | 10 | Jamais | Oui | Aucun | +| On Page Change | 56 | Jamais | Oui | Aucun | +| On Plug in Area | 19 | Oui | Oui | Objets concernés uniquement | +| On Printing Break | 6 | Oui | Oui | Tous les objets | +| On Printing Detail | 23 | Oui | Oui | Tous les objets | +| On Printing Footer | 7 | Oui | Oui | Tous les objets | +| On Resize | 29 | Jamais | Oui | Aucun | +| On Row Moved | 34 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Row Resize | 60 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Scroll | 59 | Oui | Jamais | Objets concernés uniquement | +| On Selection Change | 31 | Oui | Oui | Objets concernés uniquement | +| On Timer | 27 | Jamais | Oui | Aucun | +| On Unload | 24 | Oui | Oui | Tous les objets | +| On URL Filtering | 51 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Loading Error | 50 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Resource Loading | 48 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Validate | 3 | Oui | Oui | Tous les objets | +| On VP Range Changed | 61 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On VP Ready | 9 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Window Opening Denied | 53 | Oui (Zone Web) | Jamais | Objets concernés uniquement | Gardez toujours à l'esprit que, pour tout événement, la méthode d'un formulaire ou d'un objet est appelée si la propriété d'événement correspondante est sélectionnée pour le formulaire ou les objets. L'avantage de la désactivation des événements dans l'environnement de développement (à l'aide de la liste des propriétés de l'éditeur de formulaires) est la réduction du nombre d'appels vers des méthodes et par conséquent l'optimisation de la vitesse d'exécution de vos formulaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 86a03dc638078c..c4f3f86731c3ac 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -75,16 +75,16 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que - *zipStructure* : passez un objet décrivant l'objet ZIP archive. Les propriétés suivantes sont disponibles pour définir la structure : -| Propriété | Type | Description | -| ----------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Réduire la compression (par défaut)
  • `ZIP Compression LZMA`: compression LZMA
  • `ZIP Compression XZ`: compression XZ
  • `ZIP Compression none`: Pas de compression
  • | +| Propriété | Type | Description | +| ----------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| compression | Integer |
  • `ZIP Compression standard`: Réduire la compression (par défaut)
  • `ZIP Compression LZMA`: compression LZMA
  • `ZIP Compression XZ`: compression XZ
  • `ZIP Compression none`: Pas de compression
  • | | level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeur par défaut (si omis) :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | -| encryption | Integer | Le chiffrement à utiliser si un mot de passe est défini :
  • `ZIP Encryption AES128`: chiffrement AES à l'aide d'une clé 128 octets.
  • `ZIP Encryption AES192`: chiffrement AES à l'aide d'une clé 192 octets.
  • `ZIP Encryption AES256`: chiffrement AES à l'aide d'une clé 256 octets (par défaut si un mot de passe est défini).
  • `ZIP Encryption none`: les données ne sont pas chiffrées (par défaut si aucun mot de passe n'est défini)
  • | -| password | Text | Un mot de passe à définir si le chiffrement est requis. | -| Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets dont les propriétés sont les suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFile ou Folder
    destinationText(facultatif) - Indiquer un chemin de fichier relatif pour modifier l'organisation du contenu de l'archive
    optionnumber(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser tout le fichier
    | -| callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | +| encryption | Integer | Le chiffrement à utiliser si un mot de passe est défini :
    • `ZIP Encryption AES128`: chiffrement AES à l'aide d'une clé 128 octets.
    • `ZIP Encryption AES192`: chiffrement AES à l'aide d'une clé 192 octets.
    • `ZIP Encryption AES256`: chiffrement AES à l'aide d'une clé 256 octets (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas chiffrées (par défaut si aucun mot de passe n'est défini)
    | +| password | Text | Un mot de passe à définir si le chiffrement est requis. | +| Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets dont les propriétés sont les suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFile ou Folder
    destinationText(facultatif) - Indiquer un chemin de fichier relatif pour modifier l'organisation du contenu de l'archive
    optionnumber(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser tout le fichier
    | +| callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | -Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par n'importe quel logiciel. +Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel. Une fois que l'archive est créée, vous pouvez utiliser la commande [ZIP Read archive](#zip-read-archive) pour y accéder. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/Events/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Events/overview.md index f491fe60298353..e34660f38b97d1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Events/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Events/overview.md @@ -49,70 +49,71 @@ Le nombre d'objets associés à un événement dépend de la nature de l'événe Le tableau suivant résume la manière dont les méthodes objet et formulaire sont appelées pour chaque type d'événement : -| Evénement | Méthode objet | Méthode formulaire | Objets | -| ------------------------ | ---------------------------------- | ------------------ | --------------------------- | -| On Load | Oui | Oui | Tous les objets | -| On Unload | Oui | Oui | Tous les objets | -| On Validate | Oui | Oui | Tous les objets | -| On Clicked | Oui | Oui | Objets concernés uniquement | -| On Double Clicked | Oui | Oui | Objets concernés uniquement | -| On Before Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Edit | Oui | Oui | Objets concernés uniquement | -| On Getting Focus | Oui | Oui | Objets concernés uniquement | -| On Losing Focus | Oui | Oui | Objets concernés uniquement | -| On Activate | Jamais | Oui | Aucun | -| On Deactivate | Jamais | Oui | Aucun | -| On Outside Call | Jamais | Oui | Aucun | -| On Page Change | Jamais | Oui | Aucun | -| On Begin Drag Over | Oui | Oui | Objets concernés uniquement | -| On Drop | Oui | Oui | Objets concernés uniquement | -| On Drag Over | Oui | Jamais | Objets concernés uniquement | -| On Mouse Enter | Oui | Oui | Tous les objets | -| On Mouse Move | Oui | Oui | Tous les objets | -| On Mouse Leave | Oui | Oui | Tous les objets | -| On Mouse Up | Oui | Jamais | Objets concernés uniquement | -| On Menu Selected | Jamais | Oui | Aucun | -| On Bound variable change | Jamais | Oui | Aucun | -| On Data Change | Oui | Oui | Objets concernés uniquement | -| On Plug in Area | Oui | Oui | Objets concernés uniquement | -| On Header | Oui | Oui | Tous les objets | -| On Printing Detail | Oui | Oui | Tous les objets | -| On Printing Break | Oui | Oui | Tous les objets | -| On Printing Footer | Oui | Oui | Tous les objets | -| On Close Box | Jamais | Oui | Aucun | -| On Display Detail | Oui | Oui | Tous les objets | -| On Open Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Close Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Resize | Jamais | Oui | Aucun | -| On Selection Change | Oui | Oui | Objets concernés uniquement | -| On Load Record | Jamais | Oui | Aucun | -| On Timer | Jamais | Oui | Aucun | -| On Scroll | Oui | Jamais | Objets concernés uniquement | -| On Before Data Entry | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Row Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Resize | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Header Click | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Footer Click | Oui (List box) | Jamais | Objets concernés uniquement | -| On After Sort | Oui (List box) | Jamais | Objets concernés uniquement | -| On Long Click | Oui (Bouton) | Oui | Objets concernés uniquement | -| On Alternative Click | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | -| On Expand | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Collapse | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Delete Action | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On URL Resource Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Begin URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Loading Error | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Filtering | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On End URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Open External Link | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Window Opening Denied | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On VP Range Changed | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On VP Ready | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On Row Resize | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| Evénement | Code | Méthode objet | Méthode formulaire | Objets | +| ------------------------ | ---- | ---------------------------------- | ------------------ | --------------------------- | +| On Activate | 11 | Jamais | Oui | Aucun | +| On After Edit | 45 | Oui | Oui | Objets concernés uniquement | +| On After Keystroke | 28 | Oui | Oui | Objets concernés uniquement | +| On After Sort | 30 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Alternative Click | 38 | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | +| On Before Data Entry | 41 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Before Keystroke | 17 | Oui | Oui | Objets concernés uniquement | +| On Begin Drag Over | 46 | Oui | Oui | Objets concernés uniquement | +| On Begin URL Loading | 47 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Bound variable change | 54 | Jamais | Oui | Aucun | +| On Clicked | 4 | Oui | Oui | Objets concernés uniquement | +| On Close Box | 22 | Jamais | Oui | Aucun | +| On Close Detail | 26 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Collapse | 44 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Column Moved | 32 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Column Resize | 33 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Data Change | 20 | Oui | Oui | Objets concernés uniquement | +| On Deactivate | 12 | Jamais | Oui | Aucun | +| On Delete Action | 58 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Display Detail | 8 | Oui | Oui | Tous les objets | +| On Double Clicked | 13 | Oui | Oui | Objets concernés uniquement | +| On Drag Over | 21 | Oui | Jamais | Objets concernés uniquement | +| On Drop | 16 | Oui | Oui | Objets concernés uniquement | +| On End URL Loading | 49 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Expand | 43 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Footer Click | 57 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Getting Focus | 15 | Oui | Oui | Objets concernés uniquement | +| On Header | 5 | Oui | Oui | Tous les objets | +| On Header Click | 42 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Load | 1 | Oui | Oui | Tous les objets | +| On Load Record | 40 | Jamais | Oui | Aucun | +| On Long Click | 39 | Oui (Bouton) | Oui | Objets concernés uniquement | +| On Losing Focus | 14 | Oui | Oui | Objets concernés uniquement | +| On Menu Selected | 18 | Jamais | Oui | Aucun | +| On Mouse Enter | 35 | Oui | Oui | Tous les objets | +| On Mouse Leave | 36 | Oui | Oui | Tous les objets | +| On Mouse Move | 37 | Oui | Oui | Tous les objets | +| On Mouse Up | 2 | Oui | Jamais | Objets concernés uniquement | +| On Open Detail | 25 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Open External Link | 52 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Outside Call | 10 | Jamais | Oui | Aucun | +| On Page Change | 56 | Jamais | Oui | Aucun | +| On Plug in Area | 19 | Oui | Oui | Objets concernés uniquement | +| On Printing Break | 6 | Oui | Oui | Tous les objets | +| On Printing Detail | 23 | Oui | Oui | Tous les objets | +| On Printing Footer | 7 | Oui | Oui | Tous les objets | +| On Resize | 29 | Jamais | Oui | Aucun | +| On Row Moved | 34 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Row Resize | 60 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Scroll | 59 | Oui | Jamais | Objets concernés uniquement | +| On Selection Change | 31 | Oui | Oui | Objets concernés uniquement | +| On Timer | 27 | Jamais | Oui | Aucun | +| On Unload | 24 | Oui | Oui | Tous les objets | +| On URL Filtering | 51 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Loading Error | 50 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Resource Loading | 48 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Validate | 3 | Oui | Oui | Tous les objets | +| On VP Range Changed | 61 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On VP Ready | 9 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Window Opening Denied | 53 | Oui (Zone Web) | Jamais | Objets concernés uniquement | Gardez toujours à l'esprit que, pour tout événement, la méthode d'un formulaire ou d'un objet est appelée si la propriété d'événement correspondante est sélectionnée pour le formulaire ou les objets. L'avantage de la désactivation des événements dans l'environnement de développement (à l'aide de la liste des propriétés de l'éditeur de formulaires) est la réduction du nombre d'appels vers des méthodes et par conséquent l'optimisation de la vitesse d'exécution de vos formulaires. > ATTENTION : Les événements [On Load](onLoad.md) et [On Unload](onUnload.md) sont générés pour les objets s'ils sont activés à la fois pour les objets et pour le formulaire auquel appartiennent les objets. Si les événements sont activés pour les objets uniquement, ils ne se produiront pas; ces deux événements doivent également être activés au niveau du formulaire. + diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md index d4ee3bf70015fe..a53136e95d81c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md @@ -48,68 +48,68 @@ Le nombre d'objets associés à un événement dépend de la nature de l'événe Le tableau suivant résume la manière dont les méthodes objet et formulaire sont appelées pour chaque type d'événement : -| Evénement | Méthode objet | Méthode formulaire | Objets | -| ------------------------ | ------------------------------------------------------------------ | ------------------ | --------------------------- | -| On Load | Oui | Oui | Tous les objets | -| On Unload | Oui | Oui | Tous les objets | -| On Validate | Oui | Oui | Tous les objets | -| On Clicked | Oui | Oui | Objets concernés uniquement | -| On Double Clicked | Oui | Oui | Objets concernés uniquement | -| On Before Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Edit | Oui | Oui | Objets concernés uniquement | -| On Getting Focus | Oui | Oui | Objets concernés uniquement | -| On Losing Focus | Oui | Oui | Objets concernés uniquement | -| On Activate | Jamais | Oui | Aucun | -| On Deactivate | Jamais | Oui | Aucun | -| On Outside Call | Jamais | Oui | Aucun | -| On Page Change | Jamais | Oui | Aucun | -| On Begin Drag Over | Oui | Oui | Objets concernés uniquement | -| On Drop | Oui | Oui | Objets concernés uniquement | -| On Drag Over | Oui | Jamais | Objets concernés uniquement | -| On Mouse Enter | Oui | Oui | Tous les objets | -| On Mouse Move | Oui | Oui | Tous les objets | -| On Mouse Leave | Oui | Oui | Tous les objets | -| On Mouse Up | Oui | Jamais | Objets concernés uniquement | -| On Menu Selected | Jamais | Oui | Aucun | -| On Bound variable change | Jamais | Oui | Aucun | -| On Data Change | Oui | Oui | Objets concernés uniquement | -| On Plug in Area | Oui | Oui | Objets concernés uniquement | -| On Header | Oui | Oui | Tous les objets | -| On Printing Detail | Oui | Oui | Tous les objets | -| On Printing Break | Oui | Oui | Tous les objets | -| On Printing Footer | Oui | Oui | Tous les objets | -| On Close Box | Jamais | Oui | Aucun | -| On Display Detail | Oui | Oui | Tous les objets | -| On Open Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Close Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Resize | Jamais | Oui | Aucun | -| On Selection Change | Oui | Oui | Objets concernés uniquement | -| On Load Record | Jamais | Oui | Aucun | -| On Timer | Jamais | Oui | Aucun | -| On Scroll | Oui | Jamais | Objets concernés uniquement | -| On Before Data Entry | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Row Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Resize | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Header Click | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Footer Click | Oui (List box) | Jamais | Objets concernés uniquement | -| On After Sort | Oui (List box) | Jamais | Objets concernés uniquement | -| On Long Click | Oui (Bouton) | Oui | Objets concernés uniquement | -| On Alternative Click | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | -| On Expand | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Collapse | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Delete Action | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On URL Resource Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Begin URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Loading Error | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Filtering | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On End URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Open External Link | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Window Opening Denied | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On VP Range Changed | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On VP Ready | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On Row Resize | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| Evénement | Code | Méthode objet | Méthode formulaire | Objets | +| ------------------------ | ---- | ------------------------------------------------------------------ | ------------------ | --------------------------- | +| On Activate | 11 | Jamais | Oui | Aucun | +| On After Edit | 45 | Oui | Oui | Objets concernés uniquement | +| On After Keystroke | 28 | Oui | Oui | Objets concernés uniquement | +| On After Sort | 30 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Alternative Click | 38 | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | +| On Before Data Entry | 41 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Before Keystroke | 17 | Oui | Oui | Objets concernés uniquement | +| On Begin Drag Over | 46 | Oui | Oui | Objets concernés uniquement | +| On Begin URL Loading | 47 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Bound variable change | 54 | Jamais | Oui | Aucun | +| On Clicked | 4 | Oui | Oui | Objets concernés uniquement | +| On Close Box | 22 | Jamais | Oui | Aucun | +| On Close Detail | 26 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Collapse | 44 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Column Moved | 32 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Column Resize | 33 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Data Change | 20 | Oui | Oui | Objets concernés uniquement | +| On Deactivate | 12 | Jamais | Oui | Aucun | +| On Delete Action | 58 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Display Detail | 8 | Oui | Oui | Tous les objets | +| On Double Clicked | 13 | Oui | Oui | Objets concernés uniquement | +| On Drag Over | 21 | Oui | Jamais | Objets concernés uniquement | +| On Drop | 16 | Oui | Oui | Objets concernés uniquement | +| On End URL Loading | 49 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Expand | 43 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Footer Click | 57 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Getting Focus | 15 | Oui | Oui | Objets concernés uniquement | +| On Header | 5 | Oui | Oui | Tous les objets | +| On Header Click | 42 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Load | 1 | Oui | Oui | Tous les objets | +| On Load Record | 40 | Jamais | Oui | Aucun | +| On Long Click | 39 | Oui (Bouton) | Oui | Objets concernés uniquement | +| On Losing Focus | 14 | Oui | Oui | Objets concernés uniquement | +| On Menu Selected | 18 | Jamais | Oui | Aucun | +| On Mouse Enter | 35 | Oui | Oui | Tous les objets | +| On Mouse Leave | 36 | Oui | Oui | Tous les objets | +| On Mouse Move | 37 | Oui | Oui | Tous les objets | +| On Mouse Up | 2 | Oui | Jamais | Objets concernés uniquement | +| On Open Detail | 25 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Open External Link | 52 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Outside Call | 10 | Jamais | Oui | Aucun | +| On Page Change | 56 | Jamais | Oui | Aucun | +| On Plug in Area | 19 | Oui | Oui | Objets concernés uniquement | +| On Printing Break | 6 | Oui | Oui | Tous les objets | +| On Printing Detail | 23 | Oui | Oui | Tous les objets | +| On Printing Footer | 7 | Oui | Oui | Tous les objets | +| On Resize | 29 | Jamais | Oui | Aucun | +| On Row Moved | 34 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Row Resize | 60 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Scroll | 59 | Oui | Jamais | Objets concernés uniquement | +| On Selection Change | 31 | Oui | Oui | Objets concernés uniquement | +| On Timer | 27 | Jamais | Oui | Aucun | +| On Unload | 24 | Oui | Oui | Tous les objets | +| On URL Filtering | 51 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Loading Error | 50 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Resource Loading | 48 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Validate | 3 | Oui | Oui | Tous les objets | +| On VP Range Changed | 61 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On VP Ready | 9 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Window Opening Denied | 53 | Oui (Zone Web) | Jamais | Objets concernés uniquement | Gardez toujours à l'esprit que, pour tout événement, la méthode d'un formulaire ou d'un objet est appelée si la propriété d'événement correspondante est sélectionnée pour le formulaire ou les objets. L'avantage de la désactivation des événements dans l'environnement de développement (à l'aide de la liste des propriétés de l'éditeur de formulaires) est la réduction du nombre d'appels vers des méthodes et par conséquent l'optimisation de la vitesse d'exécution de vos formulaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md index d4ee3bf70015fe..a53136e95d81c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md @@ -48,68 +48,68 @@ Le nombre d'objets associés à un événement dépend de la nature de l'événe Le tableau suivant résume la manière dont les méthodes objet et formulaire sont appelées pour chaque type d'événement : -| Evénement | Méthode objet | Méthode formulaire | Objets | -| ------------------------ | ------------------------------------------------------------------ | ------------------ | --------------------------- | -| On Load | Oui | Oui | Tous les objets | -| On Unload | Oui | Oui | Tous les objets | -| On Validate | Oui | Oui | Tous les objets | -| On Clicked | Oui | Oui | Objets concernés uniquement | -| On Double Clicked | Oui | Oui | Objets concernés uniquement | -| On Before Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Edit | Oui | Oui | Objets concernés uniquement | -| On Getting Focus | Oui | Oui | Objets concernés uniquement | -| On Losing Focus | Oui | Oui | Objets concernés uniquement | -| On Activate | Jamais | Oui | Aucun | -| On Deactivate | Jamais | Oui | Aucun | -| On Outside Call | Jamais | Oui | Aucun | -| On Page Change | Jamais | Oui | Aucun | -| On Begin Drag Over | Oui | Oui | Objets concernés uniquement | -| On Drop | Oui | Oui | Objets concernés uniquement | -| On Drag Over | Oui | Jamais | Objets concernés uniquement | -| On Mouse Enter | Oui | Oui | Tous les objets | -| On Mouse Move | Oui | Oui | Tous les objets | -| On Mouse Leave | Oui | Oui | Tous les objets | -| On Mouse Up | Oui | Jamais | Objets concernés uniquement | -| On Menu Selected | Jamais | Oui | Aucun | -| On Bound variable change | Jamais | Oui | Aucun | -| On Data Change | Oui | Oui | Objets concernés uniquement | -| On Plug in Area | Oui | Oui | Objets concernés uniquement | -| On Header | Oui | Oui | Tous les objets | -| On Printing Detail | Oui | Oui | Tous les objets | -| On Printing Break | Oui | Oui | Tous les objets | -| On Printing Footer | Oui | Oui | Tous les objets | -| On Close Box | Jamais | Oui | Aucun | -| On Display Detail | Oui | Oui | Tous les objets | -| On Open Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Close Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Resize | Jamais | Oui | Aucun | -| On Selection Change | Oui | Oui | Objets concernés uniquement | -| On Load Record | Jamais | Oui | Aucun | -| On Timer | Jamais | Oui | Aucun | -| On Scroll | Oui | Jamais | Objets concernés uniquement | -| On Before Data Entry | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Row Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Resize | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Header Click | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Footer Click | Oui (List box) | Jamais | Objets concernés uniquement | -| On After Sort | Oui (List box) | Jamais | Objets concernés uniquement | -| On Long Click | Oui (Bouton) | Oui | Objets concernés uniquement | -| On Alternative Click | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | -| On Expand | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Collapse | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Delete Action | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On URL Resource Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Begin URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Loading Error | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Filtering | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On End URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Open External Link | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Window Opening Denied | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On VP Range Changed | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On VP Ready | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On Row Resize | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| Evénement | Code | Méthode objet | Méthode formulaire | Objets | +| ------------------------ | ---- | ------------------------------------------------------------------ | ------------------ | --------------------------- | +| On Activate | 11 | Jamais | Oui | Aucun | +| On After Edit | 45 | Oui | Oui | Objets concernés uniquement | +| On After Keystroke | 28 | Oui | Oui | Objets concernés uniquement | +| On After Sort | 30 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Alternative Click | 38 | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | +| On Before Data Entry | 41 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Before Keystroke | 17 | Oui | Oui | Objets concernés uniquement | +| On Begin Drag Over | 46 | Oui | Oui | Objets concernés uniquement | +| On Begin URL Loading | 47 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Bound variable change | 54 | Jamais | Oui | Aucun | +| On Clicked | 4 | Oui | Oui | Objets concernés uniquement | +| On Close Box | 22 | Jamais | Oui | Aucun | +| On Close Detail | 26 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Collapse | 44 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Column Moved | 32 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Column Resize | 33 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Data Change | 20 | Oui | Oui | Objets concernés uniquement | +| On Deactivate | 12 | Jamais | Oui | Aucun | +| On Delete Action | 58 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Display Detail | 8 | Oui | Oui | Tous les objets | +| On Double Clicked | 13 | Oui | Oui | Objets concernés uniquement | +| On Drag Over | 21 | Oui | Jamais | Objets concernés uniquement | +| On Drop | 16 | Oui | Oui | Objets concernés uniquement | +| On End URL Loading | 49 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Expand | 43 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Footer Click | 57 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Getting Focus | 15 | Oui | Oui | Objets concernés uniquement | +| On Header | 5 | Oui | Oui | Tous les objets | +| On Header Click | 42 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Load | 1 | Oui | Oui | Tous les objets | +| On Load Record | 40 | Jamais | Oui | Aucun | +| On Long Click | 39 | Oui (Bouton) | Oui | Objets concernés uniquement | +| On Losing Focus | 14 | Oui | Oui | Objets concernés uniquement | +| On Menu Selected | 18 | Jamais | Oui | Aucun | +| On Mouse Enter | 35 | Oui | Oui | Tous les objets | +| On Mouse Leave | 36 | Oui | Oui | Tous les objets | +| On Mouse Move | 37 | Oui | Oui | Tous les objets | +| On Mouse Up | 2 | Oui | Jamais | Objets concernés uniquement | +| On Open Detail | 25 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Open External Link | 52 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Outside Call | 10 | Jamais | Oui | Aucun | +| On Page Change | 56 | Jamais | Oui | Aucun | +| On Plug in Area | 19 | Oui | Oui | Objets concernés uniquement | +| On Printing Break | 6 | Oui | Oui | Tous les objets | +| On Printing Detail | 23 | Oui | Oui | Tous les objets | +| On Printing Footer | 7 | Oui | Oui | Tous les objets | +| On Resize | 29 | Jamais | Oui | Aucun | +| On Row Moved | 34 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Row Resize | 60 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Scroll | 59 | Oui | Jamais | Objets concernés uniquement | +| On Selection Change | 31 | Oui | Oui | Objets concernés uniquement | +| On Timer | 27 | Jamais | Oui | Aucun | +| On Unload | 24 | Oui | Oui | Tous les objets | +| On URL Filtering | 51 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Loading Error | 50 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Resource Loading | 48 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Validate | 3 | Oui | Oui | Tous les objets | +| On VP Range Changed | 61 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On VP Ready | 9 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Window Opening Denied | 53 | Oui (Zone Web) | Jamais | Objets concernés uniquement | Gardez toujours à l'esprit que, pour tout événement, la méthode d'un formulaire ou d'un objet est appelée si la propriété d'événement correspondante est sélectionnée pour le formulaire ou les objets. L'avantage de la désactivation des événements dans l'environnement de développement (à l'aide de la liste des propriétés de l'éditeur de formulaires) est la réduction du nombre d'appels vers des méthodes et par conséquent l'optimisation de la vitesse d'exécution de vos formulaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/overview.md index 43d244be457b0c..a53136e95d81c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Events/overview.md @@ -5,7 +5,7 @@ title: Evénements formulaire Les événements formulaire sont des événements qui peuvent conduire à l'exécution de la méthode de formulaire et/ou de la ou des méthodes objet de formulaire. Les événements de formulaire vous permettent de contrôler le flux de votre application et d'écrire du code qui n'est exécuté que lorsqu'un événement spécifique se produit. -Dans votre code, vous contrôlez les événements à l'aide de la commande [`FORM Event`](../commands/form-event.md), qui renvoie l'événement déclenché. Par exemple : +Dans votre code, vous contrôlez les événements à l'aide de la commande [`FORM Event`](../commands/form-event), qui renvoie l'événement déclenché. Par exemple : ```4d //code d'un bouton @@ -18,7 +18,7 @@ End if ## Objet événement -Chaque événement est renvoyé sous forme d'objet par la commande [`FORM Event`](../commands/form-event.md). Par défaut, il contient les propriétés suivantes : +Chaque événement est renvoyé sous forme d'objet par la commande [`FORM Event`](../commands/form-event). Par défaut, il contient les propriétés suivantes : | Propriété | Type | Description | | ----------- | ----------- | ---------------------------------------------------------------------------------------------------------------- | @@ -48,70 +48,71 @@ Le nombre d'objets associés à un événement dépend de la nature de l'événe Le tableau suivant résume la manière dont les méthodes objet et formulaire sont appelées pour chaque type d'événement : -| Evénement | Méthode objet | Méthode formulaire | Objets | -| ------------------------ | ------------------------------------------------------------------ | ------------------ | --------------------------- | -| On Load | Oui | Oui | Tous les objets | -| On Unload | Oui | Oui | Tous les objets | -| On Validate | Oui | Oui | Tous les objets | -| On Clicked | Oui | Oui | Objets concernés uniquement | -| On Double Clicked | Oui | Oui | Objets concernés uniquement | -| On Before Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Keystroke | Oui | Oui | Objets concernés uniquement | -| On After Edit | Oui | Oui | Objets concernés uniquement | -| On Getting Focus | Oui | Oui | Objets concernés uniquement | -| On Losing Focus | Oui | Oui | Objets concernés uniquement | -| On Activate | Jamais | Oui | Aucun | -| On Deactivate | Jamais | Oui | Aucun | -| On Outside Call | Jamais | Oui | Aucun | -| On Page Change | Jamais | Oui | Aucun | -| On Begin Drag Over | Oui | Oui | Objets concernés uniquement | -| On Drop | Oui | Oui | Objets concernés uniquement | -| On Drag Over | Oui | Jamais | Objets concernés uniquement | -| On Mouse Enter | Oui | Oui | Tous les objets | -| On Mouse Move | Oui | Oui | Tous les objets | -| On Mouse Leave | Oui | Oui | Tous les objets | -| On Mouse Up | Oui | Jamais | Objets concernés uniquement | -| On Menu Selected | Jamais | Oui | Aucun | -| On Bound variable change | Jamais | Oui | Aucun | -| On Data Change | Oui | Oui | Objets concernés uniquement | -| On Plug in Area | Oui | Oui | Objets concernés uniquement | -| On Header | Oui | Oui | Tous les objets | -| On Printing Detail | Oui | Oui | Tous les objets | -| On Printing Break | Oui | Oui | Tous les objets | -| On Printing Footer | Oui | Oui | Tous les objets | -| On Close Box | Jamais | Oui | Aucun | -| On Display Detail | Oui | Oui | Tous les objets | -| On Open Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Close Detail | Oui (List box) | Oui | Aucun, excepté les List box | -| On Resize | Jamais | Oui | Aucun | -| On Selection Change | Oui | Oui | Objets concernés uniquement | -| On Load Record | Jamais | Oui | Aucun | -| On Timer | Jamais | Oui | Aucun | -| On Scroll | Oui | Jamais | Objets concernés uniquement | -| On Before Data Entry | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Row Moved | Oui (List box) | Jamais | Objets concernés uniquement | -| On Column Resize | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Header Click | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | -| On Footer Click | Oui (List box) | Jamais | Objets concernés uniquement | -| On After Sort | Oui (List box) | Jamais | Objets concernés uniquement | -| On Long Click | Oui (Bouton) | Oui | Objets concernés uniquement | -| On Alternative Click | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | -| On Expand | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Collapse | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On Delete Action | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | -| On URL Resource Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Begin URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Loading Error | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On URL Filtering | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On End URL Loading | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Open External Link | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On Window Opening Denied | Oui (Zone Web) | Jamais | Objets concernés uniquement | -| On VP Range Changed | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On VP Ready | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | -| On Row Resize | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| Evénement | Code | Méthode objet | Méthode formulaire | Objets | +| ------------------------ | ---- | ------------------------------------------------------------------ | ------------------ | --------------------------- | +| On Activate | 11 | Jamais | Oui | Aucun | +| On After Edit | 45 | Oui | Oui | Objets concernés uniquement | +| On After Keystroke | 28 | Oui | Oui | Objets concernés uniquement | +| On After Sort | 30 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Alternative Click | 38 | Oui (Bouton et List box) | Jamais | Objets concernés uniquement | +| On Before Data Entry | 41 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Before Keystroke | 17 | Oui | Oui | Objets concernés uniquement | +| On Begin Drag Over | 46 | Oui | Oui | Objets concernés uniquement | +| On Begin URL Loading | 47 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Bound variable change | 54 | Jamais | Oui | Aucun | +| On Clicked | 4 | Oui | Oui | Objets concernés uniquement | +| On Close Box | 22 | Jamais | Oui | Aucun | +| On Close Detail | 26 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Collapse | 44 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Column Moved | 32 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Column Resize | 33 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Data Change | 20 | Oui | Oui | Objets concernés uniquement | +| On Deactivate | 12 | Jamais | Oui | Aucun | +| On Delete Action | 58 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Display Detail | 8 | Oui | Oui | Tous les objets | +| On Double Clicked | 13 | Oui | Oui | Objets concernés uniquement | +| On Drag Over | 21 | Oui | Jamais | Objets concernés uniquement | +| On Drop | 16 | Oui | Oui | Objets concernés uniquement | +| On End URL Loading | 49 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Expand | 43 | Oui (Liste hiérar. et list box) | Jamais | Objets concernés uniquement | +| On Footer Click | 57 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Getting Focus | 15 | Oui | Oui | Objets concernés uniquement | +| On Header | 5 | Oui | Oui | Tous les objets | +| On Header Click | 42 | Oui (List box et Zone 4D View Pro) | Jamais | Objets concernés uniquement | +| On Load | 1 | Oui | Oui | Tous les objets | +| On Load Record | 40 | Jamais | Oui | Aucun | +| On Long Click | 39 | Oui (Bouton) | Oui | Objets concernés uniquement | +| On Losing Focus | 14 | Oui | Oui | Objets concernés uniquement | +| On Menu Selected | 18 | Jamais | Oui | Aucun | +| On Mouse Enter | 35 | Oui | Oui | Tous les objets | +| On Mouse Leave | 36 | Oui | Oui | Tous les objets | +| On Mouse Move | 37 | Oui | Oui | Tous les objets | +| On Mouse Up | 2 | Oui | Jamais | Objets concernés uniquement | +| On Open Detail | 25 | Oui (List box) | Oui | Aucun, excepté les List box | +| On Open External Link | 52 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Outside Call | 10 | Jamais | Oui | Aucun | +| On Page Change | 56 | Jamais | Oui | Aucun | +| On Plug in Area | 19 | Oui | Oui | Objets concernés uniquement | +| On Printing Break | 6 | Oui | Oui | Tous les objets | +| On Printing Detail | 23 | Oui | Oui | Tous les objets | +| On Printing Footer | 7 | Oui | Oui | Tous les objets | +| On Resize | 29 | Jamais | Oui | Aucun | +| On Row Moved | 34 | Oui (List box) | Jamais | Objets concernés uniquement | +| On Row Resize | 60 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Scroll | 59 | Oui | Jamais | Objets concernés uniquement | +| On Selection Change | 31 | Oui | Oui | Objets concernés uniquement | +| On Timer | 27 | Jamais | Oui | Aucun | +| On Unload | 24 | Oui | Oui | Tous les objets | +| On URL Filtering | 51 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Loading Error | 50 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On URL Resource Loading | 48 | Oui (Zone Web) | Jamais | Objets concernés uniquement | +| On Validate | 3 | Oui | Oui | Tous les objets | +| On VP Range Changed | 61 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On VP Ready | 9 | Oui (4D View Pro Area) | Jamais | Objets concernés uniquement | +| On Window Opening Denied | 53 | Oui (Zone Web) | Jamais | Objets concernés uniquement | Gardez toujours à l'esprit que, pour tout événement, la méthode d'un formulaire ou d'un objet est appelée si la propriété d'événement correspondante est sélectionnée pour le formulaire ou les objets. L'avantage de la désactivation des événements dans l'environnement de développement (à l'aide de la liste des propriétés de l'éditeur de formulaires) est la réduction du nombre d'appels vers des méthodes et par conséquent l'optimisation de la vitesse d'exécution de vos formulaires. > ATTENTION : Les événements [On Load](onLoad.md) et [On Unload](onUnload.md) sont générés pour les objets s'ils sont activés à la fois pour les objets et pour le formulaire auquel appartiennent les objets. Si les événements sont activés pour les objets uniquement, ils ne se produiront pas; ces deux événements doivent également être activés au niveau du formulaire. + diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index 843f55389df8a2..5093dab76b92a3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -45,16 +45,16 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que - *zipStructure* : passez un objet décrivant l'objet ZIP archive. Les propriétés suivantes sont disponibles pour définir la structure : -| Propriété | Type | Description | -| ----------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | -| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | -| encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
    • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
    | -| password | Text | Un mot de passe à définir si le chiffrement est requis. | -| files | Collection |
    • une collection d'objets `4D.File` ou `4D.Folder` ou
    • une collection d'objets avec les propriétés suivantes :
    PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnumérique(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | -| callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | - -Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par n'importe quel logiciel. +| Propriété | Type | Description | +| ----------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | +| level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | +| password | Text | Un mot de passe à définir si le chiffrement est requis. | +| Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets avec les propriétés suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFichier ou dossier
    destinationTexte(facultatif) - Spécifie un chemin relatif pour changer l'organisation du contenu de l'archive
    optionnombre(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser l'intégralité du fichier
    | +| callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | + +Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel. Une fois qu'une archive est créée, vous pouvez utiliser la commande [ZIP Read archive] (zip-read-archive.md) pour y accéder. diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/overview.md index deaf17bc306ed8..b2f2cc3162d960 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/overview.md @@ -3,9 +3,9 @@ id: overview title: フォームイベント --- -フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。 フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 +フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 -コードの中では、トリガーされたイベントを返す [`FORM Event`](../commands/form-event) コマンドを使ってイベントを制御します。 例: +コードの中では、トリガーされたイベントを返す [`FORM Event`](../commands/form-event) コマンドを使ってイベントを制御します。例: ```4d // ボタンのコード @@ -18,15 +18,15 @@ End if ## イベントオブジェクト -それぞれのイベントは、[`FORM Event`](../commands/form-event) コマンドによってオブジェクトとして返されます。 デフォルトで、以下のプロパティが含まれています: +それぞれのイベントは、[`FORM Event`](../commands/form-event) コマンドによってオブジェクトとして返されます。デフォルトで、以下のプロパティが含まれています: | プロパティ | 型 | 説明 | | ----------- | ------- | ----------------------------------------------------------------- | | objectName | text | イベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。 | -| code | longint | フォームイベントの数値。 フォームイベントの数値。 `Form event code` によっても返されます。 | +| code | longint | フォームイベントの数値。フォームイベントの数値。 `Form event code` によっても返されます。 | | description | text | フォームイベント名 (例: "On After Edit") | -イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。 特に: +イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。特に: - [リストボックス](FormObjects/listbox-object.md#supported-form-events) および [リストボックス列](FormObjects/listbox-column.md#supported-form-events) は、`columnName` や `isRowSelected` といった、[追加のプロパティ](FormObjects/listbox-object.md#supported-form-events) を返します。 - [4D View Pro エリア](FormObjects/viewProArea_overview.md) は、`sheetName` や `action` といったプロパティを [On After Edit](onAfterEdit.md) イベントオブジェクトに返します。 @@ -38,9 +38,9 @@ End if - まず 4D は、フォーム中のオブジェクトをブラウズし、発生したオブジェクトイベントがプロパティで選択されているすべてのオブジェクトのオブジェクトメソッドを呼び出します。 - 次に、発生したイベントに対応するフォームイベントがフォームのプロパティで選択されていれば、フォームメソッドを呼び出します。 -オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。 おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。 オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。 そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。 つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 +オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 -[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き(後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。 言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 +[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き(後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 特定のイベントに関連するオブジェクトの数は、イベントの性質により異なります。 @@ -48,71 +48,71 @@ End if 以下の表は、それぞれのイベントごとにどのようにオブジェクトメソッドとフォームメソッドが呼ばれるかを概説します: -| イベント | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | -| ------------------------ | ----------------------------------------------- | -------- | ------------ | -| On Load | ◯ | ◯ | すべてのオブジェクト | -| On Unload | ◯ | ◯ | すべてのオブジェクト | -| On Validate | ◯ | ◯ | すべてのオブジェクト | -| On Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Double Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Before Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Edit | ◯ | ◯ | 関係するオブジェクトのみ | -| On Getting Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Losing Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Activate | X | ◯ | なし | -| On Deactivate | X | ◯ | なし | -| On Outside Call | X | ◯ | なし | -| On Page Change | X | ◯ | なし | -| On Begin Drag Over | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drop | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drag Over | ◯ | X | 関係するオブジェクトのみ | -| On Mouse Enter | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Move | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Leave | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Up | ◯ | X | 関係するオブジェクトのみ | -| On Menu Selected | X | ◯ | なし | -| On Bound variable change | X | ◯ | なし | -| On Data Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Plug in Area | ◯ | ◯ | 関係するオブジェクトのみ | -| On Header | ◯ | ◯ | すべてのオブジェクト | -| On Printing Detail | ◯ | ◯ | すべてのオブジェクト | -| On Printing Break | ◯ | ◯ | すべてのオブジェクト | -| On Printing Footer | ◯ | ◯ | すべてのオブジェクト | -| On Close Box | X | ◯ | なし | -| On Display Detail | ◯ | ◯ | すべてのオブジェクト | -| On Open Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Close Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Resize | X | ◯ | なし | -| On Selection Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Load Record | X | ◯ | なし | -| On Timer | X | ◯ | なし | -| On Scroll | ◯ | X | 関係するオブジェクトのみ | -| On Before Data Entry | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Row Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Resize | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Header Click | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Footer Click | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On After Sort | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Long Click | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | -| On Alternative Click | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | -| On Expand | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Collapse | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Delete Action | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On URL Resource Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Begin URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Loading Error | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Filtering | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On End URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Open External Link | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Window Opening Denied | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On VP Range Changed | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On VP Ready | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Row Resize | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | - -イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。 デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 - -> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォーム の両方で有効にされていなければなりません。 オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 +| イベント | コード | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | +| ------------------------ | --- | ----------------------------------------------- | -------- | ------------ | +| On Activate | 11 | X | ◯ | なし | +| On After Edit | 45 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Keystroke | 28 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Sort | 30 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Alternative Click | 38 | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | +| On Before Data Entry | 41 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Before Keystroke | 17 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin Drag Over | 46 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin URL Loading | 47 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Bound variable change | 54 | X | ◯ | なし | +| On Clicked | 4 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Close Box | 22 | X | ◯ | なし | +| On Close Detail | 26 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Collapse | 44 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Column Moved | 32 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Column Resize | 33 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Data Change | 20 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Deactivate | 12 | X | ◯ | なし | +| On Delete Action | 58 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Display Detail | 8 | ◯ | ◯ | すべてのオブジェクト | +| On Double Clicked | 13 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Drag Over | 21 | ◯ | X | 関係するオブジェクトのみ | +| On Drop | 16 | ◯ | ◯ | 関係するオブジェクトのみ | +| On End URL Loading | 49 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Expand | 43 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Footer Click | 57 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Getting Focus | 15 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Header | 5 | ◯ | ◯ | すべてのオブジェクト | +| On Header Click | 42 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Load | 1 | ◯ | ◯ | すべてのオブジェクト | +| On Load Record | 40 | X | ◯ | なし | +| On Long Click | 39 | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | +| On Losing Focus | 14 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Menu Selected | 18 | X | ◯ | なし | +| On Mouse Enter | 35 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Leave | 36 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Move | 37 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Up | 2 | ◯ | X | 関係するオブジェクトのみ | +| On Open Detail | 25 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Open External Link | 52 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Outside Call | 10 | X | ◯ | なし | +| On Page Change | 56 | X | ◯ | なし | +| On Plug in Area | 19 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Printing Break | 6 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Detail | 23 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Footer | 7 | ◯ | ◯ | すべてのオブジェクト | +| On Resize | 29 | X | ◯ | なし | +| On Row Moved | 34 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Row Resize | 60 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Scroll | 59 | ◯ | X | 関係するオブジェクトのみ | +| On Selection Change | 31 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Timer | 27 | X | ◯ | なし | +| On Unload | 24 | ◯ | ◯ | すべてのオブジェクト | +| On URL Filtering | 51 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Loading Error | 50 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Resource Loading | 48 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Validate | 3 | ◯ | ◯ | すべてのオブジェクト | +| On VP Range Changed | 61 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On VP Ready | 9 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Window Opening Denied | 53 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | + +イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 + +> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォーム の両方で有効にされていなければなりません。オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 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 1581c5fc008bfc..e992e71475ff91 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 @@ -104,7 +104,7 @@ Collection クラスは [コレクション](Concepts/dt_collection.md) 型の 任意で、一つ以上の *value* 引数を渡すことで、あらかじめ値の入った新しいコレクションを作成することができます。 -または、あとから代入によって要素を一つずつ追加・編集していくことができます。 例: +または、あとから代入によって要素を一つずつ追加・編集していくことができます。例: ```4d myCol[10]:="My new element" @@ -112,12 +112,12 @@ Collection クラスは [コレクション](Concepts/dt_collection.md) 型の コレクションの最終要素を超える要素番号 (インデックス) を指定した場合、コレクションは自動的にリサイズされ、合い間の要素にはすべて **null** 値が割り当てられらます。 -サポートされている型 (数値、テキスト、日付、ピクチャー、ポインター、オブジェクト、コレクション等) であれば、個数に制限なく値を渡すことができます。 配列とは異なり、コレクションでは異なる型のデータを混ぜることができます。 +サポートされている型 (数値、テキスト、日付、ピクチャー、ポインター、オブジェクト、コレクション等) であれば、個数に制限なく値を渡すことができます。配列とは異なり、コレクションでは異なる型のデータを混ぜることができます。 ただし以下の変換問題については注意する必要があります: * 渡されたポインターは、そのまま保存されます。ポインターは `JSON Stringify` コマンドを使用することで評価されます。 -* 日付は、"dates inside objects" データベース設定に応じて、"yyyy-mm-dd" という日付、または "YYYY-MM-DDTHH:mm:ss.SSSZ" というフォーマットの文字列で保存されます。 コレクションに保存する前に 4D日付をテキストに変換した場合、プログラムはデフォルトでローカルのタイムゾーンを使用します。 このふるまいは `SET DATABASE PARAMETER` コマンドで `Dates inside objects` セレクターを使用することで変更可能です。 +* 日付は、"dates inside objects" データベース設定に応じて、"yyyy-mm-dd" という日付、または "YYYY-MM-DDTHH:mm:ss.SSSZ" というフォーマットの文字列で保存されます。コレクションに保存する前に 4D日付をテキストに変換した場合、プログラムはデフォルトでローカルのタイムゾーンを使用します。このふるまいは `SET DATABASE PARAMETER` コマンドで `Dates inside objects` セレクターを使用することで変更可能です。 * 時間を渡した場合、それはミリ秒の数 (実数) として保存されます。 #### 例題 1 @@ -186,7 +186,7 @@ Collection クラスは [コレクション](Concepts/dt_collection.md) 型の `New shared collection` コマンドは、 空の、あるいは値の入った新規の共有コレクションを作成し、その参照を返します 。 -このコレクションに要素を追加する場合には [`Use...End use`](Concepts/shared.md#useend-use) 構造でくくる必要があり、そうしない場合にはエラーが返されます。ただし、[`push()`](#push) や [`map()`](#map) などの関数を使用して要素を追加する場合は、自動で内部的に *Use...End use* が使用されるため、必要ありません。 ただし、属性の読み取りは [`Use...End use`](Concepts/shared#useend-use) 構造の外側でも可能です。 +このコレクションに要素を追加する場合には [`Use...End use`](Concepts/shared.md#useend-use) 構造でくくる必要があり、そうしない場合にはエラーが返されます。ただし、[`push()`](#push) や [`map()`](#map) などの関数を使用して要素を追加する場合は、自動で内部的に *Use...End use* が使用されるため、必要ありません。ただし、属性の読み取りは [`Use...End use`](Concepts/shared#useend-use) 構造の外側でも可能です。 :::info @@ -200,13 +200,13 @@ Collection クラスは [コレクション](Concepts/dt_collection.md) 型の > `var : Collection` や `C_COLLECTION` ステートメントはコレクション型の変数を宣言しますが、コレクション自体は作成しないという点に注意してください。 -任意で、一つ以上の *value* 引数を渡すことで、あらかじめ値の入った新しい共有コレクションを作成することができます。 または、あとからオブジェクト記法による代入で要素を一つずつ追加・編集していくことができます (例題参照)。 +任意で、一つ以上の *value* 引数を渡すことで、あらかじめ値の入った新しい共有コレクションを作成することができます。または、あとからオブジェクト記法による代入で要素を一つずつ追加・編集していくことができます (例題参照)。 共有コレクションの最終要素を超える要素番号 (インデックス) を指定した場合、共有コレクションは自動的にリサイズされ、合い間の要素にはすべて **null** 値が割り当てられらます。 以下のサポートされる型であれば、いくつでも値を渡すことができます: -* 数値 (実数、倍長整数...)。 数値は常に実数として保存されます。 +* 数値 (実数、倍長整数...)。数値は常に実数として保存されます。 * text * boolean * date @@ -531,22 +531,22 @@ $c2:=$c.concat(6;7;8) //[1,2,3,4,5,6,7,8] 任意の *option* パラメーターには、以下のどちらか (あるいは両方) の定数を渡すことができます: -| option | 説明 | -| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `ck resolve pointers` | オリジナルのコレクションがポインター型の値を格納している場合、デフォルトではコピー先のオブジェクトもポインターを格納します。 しかしながら、`ck resolve pointers` 定数を渡すことで、コピー時にポインターを解決することができます。 この場合、コレクション内の各ポインターはコピー時に解決され、解決済みの値が使用されます。 | -| `ck shared` | 共有コレクションに対して適用された場合でも、`copy()` はデフォルトで通常の (非共有の) コレクションを返します。 共有コレクションを作成するには、`ck shared` 定数を渡します。 この場合には、*groupWith* パラメーターに引数を渡して他の共有オブジェクトまたは共有コレクションに関連づけることもできます (以下参照)。 | +| option | 説明 | +| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ck resolve pointers` | オリジナルのコレクションがポインター型の値を格納している場合、デフォルトではコピー先のオブジェクトもポインターを格納します。しかしながら、`ck resolve pointers` 定数を渡すことで、コピー時にポインターを解決することができます。この場合、コレクション内の各ポインターはコピー時に解決され、解決済みの値が使用されます。 | +| `ck shared` | 共有コレクションに対して適用された場合でも、`copy()` はデフォルトで通常の (非共有の) コレクションを返します。共有コレクションを作成するには、`ck shared` 定数を渡します。この場合には、*groupWith* パラメーターに引数を渡して他の共有オブジェクトまたは共有コレクションに関連づけることもできます (以下参照)。 | *groupWithCol* または *groupWithObj* 引数を渡すと、結果のコレクションを関連づけるコレクションまたはオブジェクトを指定できます。 :::note -データストア、データクラス、およびエンティティオブジェクトはコピーできません。 これらを対象に `.copy()` を呼び出すと、`Null` 値が返されます。 +データストア、データクラス、およびエンティティオブジェクトはコピーできません。これらを対象に `.copy()` を呼び出すと、`Null` 値が返されます。 ::: #### 例題 1 -通常の (非共有の) コレクション *$lastnames * を、共有オブジェクト *$sharedObject* 内にコピーします。 このためには、まず共有コレクション (*$sharedLastnames*) を作成する必要があります。 +通常の (非共有の) コレクション *$lastnames * を、共有オブジェクト *$sharedObject* 内にコピーします。このためには、まず共有コレクション (*$sharedLastnames*) を作成する必要があります。 ```4d var $sharedObject : Object @@ -569,7 +569,7 @@ End use #### 例題 2 -どちらも共有コレクションである *$sharedColl1* と*$sharedColl2* を結合します。 これらは異なる共有グループに所属しているため、直接結合した場合にはエラーが生成されます。 そこで、 *$sharedColl1* のコピーを作成し、*$sharedColl2* をそのコピーの共有グループ先に指定します。 +どちらも共有コレクションである *$sharedColl1* と*$sharedColl2* を結合します。これらは異なる共有グループに所属しているため、直接結合した場合にはエラーが生成されます。そこで、 *$sharedColl1* のコピーを作成し、*$sharedColl2* をそのコピーの共有グループ先に指定します。 ```4d var $sharedColl1;$sharedColl2;$copyColl : Collection @@ -586,7 +586,7 @@ $sharedColl2:=New shared collection(New shared object("lastname";"Brown")) #### 例題 3 -通常のコレクション (*$lastnames*) があり、それをアプリケーションの **Storage** に入れます。 これには、先に共有コレクション (*$sharedLastnames*) を作成しておく必要があります。 +通常のコレクション (*$lastnames*) があり、それをアプリケーションの **Storage** に入れます。これには、先に共有コレクション (*$sharedLastnames*) を作成しておく必要があります。 ```4d var $lastnames;$sharedLastnames : Collection @@ -660,7 +660,7 @@ End use `.count()` 関数は、 コレクション内の、null ではない要素の個数を返します。 -コレクションがオブジェクトを含んでいる場合、*propertyPath* 引数を渡すことができます。 この場合、*propertyPath* で指定したパスを含む要素のみがカウントされます。 +コレクションがオブジェクトを含んでいる場合、*propertyPath* 引数を渡すことができます。この場合、*propertyPath* で指定したパスを含む要素のみがカウントされます。 #### 例題 @@ -806,10 +806,10 @@ End use *options* 引数として、以下の定数を 1つ、または組み合わせで渡すことができます: -| 定数 | 値 | 説明 | -| ----------------- | -- | ------------------------------------------------------------------------------------------------------------------------------------- | -| `ck diacritical` | 8 | 文字の大小とアクセントを区別して評価をおこないます。 省略された場合のデフォルトでは、アクセント等の発音区別符号を無視した評価が実行されます。 | -| `ck count values` | 32 | 特定の値を持つ要素の数 (重複がなければ 1、重複があればその数) を返します。 このオプションを渡すと、`.distinct()` は、`{"value":*value*;"count":*count*}` のプロパティを含むオブジェクトのコレクションを返します。 | +| 定数 | 値 | 説明 | +| ----------------- | -- | ------------------------------------------------------------------------------------------------------------------------------------ | +| `ck diacritical` | 8 | 文字の大小とアクセントを区別して評価をおこないます。省略された場合のデフォルトでは、アクセント等の発音区別符号を無視した評価が実行されます。 | +| `ck count values` | 32 | 特定の値を持つ要素の数 (重複がなければ 1、重複があればその数) を返します。このオプションを渡すと、`.distinct()` は、`{"value":*value*;"count":*count*}` のプロパティを含むオブジェクトのコレクションを返します。 | #### 例題 @@ -866,12 +866,12 @@ End use :::note 注記 -- `.equal()` 関数は、コレクション内の文字列、ブール値、数値、および null型要素の等価性をチェックするだけです。 ネイティブオブジェクトの等価性はチェックされません。 +- `.equal()` 関数は、コレクション内の文字列、ブール値、数値、および null型要素の等価性をチェックするだけです。ネイティブオブジェクトの等価性はチェックされません。 - **null**値の要素は undefined要素と同じとはみなされません。 ::: -デフォルトでは、アクセント等の発音区別符号を無視した評価が実行されます。 評価の際に文字の大小を区別したり、アクセント記号を区別したい場合には、option に `ck diacritical` 定数を渡します。 +デフォルトでは、アクセント等の発音区別符号を無視した評価が実行されます。評価の際に文字の大小を区別したり、アクセント記号を区別したい場合には、option に `ck diacritical` 定数を渡します。 #### 例題 @@ -940,7 +940,7 @@ End use - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 引数の有無にかかわらず、コールバックは任意のテストを実行でき、テストを満たす要素に対しては **true** を返さなくてはなりません。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。引数の有無にかかわらず、コールバックは任意のテストを実行でき、テストを満たす要素に対しては **true** を返さなくてはなりません。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -951,11 +951,11 @@ End use また、コールバックは以下のパラメーターを設定できます: * (メソッドを使用する場合は必須) *$1.result* (ブール): 要素の値の評価が成功した場合には **true** 、それ以外は **false** -* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 `.every()` 関数は、**false** として評価されたコレクション要素を発見すると、コールバックの呼び出しをやめて **false** を返します。 -デフォルトでは、`.every()` はコレクション全体をテストします。 任意で、*startFrom* にテストを開始する要素のインデックスを渡すこともできます。 +デフォルトでは、`.every()` はコレクション全体をテストします。任意で、*startFrom* にテストを開始する要素のインデックスを渡すこともできます。 * *startFrom* がコレクションの length 以上だった場合、**false** が返されます。これはコレクションがテストされていないことを意味します。 * *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます(*startFrom:=startFrom+length*)。 @@ -1119,7 +1119,7 @@ $c2:=$c.extract("name";"City";"zc";"Zip") //$c2=[{Zip:35060},{City:null,Zip:3504 引数に矛盾がある場合、次のように解釈されます: -* *startFrom* < 0 の場合、*startFrom:=startFrom+length* として再計算されます (コレクションの終端からのオフセットであるとみなされます)。 再計算された値も負の値だった場合、*startFrom* は 0 に設定されます。 +* *startFrom* < 0 の場合、*startFrom:=startFrom+length* として再計算されます (コレクションの終端からのオフセットであるとみなされます)。再計算された値も負の値だった場合、*startFrom* は 0 に設定されます。 * *end* < 0 の場合、それは *end:=end+length* として再計算されます。 * 渡された値、あるいは再計算された値が *end* < *startFrom* の場合、関数はなにもしません。 @@ -1171,7 +1171,7 @@ $c2:=$c.extract("name";"City";"zc";"Zip") //$c2=[{Zip:35060},{City:null,Zip:3504 #### 説明 -`.filter()` 関数は、 元のコレクション要素のうち、*formula* フォーミュラまたは *methodName* メソッドの結果が **true** になる要素をすべて格納した新しいコレクションを返します。 この関数は ***シャロウ・コピー*** を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +`.filter()` 関数は、 元のコレクション要素のうち、*formula* フォーミュラまたは *methodName* メソッドの結果が **true** になる要素をすべて格納した新しいコレクションを返します。この関数は ***シャロウ・コピー*** を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 次のいずれかを使用して、コレクション要素をフィルターするために実行されるコールバックを指定します: @@ -1179,7 +1179,7 @@ $c2:=$c.extract("name";"City";"zc";"Zip") //$c2=[{Zip:35060},{City:null,Zip:3504 - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、オブジェクトが 1番目の引数 (*$1*) として渡され、任意の *param* 引数がその後に続きます。 引数の有無にかかわらず、コールバックは任意のテストを実行でき、条件を満たす要素に対しては **true** を返すことで、新規コレクションにプッシュします。 +コールバックには、オブジェクトが 1番目の引数 (*$1*) として渡され、任意の *param* 引数がその後に続きます。引数の有無にかかわらず、コールバックは任意のテストを実行でき、条件を満たす要素に対しては **true** を返すことで、新規コレクションにプッシュします。 コールバックは以下の引数を受け取ります: @@ -1190,7 +1190,7 @@ $c2:=$c.extract("name";"City";"zc";"Zip") //$c2=[{Zip:35060},{City:null,Zip:3504 また、コールバックは以下のパラメーターを設定できます: * *$1.result* (ブール): 要素の値がフィルター条件に合致する場合には **true** 、それ以外は **false**。 -* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 :::note @@ -1284,7 +1284,7 @@ var $diff:=$c1.filter(Formula(Not($c2.includes($1.value)))) - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。コールバックには、*param* (任意) に指定した引数が渡されます。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -1295,13 +1295,13 @@ var $diff:=$c1.filter(Formula(Not($c2.includes($1.value)))) また、コールバックは以下のパラメーターを設定できます: * (メソッドを使用する場合は必須) *$1.result* (ブール): 要素の値が検索条件に合致する場合には **true** 、それ以外は **false**。 -* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 -デフォルトでは、`.find()` はコレクション全体をテストします。 任意で、*startFrom* に検索を開始する要素のインデックスを渡すこともできます。 +デフォルトでは、`.find()` はコレクション全体をテストします。任意で、*startFrom* に検索を開始する要素のインデックスを渡すこともできます。 * *startFrom* がコレクションの length 以上だった場合、-1 が返されます。これはコレクションが検索されていないことを意味します。 -* *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます(*startFrom:=startFrom+length*)。 **注:** *startFrom* が負の値であっても、コレクションは左から右へと検索されます。 +* *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます(*startFrom:=startFrom+length*)。**注:** *startFrom* が負の値であっても、コレクションは左から右へと検索されます。 * *startFrom* = 0 の場合、コレクション全体がテストされます (デフォルト)。 @@ -1378,7 +1378,7 @@ $c2:=$c.find(Formula($1.value.name=$2); "Clanton") //$c2={name:Clanton,zc:35046 - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。コールバックには、*param* (任意) に指定した引数が渡されます。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -1389,12 +1389,12 @@ $c2:=$c.find(Formula($1.value.name=$2); "Clanton") //$c2={name:Clanton,zc:35046 また、コールバックは以下のパラメーターを設定できます: * (メソッドを使用する場合は必須) *$1.result* (ブール): 要素の値が検索条件に合致する場合には **true** 、それ以外は **false**。 -* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 -デフォルトでは、`.findIndex()` はコレクション全体をテストします。 任意で、*startFrom* に検索を開始する要素のインデックスを渡すこともできます。 +デフォルトでは、`.findIndex()` はコレクション全体をテストします。任意で、*startFrom* に検索を開始する要素のインデックスを渡すこともできます。 * *startFrom* がコレクションの length 以上だった場合、-1 が返されます。これはコレクションが検索されていないことを意味します。 -* *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます(*startFrom:=startFrom+length*)。 **注:** *startFrom* が負の値であっても、コレクションは左から右へと検索されます。 +* *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます(*startFrom:=startFrom+length*)。**注:** *startFrom* が負の値であっても、コレクションは左から右へと検索されます。 * *startFrom* = 0 の場合、コレクション全体がテストされます (デフォルト)。 #### 例題 @@ -1486,7 +1486,7 @@ $first:=$emptyCol.first() // このコードは undefined を返します |引数|型||説明| |---------|--- |:---:|------| -|depth|Integer |->|ネストされたコレクションの階層をどの範囲まで平坦化するか。 デフォルト = 1| +|depth|Integer |->|ネストされたコレクションの階層をどの範囲まで平坦化するか。デフォルト = 1| |戻り値|Collection |<-|Flattened collection|
    @@ -1552,7 +1552,7 @@ $col.flat(MAXLONG) #### 説明 -`.fill()` 関数は、 コレクションを *value* 引数の値で満たし、同コレクションを返します。。 オプションとして、*startFrom* および *end* インデックスを渡して代入開始位置および終了位置を指定することもできます +`.fill()` 関数は、 コレクションを *value* 引数の値で満たし、同コレクションを返します。。オプションとして、*startFrom* および *end* インデックスを渡して代入開始位置および終了位置を指定することもできます この機能は、[`map()`](#map) の呼び出し後に、depth = 1 で [`flat()`](#flat) を呼び出すのと同じです。 > この関数は、元のコレクションを変更しません。 @@ -1563,7 +1563,7 @@ $col.flat(MAXLONG) - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。コールバックには、*param* (任意) に指定した引数が渡されます。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -1574,7 +1574,7 @@ $col.flat(MAXLONG) また、コールバックは以下のパラメーターを設定できます: * (メソッドを使用した場合は必須) *$1.result* (任意の型): 結果のコレクションに追加する、変換された値 -* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 #### 例題 1 @@ -1652,7 +1652,7 @@ $c2:=$c.flatMap($f; $c.sum()) `.includes()` 関数は、 *toSearch* に指定した式がコレクション内で見つかれば true を、そうでなければ false を返します。 > この関数は、元のコレクションを変更しません。 -*toSearch* パラメーターには、コレクション内で検索する式を渡します。 以下のものを渡すことができます: +*toSearch* パラメーターには、コレクション内で検索する式を渡します。以下のものを渡すことができます: * スカラー値 (テキスト、数値、ブール、日付) * null 値 @@ -1720,7 +1720,7 @@ $c2:=$c.flatMap($f; $c.sum()) `.indexOf()` 関数は、 *toSearch* 引数の式をコレクション要素の中から検索し、最初に見つかった要素のインデックス (見つからなかった場合には -1) を返します。 > この関数は、元のコレクションを変更しません。 -*toSearch* パラメーターには、コレクション内で検索する式を渡します。 以下のものを渡すことができます: +*toSearch* パラメーターには、コレクション内で検索する式を渡します。以下のものを渡すことができます: * スカラー値 (テキスト、数値、ブール、日付) * null 値 @@ -1731,7 +1731,7 @@ $c2:=$c.flatMap($f; $c.sum()) オプションとして、*startFrom* 引数を渡すことで、検索を開始するコレクション要素のインデックスを指定することができます。 * *startFrom* がコレクションの length 以上だった場合、-1 が返されます。これはコレクションが検索されていないことを意味します。 -* *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます(*startFrom:=startFrom+length*)。 **注:** *startFrom* が負の値であっても、コレクションは左から右へと検索されます。 +* *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます(*startFrom:=startFrom+length*)。**注:** *startFrom* が負の値であっても、コレクションは左から右へと検索されます。 * *startFrom* = 0 の場合、コレクション全体がテストされます (デフォルト)。 #### 例題 @@ -1778,7 +1778,7 @@ $c2:=$c.flatMap($f; $c.sum()) #### 説明 -`.indices()` 関数は [`.query()`](#query) 関数と同様に機能しますが、 *queryString* 引数の検索条件に合致する、元のコレクション要素のインデックスを返します(コレクション要素自体は返しません)。 インデックスは、昇順に返されます。 +`.indices()` 関数は [`.query()`](#query) 関数と同様に機能しますが、 *queryString* 引数の検索条件に合致する、元のコレクション要素のインデックスを返します(コレクション要素自体は返しません)。インデックスは、昇順に返されます。 > この関数は、元のコレクションを変更しません。 *queryString* 引数には、以下のシンタックスを使用します: @@ -1897,7 +1897,7 @@ propertyPath 比較演算子 値 {logicalOperator propertyPath 比較演算子 `.join()` 関数は、 *delimiter* に渡した文字列を区切り文字として、コレクションの全要素を一つの文字列につなげます。戻り値はつなげられた文字列です。 > この関数は、元のコレクションを変更しません。 -デフォルトで、コレクションの null あるいは空の要素も戻り値の文字列に含めます。 これらを戻り値の文字列に含めたくない場合は、*option* パラメーターに `ck ignore null or empty` 定数を渡します。 +デフォルトで、コレクションの null あるいは空の要素も戻り値の文字列に含めます。これらを戻り値の文字列に含めたくない場合は、*option* パラメーターに `ck ignore null or empty` 定数を渡します。 #### 例題 @@ -1998,7 +1998,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します `.lastIndexOf()` 関数は、 *toSearch* 引数の式をコレクション要素の中から検索し、最後に見つかった要素のインデックスを返します(見つからなかった場合には -1)。 > この関数は、元のコレクションを変更しません。 -*toSearch* パラメーターには、コレクション内で検索する式を渡します。 以下のものを渡すことができます: +*toSearch* パラメーターには、コレクション内で検索する式を渡します。以下のものを渡すことができます: * スカラー値 (テキスト、数値、ブール、日付) * null 値 @@ -2009,7 +2009,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します オプションとして、*startFrom* 引数を渡すことで、逆順検索を開始するコレクション要素のインデックスを指定することができます。 * *startFrom* が、コレクションの length から 1を引いた数字 (coll.length-1) 以上の場合、コレクション全体が検索されます (デフォルト)。 -* *startFrom* < 0 の場合、*startFrom:=startFrom+length* として再計算されます (コレクションの終端からのオフセットであるとみなされます)。 計算結果も負の値である場合、-1 が返されます。これはコレクションが検索されていないことを意味します。 **注:** *startFrom* が負の値であっても、コレクションは右から左へと検索されます。 +* *startFrom* < 0 の場合、*startFrom:=startFrom+length* として再計算されます (コレクションの終端からのオフセットであるとみなされます)。計算結果も負の値である場合、-1 が返されます。これはコレクションが検索されていないことを意味します。**注:** *startFrom* が負の値であっても、コレクションは右から左へと検索されます。 * *startFrom* = 0 の場合、-1 が返されます。これはコレクションが検索されていないことを意味します。 #### 例題 @@ -2050,7 +2050,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します `.length` プロパティは、 コレクション内の要素数を返します。 -`.length` プロパティは、コレクション作成時に初期化されます。 要素を追加・削除すると、必要に応じて length は更新されます。 このプロパティは **読み取り専用** です (これを使用してコレクションのサイズを設定することはできません)。 +`.length` プロパティは、コレクション作成時に初期化されます。要素を追加・削除すると、必要に応じて length は更新されます。このプロパティは **読み取り専用** です (これを使用してコレクションのサイズを設定することはできません)。 #### 例題 @@ -2097,7 +2097,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します #### 説明 -`.map()` 関数は、 `.map()` 関数は、。 オプションとして、*startFrom* および *end* インデックスを渡して代入開始位置および終了位置を指定することもできます `.map()` は常に、元のコレクションと同じサイズのコレクションを返します (*$1.stop* が使用された場合を除く (後述参照))。 +`.map()` 関数は、 `.map()` 関数は、。オプションとして、*startFrom* および *end* インデックスを渡して代入開始位置および終了位置を指定することもできます `.map()` は常に、元のコレクションと同じサイズのコレクションを返します (*$1.stop* が使用された場合を除く (後述参照))。 > この関数は、元のコレクションを変更しません。 @@ -2106,7 +2106,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。コールバックには、*param* (任意) に指定した引数が渡されます。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -2117,7 +2117,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します また、コールバックは以下のパラメーターを設定できます: * (メソッドを使用した場合は必須) *$1.result* (任意の型): 結果のコレクションに追加する、変換された値 -* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 #### 例題 @@ -2278,16 +2278,16 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum()) .orderBy() 関数は、 コレクションの要素を指定順に並べ替えた新しいコレクションを返します。 -この関数は *シャロウ・コピー* を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +この関数は *シャロウ・コピー* を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 -引数を渡さなかった場合、メソッドはコレクション内のスカラー値を昇順に並べ替えます (オブジェクトやコレクションなどの他の型は内部的な順序で返されます)。 この自動並べ替え順は、*ascOrDesc* パラメーターに `ck ascending` あるいは `ck descending` 定数を渡すことで変更できます (以下参照)。 +引数を渡さなかった場合、メソッドはコレクション内のスカラー値を昇順に並べ替えます (オブジェクトやコレクションなどの他の型は内部的な順序で返されます)。この自動並べ替え順は、*ascOrDesc* パラメーターに `ck ascending` あるいは `ck descending` 定数を渡すことで変更できます (以下参照)。 -また、引数を渡すことで、コレクション要素をどのように並べ替えるかを指定することもできます。 次の 3つのシンタックスがサポートされています: +また、引数を渡すことで、コレクション要素をどのように並べ替えるかを指定することもできます。次の 3つのシンタックスがサポートされています: -* *pathStrings* : Text (フォーミュラ)。 **シンタックス**: `propertyPath1 {desc または asc}, propertyPath2 {desc または asc},...` (デフォルトの並び順: asc)。 *pathStrings* はカンマで区切られた、1〜n のプロパティパスと並び順 (任意) で構成されたフォーミュラを格納します。 プロパティを渡す順番が、コレクション要素の並べ替えの優先順位を決定します。 デフォルトでは、プロパティは昇順に並べ替えられます。 並び順を設定するには、プロパティパスの後に半角スペースで区切ったあとに、昇順を指定するには "asc"、降順を指定するには "desc" を渡します。 +* *pathStrings* : Text (フォーミュラ)。**シンタックス**: `propertyPath1 {desc または asc}, propertyPath2 {desc または asc},...` (デフォルトの並び順: asc)。 *pathStrings* はカンマで区切られた、1〜n のプロパティパスと並び順 (任意) で構成されたフォーミュラを格納します。プロパティを渡す順番が、コレクション要素の並べ替えの優先順位を決定します。デフォルトでは、プロパティは昇順に並べ替えられます。並び順を設定するには、プロパティパスの後に半角スペースで区切ったあとに、昇順を指定するには "asc"、降順を指定するには "desc" を渡します。 -* *pathObjects* : Collection。 *pathObjects* コレクションには必要な数だけオブジェクトを追加することができます。 デフォルトでは、プロパティは昇順に並べ替えられます ("descending" は false)。 コレクションの各要素は、以下の構造を持つオブジェクトを格納します: +* *pathObjects* : Collection。 *pathObjects* コレクションには必要な数だけオブジェクトを追加することができます。デフォルトでは、プロパティは昇順に並べ替えられます ("descending" は false)。コレクションの各要素は、以下の構造を持つオブジェクトを格納します: ```4d { @@ -2306,7 +2306,7 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum()) このシンタックスは、コレクション内のスカラー値のみを並べ替えます (オブジェクトやコレクションなどの他の型は並べ替えされないまま返されます)。 -コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。 型は以下の順番で返されます: +コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。型は以下の順番で返されます: 1. null 2. ブール @@ -2425,7 +2425,7 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum()) `.orderByMethod()` 関数は、 `.orderByMethod()` 関数は、。 -この関数は *シャロウ・コピー* を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +この関数は *シャロウ・コピー* を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 @@ -2435,7 +2435,7 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum()) - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、二つの値を比較して、最初の値が二つ目の値より低い場合に **true** を返すコードの名称を渡します。 必要に応じて、 *extraParam* に指定した引数をコールバックに渡せます。 +コールバックには、二つの値を比較して、最初の値が二つ目の値より低い場合に **true** を返すコードの名称を渡します。必要に応じて、 *extraParam* に指定した引数をコールバックに渡せます。 コールバックは以下の引数を受け取ります: @@ -2648,7 +2648,7 @@ $1.result:=(Compare strings($1.value;$1.value2;$2)<0) #### 説明 -`.query()` 関数は、 検索条件に合致するオブジェクトコレクションの要素をすべて返します 。検索条件は、*queryString* および、任意の *value* や *querySettings* パラメーターによって定義されます。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +`.query()` 関数は、 検索条件に合致するオブジェクトコレクションの要素をすべて返します 。検索条件は、*queryString* および、任意の *value* や *querySettings* パラメーターによって定義されます。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 *queryString* 引数には、以下のシンタックスを使用します: @@ -2771,7 +2771,7 @@ propertyPath 比較演算子 値 {logicalOperator propertyPath 比較演算子 コールバックはコレクションの各要素を受け取り、任意の処理を実行して、結果を *$1.accumulator* に蓄積します。この値は最終的に *$1.value* に返されます。 -*initValue* に引数を渡すことで、アキュムレーターを初期化することができます。 省略された場合は、*$1.accumulator* は *Undefined* から開始されます。 +*initValue* に引数を渡すことで、アキュムレーターを初期化することができます。省略された場合は、*$1.accumulator* は *Undefined* から開始されます。 コールバックは以下の引数を受け取ります: @@ -2782,7 +2782,7 @@ propertyPath 比較演算子 値 {logicalOperator propertyPath 比較演算子 コールバックは以下の引数を受け取ります: * *$1.accumulator*: メソッドで変更する値。*initValue* によって初期化します。 -* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 #### 例題 1 @@ -2865,7 +2865,7 @@ $r:=$c.reduce(Formula($1.accumulator=$1.value); 1) // 86400 を返す コールバックはコレクションの各要素を受け取り、任意の処理を実行して、結果を *$1.accumulator* に蓄積します。この値は最終的に *$1.value* に返されます。 -*initValue* に引数を渡すことで、アキュムレーターを初期化することができます。 省略された場合は、*$1.accumulator* は *Undefined* から開始されます。 +*initValue* に引数を渡すことで、アキュムレーターを初期化することができます。省略された場合は、*$1.accumulator* は *Undefined* から開始されます。 コールバックは以下の引数を受け取ります: @@ -2876,7 +2876,7 @@ $r:=$c.reduce(Formula($1.accumulator=$1.value); 1) // 86400 を返す コールバックは以下の引数を受け取ります: * *$1.accumulator*: メソッドで変更する値。*initValue* によって初期化します。 -* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 #### 例題 1 @@ -2953,7 +2953,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す > このコマンドは、元のコレクションを変更します。 *index* パラメーターには、削除するコレクション要素の位置を渡します。 -> **警告**: コレクション要素は 0 起点である点に注意してください。 指定した *index* がコレクションの length より大きい場合、実際の開始インデックスはコレクションの length に設定されます。 +> **警告**: コレクション要素は 0 起点である点に注意してください。指定した *index* がコレクションの length より大きい場合、実際の開始インデックスはコレクションの length に設定されます。 * *index* < 0 の場合、*index:=index+length* として再計算されます (コレクションの終端からのオフセットであるとみなされます)。 * 計算結果も負の値である場合、*index* は 0 に設定されます。 @@ -3076,7 +3076,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す #### 説明 -`.reverse()` 関数は、 `.reverse()` 関数は、。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +`.reverse()` 関数は、 `.reverse()` 関数は、。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 #### 例題 @@ -3173,7 +3173,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す #### 説明 -`.slice()` 関数は、 コレクションの一部を、新しいコレクションとして返します。抜粋するのは、*startFrom* の位置 (含まれる) から *end* の位置 (含まれない) までの要素です。 この関数は *シャロウ・コピー* を返します。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +`.slice()` 関数は、 コレクションの一部を、新しいコレクションとして返します。抜粋するのは、*startFrom* の位置 (含まれる) から *end* の位置 (含まれない) までの要素です。この関数は *シャロウ・コピー* を返します。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 戻り値のコレクションには、*startFrom* 引数で指定した要素 (含まれる) から、*end* 引数で指定した要素まで (含まれない) の全要素が格納されます。 *startFrom* 引数のみを渡した場合には、*startFrom* 引数で指定した要素から最後の要素までが戻り値のコレクションに格納されます。 @@ -3239,7 +3239,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 引数の有無にかかわらず、コールバックは任意のテストを実行でき、テストを満たす要素に対しては **true** を返さなくてはなりません。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。引数の有無にかかわらず、コールバックは任意のテストを実行でき、テストを満たす要素に対しては **true** を返さなくてはなりません。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -3251,11 +3251,11 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す また、コールバックは以下のパラメーターを設定できます: * (メソッドを使用する場合は必須) *$1.result* (ブール): 要素の値の評価が成功した場合には **true** 、それ以外は **false** -* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +* *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 `.some()` 関数は、true を返す最初のコレクション要素を発見すると、コールバックの呼び出しをやめて **true** を返します。 -デフォルトでは、`.some()` はコレクション全体をテストします。 オプションとして、*startFrom* 引数を渡すことで、テストを開始するコレクション要素のインデックスを指定することができます。 +デフォルトでは、`.some()` はコレクション全体をテストします。オプションとして、*startFrom* 引数を渡すことで、テストを開始するコレクション要素のインデックスを指定することができます。 * *startFrom* がコレクションの length 以上だった場合、**false** が返されます。これはコレクションがテストされていないことを意味します。 * *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます。 @@ -3323,7 +3323,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す `.sort()` 関数は、 `.sort()` 関数は、 。 > このコマンドは、元のコレクションを変更します。 -引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 *ascOrDesc* 引数には、以下の定数のいずれか一つを渡すことができます: +引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 *ascOrDesc* 引数には、以下の定数のいずれか一つを渡すことができます: |定数| 型|値|詳細| |---|---|---|---| @@ -3332,7 +3332,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す このシンタックスはコレクション内のスカラー値のみを並び替えます(オブジェクトやコレクションなどの他の型の要素は並べ替えされません)。 - コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。 型は以下の順番で返されます: + コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えられます。型は以下の順番で返されます: 1. null 2. ブール @@ -3343,7 +3343,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す 7. 日付 -カスタマイズされた順番や、型に関係なくコレクション要素を並べ替えたい場合には、並べ替え順を定義するコールバックを *formula* ([Formula オブジェクト](FunctionClass.md)) または *methodName* (テキスト) に渡します。 戻り値は、二つの要素の相対的な順番を示すブール値です。 *$1.value* が *$1.value2* より小さい場合に **true** を、*$1.value* が *$1.value2* より大きい場合に **false** を返します。 必要に応じて、 追加の引数をコールバックに渡せます。 +カスタマイズされた順番や、型に関係なくコレクション要素を並べ替えたい場合には、並べ替え順を定義するコールバックを *formula* ([Formula オブジェクト](FunctionClass.md)) または *methodName* (テキスト) に渡します。戻り値は、二つの要素の相対的な順番を示すブール値です。 *$1.value* が *$1.value2* より小さい場合に **true** を、*$1.value* が *$1.value2* より大きい場合に **false** を返します。必要に応じて、 追加の引数をコールバックに渡せます。 コールバックは以下の引数を受け取ります: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Directory.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Directory.md index 8fc0f3c9a85608..918fc573c7bbf6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Directory.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Directory.md @@ -84,7 +84,7 @@ title: Directory クラス #### 説明 -`.extension` プロパティは、 フォルダー名の拡張子を返します (あれば)。 拡張子は必ず"." で始まります。 フォルダー名が拡張子を持たない場合には、このプロパティは空の文字列を返します。 +`.extension` プロパティは、 フォルダー名の拡張子を返します (あれば)。拡張子は必ず"." で始まります。フォルダー名が拡張子を持たない場合には、このプロパティは空の文字列を返します。 このプロパティは **読み取り専用** です。 @@ -218,7 +218,7 @@ title: Directory クラス #### 説明 -`.isPackage` プロパティは、 フォルダーが macOS上のパッケージである (かつディスク上に存在している) 場合に true を返します。 それ以外の場合は false を返します。 +`.isPackage` プロパティは、 フォルダーが macOS上のパッケージである (かつディスク上に存在している) 場合に true を返します。それ以外の場合は false を返します。 Windows 上においては、`.isPackage` は常に **false** を返します。 @@ -331,7 +331,7 @@ Windows 上においては、`.isPackage` は常に **false** を返します。 #### 説明 -`.parent` プロパティは、 対象フォルダーの親フォルダーオブジェクトを返します。 パスがシステムパスを表す場合 (例: "/DATA/")、システムパスが返されます。 +`.parent` プロパティは、 対象フォルダーの親フォルダーオブジェクトを返します。パスがシステムパスを表す場合 (例: "/DATA/")、システムパスが返されます。 親フォルダーが存在しない場合 (root) は、このプロパティは null値を返します。 @@ -355,7 +355,7 @@ Windows 上においては、`.isPackage` は常に **false** を返します。 #### 説明 -`.path` プロパティは、 フォルダーの POSIXパスを返します。 パスがファイルシステムを表す場合 (例: "/DATA/")、ファイルシステムが返されます。 +`.path` プロパティは、 フォルダーの POSIXパスを返します。パスがファイルシステムを表す場合 (例: "/DATA/")、ファイルシステムが返されます。 このプロパティは **読み取り専用** です。 @@ -416,7 +416,7 @@ Windows 上においては、`.isPackage` は常に **false** を返します。 *destinationFolder* 引数が指定するフォルダーはディスク上に存在している必要があり、そうでない場合にはエラーが生成されます。 -デフォルトで、フォルダーは元の名前を維持したままコピーされます。 コピーの際にフォルダー名を変更したい場合、新しい名前を *newName* に渡します。 新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 +デフォルトで、フォルダーは元の名前を維持したままコピーされます。コピーの際にフォルダー名を変更したい場合、新しい名前を *newName* に渡します。新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 *destinationFolder* 引数が指定するフォルダー内に同じ名前のフォルダーが既に存在する場合、4D はデフォルトでエラーを生成します。 *overwrite* に `fk overwrite` 定数を渡すことで、既存のフォルダーを無視して上書きすることができます: @@ -469,7 +469,7 @@ $copiedImages:=$userImages.copyTo(Folder(fk database folder);fk overwrite) `.file()` 関数は、 `Folder` オブジェクト内に `File` オブジェクトを作成し、その参照を返します。 -*path* には、返すべきファイルの相対的パスを POSIX 形式で渡します。 このパスは、親フォルダーを起点として評価されます。 +*path* には、返すべきファイルの相対的パスを POSIX 形式で渡します。このパスは、親フォルダーを起点として評価されます。 **戻り値** @@ -579,7 +579,7 @@ $myPDF:=Folder(fk documents folder).file("Pictures/info.pdf") `.folder()` 関数は、 親の `Folder` オブジェクト内に新しい `Folder` オブジェクトを作成し、その参照を返します。 -*path* には、返すべきフォルダーの相対的パスを POSIX 形式で渡します。 このパスは、親フォルダーを起点として評価されます。 +*path* には、返すべきフォルダーの相対的パスを POSIX 形式で渡します。このパスは、親フォルダーを起点として評価されます。 **戻り値** @@ -674,7 +674,7 @@ $myPDF:=Folder(fk documents folder).file("Pictures/info.pdf") `.getIcon()` 関数は、 フォルダーのアイコンを返します。 -任意の *size* 引数を渡すと、返されるアイコンのサイズをピクセル単位で指定することができます。 この値は、実際にはアイコンを格納している正方形の一辺の長さを表しています。 アイコンは通常、32x32ピクセル ("大きいアイコン") または 16x16ピクセル ("小さいアイコン") で定義されています。 この引数に 0 を渡すか省略した場合、"大きいアイコン" が返されます。 +任意の *size* 引数を渡すと、返されるアイコンのサイズをピクセル単位で指定することができます。この値は、実際にはアイコンを格納している正方形の一辺の長さを表しています。アイコンは通常、32x32ピクセル ("大きいアイコン") または 16x16ピクセル ("小さいアイコン") で定義されています。この引数に 0 を渡すか省略した場合、"大きいアイコン" が返されます。 フォルダーがディスク上に存在しない場合、デフォルトの空のアイコンが返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Document.md index 21a8684e3c954f..655e92d35516e3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/Document.md @@ -80,7 +80,7 @@ title: Document クラス #### 説明 -`.extension` プロパティは、 ファイル名の拡張子を返します (あれば)。 拡張子は必ず"." で始まります。 ファイル名が拡張子を持たない場合には、このプロパティは空の文字列を返します。 +`.extension` プロパティは、 ファイル名の拡張子を返します (あれば)。拡張子は必ず"." で始まります。ファイル名が拡張子を持たない場合には、このプロパティは空の文字列を返します。 このプロパティは **読み取り専用** です。 @@ -290,7 +290,7 @@ title: Document クラス #### 説明 -`.original` プロパティは、 エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: +`.original` プロパティは、 エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。ターゲット要素は以下のいずれかです: * File オブジェクト * Folder オブジェクト @@ -315,7 +315,7 @@ title: Document クラス #### 説明 -`.parent` プロパティは、 `.parent` プロパティは、。 パスがシステムパスを表す場合 (例: "/DATA/")、システムパスが返されます。 +`.parent` プロパティは、 `.parent` プロパティは、。パスがシステムパスを表す場合 (例: "/DATA/")、システムパスが返されます。 このプロパティは **読み取り専用** です。 @@ -335,7 +335,7 @@ title: Document クラス #### 説明 -`.path` プロパティは、 `.path` プロパティは、。 パスがファイルシステムを表す場合 (例: "/DATA/")、ファイルシステムが返されます。 +`.path` プロパティは、 `.path` プロパティは、。パスがファイルシステムを表す場合 (例: "/DATA/")、ファイルシステムが返されます。 このプロパティは **読み取り専用** です。 @@ -375,7 +375,7 @@ title: Document クラス #### 説明 -`.size` プロパティは、 ファイルのサイズ (バイト単位) を返します。 ファイルがディスク上に存在しない場合、サイズは 0 になります。 +`.size` プロパティは、 ファイルのサイズ (バイト単位) を返します。ファイルがディスク上に存在しない場合、サイズは 0 になります。 このプロパティは **読み取り専用** です。 @@ -412,7 +412,7 @@ title: Document クラス *destinationFolder* 引数が指定するフォルダーはディスク上に存在している必要があり、そうでない場合にはエラーが生成されます。 -デフォルトで、ファイルは元の名前を維持したままコピーされます。 コピーの際にフォルダー名を変更したい場合、新しい名前を *newName* に渡します。 新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 +デフォルトで、ファイルは元の名前を維持したままコピーされます。コピーの際にフォルダー名を変更したい場合、新しい名前を *newName* に渡します。新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 *destinationFolder* 引数が指定するフォルダー内に同じ名前のファイルが既に存在する場合、4D はデフォルトでエラーを生成します。 *overwrite* に `fk overwrite` 定数を渡すことで、既存のフォルダーを無視して上書きすることができます: @@ -508,7 +508,7 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) `.getIcon()` 関数は、 ファイルのアイコンを返します。 -任意の *size* 引数を渡すと、返されるアイコンのサイズをピクセル単位で指定することができます。 この値は、実際にはアイコンを格納している正方形の一辺の長さを表しています。 アイコンは通常、32x32ピクセル ("大きいアイコン") または 16x16ピクセル ("小さいアイコン") で定義されています。 この引数に 0 を渡すか省略した場合、"大きいアイコン" が返されます。 +任意の *size* 引数を渡すと、返されるアイコンのサイズをピクセル単位で指定することができます。この値は、実際にはアイコンを格納している正方形の一辺の長さを表しています。アイコンは通常、32x32ピクセル ("大きいアイコン") または 16x16ピクセル ("小さいアイコン") で定義されています。この引数に 0 を渡すか省略した場合、"大きいアイコン" が返されます。 ファイルがディスク上に存在しない場合、デフォルトの空のアイコンが返されます。 @@ -547,14 +547,14 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) `.getText()` 関数は、 ファイルのコンテンツをテキストとして返します 。 -任意で、コンテンツの読み取りに使用する文字セットを渡します。 これには、次の二つの方法があります: +任意で、コンテンツの読み取りに使用する文字セットを渡します。これには、次の二つの方法があります: * *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 * *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 -ドキュメントにバイトオーダーマーク (BOM) が含まれている場合、4D は *charSetName* または *charSetNum* 引数で設定されている文字セットではなく、BOM で指定されたものを使用します (結果として引数は無視されます)。 ドキュメントに BOM が含まれておらず、また *charSetName* および *charSetNum* 引数が渡されなかった場合、4D はデフォルトで "UTF-8" を文字セットとして使用します。 +ドキュメントにバイトオーダーマーク (BOM) が含まれている場合、4D は *charSetName* または *charSetNum* 引数で設定されている文字セットではなく、BOM で指定されたものを使用します (結果として引数は無視されます)。ドキュメントに BOM が含まれておらず、また *charSetName* および *charSetNum* 引数が渡されなかった場合、4D はデフォルトで "UTF-8" を文字セットとして使用します。 *breakMode* には、ドキュメントの改行文字に対しておこなう処理を指定する倍長整数を渡します。 "System Documents" テーマの、以下の定数を使用することができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/EntityClass.md index 9546019e5434cf..4cc258aedc3f11 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/EntityClass.md @@ -3,7 +3,7 @@ id: EntityClass title: Entity --- -レコードとテーブルの関係と同様に、[エンティティ](ORDA/dsMapping.md#エンティティ) は [データクラス](ORDA/dsMapping.md#データクラス) のインスタンスです。 エンティティはデータクラスと同じ属性を持つほか、データ値や、特有のプロパティおよび関数を持ちます。 +レコードとテーブルの関係と同様に、[エンティティ](ORDA/dsMapping.md#エンティティ) は [データクラス](ORDA/dsMapping.md#データクラス) のインスタンスです。エンティティはデータクラスと同じ属性を持つほか、データ値や、特有のプロパティおよび関数を持ちます。 ### 概要 @@ -54,8 +54,8 @@ title: Entity この属性値タイプは属性の種類 ([](DataClassClass.md#attributename).kind; リレーションまたはストレージ) によります。 * *attributeName* で指定した属性がストレージ型の場合: `.attributeName` は *attributeName* と同じ型の値を返します。 -* この関数は、種類 ([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。 リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が *attributeName* プロパティに返されます (リレーション名についての *value* および *otherValue* は空になります)。 -* *attributeName* で指定した属性がリレートエンティティズ型の場合: `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 +* この関数は、種類 ([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。リレート先のエンティティそのものが変更された場合 (外部キーの変更)、リレーションの名称とそのプライマリーキー名が *attributeName* プロパティに返されます (リレーション名についての *value* および *otherValue* は空になります)。 +* *attributeName* で指定した属性がリレートエンティティズ型の場合: `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 #### 例題 @@ -96,10 +96,10 @@ title: Entity `.clone()` 関数は、 対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します。 -この関数を使用するとエンティティを個別に更新することができます。 ただし、パフォーマンス上の理由から、新しいエンティティはクローンされたエンティティのオブジェクト属性と同じ参照を共有すると言う点に注意して下さい。 +この関数を使用するとエンティティを個別に更新することができます。ただし、パフォーマンス上の理由から、新しいエンティティはクローンされたエンティティのオブジェクト属性と同じ参照を共有すると言う点に注意して下さい。 > エンティティに対して何らかの変更をおこなった場合、それらは [`.save()`](#save) 関数が実行されたときのみ、参照先のレコードに保存されるという点に注意してください。 -この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。 新規に作成されたエンティティ([`.isNew()`](#isnew) が **true** を返すもの) に対して呼び出すことはできません。 +この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。新規に作成されたエンティティ([`.isNew()`](#isnew) が **true** を返すもの) に対して呼び出すことはできません。 #### 例題 1 @@ -156,7 +156,7 @@ title: Entity *entityToCompare* には、オリジナルのエンティティと比較をするエンティティを渡します。 -*attributesToCompare* 引数で、比較する属性を指定することができます。 これを渡した場合、指定された属性に対してのみ比較がおこなわれます。 省略時には、エンティティ間の差異がすべて返されます。 +*attributesToCompare* 引数で、比較する属性を指定することができます。これを渡した場合、指定された属性に対してのみ比較がおこなわれます。省略時には、エンティティ間の差異がすべて返されます。 エンティティの差異は、以下のプロパティを持つオブジェクトのコレクションとして返されます: @@ -166,7 +166,7 @@ title: Entity | value | any - 属性の型による | オリジナルエンティティの属性値 | | otherValue | any - 属性の型による | *entityToCompare* の属性値 | -コレクションに含まれるのは異なる値を持っていた属性のみです。 差異が見つからない場合、`diff()` は空のコレクションを返します。 +コレクションに含まれるのは異なる値を持っていた属性のみです。差異が見つからない場合、`diff()` は空のコレクションを返します。 この関数は、種類 ([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。 *attributeName* で指定した属性がリレートエンティティ型の場合: `.attributeName` はリレートエンティティを返します。 @@ -354,7 +354,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.drop()` 関数は、 データストアからエンティティに格納されているデータを削除します。 データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 +`.drop()` 関数は、 データストアからエンティティに格納されているデータを削除します。データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。 これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 @@ -389,13 +389,13 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。
  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | -| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • entity.save( ) の場合: dk auto merge オプションが使用されていない場合に限りエラー
  • entity.drop( ) の場合: dk force drop if stamp changed オプションが使用されていない場合に限りエラー
  • entity.lock( ) の場合: dk reload if stamp changed オプションが使用されていない場合に限りエラー
  • **割り当てられた statusText**: "Stamp has changed"
  • | -| `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。
  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • entity.save( ) の場合: dk auto merge オプションが使用されていない場合に限りエラー
  • entity.drop( ) の場合: dk force drop if stamp changed オプションが使用されていない場合に限りエラー
  • entity.lock( ) の場合: dk reload if stamp changed オプションが使用されていない場合に限りエラー
  • **割り当てられた statusText**: "Stamp has changed"
  • | +| `dk status wrong permission` | 1 | 現在の権限では、エンティティを削除することはできません。**割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 @@ -509,8 +509,8 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ オブジェクトとエンティティ間のマッピングは属性名でおこなわれます: * オブジェクトのプロパティがデータクラスに存在しない場合、それは無視されます。 -* データタイプは同じである必要があります。 オブジェクトとデータクラス間で型が合致しない場合、4D は可能であればデータを変換しようとし ([`データタイプの変換`](Concepts/data-types.md#データタイプの変換)) 参照)、それ以外の場合にはその属性は更新されません。 -* プライマリーキーはそのまま、あるいは "__KEY" プロパティを (プライマリーキー値とともに) 使って指定することができます。 その値のエンティティがデータクラス内に存在しない場合には、[.save()](#save) が呼び出されたときに指定値を使ってエンティティが作成されます。 プライマリーキーを指定していない場合、エンティティは作成され、データベースのルールに基づいてプライマリーキー値が割り当てられます。 自動インクリメント機能はプライマリーキーが null の場合にのみ計算されます。 +* データタイプは同じである必要があります。オブジェクトとデータクラス間で型が合致しない場合、4D は可能であればデータを変換しようとし ([`データタイプの変換`](Concepts/data-types.md#データタイプの変換)) 参照)、それ以外の場合にはその属性は更新されません。 +* プライマリーキーはそのまま、あるいは "__KEY" プロパティを (プライマリーキー値とともに) 使って指定することができます。その値のエンティティがデータクラス内に存在しない場合には、[.save()](#save) が呼び出されたときに指定値を使ってエンティティが作成されます。プライマリーキーを指定していない場合、エンティティは作成され、データベースのルールに基づいてプライマリーキー値が割り当てられます。自動インクリメント機能はプライマリーキーが null の場合にのみ計算されます。 *filler* 引数のオブジェクトは、以下の条件のいずれかを満たしている場合にはリレートエンティティを扱うことができます: @@ -590,7 +590,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.getDataClass()` 関数は、 エンティティのデータクラスを返します。 この関数は汎用的なコードを書くのに有用です。 +`.getDataClass()` 関数は、 エンティティのデータクラスを返します。この関数は汎用的なコードを書くのに有用です。 #### 例題 @@ -677,7 +677,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ
    -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -786,8 +786,8 @@ $info:=$address.getRemoteContextAttributes() `.getStamp()` 関数は、 エンティティのスタンプの値を返します。 -内部スタンプは、エンティティが保存されるたびに 4D によって自動的にインクリメントされます。 これは同じエンティティに対する複数のユーザーの同時アクセス・編集を管理します。 この機構の詳細については、[**エンティティロッキング**](ORDA/entities.md#エンティティロッキング) を参照ください。 -> (一度も保存されていない) 新規エンティティに対しては、このメソッドは 0 を返します。 しかしながら、エンティティがまだ作成されたばかりかどうかを調べるには、[isNew()](#isnew) の使用が推奨されます。 +内部スタンプは、エンティティが保存されるたびに 4D によって自動的にインクリメントされます。これは同じエンティティに対する複数のユーザーの同時アクセス・編集を管理します。 この機構の詳細については、[**エンティティロッキング**](ORDA/entities.md#エンティティロッキング) を参照ください。 +> (一度も保存されていない) 新規エンティティに対しては、このメソッドは 0 を返します。しかしながら、エンティティがまだ作成されたばかりかどうかを調べるには、[isNew()](#isnew) の使用が推奨されます。 #### 例題 @@ -882,7 +882,7 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.isNew()` 関数は、 対象エンティティが作成されたばかりで、まだデータストアに保存されていない場合に true を返します。 そうでない場合には、false を返します。 +`.isNew()` 関数は、 対象エンティティが作成されたばかりで、まだデータストアに保存されていない場合に true を返します。そうでない場合には、false を返します。 #### 例題 @@ -965,14 +965,14 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.lock()` 関数は、 対象エンティティが参照するレコードにペシミスティック・ロックをかけます。 [ロック](ORDA/entities.md#エンティティロッキング)はレコードと、カレントプロセス内の当該エンティティの参照すべてに対してかけられます。 +`.lock()` 関数は、 対象エンティティが参照するレコードにペシミスティック・ロックをかけます。[ロック](ORDA/entities.md#エンティティロッキング)はレコードと、カレントプロセス内の当該エンティティの参照すべてに対してかけられます。 -他のプロセスからはこのレコードがロックされて見えます (この関数を使って同エンティティをロックしようとした場合、`result.success` プロパティには false が返されます)。 ロックをおこなったセッション内で実行される関数のみが、当該エンティティの属性を編集・保存できます。 他のセッションは同エンティティを読み取り専用にロードできますが、値の入力・保存はできません。 +他のプロセスからはこのレコードがロックされて見えます (この関数を使って同エンティティをロックしようとした場合、`result.success` プロパティには false が返されます)。ロックをおこなったセッション内で実行される関数のみが、当該エンティティの属性を編集・保存できます。他のセッションは同エンティティを読み取り専用にロードできますが、値の入力・保存はできません。 `.lock()` でロックされたレコードは、以下の場合にロック解除されます: * 同プロセス内で合致するエンティティに対して [`.unlock()`](#unlock) 関数が呼び出された場合 -* メモリ内のどのエンティティからも参照されなくなった場合、自動的にロックが解除されます。 たとえば、エンティティのローカル参照に対してのみロックがかかっていた場合、関数の実行が終了すればロックは解除されます。 メモリ内にエンティティへの参照がある限り、レコードはロックされたままです。 +* メモリ内のどのエンティティからも参照されなくなった場合、自動的にロックが解除されます。たとえば、エンティティのローカル参照に対してのみロックがかかっていた場合、関数の実行が終了すればロックは解除されます。メモリ内にエンティティへの参照がある限り、レコードはロックされたままです。 :::note 注記 @@ -999,7 +999,7 @@ $info:=$address.getRemoteContextAttributes() | statusText(\*) | | text | エラーの詳細、以下参照 | | | | | ***ペシミスティック・ロックエラーの場合にのみ利用可能:*** | | lockKindText | | text | "Locked by record" 4Dプロセスによるロック、"Locked by session" RESTセッションによるロック | -| lockInfo | | object | ロック元についての情報。 返されるプロパティはロック元 (4Dプロセスまたは RESTセッション) によって異なります。 | +| lockInfo | | object | ロック元についての情報。返されるプロパティはロック元 (4Dプロセスまたは RESTセッション) によって異なります。 | | | | | ***4Dプロセスによるロックの場合:*** | | | task_id | number | プロセスID | | | user_name | text | マシン上でのセッションユーザー名 | @@ -1022,7 +1022,7 @@ $info:=$address.getRemoteContextAttributes() | 定数 | 値 | 説明 | | ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

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

  • **割り当てられた statusText**: "スタンプが変更されています" | @@ -1093,7 +1093,7 @@ $info:=$address.getRemoteContextAttributes() 対象エンティティが所属する既存エンティティセレクションが存在しない場合 (つまり [entity.getSelection()](#getselection) が Null を返す場合)、関数は Null値を返します。 -エンティティセレクション内に有効な次のエンティティが存在しない場合 (セレクションの最終エンティティの場合)、関数は Null を返します。 次のエンティティがドロップされていた場合、関数はその次の有効なエンティティを返します (セレクションの最後に辿り着くと Null を返します)。 +エンティティセレクション内に有効な次のエンティティが存在しない場合 (セレクションの最終エンティティの場合)、関数は Null を返します。次のエンティティがドロップされていた場合、関数はその次の有効なエンティティを返します (セレクションの最後に辿り着くと Null を返します)。 #### 例題 @@ -1137,7 +1137,7 @@ $info:=$address.getRemoteContextAttributes() 対象エンティティが所属する既存エンティティセレクションが存在しない場合 (つまり [entity.getSelection()](#getselection) が Null を返す場合)、関数は Null値を返します。 -エンティティセレクション内に有効な前のエンティティが存在しない場合 (セレクションの先頭エンティティの場合)、関数は Null を返します。 前のエンティティがドロップされていた場合、関数はその前の有効なエンティティを返します (セレクションの先頭に辿り着くと Null を返します)。 +エンティティセレクション内に有効な前のエンティティが存在しない場合 (セレクションの先頭エンティティの場合)、関数は Null を返します。前のエンティティがドロップされていた場合、関数はその前の有効なエンティティを返します (セレクションの先頭に辿り着くと Null を返します)。 #### 例題 @@ -1176,7 +1176,7 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.reload()` 関数は、 エンティティの中身をメモリ内にリロードしますこの時、リロード元となるのはデータストアのデータクラスに対応するテーブルに保存されている情報です。 エンティティが同じプライマリーキーで存在している場合にのみリロードは実行されます。 +`.reload()` 関数は、 エンティティの中身をメモリ内にリロードしますこの時、リロード元となるのはデータストアのデータクラスに対応するテーブルに保存されている情報です。エンティティが同じプライマリーキーで存在している場合にのみリロードは実行されます。 **戻り値** @@ -1190,10 +1190,10 @@ $info:=$address.getRemoteContextAttributes() (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • ***割り当てられた statusText***: "エンティティはもう存在しません" | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    ***割り当てられた statusText***: "その他のエラー" | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • ***割り当てられた statusText***: "エンティティはもう存在しません" | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    ***割り当てられた statusText***: "その他のエラー" | #### 例題 @@ -1242,16 +1242,16 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.save()` 関数は、 エンティティの変更内容を保存します 。 変更内容は、データクラスに対応するテーブル内に保存されます。 エンティティを作成したあと、あるいはエンティティに対して保存したい変更をおこなったあとにはこの関数を呼び出す必要があります。 +`.save()` 関数は、 エンティティの変更内容を保存します 。 変更内容は、データクラスに対応するテーブル内に保存されます。エンティティを作成したあと、あるいはエンティティに対して保存したい変更をおこなったあとにはこの関数を呼び出す必要があります。 -保存処理は、少なくとも一つのエンティティ属性が "touched" である (更新されている) 場合にのみ実行されます ([`.touched()`](#touched) および [`.touchedAttributes()`](#touchedattributes) 関数参照)。 そうでない場合、関数は何もしません (トリガーは呼び出されません)。 +保存処理は、少なくとも一つのエンティティ属性が "touched" である (更新されている) 場合にのみ実行されます ([`.touched()`](#touched) および [`.touchedAttributes()`](#touchedattributes) 関数参照)。そうでない場合、関数は何もしません (トリガーは呼び出されません)。 マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.save()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。 これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 *mode* 引数を渡さなかった場合のデフォルトでは、いずれの属性に関わらず同エンティティが他のプロセスまたはユーザーによって変更されていた場合にエラーを返します (以下参照)。 -*mode* に `dk auto merge` オプションを渡すと自動マージモードが有効化され、別のプロセス/ユーザーが同エンティティに対して同時に変更をおこなっていても、異なる属性に対する変更であればエラーは生成されません。 エンティティに保存されるデータは、別々の変更処理の組み合わせ ("マージ (併合)") になります (同じ属性に対して変更がおこなわれた場合には、自動マージモードであっても保存は失敗し、エラーが返されます)。 -> ピクチャー・オブジェクト・テキスト型属性で、レコードの外にデータを保存している場合には、自動マージモードは利用できません。 これらの属性に同時の変更があった場合には `dk status stamp has changed` エラーになります。 +*mode* に `dk auto merge` オプションを渡すと自動マージモードが有効化され、別のプロセス/ユーザーが同エンティティに対して同時に変更をおこなっていても、異なる属性に対する変更であればエラーは生成されません。エンティティに保存されるデータは、別々の変更処理の組み合わせ ("マージ (併合)") になります (同じ属性に対して変更がおこなわれた場合には、自動マージモードであっても保存は失敗し、エラーが返されます)。 +> ピクチャー・オブジェクト・テキスト型属性で、レコードの外にデータを保存している場合には、自動マージモードは利用できません。これらの属性に同時の変更があった場合には `dk status stamp has changed` エラーになります。 **戻り値** @@ -1287,11 +1287,11 @@ $info:=$address.getRemoteContextAttributes() | 定数 | 値 | 説明 | | ----------------------------------------- | - | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status automerge failed` | 6 | ロック解除が成功した場合には true、それ以外は false ドロップされたエンティティや、ロックされてないレコード、あるいは他のプロセスや他のエンティティによってロックされたレコードに対してロック解除を実行した場合、success には false が返されます。 | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • **割り当てられた statusText**: "エンティティはもう存在しません" | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 entity.drop( ) を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 entity.lock( ) を使用するとき、このエラーは dk reload drop if stamp changed オプションを使用した場合に返されることがあります。

  • **割り当てられた statusText**: "エンティティはもう存在しません" | | `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "既にロックされています" | | `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "その他のエラー" | | `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • entity.save( ) の場合: dk auto merge オプションが使用されていない場合に限りエラー
  • entity.drop( ) の場合: dk force drop if stamp changed オプションが使用されていない場合に限りエラー
  • entity.lock( ) の場合: dk reload if stamp changed オプションが使用されていない場合に限りエラー

  • **割り当てられた statusText**: "スタンプが変更されています" | -| `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | +| `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。**割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 @@ -1381,15 +1381,15 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -データクラス属性はすべて、エンティティのプロパティとして利用可能です。 各エンティティのプロパティは、当該。 エンティティの属性値を格納します +データクラス属性はすべて、エンティティのプロパティとして利用可能です。 各エンティティのプロパティは、当該。エンティティの属性値を格納します *filterString* 引数が空の文字列、あるいは "*" の場合、以下のいずれかが返されます: * すべてのストレージエンティティ属性 -* リレートエンティティ型の属性 ([kind](DataClassClass.md#attributename) が `relatedEntity`) : リレートエンティティと同じ名前 (N対1リレーション名) のプロパティ。 属性は単純な形式で取得されます。 +* リレートエンティティ型の属性 ([kind](DataClassClass.md#attributename) が `relatedEntity`) : リレートエンティティと同じ名前 (N対1リレーション名) のプロパティ。属性は単純な形式で取得されます。 * リレートエンティティズ型の属性 ([kind](DataClassClass.md#attributename) が `relatedEntities`): 属性は返されません。 -最初の引数として、取得するエンティティ属性を渡します。 以下のものを渡すことができます: +最初の引数として、取得するエンティティ属性を渡します。以下のものを渡すことができます: * リレートエンティティズの一部のプロパティを取得します: * *filterCol*: 文字列のコレクション: \["propertyPath1","propertyPath2";...] @@ -1671,9 +1671,9 @@ employeeObject:=employeeSelected.toObject("directReports.*") `.touched()` 関数は、 エンティティがメモリに読み込まれてから、あるいは保存されてから、エンティティ属性が変更されたかどうかをテストします。 -属性が更新あるいは計算されていた場合、関数は true を返し、それ以外は false を返します。 この関数を使用することで、エンティティを保存する必要があるかどうかを確認することができます。 +属性が更新あるいは計算されていた場合、関数は true を返し、それ以外は false を返します。この関数を使用することで、エンティティを保存する必要があるかどうかを確認することができます。 -この関数は、([`.new( )`](DataClassClass.md#new) で作成された) 新規エンティティに対しては常に false を返します。 ただし、エンティティの属性を計算する関数を使用した場合には、`.touched()` 関数は true を返します。 たとえば、プライマリーキーを計算するために [`.getKey()`](#getkey) を呼び出した場合、`.touched()` メソッドは true を返します。 +この関数は、([`.new( )`](DataClassClass.md#new) で作成された) 新規エンティティに対しては常に false を返します。ただし、エンティティの属性を計算する関数を使用した場合には、`.touched()` 関数は true を返します。たとえば、プライマリーキーを計算するために [`.getKey()`](#getkey) を呼び出した場合、`.touched()` メソッドは true を返します。 #### 例題 @@ -1819,10 +1819,10 @@ employeeObject:=employeeSelected.toObject("directReports.*") `.unlock()` によって返されるオブジェクトには以下のプロパティが格納されます: -| プロパティ | 型 | 説明 | -| ------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| success | Boolean | ロック解除が成功した場合には true、それ以外は false。 ドロップされたエンティティや、ロックされてないレコード、あるいは他のプロセスや他のエンティティによってロックされたレコードに対してロック解除を実行した場合、success には false が返されます。 | -| wasNotLocked | Boolean | ("success" がFalse だったときのみ)エンティティがプロセス内でロックされていなかった場合にTrue。 | +| プロパティ | 型 | 説明 | +| ------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| success | Boolean | ロック解除が成功した場合には true、それ以外は false。ドロップされたエンティティや、ロックされてないレコード、あるいは他のプロセスや他のエンティティによってロックされたレコードに対してロック解除を実行した場合、success には false が返されます。 | +| wasNotLocked | Boolean | ("success" がFalse だったときのみ)エンティティがプロセス内でロックされていなかった場合にTrue。 | #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/FileClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/FileClass.md index f659e642e837fb..d855bc0689016d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/FileClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/FileClass.md @@ -3,7 +3,7 @@ id: FileClass title: File --- -`File` オブジェクトは [`File`](#file) コマンドによって作成されます。 これらのオブジェクトには、(実在しているか否かに関わらず) ディスクファイルへの参照が格納されます。 たとえば、新規ファイルを作成するために `File` コマンドを実行した場合、有効な `File` オブジェクトが作成されますが、[`file.create()`](#create) 関数を呼び出すまで、ディスク上にはなにも保存されていません。 +`File` オブジェクトは [`File`](#file) コマンドによって作成されます。これらのオブジェクトには、(実在しているか否かに関わらず) ディスクファイルへの参照が格納されます。たとえば、新規ファイルを作成するために `File` コマンドを実行した場合、有効な `File` オブジェクトが作成されますが、[`file.create()`](#create) 関数を呼び出すまで、ディスク上にはなにも保存されていません。 ### 例題 @@ -16,7 +16,7 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() ### パス名 -`File` オブジェクトは、`filesystems` や `posix` シンタックスを含む、いくつかのパス名をサポートしています。 使用できるパス名についての詳細は [**パス名**](../Concepts/paths.md) ページを参照ください。 +`File` オブジェクトは、`filesystems` や `posix` シンタックスを含む、いくつかのパス名をサポートしています。使用できるパス名についての詳細は [**パス名**](../Concepts/paths.md) ページを参照ください。 @@ -86,15 +86,15 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() #### 説明 -`File` コマンドは、 `4D.File` 型の新しいオブジェクトを作成して返します 。。 このコマンドは 2種類のシンタックスを受け入れます。 +`File` コマンドは、 `4D.File` 型の新しいオブジェクトを作成して返します 。。このコマンドは 2種類のシンタックスを受け入れます。 **File ( path { ; pathType } { ; \* })** -*path* には、ファイルパス文字列を渡します。 カスタムの文字列または [ファイルシステム](../Concepts/paths.md#filesystem-pathnames) (例: "/DATA/myfile.txt") を渡すことができます。 +*path* には、ファイルパス文字列を渡します。カスタムの文字列または [ファイルシステム](../Concepts/paths.md#filesystem-pathnames) (例: "/DATA/myfile.txt") を渡すことができます。 > `File` コマンドでは絶対パス名のみがサポートされます。 -デフォルトで、4D は POSIXシンタックスで表現されたパスを期待します。 プラットフォームパス名 (Windows または macOS) を使用する場合、*pathType* 引数を使用してそのことを宣言する必要があります。 以下の定数を使用することができます: +デフォルトで、4D は POSIXシンタックスで表現されたパスを期待します。プラットフォームパス名 (Windows または macOS) を使用する場合、*pathType* 引数を使用してそのことを宣言する必要があります。以下の定数を使用することができます: | 定数 | 値 | 説明 | | ---------------- | - | ---------------------------------------------- | @@ -105,33 +105,33 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() *fileConstant* には、以下の定数のどれか一つを指定して 4Dビルトインの、またはシステムファイルを渡します: -| 定数 | 値 | 説明 | -| --------------------------------- | -- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Backup history file | 19 | バックアップ履歴ファイル。 バックアップ保存先フォルダーに保存されています。 | -| Backup log file | 13 | カレントのバックアップのログファイル。 アプリケーションの Logs フォルダーに保存されています。 | -| Backup settings file | 1 | プロジェクトの Settings フォルダーにある、デフォルトの backup.4DSettings ファイル (xml 形式) | -| Backup settings file for data | 17 | データフォルダーの Settings フォルダーにある、データファイル用の backup.4DSettings ファイル (xml 形式) | -| Build application log file | 14 | アプリケーションビルダーのカレントログファイル (xml 形式)。 Logs フォルダーに保存されています。 | -| Build application settings file | 20 | アプリケーションビルダーのデフォルト設定ファイル ("buildApp.4DSettings")。 プロジェクトの Settings フォルダーに保存されています。 | -| Compacting log file | 6 | Compact data file コマンドによって、あるいはメンテナンス&セキュリティセンター (MSC) によって作成された、直近の圧縮のログファイル。 Logs フォルダーに保存されています。 | -| Current backup settings file | 18 | アプリケーションが現在使用している backup.4DSettings ファイル。 使用されるのはデフォルトのバックアップ設定ファイル、または、データファイル用のユーザーバックアップ設定ファイルです。 | -| Debug log file | 12 | `SET DATABASE PARAMETER(Debug log recording)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | -| Diagnostic log file | 11 | `SET DATABASE PARAMETER(Diagnostic log recording)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | -| Directory file | 16 | プロジェクトアプリケーションにおいて、ユーザーとグループ (あれば) の定義が格納された directory.json ファイル。 このファイルは、データベースの user settings フォルダー (デフォルト、プロジェクトに対してグローバル)、または data settings フォルダー (データファイル専用) に保管されます。 | -| HTTP Client log file | 24 | `HTTP SET OPTION(HTTP client log)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | -| HTTP debug log file | 9 | `WEB SET OPTION(Web debug log)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | -| HTTP log file | 8 | `WEB SET OPTION(Web log recording)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | -| IMAP Log file | 23 | `SET DATABASE PARAMETER(IMAP Log)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | -| Last backup file | 2 | 任意の場所に格納されている、最終バックアップファイル (名称は: `[bkpNum].4BK`) | -| Last journal integration log file | 22 | 最後のログ統合ログファイル (あれば) の完全なパス名 (復元されたアプリケーションの Logs フォルダー内に保存されます)。 このファイルは、自動修復モードにおいてログファイル統合が発生した時点で作成されます。 | -| Repair log file | 7 | メンテナンス&セキュリティセンター (MSC) 内からデータベースに対しておこなわれたデータベース修復のログファイル。 Logs フォルダーに保存されています。 | -| Request log file | 10 | `SET DATABASE PARAMETER(4D Server log recording)` あるいは `SET DATABASE PARAMETER(Client log recording)` コマンドによって作成された標準のクライアント/サーバーログファイル (Webリクエストは除外)。 サーバー上で実行された場合には、サーバーログが返されます (ログファイルはサーバー上の Logsフォルダーに保存されています)。 クライアントで実行された場合には、クライアントのログが返されます (ログファイルはクライアントのLogsフォルダーに保存されています)。 | -| SMTP log file | 15 | `SET DATABASE PARAMETER(SMTP Log)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | -| User settings file | 3 | 設定が有効化されている場合、ストラクチャーファイルと同じ階層にある Preferences フォルダーに格納された、全データファイルの settings.4DSettings ファイル。 | -| User settings file for data | 4 | データファイルと同じ階層にある Preferences フォルダーに格納された、カレントデータファイルの settings.4DSettings ファイル。 | -| Verification log file | 5 | `VERIFY CURRENT DATA FILE` および `VERIFY DATA FILE` コマンドによって、あるいはメンテナンス&セキュリティセンター (MSC) によって作成されたログファイル。 Logs フォルダーに保存されています。 | - -*fileConstant* 引数で指定したファイルが存在しない場合、null オブジェクトが返されます。 エラーは生成されません。 +| 定数 | 値 | 説明 | +| --------------------------------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Backup history file | 19 | バックアップ履歴ファイル。バックアップ保存先フォルダーに保存されています。 | +| Backup log file | 13 | カレントのバックアップのログファイル。アプリケーションの Logs フォルダーに保存されています。 | +| Backup settings file | 1 | プロジェクトの Settings フォルダーにある、デフォルトの backup.4DSettings ファイル (xml 形式) | +| Backup settings file for data | 17 | データフォルダーの Settings フォルダーにある、データファイル用の backup.4DSettings ファイル (xml 形式) | +| Build application log file | 14 | アプリケーションビルダーのカレントログファイル (xml 形式)。 Logs フォルダーに保存されています。 | +| Build application settings file | 20 | アプリケーションビルダーのデフォルト設定ファイル ("buildApp.4DSettings")。プロジェクトの Settings フォルダーに保存されています。 | +| Compacting log file | 6 | Compact data file コマンドによって、あるいはメンテナンス&セキュリティセンター (MSC) によって作成された、直近の圧縮のログファイル。 Logs フォルダーに保存されています。 | +| Current backup settings file | 18 | アプリケーションが現在使用している backup.4DSettings ファイル。使用されるのはデフォルトのバックアップ設定ファイル、または、データファイル用のユーザーバックアップ設定ファイルです。 | +| Debug log file | 12 | `SET DATABASE PARAMETER(Debug log recording)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | +| Diagnostic log file | 11 | `SET DATABASE PARAMETER(Diagnostic log recording)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | +| Directory file | 16 | プロジェクトアプリケーションにおいて、ユーザーとグループ (あれば) の定義が格納された directory.json ファイル。このファイルは、データベースの user settings フォルダー (デフォルト、プロジェクトに対してグローバル)、または data settings フォルダー (データファイル専用) に保管されます。 | +| HTTP Client log file | 24 | `HTTP SET OPTION(HTTP client log)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | +| HTTP debug log file | 9 | `WEB SET OPTION(Web debug log)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | +| HTTP log file | 8 | `WEB SET OPTION(Web log recording)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | +| IMAP Log file | 23 | `SET DATABASE PARAMETER(IMAP Log)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | +| Last backup file | 2 | 任意の場所に格納されている、最終バックアップファイル (名称は: `[bkpNum].4BK`) | +| Last journal integration log file | 22 | 最後のログ統合ログファイル (あれば) の完全なパス名 (復元されたアプリケーションの Logs フォルダー内に保存されます)。このファイルは、自動修復モードにおいてログファイル統合が発生した時点で作成されます。 | +| Repair log file | 7 | メンテナンス&セキュリティセンター (MSC) 内からデータベースに対しておこなわれたデータベース修復のログファイル。 Logs フォルダーに保存されています。 | +| Request log file | 10 | `SET DATABASE PARAMETER(4D Server log recording)` あるいは `SET DATABASE PARAMETER(Client log recording)` コマンドによって作成された標準のクライアント/サーバーログファイル (Webリクエストは除外)。サーバー上で実行された場合には、サーバーログが返されます (ログファイルはサーバー上の Logsフォルダーに保存されています)。クライアントで実行された場合には、クライアントのログが返されます (ログファイルはクライアントのLogsフォルダーに保存されています)。 | +| SMTP log file | 15 | `SET DATABASE PARAMETER(SMTP Log)` コマンドによって作成されたログファイル。 Logs フォルダーに保存されています。 | +| User settings file | 3 | 設定が有効化されている場合、ストラクチャーファイルと同じ階層にある Preferences フォルダーに格納された、全データファイルの settings.4DSettings ファイル。 | +| User settings file for data | 4 | データファイルと同じ階層にある Preferences フォルダーに格納された、カレントデータファイルの settings.4DSettings ファイル。 | +| Verification log file | 5 | `VERIFY CURRENT DATA FILE` および `VERIFY DATA FILE` コマンドによって、あるいはメンテナンス&セキュリティセンター (MSC) によって作成されたログファイル。 Logs フォルダーに保存されています。 | + +*fileConstant* 引数で指定したファイルが存在しない場合、null オブジェクトが返されます。エラーは生成されません。 コマンドがコンポーネントから呼び出されている場合、`*` 引数を渡してホストデータベースのパスを取得するようにします。 `*` 引数を省略すると、常に null オブジェクトが返されます。 @@ -149,7 +149,7 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() #### 説明 -`4D.File.new()` 関数は、 `4D.File` 型の新しいオブジェクトを作成して返します 。。 この関数の機能は、[`File`](#file) コマンドと同一です。 +`4D.File.new()` 関数は、 `4D.File` 型の新しいオブジェクトを作成して返します 。。この関数の機能は、[`File`](#file) コマンドと同一です。 > `4D.File.new()` よりも、短い [`File`](#file) コマンドの使用が推奨されます。 @@ -185,7 +185,7 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() `.create()` 関数は、 `File` オブジェクトのプロパティに基づいてディスク上にファイルを作成します。 -必要であれば、 関数は [platformPath](#platformpath) あるいは [path](#path) プロパティの詳細に基づいてフォルダー階層を作成します。 ファイルがディスク上にすでに存在する場合、関数は何もせず、false を返します (エラーは返されません)。 +必要であれば、 関数は [platformPath](#platformpath) あるいは [path](#path) プロパティの詳細に基づいてフォルダー階層を作成します。ファイルがディスク上にすでに存在する場合、関数は何もせず、false を返します (エラーは返されません)。 **戻り値** @@ -233,7 +233,7 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() *aliasName* には、作成するエイリアスまたはショートカットの名前を渡します。 -macOS 上では、この関数はデフォルトで標準エイリアスを作成します。 *aliasType* 引数を渡すことで、シンボリックリンクを作成することもできます。 以下の定数を使用することができます: +macOS 上では、この関数はデフォルトで標準エイリアスを作成します。 *aliasType* 引数を渡すことで、シンボリックリンクを作成することもできます。以下の定数を使用することができます: | 定数 | 値 | 説明 | | ------------------ | - | ------------------- | @@ -297,7 +297,7 @@ Windows 上では、常にショートカット (.lnk ファイル) が作成さ :::caution -`.delete()` はディスク上の任意のファイルを削除できます。 これには、他のアプリケーションで作成されたドキュメントや、アプリケーションそのものも対象になります。 そのため、`.delete()` は特に十分な注意を払って使用してください。 ファイルの削除は恒久的な操作であり取り消しできません。 +`.delete()` はディスク上の任意のファイルを削除できます。これには、他のアプリケーションで作成されたドキュメントや、アプリケーションそのものも対象になります。そのため、`.delete()` は特に十分な注意を払って使用してください。ファイルの削除は恒久的な操作であり取り消しできません。 ::: @@ -348,9 +348,9 @@ Windows 上では、常にショートカット (.lnk ファイル) が作成さ `.getAppInfo()` 関数は、 **.exe** や **.dll**、**.plist** ファイルの情報をオブジェクトとして返します。 -この関数は、既存の .exe、.dll、あるいは .plist ファイルと使う必要があります。 ファイルがディスク上に存在しない、または、有効な .exe や .dll、.plist ファイルでない場合、この関数は空のオブジェクトを返します (エラーは生成されません)。 +この関数は、既存の .exe、.dll、あるいは .plist ファイルと使う必要があります。ファイルがディスク上に存在しない、または、有効な .exe や .dll、.plist ファイルでない場合、この関数は空のオブジェクトを返します (エラーは生成されません)。 -> この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。 バイナリー形式の .plist ファイルを対象に使用した場合、エラーが返されます。 +> この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。バイナリー形式の .plist ファイルを対象に使用した場合、エラーが返されます。 **.exe または .dll ファイルの場合に返されるオブジェクト** @@ -448,7 +448,7 @@ ALERT($info.Copyright) *destinationFolder* 引数が指定するフォルダーはディスク上に存在している必要があり、そうでない場合にはエラーが生成されます。 -デフォルトでは、移動したファイルは元の名前を維持します。 移動の際にファイル名を変更したい場合、新しい完全な名前を *newName* に渡します。 新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 +デフォルトでは、移動したファイルは元の名前を維持します。移動の際にファイル名を変更したい場合、新しい完全な名前を *newName* に渡します。新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 **返されるオブジェクト** @@ -498,24 +498,24 @@ $myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt") -| *mode* | 説明 | -| -------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| "read" | (デフォルト) ファイルから値を読み取るための FileHandle を作成します。 ディスク上にファイルが存在しない場合は、エラーが返されます。 "read" モードの FileHandle は、同じ File オブジェクトに対していくつでも開くことができます。 | -| "write" | ファイルに値を書き込むための FileHandle を作成します (書き込みはファイルの先頭から)。 ディスク上にファイルが存在しない場合は、作成されます。 "write" モードの FileHandle は、同じ File オブジェクトに対して 1つのみ開くことができます。 | -| "append" | ファイルに値を書き込むための FileHandle を作成します (書き込みはファイルの最後から)。 ディスク上にファイルが存在しない場合は、作成されます。 "append" モードの FileHandle は、同じ File オブジェクトに対して 1つのみ開くことができます。 | +| *mode* | 説明 | +| -------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| "read" | (デフォルト) ファイルから値を読み取るための FileHandle を作成します。ディスク上にファイルが存在しない場合は、エラーが返されます。 "read" モードの FileHandle は、同じ File オブジェクトに対していくつでも開くことができます。 | +| "write" | ファイルに値を書き込むための FileHandle を作成します (書き込みはファイルの先頭から)。ディスク上にファイルが存在しない場合は、作成されます。 "write" モードの FileHandle は、同じ File オブジェクトに対して 1つのみ開くことができます。 | +| "append" | ファイルに値を書き込むための FileHandle を作成します (書き込みはファイルの最後から)。ディスク上にファイルが存在しない場合は、作成されます。 "append" モードの FileHandle は、同じ File オブジェクトに対して 1つのみ開くことができます。 | > *mode* の値は、文字の大小を区別します。 *option* (object) 引数を使って、以下のプロパティを通じて FileHandle にさらなるオプションを渡すことができます (これらのプロパティはその後、開かれた [FileHandle オブジェクト](FileHandleClass) から取得できます)。 -| *options* | 型 | 説明 | デフォルト | -| ----------------- | --------------- | ---------------------------------------------------------------------- | -------------- | -| `.mode` | Text | 開くモード (上記の *mode* 参照) | "read" | -| `.charset` | Text | ファイルの読み取りや書き込みに使用される文字セット。 セットの標準名を使用します (たとえば、"ISO-8859-1" や "UTF-8") | "UTF-8" | -| `.breakModeRead` | Text または Number | ファイルの読み取り時に使用される改行の処理モード (下記参照) | "native" または 1 | -| `.breakModeWrite` | Text または Number | ファイルの書き込み時に使用される改行の処理モード (下記参照) | "native" または 1 | +| *options* | 型 | 説明 | デフォルト | +| ----------------- | --------------- | --------------------------------------------------------------------- | -------------- | +| `.mode` | Text | 開くモード (上記の *mode* 参照) | "read" | +| `.charset` | Text | ファイルの読み取りや書き込みに使用される文字セット。セットの標準名を使用します (たとえば、"ISO-8859-1" や "UTF-8") | "UTF-8" | +| `.breakModeRead` | Text または Number | ファイルの読み取り時に使用される改行の処理モード (下記参照) | "native" または 1 | +| `.breakModeWrite` | Text または Number | ファイルの書き込み時に使用される改行の処理モード (下記参照) | "native" または 1 | -この関数は、元の改行文字をすべて置き換えます。 デフォルトではネイティブの区切り文字が使われますが、別の区切り文字を定義することも可能です。 `.breakModeRead` と `.breakModeWrite` は、改行文字に適用する処理を指定します。 以下のいずれかの値を使用できます (テキストまたは数値): +この関数は、元の改行文字をすべて置き換えます。デフォルトではネイティブの区切り文字が使われますが、別の区切り文字を定義することも可能です。 `.breakModeRead` と `.breakModeWrite` は、改行文字に適用する処理を指定します。以下のいずれかの値を使用できます (テキストまたは数値): | 改行モードの値 (テキスト) | 改行モードの値 (数値/定数) | 説明 | | -------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------- | @@ -575,7 +575,7 @@ $fhandle:=$f.open("read") `.rename()` 関数は、 `.rename()` 関数は、。 -*newName* 引数は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 同じ名前のファイルがすでに存在する場合には、エラーが返されます。 +*newName* 引数は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。同じ名前のファイルがすでに存在する場合には、エラーが返されます。 この関数はファイルの完全な名前を編集することに留意が必要です。 つまり、*newName* に拡張子を渡さなかった場合、新しいファイル名には拡張子がありません。 @@ -628,29 +628,29 @@ $fhandle:=$f.open("read") > .exe および .dll ファイル情報の書き込みは Windows上でのみ可能です。 -*info* オブジェクトに設定された各プロパティは .exe または .dll ファイルのバージョンリソースに書き込まれます。 以下のプロパティが使用できます (それ以外のプロパティは無視されます): +*info* オブジェクトに設定された各プロパティは .exe または .dll ファイルのバージョンリソースに書き込まれます。以下のプロパティが使用できます (それ以外のプロパティは無視されます): -| プロパティ | 型 | 説明 | -| ---------------- | ---- | ---------------------------------------------------- | -| InternalName | Text | | -| ProductName | Text | | -| CompanyName | Text | | -| LegalCopyright | Text | | -| ProductVersion | Text | | -| FileDescription | Text | | -| FileVersion | Text | | -| OriginalFilename | Text | | -| WinIcon | Text | .icoファイルの Posixパス。 このプロパティは、4D が生成した実行ファイルにのみ適用されます。 | +| プロパティ | 型 | 説明 | +| ---------------- | ---- | --------------------------------------------------- | +| InternalName | Text | | +| ProductName | Text | | +| CompanyName | Text | | +| LegalCopyright | Text | | +| ProductVersion | Text | | +| FileDescription | Text | | +| FileVersion | Text | | +| OriginalFilename | Text | | +| WinIcon | Text | .icoファイルの Posixパス。このプロパティは、4D が生成した実行ファイルにのみ適用されます。 | -`WinIcon` を除くすべてのプロパティにおいて、値として null または空テキストを渡すと、空の文字列がプロパティに書き込まれます。 テキストでない型の値を渡した場合には、文字列に変換されます。 +`WinIcon` を除くすべてのプロパティにおいて、値として null または空テキストを渡すと、空の文字列がプロパティに書き込まれます。テキストでない型の値を渡した場合には、文字列に変換されます。 `WinIcon` プロパティにおいては、アイコンファイルが存在しないか、フォーマットが正しくない場合、エラーが発生します。 **.plist ファイル用の *info* オブジェクト** -> この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。 バイナリー形式の .plist ファイルを対象に使用した場合、エラーが返されます。 +> この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。バイナリー形式の .plist ファイルを対象に使用した場合、エラーが返されます。 -*info* オブジェクトに設定された各プロパティは .plist ファイルにキーとして書き込まれます。 あらゆるキーの名称が受け入れられます。 値の型は可能な限り維持されます。 +*info* オブジェクトに設定された各プロパティは .plist ファイルにキーとして書き込まれます。あらゆるキーの名称が受け入れられます。値の型は可能な限り維持されます。 *info* に設定されたキーが .plist ファイル内ですでに定義されている場合は、その値が更新され、元の型が維持されます。 .plist ファイルに既存のそのほかのキーはそのまま維持されます。 @@ -755,18 +755,18 @@ $infoPlistFile.setAppInfo($info) `.setText()` 関数は、 *text* に渡されたテキストをファイルの新しいコンテンツとして書き込みます。 -`File` オブジェクトで参照されているファイルがディスク上に存在しない場合、このメソッドがそのファイルを作成します。 ディスク上にファイルが存在する場合、ファイルが開かれている場合を除き、以前のコンテンツは消去されます。 ファイルが開かれている場合はコンテンツはロックされ、エラーが生成されます。 +`File` オブジェクトで参照されているファイルがディスク上に存在しない場合、このメソッドがそのファイルを作成します。ディスク上にファイルが存在する場合、ファイルが開かれている場合を除き、以前のコンテンツは消去されます。 ファイルが開かれている場合はコンテンツはロックされ、エラーが生成されます。 -*text* には、ファイルに書き込むテキストを渡します。 テキストリテラル ("my text" など) のほか、4Dテキストフィールドや変数も渡せます。 +*text* には、ファイルに書き込むテキストを渡します。テキストリテラル ("my text" など) のほか、4Dテキストフィールドや変数も渡せます。 -任意で、コンテンツの書き込みに使用する文字セットを渡します。 これには、次の二つの方法があります: +任意で、コンテンツの書き込みに使用する文字セットを渡します。これには、次の二つの方法があります: * *charSetName* に標準の文字セット名を含んだ文字列 ("ISO-8859-1" や "UTF-8" など) を渡します。 * *charSetNum* に標準の文字セット名の MIBEnum ID (倍長整数) を渡します。 > 4D によってサポートされている文字セットの一覧については、`CONVERT FROM TEXT` コマンドを参照ください。 -文字セットにバイトオーダーマーク (BOM) が存在し、かつその文字セットに "-no-bom" 接尾辞 (例: "UTF-8-no-bom") が含まれていない場合、4D は BOM をファイルに挿入します。 文字セットを指定しない場合、 4D はデフォルトで "UTF-8" の文字セットを BOMなしで使用します。 +文字セットにバイトオーダーマーク (BOM) が存在し、かつその文字セットに "-no-bom" 接尾辞 (例: "UTF-8-no-bom") が含まれていない場合、4D は BOM をファイルに挿入します。文字セットを指定しない場合、 4D はデフォルトで "UTF-8" の文字セットを BOMなしで使用します。 *breakMode* には、ファイルを保存する前に改行文字に対しておこなう処理を指定する倍長整数を渡します。 **System Documents** テーマ内にある、以下の定数を使用することができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/IMAPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/IMAPTransporterClass.md index d4aac672b68f5c..be3ece7d395a5d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/IMAPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/IMAPTransporterClass.md @@ -7,7 +7,7 @@ title: IMAPTransporter ### IMAP Transporter オブジェクト -IMAP Transporter オブジェクトは [IMP New transporter](#imap-new-transporter) コマンドによってインスタンス化されます。 これらは、次のプロパティや関数を持ちます: +IMAP Transporter オブジェクトは [IMP New transporter](#imap-new-transporter) コマンドによってインスタンス化されます。これらは、次のプロパティや関数を持ちます: | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -68,7 +68,7 @@ IMAP Transporter オブジェクトは [IMP New transporter](#imap-new-transport #### 説明 -`IMAP New transporter` コマンドは、 新規の IMAP接続を設定します この IMAP接続は、*server* 引数の指定に応じてを設定され、コマンドの戻り値は新しい *IMAP transporter* オブジェクトです。 返される transporter オブジェクトは通常、メールの受信に使用されます。 +`IMAP New transporter` コマンドは、 新規の IMAP接続を設定します この IMAP接続は、*server* 引数の指定に応じてを設定され、コマンドの戻り値は新しい *IMAP transporter* オブジェクトです。返される transporter オブジェクトは通常、メールの受信に使用されます。 *server* 引数として、以下のプロパティを持つオブジェクトを渡します: @@ -88,7 +88,7 @@ IMAP Transporter オブジェクトは [IMP New transporter](#imap-new-transport #### 戻り値 -この関数は、[**IMAP transporter オブジェクト**](#imap-transporter-オブジェクト) を返します。 返されるプロパティはすべて **読み取り専用** です。 +この関数は、[**IMAP transporter オブジェクト**](#imap-transporter-オブジェクト) を返します。返されるプロパティはすべて **読み取り専用** です。 > IMAP接続は、transporter オブジェクトが消去された時点で自動的に閉じられます。 #### 例題 @@ -127,7 +127,7 @@ End if #### 説明 -`4D.IMAPTransporter.new()` 関数は、 `4D.IMAPTransporter` 型の新しいオブジェクトを作成して返します。 この関数の機能は、[`IMAP New transporter`](#imap-new-transporter) コマンドと同一です。 +`4D.IMAPTransporter.new()` 関数は、 `4D.IMAPTransporter` 型の新しいオブジェクトを作成して返します。この関数の機能は、[`IMAP New transporter`](#imap-new-transporter) コマンドと同一です。 @@ -172,7 +172,7 @@ End if | -------- | - | ------------------------- | | IMAP all | 1 | 選択されたメールボックスの全メッセージを選択します | -`keywords` を使って、`msgIDs` 引数で指定したメッセージに対して追加するフラグを定義します。 以下の標準フラグおよびカスタムフラグを使用することができます (カスタムフラグのサポートはサーバーの実装に依存します)。 +`keywords` を使って、`msgIDs` 引数で指定したメッセージに対して追加するフラグを定義します。以下の標準フラグおよびカスタムフラグを使用することができます (カスタムフラグのサポートはサーバーの実装に依存します)。 | プロパティ | 型 | 説明 | | --------------------- | ------- | --------------------------------- | @@ -260,16 +260,16 @@ $status:=$transporter.addFlags(IMAP all;$flags) `.append()` 関数は、 `destinationBox` に指定したメールボックスに、`mailObj` のメールを追加します。 -`mailObj` には、Email オブジェクトを渡します。 メールプロパティに関する包括的な詳細については、[Email オブジェクト](EmailObjectClass.md#email-オブジェクト) を参照ください。 `.append()` 関数は Email オブジェクトの `keywords` 属性内のキーワードタグをサポートします。 +`mailObj` には、Email オブジェクトを渡します。メールプロパティに関する包括的な詳細については、[Email オブジェクト](EmailObjectClass.md#email-オブジェクト) を参照ください。 `.append()` 関数は Email オブジェクトの `keywords` 属性内のキーワードタグをサポートします。 -任意の `destinationBox` には、`mailObj` が追加されるメールボックスの名前を指定することができます。 省略した場合は、カレントメールボックスが使用されます。 +任意の `destinationBox` には、`mailObj` が追加されるメールボックスの名前を指定することができます。省略した場合は、カレントメールボックスが使用されます。 -任意の `options` には、メールの特定部分の文字セットやエンコーディングを定義するオブジェクトを渡すことができます。 次のプロパティを含みます: +任意の `options` には、メールの特定部分の文字セットやエンコーディングを定義するオブジェクトを渡すことができます。次のプロパティを含みます: -| プロパティ | 型 | 説明 | -| ------------- | ---- | --------------------------------------------------------------------------------- | -| headerCharset | Text | メールの以下の部分で使用される文字セットとエンコーディング: 件名、添付ファイル名、メール名の属性。 取り得る値: 以下の可能な文字セットテーブルを参照ください。 | -| bodyCharset | Text | メールの HTML およびテキスト本文コンテンツで使用される文字セットとエンコーディング。 取り得る値: 以下の可能な文字セットテーブルを参照ください。 | +| プロパティ | 型 | 説明 | +| ------------- | ---- | -------------------------------------------------------------------------------- | +| headerCharset | Text | メールの以下の部分で使用される文字セットとエンコーディング: 件名、添付ファイル名、メール名の属性。取り得る値: 以下の可能な文字セットテーブルを参照ください。 | +| bodyCharset | Text | メールの HTML およびテキスト本文コンテンツで使用される文字セットとエンコーディング。取り得る値: 以下の可能な文字セットテーブルを参照ください。 | 使用可能な文字セット: @@ -337,7 +337,7 @@ $status:=$imap.append($msg; "Drafts") #### 説明 -`.checkConnectionDelay` プロパティは、 サーバー接続をチェックするまでの最長時間 (秒単位) を格納します。 関数呼び出しの間隔がこの時間を超過する場合、サーバー接続が確認されます。 プロパティが *server* オブジェクトによって設定されていない場合は、デフォルトで 300 という値が使用されます。 +`.checkConnectionDelay` プロパティは、 サーバー接続をチェックするまでの最長時間 (秒単位) を格納します。関数呼び出しの間隔がこの時間を超過する場合、サーバー接続が確認されます。プロパティが *server* オブジェクトによって設定されていない場合は、デフォルトで 300 という値が使用されます。 > **警告**: 定義されたタイムアウトが、サーバータイムアウトより短いようにしてください。 そうでない場合、クライアントタイムアウトは無意味になります。 @@ -560,7 +560,7 @@ End if * `msgsIDs` には、削除するメッセージの固有ID を格納したコレクション * `allMsgs` には、選択されているメールボックスの全メッセージを削除するための定数 (倍長整数型): -この関数を実行しても、メールが実際に削除される訳ではありません。 "削除済み" フラグがつけられたメッセージも引き続き [.searchMails()](#searchmails) 関数によって検索可能です。 フラグがつけられたメッセージは、[`.expunge()`](#expunge) を実行したときか、別のメールボックスを選択したとき、あるいは([IMAP New transporter](#imap-new-transporter) で作成された) [transporter オブジェクト](#imap-transporter-オブジェクト) が消去されたときにのみ、IMAPサーバーから削除されます。 +この関数を実行しても、メールが実際に削除される訳ではありません。"削除済み" フラグがつけられたメッセージも引き続き [.searchMails()](#searchmails) 関数によって検索可能です。フラグがつけられたメッセージは、[`.expunge()`](#expunge) を実行したときか、別のメールボックスを選択したとき、あるいは([IMAP New transporter](#imap-new-transporter) で作成された) [transporter オブジェクト](#imap-transporter-オブジェクト) が消去されたときにのみ、IMAPサーバーから削除されます。 **返されるオブジェクト** @@ -654,7 +654,7 @@ End if #### 説明 -`.deleteBox()` 関数は、 `name` に指定した名称の新規メールボックスを IMAPサーバーから完全に削除します。 存在しないメールボックス、または INBOX を削除しようとして場合には、エラーが生成されます。 +`.deleteBox()` 関数は、 `name` に指定した名称の新規メールボックスを IMAPサーバーから完全に削除します。存在しないメールボックス、または INBOX を削除しようとして場合には、エラーが生成されます。 `name` には、削除するメールボックスの名前を渡します。 > * 子メールボックスを持つ親メールボックスが "\Noselect" 属性を持っている場合、そのメールボックスは削除できません。 @@ -804,9 +804,9 @@ $status:=$transporter.expunge() #### 説明 -`.getBoxInfo()` 関数は、 カレントメールボックス、または *name* が指定するメールボックスに対応する `boxInfo` オブジェクトを返します。 この関数は、[`.selectBox()`](#selectbox) と同じ情報を返しますが、カレントメールボックスは変えません。 +`.getBoxInfo()` 関数は、 カレントメールボックス、または *name* が指定するメールボックスに対応する `boxInfo` オブジェクトを返します。この関数は、[`.selectBox()`](#selectbox) と同じ情報を返しますが、カレントメールボックスは変えません。 -任意の *name* パラメーターには、アクセスするメールボックスの名称を渡します。 この名称は明確な左から右への階層を表し、特定の区切り文字でレベルを区分けします。 この区切り文字は [`.getDelimiter()`](#getdelimiter) 関数で調べることができます。 +任意の *name* パラメーターには、アクセスするメールボックスの名称を渡します。この名称は明確な左から右への階層を表し、特定の区切り文字でレベルを区分けします。この区切り文字は [`.getDelimiter()`](#getdelimiter) 関数で調べることができます。 *name* のメールボックスが選択不可の場合、または見つからない場合には、関数はエラーを生成し、**null** を返します。 @@ -860,9 +860,9 @@ $status:=$transporter.expunge() #### 説明 -`.getBoxList()` 関数は、 利用可能なメールボックスの情報を mailbox オブジェクトのコレクションとしてを返します。 この関数を使用すると、IMAPメールサーバー上にあるメッセージの一覧をローカルで管理することができるようになります。 +`.getBoxList()` 関数は、 利用可能なメールボックスの情報を mailbox オブジェクトのコレクションとしてを返します。この関数を使用すると、IMAPメールサーバー上にあるメッセージの一覧をローカルで管理することができるようになります。 -任意の `parameters` パラメーターには、返されるメールボックスをフィルターするための値を格納したオブジェクトを渡すことができます。 以下のものを渡すことができます: +任意の `parameters` パラメーターには、返されるメールボックスをフィルターするための値を格納したオブジェクトを渡すことができます。以下のものを渡すことができます: | プロパティ | 型 | 説明 | | ------------ | ------- | ---------------------------------------------------- | @@ -877,7 +877,7 @@ $status:=$transporter.expunge() | \[].name | text | メールボックスの名称 | | \[].selectable | boolean | アクセス権でメールボックスを選択できるかどうかを表します:
    • true - メールボックスは選択可能
    • false - メールボックスは選択不可能
    | | \[].inferior | boolean | アクセス権でメールボックス内に下の階層レベルを作成できるかどうかを表します:
    • true - 下の階層レベルは作成可能
    • false - 下の階層レベルは作成不可能
    | -| \[].interesting | boolean | サーバーがメールボックスに “interesting” のマーク付けをしているかどうかを表します:
    • true - メールボックスはサーバーから "interesting" のマーク付けをされています。 たとえば、メールボックスには新着メッセージが入っている場合が考えられます。
    • false - メールボックスはサーバーから "interesting" のマーク付けをされていません。
    | +| \[].interesting | boolean | サーバーがメールボックスに “interesting” のマーク付けをしているかどうかを表します:
    • true - メールボックスはサーバーから "interesting" のマーク付けをされています。たとえば、メールボックスには新着メッセージが入っている場合が考えられます。
    • false - メールボックスはサーバーから "interesting" のマーク付けをされていません。
    | アカウントにメールボックスが一つもない場合、空のコレクションが返されます。 > * 開いている接続がない場合、`.getBoxList()` は接続を開きます。 @@ -985,19 +985,19 @@ $status:=$transporter.expunge() #### 説明 -`.getMail()` 関数は、 `IMAP_transporter` が指定するメールボックス内の、*msgNumber* または *msgID* に対応するメールを `Email` オブジェクトとして返します。 この関数を使用すると、メールのコンテンツをローカルで管理できるようになります。 +`.getMail()` 関数は、 `IMAP_transporter` が指定するメールボックス内の、*msgNumber* または *msgID* に対応するメールを `Email` オブジェクトとして返します。この関数を使用すると、メールのコンテンツをローカルで管理できるようになります。 最初の引数として、次のいずれかを渡すことができます: * *msgNumber* に、取得するメッセージのシーケンス番号 (*倍長整数*) を渡します。 * *msgID*に、取得するメッセージの固有ID (*テキスト*) を渡します。 -任意の *options* 引数として、メッセージの扱い方を定義する追加のオブジェクトを渡すことができます。 次のプロパティを利用することができます: +任意の *options* 引数として、メッセージの扱い方を定義する追加のオブジェクトを渡すことができます。次のプロパティを利用することができます: -| プロパティ | 型 | 説明 | -| ---------- | ------- | -------------------------------------------------------------------------- | -| updateSeen | boolean | true 時には、メールボックス内でメッセージを "既読" にします。 false 時にはメッセージの状態は変化しません。 デフォルト値: true | -| withBody | boolean | true を渡すとメッセージ本文を返します。 false 時には、メッセージヘッダーのみが返されます。 デフォルト値: true | +| プロパティ | 型 | 説明 | +| ---------- | ------- | ------------------------------------------------------------------------- | +| updateSeen | boolean | true 時には、メールボックス内でメッセージを "既読" にします。 false 時にはメッセージの状態は変化しません。デフォルト値: true | +| withBody | boolean | true を渡すとメッセージ本文を返します。 false 時には、メッセージヘッダーのみが返されます。デフォルト値: true | > * *msgID* 引数が存在しないメッセージを指定した場合、関数はエラーを生成し **Null** を返します。 > * [`.selectBox()`](#selectbox) によって選択されたメールボックスがない場合、エラーが生成されます。 > * 開いている接続がない場合、`.getMail()` は [`.selectBox()`](#selectbox) で最後に指定されたメールボックスへの接続を開きます。 @@ -1070,28 +1070,28 @@ ID = 1のメッセージを取得します: 第一シンタックスを使用すると、メッセージID に基づいてメッセージを取得することができます。 -*ids* 引数として、取得するメッセージID のコレクションを渡します。 これらの ID は [`.getMail()`](#getmail) で取得することができます。 +*ids* 引数として、取得するメッセージID のコレクションを渡します。これらの ID は [`.getMail()`](#getmail) で取得することができます。 -任意の *options* 引数を渡すと、返されるメッセージのパートを定義することができます。 利用可能なプロパティについては、以下の **オプション** の表を参照ください。 +任意の *options* 引数を渡すと、返されるメッセージのパートを定義することができます。利用可能なプロパティについては、以下の **オプション** の表を参照ください。 **第二シンタックス:** ***.getMails( startMsg ; endMsg { ; options } ) -> result*** -第二シンタックスを使用すると、連続したレンジに基づいてメッセージを取得することができます。 渡される値はメールボックス内でのメッセージの位置を表します。 +第二シンタックスを使用すると、連続したレンジに基づいてメッセージを取得することができます。渡される値はメールボックス内でのメッセージの位置を表します。 -*startMsg* には、連続したレンジの最初のメッセージの番号に対応する *倍長整数* の値を渡します。 負の値 (*startMsg* <= 0) を渡した場合、メールボックスの最初のメッセージが連続レンジの先頭メッセージとして扱われます。 +*startMsg* には、連続したレンジの最初のメッセージの番号に対応する *倍長整数* の値を渡します。負の値 (*startMsg* <= 0) を渡した場合、メールボックスの最初のメッセージが連続レンジの先頭メッセージとして扱われます。 -*endMsg* には、連続レンジに含める最後のメッセージの番号に対応する *倍長整数* の値を渡します。 負の値 (*endMsg* <= 0) を渡した場合、メールボックスの最後のメッセージが連続レンジの最終メッセージとして扱われます。 +*endMsg* には、連続レンジに含める最後のメッセージの番号に対応する *倍長整数* の値を渡します。負の値 (*endMsg* <= 0) を渡した場合、メールボックスの最後のメッセージが連続レンジの最終メッセージとして扱われます。 任意の *options* 引数を渡すと、返されるメッセージのパートを定義することができます。 **オプション** -| プロパティ | 型 | 説明 | -| ---------- | ------- | ---------------------------------------------------------------------- | -| updateSeen | Boolean | true 時には、指定されたメッセージを "既読" にします。 false 時にはメッセージの状態は変化しません。 デフォルト値: true | -| withBody | Boolean | true を渡すと指定されたメッセージの本文を返します。 false 時には、メッセージヘッダーのみが返されます。 デフォルト値: true | +| プロパティ | 型 | 説明 | +| ---------- | ------- | --------------------------------------------------------------------- | +| updateSeen | Boolean | true 時には、指定されたメッセージを "既読" にします。 false 時にはメッセージの状態は変化しません。デフォルト値: true | +| withBody | Boolean | true を渡すと指定されたメッセージの本文を返します。 false 時には、メッセージヘッダーのみが返されます。デフォルト値: true | > * [`.selectBox()`](#selectbox) によって選択されたメールボックスがない場合、エラーが生成されます。 > * 開いている接続がない場合、`.getMails()` は [`.selectBox()`](#selectbox) で最後に指定されたメールボックスへの接続を開きます。 @@ -1171,7 +1171,7 @@ ID = 1のメッセージを取得します: * *msgNumber* に、取得するメッセージのシーケンス番号 (*倍長整数*) を渡します。 * *msgID*に、取得するメッセージの固有ID (*テキスト*) を渡します。 -任意の *updateSeen* 引数を渡すと、メールボックス内でメッセージが "既読" とマークされるかどうかを指定します。 以下のものを渡すことができます: +任意の *updateSeen* 引数を渡すと、メールボックス内でメッセージが "既読" とマークされるかどうかを指定します。以下のものを渡すことができます: * **True** - メッセージは "既読" とマークされます (このメッセージが読まれたことを表します) * **False** - メッセージの "既読" ステータスは変化しません。 @@ -1346,9 +1346,9 @@ ID = 1のメッセージを取得します: `.numToID()` 関数は、 *startMsg* および *endMsg* で指定された連続した範囲のメッセージのシーケンス番号を IMAP固有IDへと変換します 。 。対象となるのは、現在選択されているメールボックスのメッセージです。 -*startMsg* には、連続したレンジの最初のメッセージの番号に対応する *倍長整数* の値を渡します。 負の値 (*startMsg* <= 0) を渡した場合、メールボックスの最初のメッセージが連続レンジの先頭メッセージとして扱われます。 +*startMsg* には、連続したレンジの最初のメッセージの番号に対応する *倍長整数* の値を渡します。負の値 (*startMsg* <= 0) を渡した場合、メールボックスの最初のメッセージが連続レンジの先頭メッセージとして扱われます。 -*endMsg* には、連続レンジに含める最後のメッセージの番号に対応する *倍長整数* の値を渡します。 負の値 (*endMsg* <= 0) を渡した場合、メールボックスの最後のメッセージが連続レンジの最終メッセージとして扱われます。 +*endMsg* には、連続レンジに含める最後のメッセージの番号に対応する *倍長整数* の値を渡します。負の値 (*endMsg* <= 0) を渡した場合、メールボックスの最後のメッセージが連続レンジの最終メッセージとして扱われます。 #### 戻り値 @@ -1422,7 +1422,7 @@ ID = 1のメッセージを取得します: | -------- | - | ------------------------- | | IMAP all | 1 | 選択されたメールボックスの全メッセージを選択します | -`keywords` を使って、`msgIDs` 引数で指定したメッセージから削除するフラグを定義します。 以下の標準フラグおよびカスタムフラグを使用することができます: +`keywords` を使って、`msgIDs` 引数で指定したメッセージから削除するフラグを定義します。以下の標準フラグおよびカスタムフラグを使用することができます: | 引数 | 型 | 説明 | | --------------------- | ------- | --------------------------------- | @@ -1507,7 +1507,7 @@ $status:=$transporter.removeFlags(IMAP all;$flags) #### 説明 -`.renameBox()` 関数は、 IMAPサーバー上でメールボックスの名称を変更します 。。 存在しないメールボックスの名称を変更しようとしたり、すでに使われているメールボックス名に変更しようとしたりすると、エラーが生成されます。 +`.renameBox()` 関数は、 IMAPサーバー上でメールボックスの名称を変更します 。。存在しないメールボックスの名称を変更しようとしたり、すでに使われているメールボックス名に変更しようとしたりすると、エラーが生成されます。 メールボックスの新しい名称は `newName` に渡します。 @@ -1591,7 +1591,7 @@ End if `.searchMails()` 関数は、 カレントメールボックスにおいて *searchCriteria* の検索条件に合致するメッセージを検索します 。。 *searchCriteria* 引数には、一つ以上の検索キーを格納します。 -*searchCriteria* はテキスト型の引数で、一つ以上の検索キー (詳細は後述の [利用可能な検索キー](#利用可能な検索キー) 参照) を格納し、検索する値を渡します (渡さない場合もあります)。 検索キーは単一または複数の項目からなります。 例: +*searchCriteria* はテキスト型の引数で、一つ以上の検索キー (詳細は後述の [利用可能な検索キー](#利用可能な検索キー) 参照) を格納し、検索する値を渡します (渡さない場合もあります)。検索キーは単一または複数の項目からなります。例: ``` SearchKey1 = FLAGGED @@ -1638,7 +1638,7 @@ searchCriteria = HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE 最後の 2例については、最初の検索キーリストのカッコを取り除いてしまうと検索結果が異なることに注意してください。 -* *searchCriteria* 引数には任意の \[CHARSET] 指定を含めることができます。 これは "CHARSET" という単語の後に実際の文字コード \[CHARSET] (US ASCII, ISO-8859 など) が続きます。 これは *searchCriteria* 文字列の文字コードを指定します。 そのため、\[CHARSET] 指定を使用する場合には *searchCriteria* 文字列を指定された文字コードへと変換する必要があります (詳細については `CONVERT FROM TEXT` または `Convert to text` コマンドを参照ください)。 デフォルトでは、searchCriteria 引数に拡張された文字列が含まれていた場合には4D はそれを Quotable Printable へとエンコードします。 +* *searchCriteria* 引数には任意の \[CHARSET] 指定を含めることができます。これは "CHARSET" という単語の後に実際の文字コード \[CHARSET] (US ASCII, ISO-8859 など) が続きます。これは *searchCriteria* 文字列の文字コードを指定します。そのため、\[CHARSET] 指定を使用する場合には *searchCriteria* 文字列を指定された文字コードへと変換する必要があります (詳細については `CONVERT FROM TEXT` または `Convert to text` コマンドを参照ください)。デフォルトでは、searchCriteria 引数に拡張された文字列が含まれていた場合には4D はそれを Quotable Printable へとエンコードします。 ``` searchCriteria = CHARSET "ISO-8859" BODY "Help" @@ -1650,15 +1650,15 @@ searchCriteria = CHARSET "ISO-8859" BODY "Help" 検索キーによっては、次の型の検索値が必要となる場合があります: -* **field-name 値の検索キー**: field-name はヘッダーフィールドの名称です。 例: `searchCriteria = HEADER CONTENT-TYPE "MIXED"` +* **field-name 値の検索キー**: field-name はヘッダーフィールドの名称です。例: `searchCriteria = HEADER CONTENT-TYPE "MIXED"` -* **文字列値の検索キー**: string はあらゆる文字列を含みうるため、引用符でくくらなければなりません。 文字列が特殊文字 (スペース文字など) をまったく含まない場合には、引用符で括る必要はありません。 このような文字列を引用符でくくることは、渡した文字列値が正確に解釈されることを保証します。 例: `searchCriteria = FROM "SMITH"`
    文字列を使用するすべての検索キーに対し、フィールドの文字列に検索キーが含まれる場合には検索に合致したとみなされます。 合致は文字の大小を区別しません。 +* **文字列値の検索キー**: string はあらゆる文字列を含みうるため、引用符でくくらなければなりません。文字列が特殊文字 (スペース文字など) をまったく含まない場合には、引用符で括る必要はありません。このような文字列を引用符でくくることは、渡した文字列値が正確に解釈されることを保証します。例: `searchCriteria = FROM "SMITH"`
    文字列を使用するすべての検索キーに対し、フィールドの文字列に検索キーが含まれる場合には検索に合致したとみなされます。合致は文字の大小を区別しません。 -* **field-name 値の検索キー**: field-name はヘッダーフィールドの名称です。 例: `searchCriteria = HEADER CONTENT-TYPE "MIXED"` +* **field-name 値の検索キー**: field-name はヘッダーフィールドの名称です。例: `searchCriteria = HEADER CONTENT-TYPE "MIXED"` -* **フラグ値の検索キー**: flag は一つ以上のキーワードを (標準のフラグを含めて) 受け入れます。 例: `searchCriteria = KEYWORD \Flagged \Draft` +* **フラグ値の検索キー**: flag は一つ以上のキーワードを (標準のフラグを含めて) 受け入れます。例: `searchCriteria = KEYWORD \Flagged \Draft` -* **メッセージセット値の検索キー**: 複数のメッセージを識別します。 メッセージシーケンス番号は、1 から始まりメールボックスのメッセージの総数までの連続した番号です。 個別の番号はカンマで区切ります。 コロンは、その前後の番号を含めた連続した番号を指定します。 例:
    `2,4:7,9,12:*` は、15通あるメールボックスの場合に `2,4,5,6,7,9,12,13,14,15` を指定します。 `searchCriteria = 1:5 ANSWERED` は、メッセージシーケンス番号 1 から 5番のメッセージのうち、\Answered フラグが設定されているメッセージを検索します。 `searchCriteria= 2,4 ANSWERED` は、メッセージセレクション (メッセージ番号 2番と4番) のうち、\Answered フラグが設定されているメッセージを検索します。 +* **メッセージセット値の検索キー**: 複数のメッセージを識別します。メッセージシーケンス番号は、1 から始まりメールボックスのメッセージの総数までの連続した番号です。個別の番号はカンマで区切ります。 コロンは、その前後の番号を含めた連続した番号を指定します。例:
    `2,4:7,9,12:*` は、15通あるメールボックスの場合に `2,4,5,6,7,9,12,13,14,15` を指定します。 `searchCriteria = 1:5 ANSWERED` は、メッセージシーケンス番号 1 から 5番のメッセージのうち、\Answered フラグが設定されているメッセージを検索します。 `searchCriteria= 2,4 ANSWERED` は、メッセージセレクション (メッセージ番号 2番と4番) のうち、\Answered フラグが設定されているメッセージを検索します。 #### 利用可能な検索キー @@ -1675,7 +1675,7 @@ searchCriteria = CHARSET "ISO-8859" BODY "Help" **OLD**: \Recent フラグが設定されていないメッセージ **SEEN**: \Seen フラグが設定されているメッセージ **UNSEEN**: \Seen フラグが設定されていないメッセージ -**NEW**: \Recent フラグが設定されているが \Seen フラグが設定されていないメッセージ。 これは機能的には “(RECENT UNSEEN)” と同じです。 これは機能的には “(RECENT UNSEEN)” と同じです。 +**NEW**: \Recent フラグが設定されているが \Seen フラグが設定されていないメッセージ。 これは機能的には “(RECENT UNSEEN)” と同じです。これは機能的には “(RECENT UNSEEN)” と同じです。 ***KEYWORD ***flag******: 指定されたキーワードが設定されているメッセージ ***UNKEYWORD ***flag******: 指定されたキーワードが設定されていないメッセージ ***BEFORE ***date******: 内部の日付が指定日より前のメッセージ @@ -1729,17 +1729,17 @@ searchCriteria = CHARSET "ISO-8859" BODY "Help" #### 説明 -`.selectBox()` 関数は、 *name* に指定したメールボックスをカレントメールボックスとして選択します。 この関数を使用するとメールボックスに関する情報を取得することができます。 +`.selectBox()` 関数は、 *name* に指定したメールボックスをカレントメールボックスとして選択します。この関数を使用するとメールボックスに関する情報を取得することができます。 > カレントメールボックスを変更せずに、メールボックスから情報を取得するには、[`.getBoxInfo()`](#getboxinfo) を使用します。 -*name* には、アクセスするメールボックスの名前を渡します。 この名称は明確な左から右への階層を表し、特定の区切り文字でレベルを区分けします。 この区切り文字は [`.getDelimiter()`](#getdelimiter) 関数で調べることができます。 +*name* には、アクセスするメールボックスの名前を渡します。この名称は明確な左から右への階層を表し、特定の区切り文字でレベルを区分けします。この区切り文字は [`.getDelimiter()`](#getdelimiter) 関数で調べることができます。 -任意の *state* 引数を渡すと、メールボックスへのアクセスタイプを定義できます。 取りうる値は以下の通りです: +任意の *state* 引数を渡すと、メールボックスへのアクセスタイプを定義できます。取りうる値は以下の通りです: -| 定数 | 値 | 説明 | -| --------------------- | - | -------------------------------------------------------------------------- | -| IMAP read only state | 1 | 選択されたメールボックスは読み取り専用権限でアクセスされます。 新しいメッセージを表す "新着" フラグはそのまま変化しません。 | -| IMAP read write state | 0 | 選択されたメールボックスは読み書き可能権限でアクセスされます。 メッセージは "既読" と判断され、"新着" フラグは失われます。 (デフォルト値) | +| 定数 | 値 | 説明 | +| --------------------- | - | ------------------------------------------------------------------------ | +| IMAP read only state | 1 | 選択されたメールボックスは読み取り専用権限でアクセスされます。新しいメッセージを表す "新着" フラグはそのまま変化しません。 | +| IMAP read write state | 0 | 選択されたメールボックスは読み書き可能権限でアクセスされます。メッセージは "既読" と判断され、"新着" フラグは失われます。(デフォルト値) | > * *name* 引数が存在しないメールボックスを指定した場合、関数はエラーを生成し **Null** を返します。 > * 開いている接続がない場合、`.selectBox()` は接続を開きます。 > * 接続が指定された時間 (`IMAP New transporter` 参照) 以上に使用されなかった場合には、[`.checkConnection()`](#checkconnection) 関数が自動的に呼び出されます。 @@ -1805,7 +1805,7 @@ searchCriteria = CHARSET "ISO-8859" BODY "Help" #### 説明 -`.subscribe()` 関数は、 IMAPサーバーの購読メールボックスとして任意のメールボックスを追加・削除します。 利用可能なメールボックスが大量にある場合、すべてを取得するのを避けるため、確認したいメールボックスだけを購読することができます。 +`.subscribe()` 関数は、 IMAPサーバーの購読メールボックスとして任意のメールボックスを追加・削除します。利用可能なメールボックスが大量にある場合、すべてを取得するのを避けるため、確認したいメールボックスだけを購読することができます。 `name` には、購読するメールボックスの名前を渡します。 @@ -1880,7 +1880,7 @@ End if #### 説明 -`.unsubscribe()` 関数は、 指定したメールボックスを購読メールボックスから削除します。 これにより、確認するメールボックスの数を減らせます。 +`.unsubscribe()` 関数は、 指定したメールボックスを購読メールボックスから削除します。これにより、確認するメールボックスの数を減らせます。 `name` には、購読を解除するメールボックスの名前を渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 6e604cbd1826b2..627e98641f1d75 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -4,7 +4,7 @@ title: ZIPArchive --- -4D ZIP アーカイブは、一つ以上のファイルまたはフォルダーを格納している `File` または `Folder` オブジェクトで、元のサイズより小さくなるように圧縮されているものをいいます。 これらのアーカイブは ".zip" 拡張子を持つように作成され、ディスクスペースの確保や、サイズ制限があるメディア (例: メールまたはネットワークなど) 経由のファイル転送を容易にする用途に使用できます。 +4D ZIP アーカイブは、一つ以上のファイルまたはフォルダーを格納している `File` または `Folder` オブジェクトで、元のサイズより小さくなるように圧縮されているものをいいます。これらのアーカイブは ".zip" 拡張子を持つように作成され、ディスクスペースの確保や、サイズ制限があるメディア (例: メールまたはネットワークなど) 経由のファイル転送を容易にする用途に使用できます。 - 4D ZIPアーカイブは [ZIP Create archive](#zip-create-archive) コマンドで作成します。 - 4D [`ZIPFile`](ZipFileClass.md) および [`ZIPFolder`](ZipFolderClass.md) インスタンスは、[ZIP Read archive](#zip-read-archive) コマンドによって返されるオブジェクトの [`root`](#root) プロパティ (`ZIPFolder`) を通して利用可能です。 @@ -71,20 +71,20 @@ End if - *fileToZip*: 圧縮する `4D.File` オブジェクトを引数として渡します。 -- *folderToZip*: 圧縮する `4D.Folder` を渡します。 この場合、任意の *options* 引数を渡して、フォルダーのコンテンツのみを圧縮 (つまり、外側のフォルダーを除外) することができます。 `ZIP Create archive` はデフォルトで、フォルダーとその中身を圧縮するので、展開処理をしたときにはフォルダーを再作成します。 フォルダーの中身のみを解凍処理で復元するには、*options* 引数に `ZIP Without enclosing folder` 定数を渡します。 +- *folderToZip*: 圧縮する `4D.Folder` を渡します。この場合、任意の *options* 引数を渡して、フォルダーのコンテンツのみを圧縮 (つまり、外側のフォルダーを除外) することができます。 `ZIP Create archive` はデフォルトで、フォルダーとその中身を圧縮するので、展開処理をしたときにはフォルダーを再作成します。フォルダーの中身のみを解凍処理で復元するには、*options* 引数に `ZIP Without enclosing folder` 定数を渡します。 -- *zipStructure*: ZIPArchive オブジェクトを表すオブジェクトを引数として渡します。 以下のプロパティを利用して、このオブジェクトを定義することが可能です: +- *zipStructure*: ZIPArchive オブジェクトを表すオブジェクトを引数として渡します。以下のプロパティを利用して、このオブジェクトを定義することが可能です: -| プロパティ | 型 | 説明 | -| ----------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | -| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | -| encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
  • `ZIP Encryption AES128`: 128-bit キーを使った AES による暗号化
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化
  • `ZIP Encryption AES256`: 256-bit キーを使った AES による暗号化 (パスワードが設定されている場合のデフォルト)
  • `ZIP Encryption none`: 暗号化なし (パスワードが設定されてない場合のデフォルト)
  • | -| password | Text | 暗号化が必要な場合に使用するパスワード | -| files | Collection |
  • `4D.File` または `4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティ型説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | -| callback | 4D.Function | $1 に圧縮の進捗 (0 - 100) を受け取るコールバックフォーミュラ | +| プロパティ | 型 | 説明 | +| ----------- | ----------- | -------------------------------------------------------------------------------------------------------------------- | +| compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | +| level | Integer | 圧縮レベル。とりうる値: 1 - 10。低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。ただし、圧縮レベルはパフォーマンスに影響します。デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
    • `ZIP Encryption AES128`: 128-bit キーを使った AES による暗号化
    • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化
    • `ZIP Encryption AES256`: 256-bit キーを使った AES による暗号化 (パスワードが設定されている場合のデフォルト)
    • `ZIP Encryption none`: 暗号化なし (パスワードが設定されてない場合のデフォルト)
    | +| password | Text | 暗号化が必要な場合に使用するパスワード | +| files | Collection |
  • `4D.File` または `4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティ型説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | +| callback | 4D.Function | $1 に圧縮の進捗 (0 - 100) を受け取るコールバックフォーミュラ | -*destinationFile* には、作成する ZIPアーカイブ (名前や位置など) を記述する `4D.File` オブジェクトを渡します。 作成した ZIPアーカイブがあらゆるソフトウェアで自動的に処理されるようにするため、".zip" 拡張子の使用が推奨されます。 +*destinationFile* には、作成する ZIPアーカイブ (名前や位置など) を記述する `4D.File` オブジェクトを渡します。作成した ZIPアーカイブがあらゆるソフトウェアで自動的に処理されるようにするため、".zip" 拡張子の使用が推奨されます。 アーカイブが作成されると、[ZIP Read archive](#zip-read-archive) を使用してアクセスすることができます。 @@ -220,15 +220,15 @@ $err:=ZIP Create archive($zip; $destination) `ZIP Read archive` コマンドは、 *zipFile* のコンテンツを取得し、`4D.ZipArchive` オブジェクト形式で返します。 -> このコマンドは ZIPアーカイブを展開することはしません。 その中身に関する情報を提供するのみです。 アーカイブのコンテンツを取り出すには、[file.copyTo()](Document.md#copyto) あるいは [folder.copyTo()](Directory.md#copyto) などの関数を使用します。 +> このコマンドは ZIPアーカイブを展開することはしません。 その中身に関する情報を提供するのみです。アーカイブのコンテンツを取り出すには、[file.copyTo()](Document.md#copyto) あるいは [folder.copyTo()](Directory.md#copyto) などの関数を使用します。 -*zipFile* 引数として、圧縮された ZIPアーカイブを参照している `4D.File` オブジェクトを渡します。 ターゲットのアーカイブファイルは `ZIP Read archive` が実行を終えるまで (全コンテンツ/参照が取得/解放されるまで) は開いた状態となり、その後自動的に閉じられます。 +*zipFile* 引数として、圧縮された ZIPアーカイブを参照している `4D.File` オブジェクトを渡します。ターゲットのアーカイブファイルは `ZIP Read archive` が実行を終えるまで (全コンテンツ/参照が取得/解放されるまで) は開いた状態となり、その後自動的に閉じられます。 -*zipFile* 引数で指定した ZIPファイルがパスワードで保護されていた場合、任意の *password* 引数を渡してパスワードを提供する必要があります。 パスワードが必要にも関わらず、コンテンツ読み出し時にパスワードが提示されなかった場合、エラーが生成されます。 +*zipFile* 引数で指定した ZIPファイルがパスワードで保護されていた場合、任意の *password* 引数を渡してパスワードを提供する必要があります。パスワードが必要にも関わらず、コンテンツ読み出し時にパスワードが提示されなかった場合、エラーが生成されます。 **アーカイブオブジェクト** -戻り値の `4D.ZipArchive` オブジェクトは単一の [`root`](#root) プロパティを格納しており、その値は `4D.ZipFolder` オブジェクトです。 このフォルダーは ZIPアーカイブの全コンテンツを表します。 +戻り値の `4D.ZipArchive` オブジェクトは単一の [`root`](#root) プロパティを格納しており、その値は `4D.ZipFolder` オブジェクトです。このフォルダーは ZIPアーカイブの全コンテンツを表します。 #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/data-types.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/data-types.md index e54b24d85a73f0..e3cc284782bea5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/data-types.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Concepts/data-types.md @@ -5,7 +5,7 @@ title: データタイプの概要 4D においてデータは、主にデータベースフィールドと 4D ランゲージという2つの場所で、そのタイプに応じて扱われます。 -この2つはおおよそ同じものですが、データベースレベルで提供されているいくつかのデータタイプはランゲージにおいては直接利用可能ではなく、自動的に適宜変換されます。 同様に、いくつかのデータタイプはランゲージでしか利用できません。 各場所で利用可能なデータタイプと、ランゲージでの宣言の仕方の一覧です: +この2つはおおよそ同じものですが、データベースレベルで提供されているいくつかのデータタイプはランゲージにおいては直接利用可能ではなく、自動的に適宜変換されます。同様に、いくつかのデータタイプはランゲージでしか利用できません。各場所で利用可能なデータタイプと、ランゲージでの宣言の仕方の一覧です: | データタイプ | データベース | ランゲージ | [`var` 宣言](variables.md#var-キーワードによる宣言) | [`C_` または `ARRAY` 宣言](variables.md#c_-指示子による宣言) | | ------------------------------------- | ------- | -------- | --------------------------------------- | ----------------------------------------------- | @@ -27,7 +27,7 @@ title: データタイプの概要 | [コレクション](Concepts/dt_collection.md) | - | ◯ | `Collection` | `C_COLLECTION` | | [バリアント](Concepts/dt_variant.md)(2) | - | ◯ | `Variant` | `C_VARIANT` | -(1) ORDA では、オブジェクト (エンティティ) を介してデータベースフィールドを扱うため、オブジェクトにおいて利用可能なデータタイプのみがサポートされます。 詳細については [オブジェクト](Concepts/dt_object.md) のデータタイプの説明を参照ください。 +(1) ORDA では、オブジェクト (エンティティ) を介してデータベースフィールドを扱うため、オブジェクトにおいて利用可能なデータタイプのみがサポートされます。詳細については [オブジェクト](Concepts/dt_object.md) のデータタイプの説明を参照ください。 (2) バリアントは実際のところ *データ* タイプではなく、あらゆるデータタイプの値を格納することのできる *変数* タイプです。 @@ -55,13 +55,13 @@ title: データタイプの概要 ### デフォルト値としての Null -Object型、Collection型、Pointer型、Picture型の変数は、デフォルト値として **null** を持ちますが、実際には宣言後で割り当て前の場合には中間的な状態になります。 これらは **null** 値の *ように振る舞います* が、コードがそれらにアクセスしようとしたときに発生するエラーが少なくなるなど、多少の違いがあります。 +Object型、Collection型、Pointer型、Picture型の変数は、デフォルト値として **null** を持ちますが、実際には宣言後で割り当て前の場合には中間的な状態になります。これらは **null** 値の *ように振る舞います* が、コードがそれらにアクセスしようとしたときに発生するエラーが少なくなるなど、多少の違いがあります。 ## データタイプの変換 -4D ランゲージには、データタイプ間の変換をおこなう演算子やコマンドがあります。 4D ランゲージはデータタイプをチェックします。 たとえば、"abc"+0.5+!12/25/96!-?00:30:45?のように記述することはできません。 これは、シンタックス (構文) エラーになります。 +4D ランゲージには、データタイプ間の変換をおこなう演算子やコマンドがあります。 4D ランゲージはデータタイプをチェックします。たとえば、"abc"+0.5+!12/25/96!-?00:30:45?のように記述することはできません。これは、シンタックス (構文) エラーになります。 次の表は、基本のデータタイプ、変換できるデータタイプ、それを実行する際に使用するコマンドを示しています: diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Debugging/debugLogFiles.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Debugging/debugLogFiles.md index 764762e427f485..c641f1b381c3fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Debugging/debugLogFiles.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Debugging/debugLogFiles.md @@ -3,9 +3,9 @@ id: debugLogFiles title: ログファイルの詳細 --- -4Dアプリケーションは、デバッグや実行の最適化のために有用な複数のログファイルを生成することができます。 ログは通常 [SET DATABASE PARAMETER](https://doc.4d.com/4dv20/help/command/ja/page642.html)、[WEB SET OPTION](https://doc.4d.com/4dv20/help/command/ja/page1210.html)、あるいは [HTTP SET OPTION](https://doc.4d.com/4dv20/help/command/ja/page1160.html) コマンドのセレクターを使用して開始・停止され、プロジェクトの [Logsフォルダー](../Project/architecture.md#logs) 内に保存されます。 +4Dアプリケーションは、デバッグや実行の最適化のために有用な複数のログファイルを生成することができます。ログは通常 [SET DATABASE PARAMETER](https://doc.4d.com/4dv20/help/command/ja/page642.html)、[WEB SET OPTION](https://doc.4d.com/4dv20/help/command/ja/page1210.html)、あるいは [HTTP SET OPTION](https://doc.4d.com/4dv20/help/command/ja/page1160.html) コマンドのセレクターを使用して開始・停止され、プロジェクトの [Logsフォルダー](../Project/architecture.md#logs) 内に保存されます。 -記録された情報は、問題の検知と修正のためには分析する必要があります。 この章では、以下のログファイルの詳細を説明します: +記録された情報は、問題の検知と修正のためには分析する必要があります。この章では、以下のログファイルの詳細を説明します: * [4DRequestsLog.txt](#4drequestslogtxt) * [4DRequestsLog_ProcessInfo.txt](#4drequestslog_processinfotxt) @@ -23,7 +23,7 @@ title: ログファイルの詳細 これらのログファイルは、デバッグ中に時系列を確立しエントリー間のつながりを分かりやすくするために、いくつかのフィールドを共有しています: * `sequence_number`: この番号はすべてのデバッグログ間において固有で重複せず、ログファイルに関わらず新しいエントリーごとに増分されるので、オペレーションの厳密な順番を知ることができます。 -* `connection_uuid`: 4Dクライアントで作成されサーバーに接続する 4Dプロセスについては、この接続UUID がサーバー側とクライアント側とで記録されます。 これにより各プロセスを開始したリモートクライアントを簡単に識別することができます。 +* `connection_uuid`: 4Dクライアントで作成されサーバーに接続する 4Dプロセスについては、この接続UUID がサーバー側とクライアント側とで記録されます。これにより各プロセスを開始したリモートクライアントを簡単に識別することができます。 ## 4DRequestsLog.txt @@ -68,10 +68,10 @@ SET DATABASE PARAMETER(Client Log Recording;1) | request | [C/S または ORDA リクエストID](https://github.com/4d/request-log-definitions/blob/master/RequestIDs.txt)、または SQLリクエストのメッセージ文字列、または `LOG EVENT` メッセージ | | bytes_in | 受信したバイト数 | | bytes_out | 送信したバイト数 | -| server\_duration | exec\_duration | ログが生成された場所によって変わります:
  • *server\_duration* (クライアント上で生成された場合) -- サーバーがリクエストを処理し、レスポンスを返すまでにかかった時間 (マイクロ秒単位)。 以下の画像の B から E までに相当します。
  • クライアントがリクエストを送信してサーバーがそれを受け取るまでにかかる時間の概算 (マイクロ秒単位)。 以下の画像の Aから Dまでと Eから Hまでに相当します。
  • | -| write\_duration | 次のものを送信するのにかかった時間 (μs):
  • リクエスト (クライアント上で実行された場合)。 以下の画像の A から B までに相当します。
  • レスポンス (サーバー上で実行された場合)。 以下の画像の E から F までに相当します。
  • | +| server\_duration | exec\_duration | ログが生成された場所によって変わります:
  • *server\_duration* (クライアント上で生成された場合) -- サーバーがリクエストを処理し、レスポンスを返すまでにかかった時間 (マイクロ秒単位)。以下の画像の B から E までに相当します。
  • クライアントがリクエストを送信してサーバーがそれを受け取るまでにかかる時間の概算 (マイクロ秒単位)。以下の画像の Aから Dまでと Eから Hまでに相当します。
  • | +| write\_duration | 次のものを送信するのにかかった時間 (μs):
  • リクエスト (クライアント上で実行された場合)。以下の画像の A から B までに相当します。
  • レスポンス (サーバー上で実行された場合)。以下の画像の E から F までに相当します。
  • | | task_kind | プリエンプティブかコオペラティブか (それぞれ 'p' と 'c' で表される) | -| rtt | クライアントがリクエストを送信してサーバーがそれを受け取るまでにかかる時間の概算 (マイクロ秒単位)。 以下の画像の Aから Dまでと Eから Hまでに相当します。
  • ServerNet ネットワークレイヤーを使用している場合にのみ計測されます。 旧式ネットワークレイヤを使用していた場合には 0 が返されます。
  • Windows 10、あるいは Windows Server 2016 以前のバージョンの Windows においては、これを呼び出すと 0 が返されます。
  • | +| rtt | クライアントがリクエストを送信してサーバーがそれを受け取るまでにかかる時間の概算 (マイクロ秒単位)。以下の画像の Aから Dまでと Eから Hまでに相当します。
  • ServerNet ネットワークレイヤーを使用している場合にのみ計測されます。 旧式ネットワークレイヤを使用していた場合には 0 が返されます。
  • Windows 10、あるいは Windows Server 2016 以前のバージョンの Windows においては、これを呼び出すと 0 が返されます。
  • | | extra | コンテキストに関連する追加情報 (ORDAリクエストの場合、データクラス名や属性名など) | リクエストフロー: @@ -129,7 +129,7 @@ SET DATABASE PARAMETER(Client Log Recording;1) // リモートサイド ## HTTPDebugLog.txt -このログファイルは、各 HTTPリクエストとそれぞれのレスポンスを rawモードで記録します。 ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。 +このログファイルは、各 HTTPリクエストとそれぞれのレスポンスを rawモードで記録します。ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。 このログの開始方法: @@ -153,7 +153,7 @@ WEB SET OPTION(Web debug log;wdl enable without body) // 他の値も使用可 ## 4DHTTPClientLog.txt -このログファイルは、4D HTTPクライアントを通過する HTTPトラフィックを記録します。 ヘッダーを含むリクエストおよびレスポンス全体が記録され、オプションでボディ部分も記録することができます。 +このログファイルは、4D HTTPクライアントを通過する HTTPトラフィックを記録します。ヘッダーを含むリクエストおよびレスポンス全体が記録され、オプションでボディ部分も記録することができます。 このログの開始方法: @@ -182,7 +182,7 @@ HTTP SET OPTION(HTTP client log; HTTP enable log with all body parts) ## 4DDebugLog.txt (標準) -このログファイルは、4Dプログラミングレベルで発生するそれぞれのイベントを記録します。 標準モードではイベントの基本的なビューを提供します。 +このログファイルは、4Dプログラミングレベルで発生するそれぞれのイベントを記録します。標準モードではイベントの基本的なビューを提供します。 このログの開始方法: @@ -221,19 +221,19 @@ SET DATABASE PARAMETER(Current process debug log recording;2+4) それぞれのイベントに対して、以下のフィールドが記録されます: -| カラム番号 | フィールド名 | 説明 | -| ----- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | sequence_number | ログセッション内で固有かつシーケンシャルなオペレーション番号 | -| 2 | time | ISO 8601フォーマットの日付と時間 (YYYY-MM-DDTHH:MM:SS.mmm) | -| 3 | ProcessID | プロセスID | -| 4 | unique_processID | 固有プロセスID | -| 5 | stack_level | スタックレベル | -| 6 | operation_type | ログオペレーションタイプ。 この値は絶対値を取ることがあります:

    1. コマンド
    2. メソッド (プロジェクトメソッド、データベースメソッド、等)
    3. メッセージ ([LOG EVENT](https://doc.4d.com/4dv20/help/command/ja/page667.html) コマンドによって送信されたもののみ)
    4. プラグインメッセージ
    5. プラグインイベント
    6. プラグインコマンド
    7. プラグインコールバック
    8. タスク
    9. メンバーメソッド (コレクションまたはオブジェクトに割り当てられているメソッド)

    スタックレベルを閉じる時には、`operation_type`、`operation` および `operation_parameters` カラムには `stack_opening_sequence_number` カラムに記録された開始スタックレベルと同じ値が記録されます。 例:

    1. 121 15:16:50:777 5 8 1 2 CallMethod Parameters 0
    2. 122 15:16:50:777 5 8 2 1 283 0
    3. 123 15:16:50:777 5 8 2 1 283 0 122 3
    4. 124 15:16:50:777 5 8 1 2 CallMethod Parameters 0 121 61

    1行目と 2行目はスタックレベルを開き、3行目と 4行目はスタックレベルを閉じます。 6、7、8カラム目の値は、終了スタックレベル行において繰り返されます。 10カラム目にはスタックレベル開始番号、つまり 3行目の 122 と 4行目の 121 が格納されます。 | -| 7 | operation | 以下のいずれかを表す可能性があります (オペレーションタイプによる):
  • ランゲージコマンドID (type=1 の場合)
  • メソッド名 (type=2 の場合)
  • pluginIndex;pluginCommand の組み合わせ (type=4、5、6 または 7 の場合)。 '3;2' のような形式で格納されます。
  • タスク接続UUID (type=8 の場合)
  • | -| 8 | operation_parameters | コマンド、メソッド、プラグインに渡された引数 | -| 9 | form_event | フォームイベント (あれば)。 その他の場合には空になります (フォームメソッドまたはオブジェクトメソッド内でコードが実行された場合に使用されると考えて下さい) | -| 10 | stack_opening_sequence_number | スタックレベルを閉じる時のみ: 開始スタックレベルに対応するシーケンス番号 | -| 11 | stack_level_execution_time | スタックレベルを閉じる時のみ: 現在記録されているアクションの経過時間をマイクロ秒単位で表します (上記ログの123 行目と124 行目の 10番目のカラムを参照ください) | +| カラム番号 | フィールド名 | 説明 | +| ----- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | sequence_number | ログセッション内で固有かつシーケンシャルなオペレーション番号 | +| 2 | time | ISO 8601フォーマットの日付と時間 (YYYY-MM-DDTHH:MM:SS.mmm) | +| 3 | ProcessID | プロセスID | +| 4 | unique_processID | 固有プロセスID | +| 5 | stack_level | スタックレベル | +| 6 | operation_type | ログオペレーションタイプ。この値は絶対値を取ることがあります:

    1. コマンド
    2. メソッド (プロジェクトメソッド、データベースメソッド、等)
    3. メッセージ ([LOG EVENT](https://doc.4d.com/4dv20/help/command/ja/page667.html) コマンドによって送信されたもののみ)
    4. プラグインメッセージ
    5. プラグインイベント
    6. プラグインコマンド
    7. プラグインコールバック
    8. タスク
    9. メンバーメソッド (コレクションまたはオブジェクトに割り当てられているメソッド)

    スタックレベルを閉じる時には、`operation_type`、`operation` および `operation_parameters` カラムには `stack_opening_sequence_number` カラムに記録された開始スタックレベルと同じ値が記録されます。例:

    1. 121 15:16:50:777 5 8 1 2 CallMethod Parameters 0
    2. 122 15:16:50:777 5 8 2 1 283 0
    3. 123 15:16:50:777 5 8 2 1 283 0 122 3
    4. 124 15:16:50:777 5 8 1 2 CallMethod Parameters 0 121 61

    1行目と 2行目はスタックレベルを開き、3行目と 4行目はスタックレベルを閉じます。 6、7、8カラム目の値は、終了スタックレベル行において繰り返されます。 10カラム目にはスタックレベル開始番号、つまり 3行目の 122 と 4行目の 121 が格納されます。 | +| 7 | operation | 以下のいずれかを表す可能性があります (オペレーションタイプによる):
  • ランゲージコマンドID (type=1 の場合)
  • メソッド名 (type=2 の場合)
  • pluginIndex;pluginCommand の組み合わせ (type=4、5、6 または 7 の場合)。 '3;2' のような形式で格納されます。
  • タスク接続UUID (type=8 の場合)
  • | +| 8 | operation_parameters | コマンド、メソッド、プラグインに渡された引数 | +| 9 | form_event | フォームイベント (あれば)。 その他の場合には空になります (フォームメソッドまたはオブジェクトメソッド内でコードが実行された場合に使用されると考えて下さい) | +| 10 | stack_opening_sequence_number | スタックレベルを閉じる時のみ: 開始スタックレベルに対応するシーケンス番号 | +| 11 | stack_level_execution_time | スタックレベルを閉じる時のみ: 現在記録されているアクションの経過時間をマイクロ秒単位で表します (上記ログの123 行目と124 行目の 10番目のカラムを参照ください) | ## 4DDiagnosticLog.txt @@ -260,9 +260,9 @@ SET DATABASE PARAMETER(Current process debug log recording;2+4) ### 診断ログレベル -*4DDiagnosticLog.txt* ファイルは、`ERROR` (最も重要) から `TRACE` (あまり重要でない) まで、異なるレベルのメッセージをログに記録することができます。 デフォルトでは、`INFO` レベルが設定されており、エラーや予期せぬ結果などの重要なイベントのみを記録します (後述参照)。 +*4DDiagnosticLog.txt* ファイルは、`ERROR` (最も重要) から `TRACE` (あまり重要でない) まで、異なるレベルのメッセージをログに記録することができます。デフォルトでは、`INFO` レベルが設定されており、エラーや予期せぬ結果などの重要なイベントのみを記録します (後述参照)。 -[SET DATABASE PARAMETER](https://doc.4d.com/4dv20/help/command/ja/page642.html) コマンドの `Diagnostic log level` セレクターを使用して、必要に応じてメッセージのレベルを選択することができます。 あるレベルを選択すると、その上のレベル (より重要なもの) も暗黙のうちに選択されます。 次のレベルが利用可能です: +[SET DATABASE PARAMETER](https://doc.4d.com/4dv20/help/command/ja/page642.html) コマンドの `Diagnostic log level` セレクターを使用して、必要に応じてメッセージのレベルを選択することができます。あるレベルを選択すると、その上のレベル (より重要なもの) も暗黙のうちに選択されます。次のレベルが利用可能です: | 定数 | 説明 | 選択時に次を含みます | | ----------- | ------------------------------------- | ------------------------------------------------------------- | @@ -352,7 +352,7 @@ ORDAリクエストログは、ORDAリクエストとサーバーのレスポン ### クライアント側 -クライアント側の ORDAログファイルには、リモートマシンが送信する ORDAリクエストが記録されます。 ログ情報はメモリか、リモートマシンディスク上の .txtファイルに書くことができます。 このログファイルの名称や保管場所は任意に決めることができます。 +クライアント側の ORDAログファイルには、リモートマシンが送信する ORDAリクエストが記録されます。ログ情報はメモリか、リモートマシンディスク上の .txtファイルに書くことができます。このログファイルの名称や保管場所は任意に決めることができます。 このログの開始方法: @@ -366,7 +366,7 @@ SET DATABASE PARAMETER(Client Log Recording;0) :::note -`SET DATABASE PARAMETER` を用いてクライアント側の [4DRequestsLog.txt](#4drequestslogtxt) をトリガーすることは必須ではありません。 ただし、一意の `sequenceNumber` フィールドを記録したい場合には必須です。 +`SET DATABASE PARAMETER` を用いてクライアント側の [4DRequestsLog.txt](#4drequestslogtxt) をトリガーすることは必須ではありません。ただし、一意の `sequenceNumber` フィールドを記録したい場合には必須です。 ::: @@ -402,7 +402,7 @@ SET DATABASE PARAMETER(Client Log Recording;0) ### サーバー側 -サーバー側の ORDAログファイルには、サーバーが処理した ORDAリクエストと、サーバーのレスポンス (任意) が記録されます。 ログ情報は、サーバーマシンのディスク上にある .jsonlファイル (デフォルトでは、*ordaRequests.jsonl*) に保存されます。 +サーバー側の ORDAログファイルには、サーバーが処理した ORDAリクエストと、サーバーのレスポンス (任意) が記録されます。ログ情報は、サーバーマシンのディスク上にある .jsonlファイル (デフォルトでは、*ordaRequests.jsonl*) に保存されます。 このログの開始方法: @@ -416,7 +416,7 @@ SET DATABASE PARAMETER(4D Server log recording;0) :::note -`SET DATABASE PARAMETER` を用いてサーバー側の [4DRequestsLog.txt](#4drequestslogtxt) をトリガーすることは必須ではありません。 ただし、一意の `sequenceNumber` および `duration` フィールドを記録したい場合には必須です。 +`SET DATABASE PARAMETER` を用いてサーバー側の [4DRequestsLog.txt](#4drequestslogtxt) をトリガーすることは必須ではありません。ただし、一意の `sequenceNumber` および `duration` フィールドを記録したい場合には必須です。 ::: @@ -460,14 +460,14 @@ SET DATABASE PARAMETER(4D Server log recording;0) ## ログ設定ファイルを使用する -運用環境におけるログ記録を簡単に管理するため、**ログ設定ファイル** を使用することができます。 このファイルは、デベロッパーによってあらかじめ設定されています。 一般的には、エンドユーザーに送って、選択してもらうか、ローカルフォルダーにコピーしてもらいます。 一旦有効化されると、ログ設定ファイルは専用仕様のログ記録を開始します。 +運用環境におけるログ記録を簡単に管理するため、**ログ設定ファイル** を使用することができます。このファイルは、デベロッパーによってあらかじめ設定されています。一般的には、エンドユーザーに送って、選択してもらうか、ローカルフォルダーにコピーしてもらいます。一旦有効化されると、ログ設定ファイルは専用仕様のログ記録を開始します。 ### ファイルを有効化する方法 環境に応じて、ログ設定ファイルを有効化する方法はいくつかあります: -- **インターフェース付きの 4D Server**: メンテナンスページを開き、[ログ設定ファイルを読み込む](ServerWindow/maintenance.md#ログ設定ファイルを読み込む) ボタンをクリックしてファイルを選択します。 この場合、設定ファイルには任意の名前を使用することができます。 ファイルは、サーバー上で即座に有効化されます。 -- **インタープリターまたはコンパイル済のプロジェクト**: `logConfig.json` ファイルをプロジェクトの [Settings フォルダー](../Project/architecture.md#settings-ユーザー) ([`Project` フォルダー](../Project/architecture.md#project-フォルダー)と同じ階層)に配置します。 このファイルは、プロジェクトの起動時に有効化されます (クライアント/サーバーのサーバーのみ)。 +- **インターフェース付きの 4D Server**: メンテナンスページを開き、[ログ設定ファイルを読み込む](ServerWindow/maintenance.md#ログ設定ファイルを読み込む) ボタンをクリックしてファイルを選択します。この場合、設定ファイルには任意の名前を使用することができます。ファイルは、サーバー上で即座に有効化されます。 +- **インタープリターまたはコンパイル済のプロジェクト**: `logConfig.json` ファイルをプロジェクトの [Settings フォルダー](../Project/architecture.md#settings-ユーザー) ([`Project` フォルダー](../Project/architecture.md#project-フォルダー)と同じ階層)に配置します。このファイルは、プロジェクトの起動時に有効化されます (クライアント/サーバーのサーバーのみ)。 - **ビルドしたアプリケーション**: ファイルは `logConfig.json` という名称で次のフォルダーに置く必要があります: * Windows: `Users\[userName]\AppData\Roaming\[application]` * macOS: `/Users/[userName]/Library/ApplicationSupport/[application]` diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onActivate.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onActivate.md index 7c102c34ad7038..886041071d9f7d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onActivate.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onActivate.md @@ -12,6 +12,6 @@ title: On Activate フォームのウィンドウが背面に送られていた場合、そのウィンドウが最前面になったときにこのイベントが呼ばれます。 -このイベントは個々のオブジェクトには適用されず、フォーム全体に適用されます。 ゆえに `On Activate` フォームイベントプロパティが選択されていれば、そのフォームのメソッドのみが呼び出されます。 +このイベントは個々のオブジェクトには適用されず、フォーム全体に適用されます。ゆえに `On Activate` フォームイベントプロパティが選択されていれば、そのフォームのメソッドのみが呼び出されます。 サブフォームの場合には、コンテナーがフォーカスを得たとき ([フォーカス可](FormObjects/properties_Entry.md#フォーカス可) プロパティが設定されている場合) に、このイベントがサブフォームに渡されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onAfterKeystroke.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onAfterKeystroke.md index fb17defe199171..290e417bcd32b8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onAfterKeystroke.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onAfterKeystroke.md @@ -25,11 +25,11 @@ title: On After Keystroke `On After Keystroke` イベントは次の場合には生成されません: - [リストボックス列](FormObjects/listbox-column.md) メソッドの場合、ただし、セルを編集している場合を除きます ([リストボックス](FormObjects/listbox_overview.md) メソッドではどのような場合でも生成されます)。 -- キーボードを使用せずに (ペーストやドラッグ&ドロップ、チェックボックス、ドロップダウンリスト、コンボボックス) おこなわれた変更の場合。 これらのイベントを処理するには [`On After Edit`](onAfterEdit.md) を使用します。 +- キーボードを使用せずに (ペーストやドラッグ&ドロップ、チェックボックス、ドロップダウンリスト、コンボボックス) おこなわれた変更の場合。これらのイベントを処理するには [`On After Edit`](onAfterEdit.md) を使用します。 ### キーストロークシーケンス -入力に一連のキーストロークが必要な場合、[`On Before Keystroke`](onBeforeKeystroke.md) と `On After Keystroke` イベントは、入力がユーザーによって完全に確定されたときにのみ生成されます。 `Keystroke` コマンドは、確定済みの文字を返します。 このケースは主に以下のように発生します: +入力に一連のキーストロークが必要な場合、[`On Before Keystroke`](onBeforeKeystroke.md) と `On After Keystroke` イベントは、入力がユーザーによって完全に確定されたときにのみ生成されます。 `Keystroke` コマンドは、確定済みの文字を返します。このケースは主に以下のように発生します: - ^ や ~ のような特殊キーが使用された場合: その後に拡張された文字が入力された場合にのみ生成されます (例: "ê" や "ñ")。 - IME (Input Method Editor) が、文字の組み合わせを入力するための中間的なダイアログボックスを表示している場合: IME のダイアログが確定されたときにのみイベントが発生します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onAlternativeClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onAlternativeClick.md index f4dc848da18687..aafc75aad3f3bd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onAlternativeClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onAlternativeClick.md @@ -11,12 +11,12 @@ title: On Alternative Click ### ボタン -いくつかのボタンスタイルには、[ポップアップメニュー](FormObjects/properties_TextAndPicture.md#ポップアップメニューあり) をリンクし、矢印を表示させることができます。 この矢印をクリックすると、ボタンの主たるアクションの代わりのアクションを提供するポップアップを表示します。 +いくつかのボタンスタイルには、[ポップアップメニュー](FormObjects/properties_TextAndPicture.md#ポップアップメニューあり) をリンクし、矢印を表示させることができます。この矢印をクリックすると、ボタンの主たるアクションの代わりのアクションを提供するポップアップを表示します。 -4D では `On Alternative Click` イベントを使用してこの動作を管理できます。 このイベントは、ユーザーが矢印をクリックすると、マウスボタンが押されてすぐに生成されます: +4D では `On Alternative Click` イベントを使用してこの動作を管理できます。このイベントは、ユーザーが矢印をクリックすると、マウスボタンが押されてすぐに生成されます: -- ポップアップメニューが **分離** されている場合、このイベントはボタン中で矢印のあるエリアがクリックされた場合のみ生成されます。 ボタンに適用されている [標準アクション](https://doc.4d.com/4Dv19R7/4D/19-R7/Standard-actions.300-6013479.ja.html) があったとしても、この場合には実行されないことに留意してください。 -- ポップアップメニューが **リンク** されている場合、このイベントはボタン上どこをクリックしても生成されます。 このタイプのボタンでは [`On Long Click`](onLongClick.md) イベントが生成されないことに注意してください。 +- ポップアップメニューが **分離** されている場合、このイベントはボタン中で矢印のあるエリアがクリックされた場合のみ生成されます。ボタンに適用されている [標準アクション](https://doc.4d.com/4Dv19R7/4D/19-R7/Standard-actions.300-6013479.ja.html) があったとしても、この場合には実行されないことに留意してください。 +- ポップアップメニューが **リンク** されている場合、このイベントはボタン上どこをクリックしても生成されます。このタイプのボタンでは [`On Long Click`](onLongClick.md) イベントが生成されないことに注意してください。 ![](../assets/en/Events/clickevents.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onBeforeDataEntry.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onBeforeDataEntry.md index 93d071fceabd86..c4b4b499faf970 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onBeforeDataEntry.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onBeforeDataEntry.md @@ -10,7 +10,7 @@ title: On Before Data Entry ## 説明 -このイベントは、リストボックス中のセルが編集される直前に生成されます (入力カーソルが表示される前)。 このイベントを使用して、たとえば表示中と編集中で異なるテキストを表示させることができます。 +このイベントは、リストボックス中のセルが編集される直前に生成されます (入力カーソルが表示される前)。このイベントを使用して、たとえば表示中と編集中で異なるテキストを表示させることができます。 カーソルがセルに入ると、そのリストボックスまたは列のメソッドで `On Before Data Entry` イベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onCloseDetail.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onCloseDetail.md index e7a95d02761edf..920633a2012eb4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onCloseDetail.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onCloseDetail.md @@ -12,6 +12,6 @@ title: On Close Detail `On Close Detail` イベントは次のコンテキストで利用できます: -- **出力フォーム**: このイベントは、詳細フォームが閉じられ、ユーザーがリストフォームに戻るときに生成されます。 このイベントは、プロジェクトフォームでは選択できず、**テーブルフォーム** でのみ利用できます。 +- **出力フォーム**: このイベントは、詳細フォームが閉じられ、ユーザーがリストフォームに戻るときに生成されます。このイベントは、プロジェクトフォームでは選択できず、**テーブルフォーム** でのみ利用できます。 - [**セレクション型**](FormObjects/listbox_overview.md#セレクションリストボックス) のリストボックス: このイベントはセレクション型リストボックスに関連付けられた [詳細フォーム](FormObjects/properties_ListBox.md#詳細フォーム名) に表示されたレコードが閉じられるときに生成されます (レコードが変更されたかどうかは関係しません)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onColumnResize.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onColumnResize.md index 99e859dcf5df11..a410c57793abbf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onColumnResize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onColumnResize.md @@ -12,13 +12,13 @@ title: On Column Resize ### リストボックス -このイベントは、ユーザーによってリストボックスの列幅が変更されたときに生成されます。 このイベントは "ライブ" にトリガーされます。つまり、対象となるリストボックスあるいはカラムがリサイズされている間はずっと継続して送信されつづけます。 リサイズはユーザーによって手動でおこなわれるか、あるいはフォームウィンドウ自身のリサイズの結果リストボックスとそのカラムがリサイズされる場合も含みます (手動によるフォームのリサイズおよび `RESIZE FORM WINDOW` コマンドを使用したリサイズ)。 +このイベントは、ユーザーによってリストボックスの列幅が変更されたときに生成されます。このイベントは "ライブ" にトリガーされます。つまり、対象となるリストボックスあるいはカラムがリサイズされている間はずっと継続して送信されつづけます。リサイズはユーザーによって手動でおこなわれるか、あるいはフォームウィンドウ自身のリサイズの結果リストボックスとそのカラムがリサイズされる場合も含みます (手動によるフォームのリサイズおよび `RESIZE FORM WINDOW` コマンドを使用したリサイズ)。 > [余白カラム](../FormObjects/propertiesResizingOptions.html#余白カラムについて) がリサイズされた場合には、`On Column Resize` イベントはトリガーされません ### 4D View Pro -このイベントはカラムの幅がユーザーによって変更されたときに生成されます。 このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.md#イベントオブジェクト) には以下のプロパティが含まれています: +このイベントはカラムの幅がユーザーによって変更されたときに生成されます。このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.md#イベントオブジェクト) には以下のプロパティが含まれています: | プロパティ | 型 | 説明 | | ----------- | ------- | --------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onDeleteAction.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onDeleteAction.md index bac67e4236e2a3..28e8b5380e9d7e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onDeleteAction.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onDeleteAction.md @@ -12,4 +12,4 @@ title: On Delete Action このイベントは、ユーザーが削除キー (**Delete** や **Backspace** キー) を押して、またはクリア標準アクションが割り当てられたメニュー項目 (**編集** メニューの **クリア** 等) を選択して、選択された項目の削除を指示したときに生成されます。 -4D はイベントの生成だけをおこなうことに留意してください。 4D は項目を消去しません。 実際の削除処理や事前警告の表示などは開発者の責任です。 +4D はイベントの生成だけをおこなうことに留意してください。 4D は項目を消去しません。実際の削除処理や事前警告の表示などは開発者の責任です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onDragOver.md index 6eb0f4644810d9..49d7ab7f6065ac 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onDragOver.md @@ -10,18 +10,18 @@ title: On Drag Over ## 説明 -`On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: +`On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。このイベントの応答として、開発者は通常、以下のことをおこないます: - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 -ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが (`$0:=0` を実行して) 0 (ゼロ) を返さなければなりません。 ドラッグを **拒否** するには、オブジェクトメソッドが (`$0:=-1` を実行して) -1 (マイナス1) を返さなければなりません。 `On Drag Over` イベント中、4D はこのオブジェクトメソッドを関数として扱います。 結果が返されない場合には、4D はドラッグが受け付けられたものと認識します。 +ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが (`$0:=0` を実行して) 0 (ゼロ) を返さなければなりません。ドラッグを **拒否** するには、オブジェクトメソッドが (`$0:=-1` を実行して) -1 (マイナス1) を返さなければなりません。 `On Drag Over` イベント中、4D はこのオブジェクトメソッドを関数として扱います。結果が返されない場合には、4D はドラッグが受け付けられたものと認識します。 -ドラッグを受け入れると、ドロップ先オブジェクトがハイライトされます。 ドラッグを拒否した場合、ドロップ先オブジェクトはハイライトされません。 ドラッグを受け付けることは、ドラッグされたデータがドロップ先オブジェクトに挿入されるという意味ではありません。 これは、単にマウスボタンをこの場所で離したときに、ドラッグされたデータがドロップ先オブジェクトによって受け付けられ、[`On Drop`](onDrop.md) イベントが動くということを意味するだけです。 +ドラッグを受け入れると、ドロップ先オブジェクトがハイライトされます。ドラッグを拒否した場合、ドロップ先オブジェクトはハイライトされません。ドラッグを受け付けることは、ドラッグされたデータがドロップ先オブジェクトに挿入されるという意味ではありません。これは、単にマウスボタンをこの場所で離したときに、ドラッグされたデータがドロップ先オブジェクトによって受け付けられ、[`On Drop`](onDrop.md) イベントが動くということを意味するだけです。 ドロップ可能なオブジェクトに対して開発者が `On Drag Over` イベントを処理しない場合には、そのオブジェクトは、ドラッグされたデータの性質やタイプに関係なく、すべてのドラッグ処理に対してハイライトされます。 -`On Drag Over` イベントは、ドラッグ&ドロップ処理の最初の段階を制御する手段です。 ドラッグされたデータがドロップ先オブジェクトと互換性のあるタイプかどうかをテストでき、またドラッグの受け付けや拒否をできるだけでなく、4D があなたの判断に基づいてドロップ先オブジェクトをハイライト (または無反応) されるため、この操作が有効であることを操作者にフィードバックすることができます。 +`On Drag Over` イベントは、ドラッグ&ドロップ処理の最初の段階を制御する手段です。ドラッグされたデータがドロップ先オブジェクトと互換性のあるタイプかどうかをテストでき、またドラッグの受け付けや拒否をできるだけでなく、4D があなたの判断に基づいてドロップ先オブジェクトをハイライト (または無反応) されるため、この操作が有効であることを操作者にフィードバックすることができます。 `On Drag Over` イベントはマウスの移動に従って、現在のドロップ先オブジェクトに対して繰り返し送られるため、このイベントのコード処理は短く、短時間で実行されるようにしてください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onFooterClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onFooterClick.md index 8100c2588a42ef..f7a95faa1d6364 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onFooterClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onFooterClick.md @@ -10,6 +10,6 @@ title: On Footer Click ## 説明 -このイベントはリストボックスやリストボックス列で利用できます。 このイベントは、リストボックスやリストボックス列のフッターエリアがクリックされたときに生成されます。 この場合、`OBJECT Get pointer` コマンドはクリックされたフッター変数へのポインターを返します。 イベントは左および右クリックどちらでも生成されます。 +このイベントはリストボックスやリストボックス列で利用できます。このイベントは、リストボックスやリストボックス列のフッターエリアがクリックされたときに生成されます。この場合、`OBJECT Get pointer` コマンドはクリックされたフッター変数へのポインターを返します。イベントは左および右クリックどちらでも生成されます。 `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onHeaderClick.md index d5f2c795bd9a20..b5cfadb3436608 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onHeaderClick.md @@ -12,18 +12,18 @@ title: On Header Click ### リストボックス -このイベントは、リストボックスの列ヘッダーでクリックがおこなわれると生成されます。 この場合 `Self` コマンドを使用すればクリックされた列ヘッダーを知ることができます。 +このイベントは、リストボックスの列ヘッダーでクリックがおこなわれると生成されます。この場合 `Self` コマンドを使用すればクリックされた列ヘッダーを知ることができます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されている場合、`$0` に 0 または -1 を渡して標準の並べ替えをおこなうかどうか指定できます: - `$0 = 0` の場合、標準の並べ替えがおこなわれます。 -- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。 開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 +- `$0 = -1` の場合、標準の並べ替えはおこなわれず、ヘッダーには並べ替え矢印は表示されません。開発者は 4Dランゲージを使用して、カスタマイズされた条件に基づく並べ替えを実行できます。 リストボックスで [ソート可](FormObjects/properties_Action.md#ソート可) プロパティが選択されていない場合、`$0` は使用されません。 ### 4D View Pro -このイベントは、4D View Pro ドキュメント内のカラムヘッダーまたは行ヘッダーでクリックが発生したときに生成されます。 このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.md#イベントオブジェクト) には以下のプロパティが含まれています: +このイベントは、4D View Pro ドキュメント内のカラムヘッダーまたは行ヘッダーでクリックが発生したときに生成されます。このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.md#イベントオブジェクト) には以下のプロパティが含まれています: | プロパティ | 型 | 説明 | | ----------- | ------- | ------------------------------------------------------------------------------------------------------ | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onLoadRecord.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onLoadRecord.md index aa271739dbc690..26059a98a4b03b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onLoadRecord.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onLoadRecord.md @@ -10,7 +10,7 @@ title: On Load Record ## 説明 -`On Load Record` イベントは、**出力フォーム** のコンテキストでのみ使用できます。 このイベントはリスト更新中に、レコードがハイライトされ、フィールドが編集モードになったときに生成されます。 +`On Load Record` イベントは、**出力フォーム** のコンテキストでのみ使用できます。このイベントはリスト更新中に、レコードがハイライトされ、フィールドが編集モードになったときに生成されます。 > このイベントは、プロジェクトフォームでは選択できず、**テーブルフォーム** でのみ利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onLongClick.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onLongClick.md index 779f60336a7bd8..185c70f7b52ea8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onLongClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onLongClick.md @@ -10,7 +10,7 @@ title: On Long Click ## 説明 -このイベントはボタンがクリックされ、一定時間以上マウスボタンが押され続けていると生成されます。 理論上、このイベントが生成されるためのクリック保持時間は、システムの環境設定に設定されたダブルクリックの間隔最大時間に等しくなります。 +このイベントはボタンがクリックされ、一定時間以上マウスボタンが押され続けていると生成されます。理論上、このイベントが生成されるためのクリック保持時間は、システムの環境設定に設定されたダブルクリックの間隔最大時間に等しくなります。 このイベントは、次のボタンスタイルで生成することができます: @@ -24,7 +24,7 @@ title: On Long Click - [サークル](FormObjects/button_overview.md#サークル) - [カスタム](FormObjects/button_overview.md#カスタム) -このイベントは一般的に、ロングクリック時にポップアップメニューを表示するために使用します。 ユーザーがロングクリックが有効になる時間前にマウスボタンを離すと、[`On Clicked`](onClicked.md) イベントが (有効であれば) 生成されます。 +このイベントは一般的に、ロングクリック時にポップアップメニューを表示するために使用します。ユーザーがロングクリックが有効になる時間前にマウスボタンを離すと、[`On Clicked`](onClicked.md) イベントが (有効であれば) 生成されます。 ### 参照 [`On Alternative Click`](onAlternativeClick.md) \ No newline at end of file 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 580d2b235722bc..bff02496a511b1 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 @@ -19,7 +19,7 @@ title: On Mouse Enter ### コールスタック -`On Mouse Enter` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。 あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。 重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 +`On Mouse Enter` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 ### 参照 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 0d22dd1ad1efdc..4b3f94e0995074 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 @@ -19,7 +19,7 @@ title: On Mouse Leave ### コールスタック -`On Mouse Leave` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。 あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。 重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 +`On Mouse Leave` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 ### 参照 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 94b131b1243593..4cdb0b384c8425 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 @@ -13,7 +13,7 @@ title: On Mouse Move このイベントは次の場合に生成されます: - マウスカーソルが 1ピクセル以上動いた -- または、変更キー (**Shift**, **Alt/Option**, **Shift Lock**) が押された。 これにより、ドラッグ&ドロップによるコピーや移動も管理できるようになります +- または、変更キー (**Shift**, **Alt/Option**, **Shift Lock**) が押された。これにより、ドラッグ&ドロップによるコピーや移動も管理できるようになります イベントがオブジェクトに対してのみチェックされていた場合は、マウスカーソルがオブジェクトの描画エリア内にあった場合にのみイベントが生成されます。 @@ -24,7 +24,7 @@ title: On Mouse Move ### コールスタック -`On Mouse Move` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。 あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。 重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 +`On Mouse Move` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 ### 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onPageChange.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onPageChange.md index b56a47ba1838d1..652608afac15aa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onPageChange.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onPageChange.md @@ -10,10 +10,10 @@ title: On Page Change ## 説明 -このイベントは、フォームレベルでのみ利用できます (フォームメソッド内でのみ使用します)。 このイベントは、(`FORM GOTO PAGE` コマンドの呼び出しや標準ナビゲーションアクションに伴い) フォームのカレントページが変更されるたびに生成されます。 +このイベントは、フォームレベルでのみ利用できます (フォームメソッド内でのみ使用します)。このイベントは、(`FORM GOTO PAGE` コマンドの呼び出しや標準ナビゲーションアクションに伴い) フォームのカレントページが変更されるたびに生成されます。 ページが完全にロードされた後 (つまり、([Webエリア](FormObjects/webArea_overview.md) を含む) すべてのオブジェクトが初期化された後) に呼び出されることに留意してください。 > 唯一の例外は 4D View Proエリアで、その場合は専用の [On VP Ready](onVpReady.md) イベントを呼び出す必要があります。 -`On Page Change` イベントは、すべてのオブジェクトが初期化済みの状態で実行する必要のあるコードがあるときに有用です。 また、フォームのページ1 がロードされたときにすべてのコードを実行するのではなく、特定のページが開かれたときにのみ (検索などの) コードを実行するようにして、アプリケーションを最適化できます。 ユーザーがそのページを開かなければ、コードは実行されません。 \ No newline at end of file +`On Page Change` イベントは、すべてのオブジェクトが初期化済みの状態で実行する必要のあるコードがあるときに有用です。また、フォームのページ1 がロードされたときにすべてのコードを実行するのではなく、特定のページが開かれたときにのみ (検索などの) コードを実行するようにして、アプリケーションを最適化できます。ユーザーがそのページを開かなければ、コードは実行されません。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onResize.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onResize.md index 8b66bb86551818..520f7f22c2a2ac 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onResize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onResize.md @@ -13,4 +13,4 @@ title: On Resize このイベントは次の場合に生成されます: - フォームのウィンドウがリサイズされた -- サブフォームのコンテキストでは、親フォームにおいてサブフォームオブジェクトのサイズが変更された場合。 この場合、イベントはサブフォームのフォームメソッドが受け取ります。 +- サブフォームのコンテキストでは、親フォームにおいてサブフォームオブジェクトのサイズが変更された場合。この場合、イベントはサブフォームのフォームメソッドが受け取ります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onRowMoved.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onRowMoved.md index d538d3234085cf..bd580c04e97771 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onRowMoved.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onRowMoved.md @@ -10,6 +10,6 @@ title: On Row Moved ## 説明 -このイベントは、ユーザーのドラッグ&ドロップ ([許可されていれば](FormObjects/properties_Action.md#行の移動可)) で、リストボックス ([配列型のみ](FormObjects/listbox_overview.md#配列リストボックス)) の行が移動されたときに生成されます。 ただし、元の場所にドロップされた場合には生成されません。 +このイベントは、ユーザーのドラッグ&ドロップ ([許可されていれば](FormObjects/properties_Action.md#行の移動可)) で、リストボックス ([配列型のみ](FormObjects/listbox_overview.md#配列リストボックス)) の行が移動されたときに生成されます。ただし、元の場所にドロップされた場合には生成されません。 `LISTBOX MOVED ROW NUMBER` コマンドは行の新しい位置を返します。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onRowResize.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onRowResize.md index 76872396adf7be..498e8e40cc2c42 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onRowResize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onRowResize.md @@ -10,7 +10,7 @@ title: On Row Resize ## 説明 -このイベントは、4D View Pro ドキュメント内で行の高さがユーザーによって変更されたときに生成されます。 このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.md#イベントオブジェクト) には以下のプロパティが含まれています: +このイベントは、4D View Pro ドキュメント内で行の高さがユーザーによって変更されたときに生成されます。このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.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 19655b53d2d56e..0b9688c65addf7 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 @@ -12,14 +12,14 @@ title: On Scroll このイベントは、ピクチャー入力またはリストボックスのコンテキストで生成されます。 -このイベントは、スクロールアクションに関連した他のすべてのユーザーイベント ([On Clicked](onClicked.md)、[On After Keystroke](onAfterKeystroke.md)、等) の後にトリガーされます。 このイベントは、オブジェクトメソッドの中でのみ生成されます (フォームメソッドでは生成されません)。 +このイベントは、スクロールアクションに関連した他のすべてのユーザーイベント ([On Clicked](onClicked.md)、[On After Keystroke](onAfterKeystroke.md)、等) の後にトリガーされます。このイベントは、オブジェクトメソッドの中でのみ生成されます (フォームメソッドでは生成されません)。 このイベントは、ユーザーのアクションの結果としてスクロールが発生した場合にのみ生成されます: スクロールバー/カーソルの使用、マウスホイールまたは [キーボード](FormObjects/properties_Appearance.md#縦スクロールバー) の使用、等です。 [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) コマンド使用の結果スクロールした場合には生成されません。 ### ピクチャー入力 -このイベントは、ユーザーがピクチャー入力 (フィールドや変数) 内のピクチャーをスクロールすると生成されます。 ピクチャーエリアのサイズがピクチャーよりも小さく、かつ表示テーマの [ピクチャーフォーマット](FormObjects/properties_Display.md#ピクチャーフォーマット) プロパティが "トランケート (中央合わせなし)" に設定されている場合のみスクロールが可能です。 +このイベントは、ユーザーがピクチャー入力 (フィールドや変数) 内のピクチャーをスクロールすると生成されます。ピクチャーエリアのサイズがピクチャーよりも小さく、かつ表示テーマの [ピクチャーフォーマット](FormObjects/properties_Display.md#ピクチャーフォーマット) プロパティが "トランケート (中央合わせなし)" に設定されている場合のみスクロールが可能です。 ### リストボックス diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onSelectionChange.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onSelectionChange.md index c7d27624c81eb8..d82446c35bd797 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onSelectionChange.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onSelectionChange.md @@ -14,7 +14,7 @@ title: On Selection Change ### 4D View Pro -現在の行や列の選択が変更された。 このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.md#イベントオブジェクト) には以下のプロパティが含まれています: +現在の行や列の選択が変更された。このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.md#イベントオブジェクト) には以下のプロパティが含まれています: | プロパティ | 型 | 説明 | | ------------- | ------- | --------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onUnload.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onUnload.md index 96c0249de2b274..4243a76ea5dd65 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onUnload.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onUnload.md @@ -12,15 +12,15 @@ title: On Unload このイベントは、フォームを閉じて解放しようとしているときに生成されます。 -`On Unload` オブジェクトイベントプロパティが選択されている、フォームの全ページの全オブジェクトのオブジェクトメソッドが呼び出されます。 その後、`On Unload` フォームイベントプロパティが選択されていれば、フォームメソッドが呼び出されます。 +`On Unload` オブジェクトイベントプロパティが選択されている、フォームの全ページの全オブジェクトのオブジェクトメソッドが呼び出されます。その後、`On Unload` フォームイベントプロパティが選択されていれば、フォームメソッドが呼び出されます。 -> オブジェクトの [`On Load`](onLoad.md) と `On Unload` イベントが生成されるには、オブジェクトとオブジェクトが属するフォームの両方で有効にされていなければなりません。 オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 +> オブジェクトの [`On Load`](onLoad.md) と `On Unload` イベントが生成されるには、オブジェクトとオブジェクトが属するフォームの両方で有効にされていなければなりません。オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 ### サブフォーム -`On Unload` イベントは、サブフォームを閉じる際に生成されます。 これらのイベントは親フォームレベルでも有効にされていなければなりません。 このイベントは、親フォームのイベントよりも前に生成される点に留意してください。 また、フォームイベント動作の原則に従い、サブフォームが 0 もしくは 1 以外のページに配置されている場合、このイベントはページが閉じられるときに生成され、フォームが閉じられるときではないことに留意してください。 +`On Unload` イベントは、サブフォームを閉じる際に生成されます。 これらのイベントは親フォームレベルでも有効にされていなければなりません。このイベントは、親フォームのイベントよりも前に生成される点に留意してください。また、フォームイベント動作の原則に従い、サブフォームが 0 もしくは 1 以外のページに配置されている場合、このイベントはページが閉じられるときに生成され、フォームが閉じられるときではないことに留意してください。 ### 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onVpRangeChanged.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onVpRangeChanged.md index 72da85e52563a2..41d010ed913561 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onVpRangeChanged.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onVpRangeChanged.md @@ -22,6 +22,6 @@ FORM Event によって返されるオブジェクトには以下のプロパテ | description | text | "On VP Range Changed" | | sheetName | text | イベントが発生したシート名 | | range | object | 変化したセルレンジ | -| changedCells | object | 変化したセルのみを格納したレンジ。 レンジが組み合わされたものである可能性もあります。 | +| changedCells | object | 変化したセルのみを格納したレンジ。レンジが組み合わされたものである可能性もあります。 | | action | text | イベント生成した操作のタイプ:
  • "clear" - レンジの値をクリア操作
  • "dragDrop" - ドラッグドロップ操作
  • "dragFill" - ドラッグによるフィル操作
  • "evaluateFormula" - 特定のセルレンジにフォーミュラを設定した
  • "paste" - ペースト操作
  • "setArrayFormula" - 特定のセルレンジにフォーミュラを設定した
  • "sort" - セルのレンジを並べ替えた
  • | > [On After Edit](onAfterEdit.md) も参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onWindowOpeningDenied.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onWindowOpeningDenied.md index f964ef3e33f397..a3b8e6e7a7a72b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onWindowOpeningDenied.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/onWindowOpeningDenied.md @@ -20,7 +20,7 @@ title: On Window Opening Denied `WA Get last filtered URL` コマンドコマンドを使用してブロックされた URL を知ることができます。 -このイベントは、[ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効にされていれば、Webエリア(埋め込みWebエリアまたは Windows システム[レンダリングエンジン](../FormObjects/properties_WebArea.md#propertiesWebArea#埋め込みwebレンダリングエンジンを使用))に対してドロップ操作がなされたときにも発生します。 次を呼び出すことで、ドロップを受け入れることができます: +このイベントは、[ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効にされていれば、Webエリア(埋め込みWebエリアまたは Windows システム[レンダリングエンジン](../FormObjects/properties_WebArea.md#propertiesWebArea#埋め込みwebレンダリングエンジンを使用))に対してドロップ操作がなされたときにも発生します。次を呼び出すことで、ドロップを受け入れることができます: ```4d // Webエリアオブジェクトメソッド diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/overview.md index c33d13131f6816..1f451c00276471 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Events/overview.md @@ -3,9 +3,9 @@ id: overview title: フォームイベント --- -フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。 フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 +フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 -コードの中では、トリガーされたイベントを返す `FORM Event` コマンドを使ってイベントを制御します。 例: +コードの中では、トリガーされたイベントを返す `FORM Event` コマンドを使ってイベントを制御します。例: ```4d // ボタンのコード @@ -19,7 +19,7 @@ End if ## イベントオブジェクト -各イベントは、`FORM Event` コマンドによってオブジェクトとして返されます。 デフォルトで、以下のプロパティが含まれています: +各イベントは、`FORM Event` コマンドによってオブジェクトとして返されます。デフォルトで、以下のプロパティが含まれています: | プロパティ | 型 | 説明 | | ----- | - | -- | @@ -28,7 +28,7 @@ End if `Form event code` によっても返されます。| |description|text|フォームイベント名 (例: "On After Edit")| -イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。 特に: +イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。特に: - [リストボックス](FormObjects/listbox-object.md#supported-form-events) and [リストボックスカラム](FormObjects/listbox-column.md#supported-form-events) は`columnName` あるいは `isRowSelected` という[追加のプロパティ](FormObjects/listbox-object.md#supported-form-events) を返します。 - [4D View Pro エリア](FormObjects/viewProArea_overview.md) は、`sheetName` や `action` といったプロパティを [On After Edit](onAfterEdit.md) イベントオブジェクトに返します。 @@ -41,9 +41,9 @@ End if - まず 4D は、フォーム中のオブジェクトをブラウズし、発生したオブジェクトイベントがプロパティで選択されているすべてのオブジェクトのオブジェクトメソッドを呼び出します。 - 次に、発生したイベントに対応するフォームイベントがフォームのプロパティで選択されていれば、フォームメソッドを呼び出します。 -オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。 おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。 オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。 そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。 つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 +オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 -[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き (後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。 言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 +[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き (後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 特定のイベントに関連するオブジェクトの数は、イベントの性質により異なります。 @@ -51,70 +51,71 @@ End if 以下の表は、それぞれのイベントごとにどのようにオブジェクトメソッドとフォームメソッドが呼ばれるかを概説します: -| イベント | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | -| ------------------------ | ---------------------------- | -------- | ------------ | -| On Load | ◯ | ◯ | すべてのオブジェクト | -| On Unload | ◯ | ◯ | すべてのオブジェクト | -| On Validate | ◯ | ◯ | すべてのオブジェクト | -| On Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Double Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Before Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Edit | ◯ | ◯ | 関係するオブジェクトのみ | -| On Getting Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Losing Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Activate | X | ◯ | なし | -| On Deactivate | X | ◯ | なし | -| On Outside Call | X | ◯ | なし | -| On Page Change | X | ◯ | なし | -| On Begin Drag Over | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drop | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drag Over | ◯ | X | 関係するオブジェクトのみ | -| On Mouse Enter | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Move | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Leave | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Up | ◯ | X | 関係するオブジェクトのみ | -| On Menu Selected | X | ◯ | なし | -| On Bound variable change | X | ◯ | なし | -| On Data Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Plug in Area | ◯ | ◯ | 関係するオブジェクトのみ | -| On Header | ◯ | ◯ | すべてのオブジェクト | -| On Printing Detail | ◯ | ◯ | すべてのオブジェクト | -| On Printing Break | ◯ | ◯ | すべてのオブジェクト | -| On Printing Footer | ◯ | ◯ | すべてのオブジェクト | -| On Close Box | X | ◯ | なし | -| On Display Detail | ◯ | ◯ | すべてのオブジェクト | -| On Open Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Close Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Resize | X | ◯ | なし | -| On Selection Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Load Record | X | ◯ | なし | -| On Timer | X | ◯ | なし | -| On Scroll | ◯ | X | 関係するオブジェクトのみ | -| On Before Data Entry | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Row Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Resize | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Header Click | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Footer Click | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On After Sort | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Long Click | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | -| On Alternative Click | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | -| On Expand | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Collapse | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Delete Action | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On URL Resource Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Begin URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Loading Error | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Filtering | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On End URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Open External Link | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Window Opening Denied | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On VP Range Changed | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On VP Ready | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Row Resize | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | - -イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。 デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 - -> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォームの両方で有効にされていなければなりません。 オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 +| イベント | コード | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | +| ------------------------ | --- | ---------------------------- | -------- | ------------ | +| On Activate | 11 | X | ◯ | なし | +| On After Edit | 45 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Keystroke | 28 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Sort | 30 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Alternative Click | 38 | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | +| On Before Data Entry | 41 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Before Keystroke | 17 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin Drag Over | 46 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin URL Loading | 47 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Bound variable change | 54 | X | ◯ | なし | +| On Clicked | 4 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Close Box | 22 | X | ◯ | なし | +| On Close Detail | 26 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Collapse | 44 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Column Moved | 32 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Column Resize | 33 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Data Change | 20 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Deactivate | 12 | X | ◯ | なし | +| On Delete Action | 58 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Display Detail | 8 | ◯ | ◯ | すべてのオブジェクト | +| On Double Clicked | 13 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Drag Over | 21 | ◯ | X | 関係するオブジェクトのみ | +| On Drop | 16 | ◯ | ◯ | 関係するオブジェクトのみ | +| On End URL Loading | 49 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Expand | 43 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Footer Click | 57 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Getting Focus | 15 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Header | 5 | ◯ | ◯ | すべてのオブジェクト | +| On Header Click | 42 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Load | 1 | ◯ | ◯ | すべてのオブジェクト | +| On Load Record | 40 | X | ◯ | なし | +| On Long Click | 39 | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | +| On Losing Focus | 14 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Menu Selected | 18 | X | ◯ | なし | +| On Mouse Enter | 35 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Leave | 36 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Move | 37 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Up | 2 | ◯ | X | 関係するオブジェクトのみ | +| On Open Detail | 25 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Open External Link | 52 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Outside Call | 10 | X | ◯ | なし | +| On Page Change | 56 | X | ◯ | なし | +| On Plug in Area | 19 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Printing Break | 6 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Detail | 23 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Footer | 7 | ◯ | ◯ | すべてのオブジェクト | +| On Resize | 29 | X | ◯ | なし | +| On Row Moved | 34 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Row Resize | 60 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Scroll | 59 | ◯ | X | 関係するオブジェクトのみ | +| On Selection Change | 31 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Timer | 27 | X | ◯ | なし | +| On Unload | 24 | ◯ | ◯ | すべてのオブジェクト | +| On URL Filtering | 51 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Loading Error | 50 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Resource Loading | 48 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Validate | 3 | ◯ | ◯ | すべてのオブジェクト | +| On VP Range Changed | 61 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On VP Ready | 9 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Window Opening Denied | 53 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | + +イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 + +> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォームの両方で有効にされていなければなりません。オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 + 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 81425a586bb38c..a3ae6eaebad31f 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 @@ -35,7 +35,7 @@ title: リリースノート #### 動作の変更 -- 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.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 @@ -44,7 +44,7 @@ title: リリースノート :::info 評価版アプリケーション -ナイトリービルド**101734**以降、アプリケーションビルド画面には評価版アプリケーションをビルドするための新しいオプションが表示されるようになりました。 詳細は[4D Rx ドキュメンテーションの説明](../../../docs/Desktop/building#evaluation-application)を参照してください。 +ナイトリービルド**101734**以降、アプリケーションビルド画面には評価版アプリケーションをビルドするための新しいオプションが表示されるようになりました。詳細は[4D Rx ドキュメンテーションの説明](../../../docs/Desktop/building#evaluation-application)を参照してください。 ::: @@ -52,7 +52,7 @@ title: リリースノート :::警告 WINDOWS SERVER 2025 での既知の問題 -Windows Server 2025 では、新しいWindows 印刷ダイアログボックス内での一部のカスタムのオプションは利用不可となっており、現在調査中です。 この問題はHotfixで修正される予定です。 +Windows Server 2025 では、新しいWindows 印刷ダイアログボックス内での一部のカスタムのオプションは利用不可となっており、現在調査中です。この問題はHotfixで修正される予定です。 ::: @@ -93,7 +93,7 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD #### 動作の変更 -- 4D 20.3では、[4Dユーザーディレクトリが bcryptアルゴリズムを使用している](https://blog.4d.com/ja/bcrypt-support-for-passwords/)場合にパスワード認証を可能にするため、[`Open datastore`](../API/DataStoreClass.md#open-datastore)コマンドの *connectionInfo* パラメーターに設定する "password" 値は、デフォルトでクリアテキストで送信されるようになりました。 "On REST authentication" データベースメソッドが、パスワードを平文の状態で扱えるようにし (3番目のパラメーターは **False**)、`Open datastore` に渡す *connectionInfo* で "tls" オプションを **True** にすることで、接続が暗号化されるようにする必要があります。 特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../API/DataStoreClass.md#open-datastore) コマンド参照)。 +- 4D 20.3では、[4Dユーザーディレクトリが bcryptアルゴリズムを使用している](https://blog.4d.com/ja/bcrypt-support-for-passwords/)場合にパスワード認証を可能にするため、[`Open datastore`](../API/DataStoreClass.md#open-datastore)コマンドの *connectionInfo* パラメーターに設定する "password" 値は、デフォルトでクリアテキストで送信されるようになりました。 "On REST authentication" データベースメソッドが、パスワードを平文の状態で扱えるようにし (3番目のパラメーターは **False**)、`Open datastore` に渡す *connectionInfo* で "tls" オプションを **True** にすることで、接続が暗号化されるようにする必要があります。特定の場合には、新しい "passwordAlgorithm" オプションも互換性のために使用できます ([`Open datastore`](../API/DataStoreClass.md#open-datastore) コマンド参照)。 ## 4D 20.2 LTS @@ -104,7 +104,7 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD :::warning セキュリティに関する注記 -4Dアプリケーションが TLS接続を使用する場合は、4D 20.2 LTS build 100956以上へのアップグレードが推奨されます。 詳細は [セキュリティ情報](https://blog.4d.com/ja/security-bulletin-two-cves-and-how-to-stay-secure/) を参照ください。 +4Dアプリケーションが TLS接続を使用する場合は、4D 20.2 LTS build 100956以上へのアップグレードが推奨されます。詳細は [セキュリティ情報](https://blog.4d.com/ja/security-bulletin-two-cves-and-how-to-stay-secure/) を参照ください。 ::: @@ -144,7 +144,7 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD :::caution インデックス再構築 -4D 20 では、ICUライブラリのアップデート (後述参照) により、文字列型、テキスト型、オブジェクト型のインデックスの再構築が強制されます。 データファイルのサイズに応じて、この処理には時間がかかることがあるため、計画的なアップグレードが推奨されます。 +4D 20 では、ICUライブラリのアップデート (後述参照) により、文字列型、テキスト型、オブジェクト型のインデックスの再構築が強制されます。データファイルのサイズに応じて、この処理には時間がかかることがあるため、計画的なアップグレードが推奨されます。 ::: @@ -176,11 +176,11 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD #### 動作の変更 -- HTTP RFC に準拠するため、[`HTTPRequestClass.response.headers`](../API/HTTPRequestClass.md#response) プロパティは、すべてのヘッダー名を **小文字で** 返すようになりました。 以前と同じふるまいが必要な場合には、新しい [`HTTPRequestClass.response.rawHeaders`](../API/HTTPRequestClass.md#response) プロパティを使用します。 -- [`4D.HTTPRequest.new()`](../API/HTTPRequestClass.md#4dhttprequestnew) で HTTPリクエストを送信する際、TLS証明書が 4Dによって自動的に検証され、無効な場合はエラーで拒否されるようになりました。 新しい *option* プロパティで、この検証を管理することができます。 +- HTTP RFC に準拠するため、[`HTTPRequestClass.response.headers`](../API/HTTPRequestClass.md#response) プロパティは、すべてのヘッダー名を **小文字で** 返すようになりました。以前と同じふるまいが必要な場合には、新しい [`HTTPRequestClass.response.rawHeaders`](../API/HTTPRequestClass.md#response) プロパティを使用します。 +- [`4D.HTTPRequest.new()`](../API/HTTPRequestClass.md#4dhttprequestnew) で HTTPリクエストを送信する際、TLS証明書が 4Dによって自動的に検証され、無効な場合はエラーで拒否されるようになりました。新しい *option* プロパティで、この検証を管理することができます。 - TLS v1.0 および TLS v1.1 は廃止され、4D Server において `Min TLS version` としてサポートされなくなりました。 `_o_TLSv1_0` または `_o_TLSv1_1` 定数が [`SET DATABASE PARAMETER`](https://doc.4d.com/4dv20/help/command/ja/page642.html) で設定されている場合には、バージョン 1.3 が自動的に使用されます。 - 一貫性のため、ボタン・チェックボックス・ラジオボタンはすべて、実行時に "3D" タイプでレンダリングされるようになりました。 これらのオブジェクトに対し [`OBJECT Get type`](https://doc.4d.com/4dv20/help/command/ja/page1300.html) を呼び出した場合、返されるのはそれぞれ、`Object type 3D button`、`Object type 3D checkbox`、`Object type 3D radio button` の値です。 -- 4D for Mobile の開発機能を 4D で利用するには、プロジェクトの ["Components"](../Project/architecture.md#components) フォルダーに [4D Mobile App コンポーネントをインストール](https://developer.4d.com/go-mobile/docs/getting-started/installation) する必要があります。 プロジェクトが [4D Mobile App Server コンポーネント](https://github.com/4d/4D-Mobile-App-Server#4d-mobile-app-server) の機能を使用している場合、こちらも同じ場所にインストールする必要があります。 4D 20 より、[4D for Mobile](https://developer.4d.com/go-mobile/) は 4D環境にデフォルトでインストールされなくなりました。 +- 4D for Mobile の開発機能を 4D で利用するには、プロジェクトの ["Components"](../Project/architecture.md#components) フォルダーに [4D Mobile App コンポーネントをインストール](https://developer.4d.com/go-mobile/docs/getting-started/installation) する必要があります。プロジェクトが [4D Mobile App Server コンポーネント](https://github.com/4d/4D-Mobile-App-Server#4d-mobile-app-server) の機能を使用している場合、こちらも同じ場所にインストールする必要があります。 4D 20 より、[4D for Mobile](https://developer.4d.com/go-mobile/) は 4D環境にデフォルトでインストールされなくなりました。 ### 4D 19 R8 @@ -204,9 +204,9 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD #### 動作の変更 -- HTTP RFC に準拠するため、[`HTTPRequestClass.response.headers`](../API/HTTPRequestClass.md#response) プロパティは、すべてのヘッダー名を **小文字で** 返すようになりました。 以前と同じふるまいが必要な場合には、新しい [`HTTPRequestClass.response.rawHeaders`](../API/HTTPRequestClass.md#response) プロパティを使用します。 +- HTTP RFC に準拠するため、[`HTTPRequestClass.response.headers`](../API/HTTPRequestClass.md#response) プロパティは、すべてのヘッダー名を **小文字で** 返すようになりました。以前と同じふるまいが必要な場合には、新しい [`HTTPRequestClass.response.rawHeaders`](../API/HTTPRequestClass.md#response) プロパティを使用します。 - [ポップアップメニューがリンクされたベベルボタン](../FormObjects/properties_TextAndPicture.md#with-pop-up-menu)に標準アクションが設定されている場合、ポップアップメニューの項目が選択されたときには標準アクションが実行されないようになりました。 -- Blink (CEF) を使用する Webエリアにおいて、外部スクリプトによって表示されるダイアログは、 `setTimeout()` JS 関数から呼び出されていないとブロックされるようになりました。 これは、現在のCEFのアップデートにより、`alert()` や `print()` などの関数によって表示されるダイアログが、OS ではなく Web エリアで処理されるようになったためです。 [`WA Evaluate JavaScript`](https://doc.4d.com/4dv19/help/command/ja/page1029.html) および [`WA EXECUTE JAVASCRIPT`](https://doc.4d.com/4dv19/help/command/ja/page1043.html) 参照。 +- Blink (CEF) を使用する Webエリアにおいて、外部スクリプトによって表示されるダイアログは、 `setTimeout()` JS 関数から呼び出されていないとブロックされるようになりました。これは、現在のCEFのアップデートにより、`alert()` や `print()` などの関数によって表示されるダイアログが、OS ではなく Web エリアで処理されるようになったためです。 [`WA Evaluate JavaScript`](https://doc.4d.com/4dv19/help/command/ja/page1029.html) および [`WA EXECUTE JAVASCRIPT`](https://doc.4d.com/4dv19/help/command/ja/page1043.html) 参照。 @@ -232,11 +232,11 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD #### 動作の変更 -- 標準的なインターフェース (OS のファイルエクスプローラなど) との一貫性を保つため、行の選択/ドラッグ&ドロップに関するリストボックスのルールが変更されました。 連続または不連続の選択行をクリックして移動するだけで、ドラッグできるようになり、**Alt** キーは不要になりました (ひきつづき以前のように使用することはできます)。 **Shift** または **Ctrl/Command** キーが押されている場合、マウスのクリックは押されたとき (マウスダウン) に考慮されます。 リストボックスでのドラッグ&ドロップの詳細については、[このブログ記事](https:/blog.4d.com/list-boxes-say-goodbye-to-alt-key/) を参照し、[このHDI 4Dプロジェクト](https://github.com/4D-JP/HDI/releases/download/19r7/HDI_LB_DragAndDrop.zip) をダウンロードしてください。 +- 標準的なインターフェース (OS のファイルエクスプローラなど) との一貫性を保つため、行の選択/ドラッグ&ドロップに関するリストボックスのルールが変更されました。連続または不連続の選択行をクリックして移動するだけで、ドラッグできるようになり、**Alt** キーは不要になりました (ひきつづき以前のように使用することはできます)。 **Shift** または **Ctrl/Command** キーが押されている場合、マウスのクリックは押されたとき (マウスダウン) に考慮されます。リストボックスでのドラッグ&ドロップの詳細については、[このブログ記事](https:/blog.4d.com/list-boxes-say-goodbye-to-alt-key/) を参照し、[このHDI 4Dプロジェクト](https://github.com/4D-JP/HDI/releases/download/19r7/HDI_LB_DragAndDrop.zip) をダウンロードしてください。 - 4D 19 R7 から 4D の内部ビルド番号が変更されました: - 4D 19 R6 (含む) までのリリースは 282xxx の番号です。 - 4D 19 R7 以降のリリースは 100xxx という番号になります。 - なお、特定の 4Dバージョンは、ブランチ名とビルド番号により一意に識別されます。 ビルド番号は時系列に増加します。 + なお、特定の 4Dバージョンは、ブランチ名とビルド番号により一意に識別されます。ビルド番号は時系列に増加します。 - Wakanda/4D Mobile REST プロトコルを使用してプロジェクトメソッドを呼び出す機能が削除されました。 [ORDAデータモデルクラス関数](../REST/ClassFunctions.md) または [/4DACTION URL](../WebServer/httpRequests.md#4daction) を代わりに使用することができます。 @@ -247,7 +247,7 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD - リストボックスのセルは、[横方向](../FormObjects/properties_CoordinatesAndSizing.md#横方向パディング) および [縦方向](../FormObjects/properties_CoordinatesAndSizing.md#縦方向パディング) のパディングをサポートするようになりました。 - 4D View Pro: 新しい [VP CREATE TABLE](../ViewPro/method-list.md#vp-create-table) と [VP REMOVE TABLE](../ViewPro/method-list.md#vp-remove-table) コマンドを使用して、シート内のテーブルを操作します。 - [Webデータエクスプローラー](../Admin/dataExplorer.md#基本) でリレート属性、計算属性、およびエイリアス属性を表示することができます。 -- 4D製品を改善し続けるために、実行中の 4D Server アプリケーションの使用状況データを自動的に収集します。 この処理はパフォーマンスに影響を与えません。 [4D がデータを収集する理由と方法](../Admin/data-collect.md) について詳細を説明する新しいページを参照ください。 +- 4D製品を改善し続けるために、実行中の 4D Server アプリケーションの使用状況データを自動的に収集します。この処理はパフォーマンスに影響を与えません。 [4D がデータを収集する理由と方法](../Admin/data-collect.md) について詳細を説明する新しいページを参照ください。 - Silicon用にコンパイルされたコンポーネント: macOS Siliconプラットフォーム (Apple ARM CPU) では、このリリースで使用するためには、コンポーネントを 4D 19 R6 以降で再コンパイルする必要があります。 @@ -257,28 +257,28 @@ Windows 11 24H2 では、Microsoft Print to PDFドライバーを使用して PD - ビルド時に、プロジェクトの [directory.json ファイル](../Users/handling_users_groups.md#directoryjson-file) を [サーバーに埋め込む](../Desktop/building.md#ビルドしたサーバーアプリケーションにプロジェクトのユーザーとグループを埋め込む) ことができるようになりました。 これにより、基本的なセキュリティのユーザーとグループ構成でクライアント/サーバーアプリケーションを運用することができます。 - ビルドするアプリケーションで、[使用しないモジュールの選択を解除](../Desktop/building.md#モジュールの選択解除) できるようになりました。 -- *MeCab* ライブラリが、すべての macOS 4Dアプリケーションにデフォルトで含まれるようになりました。 日本語テキストの管理に特化したこのライブラリは、以前のリリースでは日本語版の macOS 4D でのみ利用可能でした。 最終的なアプリケーションでこのライブラリが必要ない場合は、[選択を解除](../Desktop/building.md#モジュールの選択解除) することができます。 -- [クライアント/サーバーの最適化](../ORDA/remoteDatastores.md#クライアントサーバーの最適化): 新しいクラス関数により、ORDAキャッシュと最適化コンテキストの内容を操作することができます。 詳細は、[コンテキストの事前設定](../ORDA/remoteDatastores.md#コンテキストの事前設定) および [ORDAキャッシュ](../ORDA/remoteDatastores.md#ordaキャッシュ) を参照ください。 +- *MeCab* ライブラリが、すべての macOS 4Dアプリケーションにデフォルトで含まれるようになりました。日本語テキストの管理に特化したこのライブラリは、以前のリリースでは日本語版の macOS 4D でのみ利用可能でした。最終的なアプリケーションでこのライブラリが必要ない場合は、[選択を解除](../Desktop/building.md#モジュールの選択解除) することができます。 +- [クライアント/サーバーの最適化](../ORDA/remoteDatastores.md#クライアントサーバーの最適化): 新しいクラス関数により、ORDAキャッシュと最適化コンテキストの内容を操作することができます。詳細は、[コンテキストの事前設定](../ORDA/remoteDatastores.md#コンテキストの事前設定) および [ORDAキャッシュ](../ORDA/remoteDatastores.md#ordaキャッシュ) を参照ください。 - > これらの関数は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 + > これらの関数は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 - [DataClass クラス](../API/DataClassClass.md): 新しい [.getCount()](../API/DataClassClass.md#getcount) 関数は、データクラスの総エンティティ数を返します。 - *4DDiagnosticLog.txt* ファイルは、デフォルトでは高レベルの情報のみを記録します ([INFOレベル](../Debugging/debugLogFiles.md#4ddiagnosticlogtxt))。 `SET DATABASE PARAMETER` コマンドまたはログ設定ファイルの `Diagnostic log level` セレクターを使用して、記録する情報レベル (たとえばDEBUGレベル) を選択できるようになりました。 -- 非共有オブジェクトや非共有コレクションに対して `Use()` を呼び出しても何も起こりません (エラーが発生しなくなりました)。 したがって、Use() に渡されたオブジェクトやコレクションが実際に共有されているかどうかをチェックする意味はなくなりました。 +- 非共有オブジェクトや非共有コレクションに対して `Use()` を呼び出しても何も起こりません (エラーが発生しなくなりました)。したがって、Use() に渡されたオブジェクトやコレクションが実際に共有されているかどうかをチェックする意味はなくなりました。 - 分かりやすさのため、2つの SQLコマンドにプレフィックスが付けられました: `GET DATA SOURCE LIST` は `SQL GET DATA SOURCE LIST`、`Get current data source` は `SQL Get current data source` に名称変更されました。 - **4D View Pro**: - 新しい [VP SET DATA CONTEXT](../ViewPro/method-list.md#vp-set-data-context)、[VP Get data context](../ViewPro/method-list.md#vp-get-data-context)、[VP SET BINDING PATH](../ViewPro/method-list.md#vp-set-binding-path)、および [VP Get binding path](../ViewPro/method-list.md#vp-get-binding-path) コマンドを使って、データコンテキストを作成し、その内容をシートのセルにバインドすることができます。 - [VP EXPORT DOCUMENT](../ViewPro/method-list.md#vp-get-binding-path) と [VP Export to object](../ViewPro/method-list.md#vp-get-binding-path) は、データコンテキストの内容をセルの値としてエクスポートするための新しい `includeBindingSource` オプションを受け付けます。 - (Windowsのみ) 4D View Pro エリアの印刷設定ウィンドウが新しくなりました。 - **Webエリア**: - + 新しい Windowsシステムのレンダリングエンジン: [Windowsシステムのレンダリングエンジン](../FormObjects/webArea_overview.md#webレンダリングエンジン) を使用している Webエリアは、**Microsoft Edge WebView2** をベースとするようになりました。 これにより、以下のような機能に影響があります: + + 新しい Windowsシステムのレンダリングエンジン: [Windowsシステムのレンダリングエンジン](../FormObjects/webArea_overview.md#webレンダリングエンジン) を使用している Webエリアは、**Microsoft Edge WebView2** をベースとするようになりました。これにより、以下のような機能に影響があります: * `WA Create URL history menu` および `WA GET URL HISTORY` のコマンドは、カレントURL のみを返すようになりました。 - [進捗状況変数](../FormObjects/properties_WebArea.md#進捗状況変数) は更新されなくなりました。 - - ドラッグ&ドロップ機能は、マイクロソフトが "experimental" とタグ付けしている Windows API で処理されます。 そのため、この API がインストールされていない場合、Webエリアが期待どおりに振る舞わないかもしれません: `WA enable URL drop` 設定が false に設定されていても、ドラッグ&ドロップ機能が許可されているように見えるかもしれません。 しかし、ドロップアクションはデフォルトでブロックされており、許可する URL は [`On Window Opening Denied` イベント](../Events/onWindowOpeningDenied.md) で管理することができます (後述参照)。 + - ドラッグ&ドロップ機能は、マイクロソフトが "experimental" とタグ付けしている Windows API で処理されます。そのため、この API がインストールされていない場合、Webエリアが期待どおりに振る舞わないかもしれません: `WA enable URL drop` 設定が false に設定されていても、ドラッグ&ドロップ機能が許可されているように見えるかもしれません。しかし、ドロップアクションはデフォルトでブロックされており、許可する URL は [`On Window Opening Denied` イベント](../Events/onWindowOpeningDenied.md) で管理することができます (後述参照)。 - (Windows のみ) ユーザーが、埋め込みWebレンダリングエンジンを使用している Webエリアから **印刷...** メニューを選択した場合に表示される印刷設定ウィンドウが新しくなりました。 - Webエリアにおけるコマンドの実際の効果 (ページズームレベルの増加/減少) を反映させるため、2つのコマンドの名前が変更されました: `WA SET PAGE TEXT LARGER` は `WA ZOOM IN` に、`WA SET PAGE TEXT SMALLER` は `WA ZOOM OUT` に名称変更されました。 - [埋め込みWebレンダリングエンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用) または (Microsoft Edge WebView2 に基づく) [Windowsシステムのレンダリングエンジン](../FormObjects/webArea_overview.md#webレンダリングエンジン) を使用する Webエリアでのセキュリティを強化しました: - - Webエリアにおいてディスク上のファイルにアクセスする場合にも、CORSポリシーが適用されるようになりました。 たとえば、`WA OPEN URL` を使用して .html ファイルを開こうとした場合、その .html ファイルには、フォルダー外のファイルへのリンクを含めることはできません。 - - Webエリアへの外部コンテンツのドロップは常にブロックされ、`WA enable URL drop` 設定が true に設定されている場合には、[`On Window Opening Denied` イベント](../Events/onWindowOpeningDenied.md) をトリガーします。 `WA enable URL drop` 設定が false に設定されている場合、マウスカーソルのアイコンのみが変更され、`On Window Opening Denied` イベントはフィルターされます。 ドロップアクションを許可するには、Webエリアのオブジェクトメソッドにおいて以下のような追加のコードを実行する必要があります: + - Webエリアにおいてディスク上のファイルにアクセスする場合にも、CORSポリシーが適用されるようになりました。たとえば、`WA OPEN URL` を使用して .html ファイルを開こうとした場合、その .html ファイルには、フォルダー外のファイルへのリンクを含めることはできません。 + - Webエリアへの外部コンテンツのドロップは常にブロックされ、`WA enable URL drop` 設定が true に設定されている場合には、[`On Window Opening Denied` イベント](../Events/onWindowOpeningDenied.md) をトリガーします。 `WA enable URL drop` 設定が false に設定されている場合、マウスカーソルのアイコンのみが変更され、`On Window Opening Denied` イベントはフィルターされます。ドロップアクションを許可するには、Webエリアのオブジェクトメソッドにおいて以下のような追加のコードを実行する必要があります: ```4d WA OPEN URL(*;"WebArea";WA Get last filtered URL(*;"WebArea")) @@ -298,8 +298,8 @@ WA OPEN URL(*;"WebArea";WA Get last filtered URL(*;"WebArea")) - [4D View Pro](../ViewPro/getting-started.md) の章が次の新コマンドとともに追加されました: [VP Copy to object](../ViewPro/method-list.md#vp-copy-to-object), [VP MOVE CELLS](../ViewPro/method-list.md#vp-move-cells), [VP PASTE FROM OBJECT](../ViewPro/method-list.md#vp-paste-from-object). - 新しい [SystemWorker クラス](../API/SystemWorkerClass.md)。 - ORDA でエイリアス属性をサポートしたことに起因する競合を解決するため、`Alias selection` 定数の名称を `Allow alias files` に変更しました。 -- ORDA の仕様により適合するため、*ヌル値に空値をマップ* フィールドプロパティは、4D 19 R4以降で作成されたデータベースにおいてはデフォルトでチェックされないようになります。 以前のバージョンの 4D から変換されたデータベースにおいては、データベース設定の "フィールド作成時にヌル値を空値にマップをデフォルトでチェックを外す" オプションを選択することで、この新しいデフォルトの振る舞いを有効化することができます。 ORDA では NULL が完全にサポートされるようになったため、今後は使用することが推奨されます。 -- [三項演算子](../Concepts/operators.md#三項演算子) のサポートに伴い、コロン ":" は今後、変数名、フィールド名、定数名、関数名、プラグイン名、プロジェクトメソッド名に使用できなくなります。 データベース/プロジェクトにおいてコロンを含む識別子が使用されている場合には、v19 R4 以降への変換前にそれらを置換する必要があります。 置換しない場合、コード内でエラーが起きる可能性があります。 たとえば、*a:b* という名前の変数があった場合、これが三項演算子シンタックスとして誤解されてしまう可能性があります: +- ORDA の仕様により適合するため、*ヌル値に空値をマップ* フィールドプロパティは、4D 19 R4以降で作成されたデータベースにおいてはデフォルトでチェックされないようになります。以前のバージョンの 4D から変換されたデータベースにおいては、データベース設定の "フィールド作成時にヌル値を空値にマップをデフォルトでチェックを外す" オプションを選択することで、この新しいデフォルトの振る舞いを有効化することができます。 ORDA では NULL が完全にサポートされるようになったため、今後は使用することが推奨されます。 +- [三項演算子](../Concepts/operators.md#三項演算子) のサポートに伴い、コロン ":" は今後、変数名、フィールド名、定数名、関数名、プラグイン名、プロジェクトメソッド名に使用できなくなります。データベース/プロジェクトにおいてコロンを含む識別子が使用されている場合には、v19 R4 以降への変換前にそれらを置換する必要があります。 置換しない場合、コード内でエラーが起きる可能性があります。たとえば、*a:b* という名前の変数があった場合、これが三項演算子シンタックスとして誤解されてしまう可能性があります: ```4d $value:=($size>1000)? a:b // この場合 'a:b' は三項演算子として解釈されます @@ -310,14 +310,14 @@ $value:=($size>1000)? a:b // この場合 'a:b' は三項演算子として解 ### 4D 19 R3 - クラス: [計算プロパティ](../Concepts/classes.md#function-get-と-function-set) が利用可能に。 -- ORDAクラス: [計算属性](../ORDA/ordaClasses.md#計算属性) が利用可能に。 計算プロパティと似ていますが、[クエリ](../ORDA/ordaClasses.md#function-query-attributename) や [orderBy](../ORDA/ordaClasses.md#function-orderby-attributename) 関数もサポートしています。 +- ORDAクラス: [計算属性](../ORDA/ordaClasses.md#計算属性) が利用可能に。計算プロパティと似ていますが、[クエリ](../ORDA/ordaClasses.md#function-query-attributename) や [orderBy](../ORDA/ordaClasses.md#function-orderby-attributename) 関数もサポートしています。 - 新しい ORDAデータクラス [属性](../API/DataClassClass.md#attributename): `exposed` および `readOnly`。 - [ZIPアーカイブ](../API/ZipArchiveClass.md#zip-create-archive): *LZMA* および *xz* 圧縮アルゴリズムをサポート。 - [新しいビルドオプション](../Desktop/building.md#silicon-macos-クライアントからの接続を許可) により、Windows上で Serverアプリケーションに Silicon Macクライアントを組み込むのが簡単になりました。 - macOS で [ダークモードをサポート](../Preferences/general.md#アピアランス-macosのみ)。 - [`IMAP New transporter`](../API/IMAPTransporterClass.md#imap-new-transporter), [`POP3 New transporter`](../API/POP3TransporterClass.md#pop3-new-transporter), および [`SMTP New transporter`](../API/SMTPTransporterClass.md#smtp-new-transporter) で **OAuth2 トークンオブジェクト** をサポート。 - [サーバー管理ウィンドウ](../ServerWindow/maintenance.md#ログ設定ファイルを読み込む) のボタンを使って、[ログ設定ファイル](../Debugging/debugLogFiles.md#ログ設定ファイルを使用する) を読み込めるようになりました。 -- 宣言されたが渡されなかった引数にアクセスする場合の、4Dランゲージの [任意パラメーター](../Concepts/parameters.md#任意パラメーター) の扱いがより柔軟になりました。 たとえば、以下のコードは今後、エラーを生成しません: +- 宣言されたが渡されなかった引数にアクセスする場合の、4Dランゲージの [任意パラメーター](../Concepts/parameters.md#任意パラメーター) の扱いがより柔軟になりました。たとえば、以下のコードは今後、エラーを生成しません: ```4d // myClass クラスの "concate" 関数 @@ -329,18 +329,18 @@ ALERT($param1+" "+$param2) $class.concate("Hello") // "Hello " と表示 $class.concate() // " " と表示 ``` -詳細については、こちらの [ブログ記事](https://blog.4d.com/ja/stop-press-accessing-parameters-not-being-passed-is-possible) を参照ください。 この全体的な変更を利点を活かすため、呼び出し先メソッドと呼び出し元メソッドの両方を再コンパイルする必要があります。 そのため、コンポーネントの再コンパイルが必要になります。 +詳細については、こちらの [ブログ記事](https://blog.4d.com/ja/stop-press-accessing-parameters-not-being-passed-is-possible) を参照ください。この全体的な変更を利点を活かすため、呼び出し先メソッドと呼び出し元メソッドの両方を再コンパイルする必要があります。 そのため、コンポーネントの再コンパイルが必要になります。 - Webサーバーセッションを[4D Serverで容易にデバッグ](../WebServer/sessions.md)できるようになりました。 - 新しい [4D NetKit](https://github.com/4d/4D-NetKit/tree/20.x) コンポーネントを使って、Microsoft Graph などのサードパーティAPI に接続することができます。 -- ツールボックス、`CHANGE PASSWORD` コマンド、または `Set user properties` コマンドを使用してパスワードを変更した際に、この新しいアルゴリズムが自動的に使用されます。 4D 19 R3 では、4Dユーザーパスワードに対して、bcrypt というより強力なハッシュ化アルゴリズムを使用しています。 パスワードが一度変更されると、4D 19 R3 より前のバージョンで同じデータベースを開いた際には、そのアカウントの認証が拒否されます (ログインできません)。 そのため、4Dパスワードを使用している場合には、4D 19 R3 以降のバージョンにアップグレードする前に .4db ファイル (バイナリデータベース) または directory.json ファイル (プロジェクトデータベース) をバックアップしておくことが強く推奨されます。 +- ツールボックス、`CHANGE PASSWORD` コマンド、または `Set user properties` コマンドを使用してパスワードを変更した際に、この新しいアルゴリズムが自動的に使用されます。 4D 19 R3 では、4Dユーザーパスワードに対して、bcrypt というより強力なハッシュ化アルゴリズムを使用しています。パスワードが一度変更されると、4D 19 R3 より前のバージョンで同じデータベースを開いた際には、そのアカウントの認証が拒否されます (ログインできません)。そのため、4Dパスワードを使用している場合には、4D 19 R3 以降のバージョンにアップグレードする前に .4db ファイル (バイナリデータベース) または directory.json ファイル (プロジェクトデータベース) をバックアップしておくことが強く推奨されます。 - 正確性のため、`4D digest` 定数は、`4D REST digest` へと名称が改められました。 -- XML コマンドにおける改行文字と BOM 管理: 以前のバージョンで作成されたプロジェクトまたはデータベースが 4D 19 R3 で開かれた場合、XMLドキュメントにおける改行文字と BOM 管理に関わる振る舞いが異なります: macOS において CR の代わりにラインフィード(LF) が使用されるほか、バイトオーダーマーク (BOM) が含まれなくなります。 これにより、VCS ツールとの互換性が改善されます。 必要であれば、`XML SET OPTIONS` コマンドを使用することで、v19 R2 以前の振る舞いに戻すことができます。 v19 R2 以前のバージョンから変換されたプロジェクトまたはデータベースにおいては、これらのオプションは 2つの互換性設定によって管理されます。 -- ビルドされたプロジェクトで、ランタイムエクスプローラーへのショートカットが削除: シングルユーザー版の組み込みプロジェクトアプリケーションにおいて、**Cmd/Ctrl+Shift+F9** ショートカットは、ランタイムエクスプローラーを表示しないようになりました。 このショートカットは、ユーザーアプリケーション用のショートカットとして使用できるようになりました。 ランタイムエクスプローラーウィンドウは、新しい `OPEN RUNTIME EXPLORER` コマンドを使用することで呼び出し可能です。 -- 4D Server のデバッグ機能の拡張: 4D Server はインタープリターモードにおいて、スケーラブルWeb セッションを含め、全種類のプロセスをデバッグできるようになりました。 これには、デバッガーをサーバーまたはリモートクライアントで有効化するだけです。 - *警告: インタープリターモードにおいて、サーバーでデバッガーが有効化された場合 (デフォルト) には、サーバーマシン上でのデバッグを可能にするため、すべてのサーバープロセスが自動でコオペラティブ実行されます。 これは、4D Server v19 R3 以降に変換されたアプリケーションにおいては、パフォーマンスに重大な影響を生ずる可能性があります。 サーバーをプリエンプティブ実行に戻すには、サーバーのデバッガーを無効化します (そして必要な場合にはリモートクライアント側でデバッガーを有効化します)。 * -- Windows で、4D 19 R3 以降に作成された 4Dプロジェクトおよびデータベースは、フォームにおいて [DirectWrite API](https://learn.microsoft.com/ja-jp/windows/win32/DirectWrite/direct-write-portal) を使用します。 この API はテキストレンダリングを、特に高DPI 環境において改善させます。 スタティックテキスト、入力テキスト、チェックボックス、ボタン、ラジオボタンのテキストレンダリングに対して DirectWrite が使用されます。 リストボックスは、既に DirectWrite を使用しています。 以前の 4D のバージョンで作成されたプロジェクトやデータベースにおいても、互換性オプションを使用することで DirectWrite を有効化することができます。 -- Silicon (Apple ARM CPU) をターゲットに 4D 19.0 でコンパイルされたコンポーネントを使用しており、そのコンポーネント内で `Count parameters` コマンドを呼んでいる場合、4D 19 R3 以降のリリースとの互換性のために、4D 19 R3 でコンポーネントを再コンパイルすることが推奨されます。 コンポーネントが Silicon 向けにコンパイルされていない場合、再コンパイルの必要はありません。 +- XML コマンドにおける改行文字と BOM 管理: 以前のバージョンで作成されたプロジェクトまたはデータベースが 4D 19 R3 で開かれた場合、XMLドキュメントにおける改行文字と BOM 管理に関わる振る舞いが異なります: macOS において CR の代わりにラインフィード(LF) が使用されるほか、バイトオーダーマーク (BOM) が含まれなくなります。これにより、VCS ツールとの互換性が改善されます。必要であれば、`XML SET OPTIONS` コマンドを使用することで、v19 R2 以前の振る舞いに戻すことができます。 v19 R2 以前のバージョンから変換されたプロジェクトまたはデータベースにおいては、これらのオプションは 2つの互換性設定によって管理されます。 +- ビルドされたプロジェクトで、ランタイムエクスプローラーへのショートカットが削除: シングルユーザー版の組み込みプロジェクトアプリケーションにおいて、**Cmd/Ctrl+Shift+F9** ショートカットは、ランタイムエクスプローラーを表示しないようになりました。このショートカットは、ユーザーアプリケーション用のショートカットとして使用できるようになりました。ランタイムエクスプローラーウィンドウは、新しい `OPEN RUNTIME EXPLORER` コマンドを使用することで呼び出し可能です。 +- 4D Server のデバッグ機能の拡張: 4D Server はインタープリターモードにおいて、スケーラブルWeb セッションを含め、全種類のプロセスをデバッグできるようになりました。これには、デバッガーをサーバーまたはリモートクライアントで有効化するだけです。 + *警告: インタープリターモードにおいて、サーバーでデバッガーが有効化された場合 (デフォルト) には、サーバーマシン上でのデバッグを可能にするため、すべてのサーバープロセスが自動でコオペラティブ実行されます。これは、4D Server v19 R3 以降に変換されたアプリケーションにおいては、パフォーマンスに重大な影響を生ずる可能性があります。サーバーをプリエンプティブ実行に戻すには、サーバーのデバッガーを無効化します (そして必要な場合にはリモートクライアント側でデバッガーを有効化します)。 * +- Windows で、4D 19 R3 以降に作成された 4Dプロジェクトおよびデータベースは、フォームにおいて [DirectWrite API](https://learn.microsoft.com/ja-jp/windows/win32/DirectWrite/direct-write-portal) を使用します。この API はテキストレンダリングを、特に高DPI 環境において改善させます。スタティックテキスト、入力テキスト、チェックボックス、ボタン、ラジオボタンのテキストレンダリングに対して DirectWrite が使用されます。リストボックスは、既に DirectWrite を使用しています。以前の 4D のバージョンで作成されたプロジェクトやデータベースにおいても、互換性オプションを使用することで DirectWrite を有効化することができます。 +- Silicon (Apple ARM CPU) をターゲットに 4D 19.0 でコンパイルされたコンポーネントを使用しており、そのコンポーネント内で `Count parameters` コマンドを呼んでいる場合、4D 19 R3 以降のリリースとの互換性のために、4D 19 R3 でコンポーネントを再コンパイルすることが推奨されます。コンポーネントが Silicon 向けにコンパイルされていない場合、再コンパイルの必要はありません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md index deaf17bc306ed8..b2f2cc3162d960 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md @@ -3,9 +3,9 @@ id: overview title: フォームイベント --- -フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。 フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 +フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 -コードの中では、トリガーされたイベントを返す [`FORM Event`](../commands/form-event) コマンドを使ってイベントを制御します。 例: +コードの中では、トリガーされたイベントを返す [`FORM Event`](../commands/form-event) コマンドを使ってイベントを制御します。例: ```4d // ボタンのコード @@ -18,15 +18,15 @@ End if ## イベントオブジェクト -それぞれのイベントは、[`FORM Event`](../commands/form-event) コマンドによってオブジェクトとして返されます。 デフォルトで、以下のプロパティが含まれています: +それぞれのイベントは、[`FORM Event`](../commands/form-event) コマンドによってオブジェクトとして返されます。デフォルトで、以下のプロパティが含まれています: | プロパティ | 型 | 説明 | | ----------- | ------- | ----------------------------------------------------------------- | | objectName | text | イベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。 | -| code | longint | フォームイベントの数値。 フォームイベントの数値。 `Form event code` によっても返されます。 | +| code | longint | フォームイベントの数値。フォームイベントの数値。 `Form event code` によっても返されます。 | | description | text | フォームイベント名 (例: "On After Edit") | -イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。 特に: +イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。特に: - [リストボックス](FormObjects/listbox-object.md#supported-form-events) および [リストボックス列](FormObjects/listbox-column.md#supported-form-events) は、`columnName` や `isRowSelected` といった、[追加のプロパティ](FormObjects/listbox-object.md#supported-form-events) を返します。 - [4D View Pro エリア](FormObjects/viewProArea_overview.md) は、`sheetName` や `action` といったプロパティを [On After Edit](onAfterEdit.md) イベントオブジェクトに返します。 @@ -38,9 +38,9 @@ End if - まず 4D は、フォーム中のオブジェクトをブラウズし、発生したオブジェクトイベントがプロパティで選択されているすべてのオブジェクトのオブジェクトメソッドを呼び出します。 - 次に、発生したイベントに対応するフォームイベントがフォームのプロパティで選択されていれば、フォームメソッドを呼び出します。 -オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。 おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。 オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。 そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。 つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 +オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 -[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き(後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。 言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 +[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き(後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 特定のイベントに関連するオブジェクトの数は、イベントの性質により異なります。 @@ -48,71 +48,71 @@ End if 以下の表は、それぞれのイベントごとにどのようにオブジェクトメソッドとフォームメソッドが呼ばれるかを概説します: -| イベント | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | -| ------------------------ | ----------------------------------------------- | -------- | ------------ | -| On Load | ◯ | ◯ | すべてのオブジェクト | -| On Unload | ◯ | ◯ | すべてのオブジェクト | -| On Validate | ◯ | ◯ | すべてのオブジェクト | -| On Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Double Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Before Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Edit | ◯ | ◯ | 関係するオブジェクトのみ | -| On Getting Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Losing Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Activate | X | ◯ | なし | -| On Deactivate | X | ◯ | なし | -| On Outside Call | X | ◯ | なし | -| On Page Change | X | ◯ | なし | -| On Begin Drag Over | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drop | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drag Over | ◯ | X | 関係するオブジェクトのみ | -| On Mouse Enter | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Move | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Leave | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Up | ◯ | X | 関係するオブジェクトのみ | -| On Menu Selected | X | ◯ | なし | -| On Bound variable change | X | ◯ | なし | -| On Data Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Plug in Area | ◯ | ◯ | 関係するオブジェクトのみ | -| On Header | ◯ | ◯ | すべてのオブジェクト | -| On Printing Detail | ◯ | ◯ | すべてのオブジェクト | -| On Printing Break | ◯ | ◯ | すべてのオブジェクト | -| On Printing Footer | ◯ | ◯ | すべてのオブジェクト | -| On Close Box | X | ◯ | なし | -| On Display Detail | ◯ | ◯ | すべてのオブジェクト | -| On Open Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Close Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Resize | X | ◯ | なし | -| On Selection Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Load Record | X | ◯ | なし | -| On Timer | X | ◯ | なし | -| On Scroll | ◯ | X | 関係するオブジェクトのみ | -| On Before Data Entry | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Row Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Resize | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Header Click | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Footer Click | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On After Sort | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Long Click | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | -| On Alternative Click | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | -| On Expand | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Collapse | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Delete Action | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On URL Resource Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Begin URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Loading Error | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Filtering | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On End URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Open External Link | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Window Opening Denied | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On VP Range Changed | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On VP Ready | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Row Resize | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | - -イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。 デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 - -> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォーム の両方で有効にされていなければなりません。 オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 +| イベント | コード | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | +| ------------------------ | --- | ----------------------------------------------- | -------- | ------------ | +| On Activate | 11 | X | ◯ | なし | +| On After Edit | 45 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Keystroke | 28 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Sort | 30 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Alternative Click | 38 | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | +| On Before Data Entry | 41 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Before Keystroke | 17 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin Drag Over | 46 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin URL Loading | 47 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Bound variable change | 54 | X | ◯ | なし | +| On Clicked | 4 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Close Box | 22 | X | ◯ | なし | +| On Close Detail | 26 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Collapse | 44 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Column Moved | 32 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Column Resize | 33 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Data Change | 20 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Deactivate | 12 | X | ◯ | なし | +| On Delete Action | 58 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Display Detail | 8 | ◯ | ◯ | すべてのオブジェクト | +| On Double Clicked | 13 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Drag Over | 21 | ◯ | X | 関係するオブジェクトのみ | +| On Drop | 16 | ◯ | ◯ | 関係するオブジェクトのみ | +| On End URL Loading | 49 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Expand | 43 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Footer Click | 57 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Getting Focus | 15 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Header | 5 | ◯ | ◯ | すべてのオブジェクト | +| On Header Click | 42 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Load | 1 | ◯ | ◯ | すべてのオブジェクト | +| On Load Record | 40 | X | ◯ | なし | +| On Long Click | 39 | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | +| On Losing Focus | 14 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Menu Selected | 18 | X | ◯ | なし | +| On Mouse Enter | 35 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Leave | 36 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Move | 37 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Up | 2 | ◯ | X | 関係するオブジェクトのみ | +| On Open Detail | 25 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Open External Link | 52 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Outside Call | 10 | X | ◯ | なし | +| On Page Change | 56 | X | ◯ | なし | +| On Plug in Area | 19 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Printing Break | 6 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Detail | 23 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Footer | 7 | ◯ | ◯ | すべてのオブジェクト | +| On Resize | 29 | X | ◯ | なし | +| On Row Moved | 34 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Row Resize | 60 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Scroll | 59 | ◯ | X | 関係するオブジェクトのみ | +| On Selection Change | 31 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Timer | 27 | X | ◯ | なし | +| On Unload | 24 | ◯ | ◯ | すべてのオブジェクト | +| On URL Filtering | 51 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Loading Error | 50 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Resource Loading | 48 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Validate | 3 | ◯ | ◯ | すべてのオブジェクト | +| On VP Range Changed | 61 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On VP Ready | 9 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Window Opening Denied | 53 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | + +イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 + +> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォーム の両方で有効にされていなければなりません。オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md index deaf17bc306ed8..b2f2cc3162d960 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md @@ -3,9 +3,9 @@ id: overview title: フォームイベント --- -フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。 フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 +フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 -コードの中では、トリガーされたイベントを返す [`FORM Event`](../commands/form-event) コマンドを使ってイベントを制御します。 例: +コードの中では、トリガーされたイベントを返す [`FORM Event`](../commands/form-event) コマンドを使ってイベントを制御します。例: ```4d // ボタンのコード @@ -18,15 +18,15 @@ End if ## イベントオブジェクト -それぞれのイベントは、[`FORM Event`](../commands/form-event) コマンドによってオブジェクトとして返されます。 デフォルトで、以下のプロパティが含まれています: +それぞれのイベントは、[`FORM Event`](../commands/form-event) コマンドによってオブジェクトとして返されます。デフォルトで、以下のプロパティが含まれています: | プロパティ | 型 | 説明 | | ----------- | ------- | ----------------------------------------------------------------- | | objectName | text | イベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。 | -| code | longint | フォームイベントの数値。 フォームイベントの数値。 `Form event code` によっても返されます。 | +| code | longint | フォームイベントの数値。フォームイベントの数値。 `Form event code` によっても返されます。 | | description | text | フォームイベント名 (例: "On After Edit") | -イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。 特に: +イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。特に: - [リストボックス](FormObjects/listbox-object.md#supported-form-events) および [リストボックス列](FormObjects/listbox-column.md#supported-form-events) は、`columnName` や `isRowSelected` といった、[追加のプロパティ](FormObjects/listbox-object.md#supported-form-events) を返します。 - [4D View Pro エリア](FormObjects/viewProArea_overview.md) は、`sheetName` や `action` といったプロパティを [On After Edit](onAfterEdit.md) イベントオブジェクトに返します。 @@ -38,9 +38,9 @@ End if - まず 4D は、フォーム中のオブジェクトをブラウズし、発生したオブジェクトイベントがプロパティで選択されているすべてのオブジェクトのオブジェクトメソッドを呼び出します。 - 次に、発生したイベントに対応するフォームイベントがフォームのプロパティで選択されていれば、フォームメソッドを呼び出します。 -オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。 おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。 オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。 そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。 つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 +オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 -[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き(後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。 言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 +[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き(後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 特定のイベントに関連するオブジェクトの数は、イベントの性質により異なります。 @@ -48,71 +48,71 @@ End if 以下の表は、それぞれのイベントごとにどのようにオブジェクトメソッドとフォームメソッドが呼ばれるかを概説します: -| イベント | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | -| ------------------------ | ----------------------------------------------- | -------- | ------------ | -| On Load | ◯ | ◯ | すべてのオブジェクト | -| On Unload | ◯ | ◯ | すべてのオブジェクト | -| On Validate | ◯ | ◯ | すべてのオブジェクト | -| On Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Double Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Before Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Edit | ◯ | ◯ | 関係するオブジェクトのみ | -| On Getting Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Losing Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Activate | X | ◯ | なし | -| On Deactivate | X | ◯ | なし | -| On Outside Call | X | ◯ | なし | -| On Page Change | X | ◯ | なし | -| On Begin Drag Over | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drop | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drag Over | ◯ | X | 関係するオブジェクトのみ | -| On Mouse Enter | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Move | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Leave | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Up | ◯ | X | 関係するオブジェクトのみ | -| On Menu Selected | X | ◯ | なし | -| On Bound variable change | X | ◯ | なし | -| On Data Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Plug in Area | ◯ | ◯ | 関係するオブジェクトのみ | -| On Header | ◯ | ◯ | すべてのオブジェクト | -| On Printing Detail | ◯ | ◯ | すべてのオブジェクト | -| On Printing Break | ◯ | ◯ | すべてのオブジェクト | -| On Printing Footer | ◯ | ◯ | すべてのオブジェクト | -| On Close Box | X | ◯ | なし | -| On Display Detail | ◯ | ◯ | すべてのオブジェクト | -| On Open Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Close Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Resize | X | ◯ | なし | -| On Selection Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Load Record | X | ◯ | なし | -| On Timer | X | ◯ | なし | -| On Scroll | ◯ | X | 関係するオブジェクトのみ | -| On Before Data Entry | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Row Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Resize | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Header Click | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Footer Click | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On After Sort | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Long Click | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | -| On Alternative Click | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | -| On Expand | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Collapse | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Delete Action | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On URL Resource Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Begin URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Loading Error | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Filtering | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On End URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Open External Link | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Window Opening Denied | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On VP Range Changed | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On VP Ready | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Row Resize | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | - -イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。 デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 - -> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォーム の両方で有効にされていなければなりません。 オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 +| イベント | コード | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | +| ------------------------ | --- | ----------------------------------------------- | -------- | ------------ | +| On Activate | 11 | X | ◯ | なし | +| On After Edit | 45 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Keystroke | 28 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Sort | 30 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Alternative Click | 38 | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | +| On Before Data Entry | 41 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Before Keystroke | 17 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin Drag Over | 46 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin URL Loading | 47 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Bound variable change | 54 | X | ◯ | なし | +| On Clicked | 4 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Close Box | 22 | X | ◯ | なし | +| On Close Detail | 26 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Collapse | 44 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Column Moved | 32 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Column Resize | 33 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Data Change | 20 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Deactivate | 12 | X | ◯ | なし | +| On Delete Action | 58 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Display Detail | 8 | ◯ | ◯ | すべてのオブジェクト | +| On Double Clicked | 13 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Drag Over | 21 | ◯ | X | 関係するオブジェクトのみ | +| On Drop | 16 | ◯ | ◯ | 関係するオブジェクトのみ | +| On End URL Loading | 49 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Expand | 43 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Footer Click | 57 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Getting Focus | 15 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Header | 5 | ◯ | ◯ | すべてのオブジェクト | +| On Header Click | 42 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Load | 1 | ◯ | ◯ | すべてのオブジェクト | +| On Load Record | 40 | X | ◯ | なし | +| On Long Click | 39 | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | +| On Losing Focus | 14 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Menu Selected | 18 | X | ◯ | なし | +| On Mouse Enter | 35 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Leave | 36 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Move | 37 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Up | 2 | ◯ | X | 関係するオブジェクトのみ | +| On Open Detail | 25 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Open External Link | 52 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Outside Call | 10 | X | ◯ | なし | +| On Page Change | 56 | X | ◯ | なし | +| On Plug in Area | 19 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Printing Break | 6 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Detail | 23 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Footer | 7 | ◯ | ◯ | すべてのオブジェクト | +| On Resize | 29 | X | ◯ | なし | +| On Row Moved | 34 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Row Resize | 60 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Scroll | 59 | ◯ | X | 関係するオブジェクトのみ | +| On Selection Change | 31 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Timer | 27 | X | ◯ | なし | +| On Unload | 24 | ◯ | ◯ | すべてのオブジェクト | +| On URL Filtering | 51 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Loading Error | 50 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Resource Loading | 48 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Validate | 3 | ◯ | ◯ | すべてのオブジェクト | +| On VP Range Changed | 61 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On VP Ready | 9 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Window Opening Denied | 53 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | + +イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 + +> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォーム の両方で有効にされていなければなりません。オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/overview.md index e2201a6cc321c6..b2f2cc3162d960 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Events/overview.md @@ -3,9 +3,9 @@ id: overview title: フォームイベント --- -フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。 フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 +フォームイベントとは、フォームメソッドやフォームオブジェクトメソッドの実行につながるイベントのことです。フォームイベントにより、アプリケーションの流れをコントロールしたり、特定のイベントが発生したときにのみ実行されるコードを書くことができます。 -コードの中では、トリガーされたイベントを返す [`FORM Event`](../commands/form-event.md) コマンドを使ってイベントを制御します。 例: 例: +コードの中では、トリガーされたイベントを返す [`FORM Event`](../commands/form-event) コマンドを使ってイベントを制御します。例: ```4d // ボタンのコード @@ -18,15 +18,15 @@ End if ## イベントオブジェクト -それぞれのイベントは、[`FORM Event`](../commands/form-event.md) コマンドによってオブジェクトとして返されます。 デフォルトで、以下のプロパティが含まれています: デフォルトで、以下のプロパティが含まれています: +それぞれのイベントは、[`FORM Event`](../commands/form-event) コマンドによってオブジェクトとして返されます。デフォルトで、以下のプロパティが含まれています: | プロパティ | 型 | 説明 | | ----------- | ------- | ----------------------------------------------------------------- | | objectName | text | イベントをトリガーしているオブジェクト名。フォームによってトリガーされている場合には含まれていません。 | -| code | longint | フォームイベントの数値。 フォームイベントの数値。 `Form event code` によっても返されます。 | +| code | longint | フォームイベントの数値。フォームイベントの数値。 `Form event code` によっても返されます。 | | description | text | フォームイベント名 (例: "On After Edit") | -イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。 特に: +イベントが発生したオブジェクトによっては追加のプロパティが含まれていることがあります。特に: - [リストボックス](FormObjects/listbox-object.md#supported-form-events) および [リストボックス列](FormObjects/listbox-column.md#supported-form-events) は、`columnName` や `isRowSelected` といった、[追加のプロパティ](FormObjects/listbox-object.md#supported-form-events) を返します。 - [4D View Pro エリア](FormObjects/viewProArea_overview.md) は、`sheetName` や `action` といったプロパティを [On After Edit](onAfterEdit.md) イベントオブジェクトに返します。 @@ -38,9 +38,9 @@ End if - まず 4D は、フォーム中のオブジェクトをブラウズし、発生したオブジェクトイベントがプロパティで選択されているすべてのオブジェクトのオブジェクトメソッドを呼び出します。 - 次に、発生したイベントに対応するフォームイベントがフォームのプロパティで選択されていれば、フォームメソッドを呼び出します。 -オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。 おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。 オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。 そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。 つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 +オブジェクトメソッドが特定の順序で呼び出されることを期待することはできません。おおまかに言って、オブジェクトメソッドは常にフォームメソッドよりも前に呼び出されます。オブジェクトがサブフォームの場合、サブフォームのリストフォームのオブジェクトメソッドが呼び出され、次にリストフォームのフォームメソッドが呼び出されます。そして 4D は引き続き、親フォームのオブジェクトメソッドを呼び出します。つまり、オブジェクトがサブフォームの時、 4D はサブフォームオブジェクト内で、オブジェクトとフォームメソッドと同じルールを適用します。 -[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き(後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。 言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 +[On Load](onLoad.md) と [On Unload](onUnload.md) イベントを除き(後述参照)、発生したイベントがフォームイベントプロパティで選択されていなかったとしても、オブジェクトプロパティで選択されていれば、そのオブジェクトメソッドの呼び出しが妨げられることはありません。言い換えれば、フォームレベルでイベントを有効あるいは無効にしても、オブジェクトイベントプロパティには影響ありません。 特定のイベントに関連するオブジェクトの数は、イベントの性質により異なります。 @@ -48,70 +48,71 @@ End if 以下の表は、それぞれのイベントごとにどのようにオブジェクトメソッドとフォームメソッドが呼ばれるかを概説します: -| イベント | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | -| ------------------------ | ----------------------------------------------- | -------- | ------------ | -| On Load | ◯ | ◯ | すべてのオブジェクト | -| On Unload | ◯ | ◯ | すべてのオブジェクト | -| On Validate | ◯ | ◯ | すべてのオブジェクト | -| On Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Double Clicked | ◯ | ◯ | 関係するオブジェクトのみ | -| On Before Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Keystroke | ◯ | ◯ | 関係するオブジェクトのみ | -| On After Edit | ◯ | ◯ | 関係するオブジェクトのみ | -| On Getting Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Losing Focus | ◯ | ◯ | 関係するオブジェクトのみ | -| On Activate | X | ◯ | なし | -| On Deactivate | X | ◯ | なし | -| On Outside Call | X | ◯ | なし | -| On Page Change | X | ◯ | なし | -| On Begin Drag Over | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drop | ◯ | ◯ | 関係するオブジェクトのみ | -| On Drag Over | ◯ | X | 関係するオブジェクトのみ | -| On Mouse Enter | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Move | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Leave | ◯ | ◯ | すべてのオブジェクト | -| On Mouse Up | ◯ | X | 関係するオブジェクトのみ | -| On Menu Selected | X | ◯ | なし | -| On Bound variable change | X | ◯ | なし | -| On Data Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Plug in Area | ◯ | ◯ | 関係するオブジェクトのみ | -| On Header | ◯ | ◯ | すべてのオブジェクト | -| On Printing Detail | ◯ | ◯ | すべてのオブジェクト | -| On Printing Break | ◯ | ◯ | すべてのオブジェクト | -| On Printing Footer | ◯ | ◯ | すべてのオブジェクト | -| On Close Box | X | ◯ | なし | -| On Display Detail | ◯ | ◯ | すべてのオブジェクト | -| On Open Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Close Detail | ◯ (リストボックス) | ◯ | リストボックスのみ | -| On Resize | X | ◯ | なし | -| On Selection Change | ◯ | ◯ | 関係するオブジェクトのみ | -| On Load Record | X | ◯ | なし | -| On Timer | X | ◯ | なし | -| On Scroll | ◯ | X | 関係するオブジェクトのみ | -| On Before Data Entry | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Row Moved | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Column Resize | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Header Click | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Footer Click | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On After Sort | ◯ (リストボックス) | X | 関係するオブジェクトのみ | -| On Long Click | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | -| On Alternative Click | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | -| On Expand | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Collapse | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On Delete Action | ◯ (階層 リストとリストボックス) | X | 関係するオブジェクトのみ | -| On URL Resource Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Begin URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Loading Error | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On URL Filtering | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On End URL Loading | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Open External Link | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On Window Opening Denied | ◯ (Webエリア) | X | 関係するオブジェクトのみ | -| On VP Range Changed | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On VP Ready | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | -| On Row Resize | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | - -イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。 デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 - -> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォーム の両方で有効にされていなければなりません。 オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 +| イベント | コード | オブジェクトメソッド | フォームメソッド | 対象オブジェクト | +| ------------------------ | --- | ----------------------------------------------- | -------- | ------------ | +| On Activate | 11 | X | ◯ | なし | +| On After Edit | 45 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Keystroke | 28 | ◯ | ◯ | 関係するオブジェクトのみ | +| On After Sort | 30 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Alternative Click | 38 | ◯ (ボタンとリストボックス) | X | 関係するオブジェクトのみ | +| On Before Data Entry | 41 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Before Keystroke | 17 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin Drag Over | 46 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Begin URL Loading | 47 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Bound variable change | 54 | X | ◯ | なし | +| On Clicked | 4 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Close Box | 22 | X | ◯ | なし | +| On Close Detail | 26 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Collapse | 44 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Column Moved | 32 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Column Resize | 33 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Data Change | 20 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Deactivate | 12 | X | ◯ | なし | +| On Delete Action | 58 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Display Detail | 8 | ◯ | ◯ | すべてのオブジェクト | +| On Double Clicked | 13 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Drag Over | 21 | ◯ | X | 関係するオブジェクトのみ | +| On Drop | 16 | ◯ | ◯ | 関係するオブジェクトのみ | +| On End URL Loading | 49 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Expand | 43 | ◯ (階層リストとリストボックス) | X | 関係するオブジェクトのみ | +| On Footer Click | 57 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Getting Focus | 15 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Header | 5 | ◯ | ◯ | すべてのオブジェクト | +| On Header Click | 42 | ◯ (リストボックスと 4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Load | 1 | ◯ | ◯ | すべてのオブジェクト | +| On Load Record | 40 | X | ◯ | なし | +| On Long Click | 39 | ◯ (ボタン) | ◯ | 関係するオブジェクトのみ | +| On Losing Focus | 14 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Menu Selected | 18 | X | ◯ | なし | +| On Mouse Enter | 35 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Leave | 36 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Move | 37 | ◯ | ◯ | すべてのオブジェクト | +| On Mouse Up | 2 | ◯ | X | 関係するオブジェクトのみ | +| On Open Detail | 25 | ◯ (リストボックス) | ◯ | リストボックスのみ | +| On Open External Link | 52 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Outside Call | 10 | X | ◯ | なし | +| On Page Change | 56 | X | ◯ | なし | +| On Plug in Area | 19 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Printing Break | 6 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Detail | 23 | ◯ | ◯ | すべてのオブジェクト | +| On Printing Footer | 7 | ◯ | ◯ | すべてのオブジェクト | +| On Resize | 29 | X | ◯ | なし | +| On Row Moved | 34 | ◯ (リストボックス) | X | 関係するオブジェクトのみ | +| On Row Resize | 60 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Scroll | 59 | ◯ | X | 関係するオブジェクトのみ | +| On Selection Change | 31 | ◯ | ◯ | 関係するオブジェクトのみ | +| On Timer | 27 | X | ◯ | なし | +| On Unload | 24 | ◯ | ◯ | すべてのオブジェクト | +| On URL Filtering | 51 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Loading Error | 50 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On URL Resource Loading | 48 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | +| On Validate | 3 | ◯ | ◯ | すべてのオブジェクト | +| On VP Range Changed | 61 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On VP Ready | 9 | ◯ (4D View Pro エリア) | X | 関係するオブジェクトのみ | +| On Window Opening Denied | 53 | ◯ (Webエリア) | X | 関係するオブジェクトのみ | + +イベントに対応するプロパティが選択されている場合にのみ、フォームやオブジェクトのメソッドが呼び出されることに留意してください。デザインモードのフォームエディターのプロパティリストでイベントを無効にすると、メソッドが呼び出される回数を減らすことができ、フォームの実行速度を最適化できます。 + +> 警告: オブジェクトの [On Load](onLoad.md) と [On Unload](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォーム の両方で有効にされていなければなりません。オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 + diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index 560a3047d3f07b..036df3f08e0ba0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -41,20 +41,20 @@ displayed_sidebar: docs - *fileToZip*: 圧縮する `4D.File` オブジェクトを引数として渡します。 -- *folderToZip*: 圧縮する `4D.Folder` を渡します。 この場合、任意の *options* 引数を渡して、フォルダーのコンテンツのみを圧縮 (つまり、外側のフォルダーを除外) することができます。 `ZIP Create archive` はデフォルトで、フォルダーとその中身を圧縮するので、展開処理をしたときにはフォルダーを再作成します。 フォルダーの中身のみを解凍処理で復元するには、*options* 引数に `ZIP Without enclosing folder` 定数を渡します。 この場合、任意の *options* 引数を渡して、フォルダーのコンテンツのみを圧縮 (つまり、外側のフォルダーを除外) することができます。 `ZIP Create archive` はデフォルトで、フォルダーとその中身を圧縮するので、展開処理をしたときにはフォルダーを再作成します。 フォルダーの中身のみを解凍処理で復元するには、*options* 引数に `ZIP Without enclosing folder` 定数を渡します。 +- *folderToZip*: 圧縮する `4D.Folder` を渡します。 この場合、任意の *options* 引数を渡して、フォルダーのコンテンツのみを圧縮 (つまり、外側のフォルダを除外) することができます。 `ZIP Create archive` はデフォルトで、フォルダーとその中身を圧縮するので、展開処理をしたときにはフォルダーを再作成します。 フォルダーの中身のみを解凍処理で復元するには、*options* 引数に `ZIP Without enclosing folder` 定数を渡します。この場合、任意の *options* 引数を渡して、フォルダーのコンテンツのみを圧縮 (つまり、外側のフォルダを除外) することができます。 `ZIP Create archive` はデフォルトで、フォルダーとその中身を圧縮するので、展開処理をしたときにはフォルダーを再作成します。フォルダーの中身のみを解凍処理で復元するには、*options* 引数に `ZIP Without enclosing folder` 定数を渡します。 - *zipStructure*: ZIPArchive オブジェクトを表すオブジェクトを引数として渡します。 以下のプロパティを利用して、このオブジェクトを定義することが可能です: 以下のプロパティを利用して、このオブジェクトを定義することが可能です: -| プロパティ | 型 | 説明 | -| ----------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | -| level | Integer | 圧縮レベル。 とりうる値: 1 - 10。 低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。 ただし、圧縮レベルはパフォーマンスに影響します。 デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | -| encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
  • `ZIP Encryption AES128`: 128-bit キーを使用したAES 暗号化。
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化。
  • `ZIP Encryption AES256`: AES encryption using 256-bit キーを使用したAES 暗号化 (パスワードが設定されていた場合のデフォルト)。
  • `ZIP Encryption none`: 暗号化なし(パスワードが設定されていない場合のデフォルト)
  • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化。
  • `ZIP Encryption AES256`: AES encryption using 256-bit キーを使用したAES 暗号化 (パスワードが設定されていた場合のデフォルト)。
  • `ZIP Encryption none`: 暗号化なし(パスワードが設定されていない場合のデフォルト)
  • | -| password | Text | 暗号化が必要な場合に使用するパスワード | -| files | Collection |
  • `4D.File` または` 4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティタイプ説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | -| callback | 4D.Function | $1 に圧縮の進捗 (0 - 100) を受け取るコールバックフォーミュラ | +| プロパティ | 型 | 説明 | +| ----------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | +| level | Integer | 圧縮レベル。とりうる値: 1 - 10。低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。ただし、圧縮レベルはパフォーマンスに影響します。 Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化。
    • `ZIP Encryption AES256`: AES encryption using 256-bit キーを使用したAES 暗号化 (パスワードが設定されていた場合のデフォルト)。
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | +| password | Text | 暗号化が必要な場合に使用するパスワード | +| files | Collection |
  • `4D.File` または` 4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティタイプ説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | +| callback | 4D.Function | $1 に圧縮の進捗 (0 - 100) を受け取るコールバックフォーミュラ | -*destinationFile* には、作成する ZIPアーカイブ (名前や位置など) を記述する `4D.File` オブジェクトを渡します。 作成した ZIPアーカイブがあらゆるソフトウェアで自動的に処理されるようにするため、".zip" 拡張子の使用が推奨されます。 作成した ZIPアーカイブがあらゆるソフトウェアで自動的に処理されるようにするため、".zip" 拡張子の使用が推奨されます。 +*destinationFile* には、作成する ZIPアーカイブ (名前や位置など) を記述する `4D.File` オブジェクトを渡します。 作成した ZIPアーカイブがあらゆるソフトウェアで自動的に処理されるようにするため、".zip" 拡張子の使用が推奨されます。作成した ZIPアーカイブがあらゆるソフトウェアで自動的に処理されるようにするため、".zip" 拡張子の使用が推奨されます。 アーカイブが作成されると、[ZIP Read archive](zip-read-archive.md) を使用してアクセスすることができます。 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Events/overview.md b/i18n/pt/docusaurus-plugin-content-docs/current/Events/overview.md index 68b21918066c1b..e8b05062d823bd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Events/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Events/overview.md @@ -46,68 +46,68 @@ O número de objetos envolvidos em um evento depende da natureza do evento. A tabela seguinte resume a forma como os métodos objeto e formulário são chamados para cada tipo de evento: -| Evento | Métodos objecto | Método formulário | Que objectos | -| ------------------------ | --------------------------------------------------------------- | ----------------- | -------------------------- | -| On Load | Sim | Sim | Todos os objectos | -| On Unload | Sim | Sim | Todos os objectos | -| On Validate | Sim | Sim | Todos os objectos | -| On Clicked | Sim | Sim | Apenas objecto envolvido | -| On Double Clicked | Sim | Sim | Apenas objecto envolvido | -| On Before Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Edit | Sim | Sim | Apenas objecto envolvido | -| On Getting Focus | Sim | Sim | Apenas objecto envolvido | -| On Losing Focus | Sim | Sim | Apenas objecto envolvido | -| On Activate | Nunca | Sim | Nenhum | -| On Deactivate | Nunca | Sim | Nenhum | -| On Outside Call | Nunca | Sim | Nenhum | -| On Page Change | Nunca | Sim | Nenhum | -| On Begin Drag Over | Sim | Sim | Apenas objecto envolvido | -| On Drop | Sim | Sim | Apenas objecto envolvido | -| On Drag Over | Sim | Nunca | Apenas objecto envolvido | -| On Mouse Enter | Sim | Sim | Todos os objectos | -| On Mouse Move | Sim | Sim | Todos os objectos | -| On Mouse Leave | Sim | Sim | Todos os objectos | -| On Mouse Up | Sim | Nunca | Apenas objecto envolvido | -| On Menu Selected | Nunca | Sim | Nenhum | -| On Bound variable change | Nunca | Sim | Nenhum | -| On Data Change | Sim | Sim | Apenas objecto envolvido | -| On Plug in Area | Sim | Sim | Apenas objecto envolvido | -| On Header | Sim | Sim | Todos os objectos | -| On Printing Detail | Sim | Sim | Todos os objectos | -| On Printing Break | Sim | Sim | Todos os objectos | -| On Printing Footer | Sim | Sim | Todos os objectos | -| On Close Box | Nunca | Sim | Nenhum | -| On Display Detail | Sim | Sim | Todos os objectos | -| On Open Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Close Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Resize | Nunca | Sim | Nenhum | -| On Selection Change | Sim | Sim | Apenas objecto envolvido | -| On Load Record | Nunca | Sim | Nenhum | -| On Timer | Nunca | Sim | Nenhum | -| On Scroll | Sim | Nunca | Apenas objecto envolvido | -| On Before Data Entry | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Row Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Resize | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Header Click | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Footer Click | Sim (List box) | Nunca | Apenas objecto envolvido | -| On After Sort | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Long Click | Sim (Botão) | Sim | Apenas objecto envolvido | -| On Alternative Click | Sim (botão e List box) | Nunca | Apenas objecto envolvido | -| On Expand | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Collapse | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Delete Action | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On URL Resource Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Begin URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Loading Error | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Filtering | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On End URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Open External Link | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Window Opening Denied | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On VP Range Changed | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On VP Ready | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Row Resize | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| Evento | Code | Métodos objecto | Método formulário | Que objectos | +| ------------------------ | ---- | --------------------------------------------------------------- | ----------------- | -------------------------- | +| On Activate | 11 | Nunca | Sim | Nenhum | +| On After Edit | 45 | Sim | Sim | Apenas objecto envolvido | +| On After Keystroke | 28 | Sim | Sim | Apenas objecto envolvido | +| On After Sort | 30 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Alternative Click | 38 | Sim (botão e List box) | Nunca | Apenas objecto envolvido | +| On Before Data Entry | 41 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Before Keystroke | 17 | Sim | Sim | Apenas objecto envolvido | +| On Begin Drag Over | 46 | Sim | Sim | Apenas objecto envolvido | +| On Begin URL Loading | 47 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Bound variable change | 54 | Nunca | Sim | Nenhum | +| On Clicked | 4 | Sim | Sim | Apenas objecto envolvido | +| On Close Box | 22 | Nunca | Sim | Nenhum | +| On Close Detail | 26 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Collapse | 44 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Column Moved | 32 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Column Resize | 33 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Data Change | 20 | Sim | Sim | Apenas objecto envolvido | +| On Deactivate | 12 | Nunca | Sim | Nenhum | +| On Delete Action | 58 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Display Detail | 8 | Sim | Sim | Todos os objectos | +| On Double Clicked | 13 | Sim | Sim | Apenas objecto envolvido | +| On Drag Over | 21 | Sim | Nunca | Apenas objecto envolvido | +| On Drop | 16 | Sim | Sim | Apenas objecto envolvido | +| On End URL Loading | 49 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Expand | 43 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Footer Click | 57 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Getting Focus | 15 | Sim | Sim | Apenas objecto envolvido | +| On Header | 5 | Sim | Sim | Todos os objectos | +| On Header Click | 42 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Load | 1 | Sim | Sim | Todos os objectos | +| On Load Record | 40 | Nunca | Sim | Nenhum | +| On Long Click | 39 | Sim (Botão) | Sim | Apenas objecto envolvido | +| On Losing Focus | 14 | Sim | Sim | Apenas objecto envolvido | +| On Menu Selected | 18 | Nunca | Sim | Nenhum | +| On Mouse Enter | 35 | Sim | Sim | Todos os objectos | +| On Mouse Leave | 36 | Sim | Sim | Todos os objectos | +| On Mouse Move | 37 | Sim | Sim | Todos os objectos | +| On Mouse Up | 2 | Sim | Nunca | Apenas objecto envolvido | +| On Open Detail | 25 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Open External Link | 52 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Outside Call | 10 | Nunca | Sim | Nenhum | +| On Page Change | 56 | Nunca | Sim | Nenhum | +| On Plug in Area | 19 | Sim | Sim | Apenas objecto envolvido | +| On Printing Break | 6 | Sim | Sim | Todos os objectos | +| On Printing Detail | 23 | Sim | Sim | Todos os objectos | +| On Printing Footer | 7 | Sim | Sim | Todos os objectos | +| On Resize | 29 | Nunca | Sim | Nenhum | +| On Row Moved | 34 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Row Resize | 60 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Scroll | 59 | Sim | Nunca | Apenas objecto envolvido | +| On Selection Change | 31 | Sim | Sim | Apenas objecto envolvido | +| On Timer | 27 | Nunca | Sim | Nenhum | +| On Unload | 24 | Sim | Sim | Todos os objectos | +| On URL Filtering | 51 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Loading Error | 50 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Resource Loading | 48 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Validate | 3 | Sim | Sim | Todos os objectos | +| On VP Range Changed | 61 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On VP Ready | 9 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Window Opening Denied | 53 | Sim (Área Web) | Nunca | Apenas objecto envolvido | Lembre-se sempre de que, para qualquer evento, o método de um formulário ou de um objeto é chamado se a propriedade de evento correspondente estiver selecionada para o formulário ou para os objetos. A vantagem de desativar os eventos no ambiente Design (usando a Lista de propriedades do editor de formulários) é que você pode reduzir o número de chamadas para métodos e, portanto, otimizar significativamente a velocidade de execução dos formulários. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 1baf097be25b17..45e2d318141e58 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -73,14 +73,14 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame - *zipStructure*: pode passar um objeto descrevendo o objeto ZIP archive. As propriedades abaixo estão disponíveis para definir a estrutura: -| Propriedade | Tipo | Descrição | -| ----------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Reduz a compactação (padrão)
  • `ZIP Compression LZMA`: compactação LZMA
  • `ZIP Compression XZ`: compactação XZ
  • `ZIP Compression none`: Sem compactação
  • | +| Propriedade | Tipo | Descrição | +| ----------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| compression | Integer |
  • `ZIP Compression standard`: Reduz a compactação (padrão)
  • `ZIP Compression LZMA`: compactação LZMA
  • `ZIP Compression XZ`: compactação XZ
  • `ZIP Compression none`: Sem compactação
  • | | level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Valores padrão se omitidos:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | -| encryption | Integer | A criptografia a usar se uma senha for estabelecida:
  • `ZIP Encryption AES128`: criptografia AES com uma chave de 128-bits.
  • `ZIP Encryption AES192`: criptografia AES com uma chave de 192-bits.
  • `ZIP Encryption AES256`: criptografia AES com chave de 256-bits (padrão se uma senha for estabelecida).
  • `ZIP Encryption none`: os dados não são criptografados (padrão se não estabelecer uma senha)
  • | -| senha | Text | Uma senha a usar se a criptografia for necessária. | -| files | Collection |
  • a collection of `4D. File` or `4D. Folder` objects or
  • uma coleção de objetos com as propriedades abaixo:
  • PropriedadeTipoDescrição
    source4D. File or 4D. FolderFile ou Folder
    destinationText(opcional) especifique uma rota de arquivo relativa para mudar a organização dos conteúdos do arquivo
    optionnumber(opcional) - 'ZIP ignore invisible files' ou 0 para compactar o arquivo inteiro
    | -| callback | 4D. Function | Uma fórmula de callback (retrochamada) que recebe o progresso da compactação (0-100) em $1. | +| encryption | Integer | A criptografia a usar se uma senha for estabelecida:
    • `ZIP Encryption AES128`: criptografia AES com uma chave de 128-bits.
    • `ZIP Encryption AES192`: criptografia AES com uma chave de 192-bits.
    • `ZIP Encryption AES256`: criptografia AES com chave de 256-bits (padrão se uma senha for estabelecida).
    • `ZIP Encryption none`: os dados não são criptografados (padrão se não estabelecer uma senha)
    | +| senha | Text | Uma senha a usar se a criptografia for necessária. | +| files | Collection |
  • a collection of `4D. File` or `4D. Folder` objects or
  • uma coleção de objetos com as propriedades abaixo:
  • PropriedadeTipoDescrição
    source4D. File or 4D. FolderFile ou Folder
    destinationText(opcional) especifique uma rota de arquivo relativa para mudar a organização dos conteúdos do arquivo
    optionnumber(opcional) - 'ZIP ignore invisible files' ou 0 para compactar o arquivo inteiro
    | +| callback | 4D. Function | Uma fórmula de callback (retrochamada) que recebe o progresso da compactação (0-100) em $1. | In the *destinationFile* parameter, pass a `4D. File` object describing the ZIP archive to create (name, location, etc.). É recomendado usar a extensão ".zip" se quiser que o arquivo ZIP seja processado automaticamente por um software. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/Events/overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/Events/overview.md index 2a6be7d6a02772..e83c94df54bf0f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/Events/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/Events/overview.md @@ -47,70 +47,71 @@ O número de objetos envolvidos em um evento depende da natureza do evento. A tabela seguinte resume a forma como os métodos objeto e formulário são chamados para cada tipo de evento: -| Evento | Métodos objecto | Método formulário | Que objectos | -| ------------------------ | --------------------------------- | ----------------- | -------------------------- | -| On Load | Sim | Sim | Todos os objectos | -| On Unload | Sim | Sim | Todos os objectos | -| On Validate | Sim | Sim | Todos os objectos | -| On Clicked | Sim | Sim | Apenas objecto envolvido | -| On Double Clicked | Sim | Sim | Apenas objecto envolvido | -| On Before Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Edit | Sim | Sim | Apenas objecto envolvido | -| On Getting Focus | Sim | Sim | Apenas objecto envolvido | -| On Losing Focus | Sim | Sim | Apenas objecto envolvido | -| On Activate | Nunca | Sim | Nenhum | -| On Deactivate | Nunca | Sim | Nenhum | -| On Outside Call | Nunca | Sim | Nenhum | -| On Page Change | Nunca | Sim | Nenhum | -| On Begin Drag Over | Sim | Sim | Apenas objecto envolvido | -| On Drop | Sim | Sim | Apenas objecto envolvido | -| On Drag Over | Sim | Nunca | Apenas objecto envolvido | -| On Mouse Enter | Sim | Sim | Todos os objectos | -| On Mouse Move | Sim | Sim | Todos os objectos | -| On Mouse Leave | Sim | Sim | Todos os objectos | -| On Mouse Up | Sim | Nunca | Apenas objecto envolvido | -| On Menu Selected | Nunca | Sim | Nenhum | -| On Bound variable change | Nunca | Sim | Nenhum | -| On Data Change | Sim | Sim | Apenas objecto envolvido | -| On Plug in Area | Sim | Sim | Apenas objecto envolvido | -| On Header | Sim | Sim | Todos os objectos | -| On Printing Detail | Sim | Sim | Todos os objectos | -| On Printing Break | Sim | Sim | Todos os objectos | -| On Printing Footer | Sim | Sim | Todos os objectos | -| On Close Box | Nunca | Sim | Nenhum | -| On Display Detail | Sim | Sim | Todos os objectos | -| On Open Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Close Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Resize | Nunca | Sim | Nenhum | -| On Selection Change | Sim | Sim | Apenas objecto envolvido | -| On Load Record | Nunca | Sim | Nenhum | -| On Timer | Nunca | Sim | Nenhum | -| On Scroll | Sim | Nunca | Apenas objecto envolvido | -| On Before Data Entry | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Row Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Resize | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Header Click | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Footer Click | Sim (List box) | Nunca | Apenas objecto envolvido | -| On After Sort | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Long Click | Sim (Botão) | Sim | Apenas objecto envolvido | -| On Alternative Click | Sim (botão e List box) | Nunca | Apenas objecto envolvido | -| On Expand | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Collapse | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Delete Action | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On URL Resource Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Begin URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Loading Error | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Filtering | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On End URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Open External Link | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Window Opening Denied | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On VP Range Changed | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On VP Ready | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Row Resize | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| Evento | Code | Métodos objecto | Método formulário | Que objectos | +| ------------------------ | ---- | --------------------------------- | ----------------- | -------------------------- | +| On Activate | 11 | Nunca | Sim | Nenhum | +| On After Edit | 45 | Sim | Sim | Apenas objecto envolvido | +| On After Keystroke | 28 | Sim | Sim | Apenas objecto envolvido | +| On After Sort | 30 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Alternative Click | 38 | Sim (botão e List box) | Nunca | Apenas objecto envolvido | +| On Before Data Entry | 41 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Before Keystroke | 17 | Sim | Sim | Apenas objecto envolvido | +| On Begin Drag Over | 46 | Sim | Sim | Apenas objecto envolvido | +| On Begin URL Loading | 47 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Bound variable change | 54 | Nunca | Sim | Nenhum | +| On Clicked | 4 | Sim | Sim | Apenas objecto envolvido | +| On Close Box | 22 | Nunca | Sim | Nenhum | +| On Close Detail | 26 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Collapse | 44 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Column Moved | 32 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Column Resize | 33 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Data Change | 20 | Sim | Sim | Apenas objecto envolvido | +| On Deactivate | 12 | Nunca | Sim | Nenhum | +| On Delete Action | 58 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Display Detail | 8 | Sim | Sim | Todos os objectos | +| On Double Clicked | 13 | Sim | Sim | Apenas objecto envolvido | +| On Drag Over | 21 | Sim | Nunca | Apenas objecto envolvido | +| On Drop | 16 | Sim | Sim | Apenas objecto envolvido | +| On End URL Loading | 49 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Expand | 43 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Footer Click | 57 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Getting Focus | 15 | Sim | Sim | Apenas objecto envolvido | +| On Header | 5 | Sim | Sim | Todos os objectos | +| On Header Click | 42 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Load | 1 | Sim | Sim | Todos os objectos | +| On Load Record | 40 | Nunca | Sim | Nenhum | +| On Long Click | 39 | Sim (Botão) | Sim | Apenas objecto envolvido | +| On Losing Focus | 14 | Sim | Sim | Apenas objecto envolvido | +| On Menu Selected | 18 | Nunca | Sim | Nenhum | +| On Mouse Enter | 35 | Sim | Sim | Todos os objectos | +| On Mouse Leave | 36 | Sim | Sim | Todos os objectos | +| On Mouse Move | 37 | Sim | Sim | Todos os objectos | +| On Mouse Up | 2 | Sim | Nunca | Apenas objecto envolvido | +| On Open Detail | 25 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Open External Link | 52 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Outside Call | 10 | Nunca | Sim | Nenhum | +| On Page Change | 56 | Nunca | Sim | Nenhum | +| On Plug in Area | 19 | Sim | Sim | Apenas objecto envolvido | +| On Printing Break | 6 | Sim | Sim | Todos os objectos | +| On Printing Detail | 23 | Sim | Sim | Todos os objectos | +| On Printing Footer | 7 | Sim | Sim | Todos os objectos | +| On Resize | 29 | Nunca | Sim | Nenhum | +| On Row Moved | 34 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Row Resize | 60 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Scroll | 59 | Sim | Nunca | Apenas objecto envolvido | +| On Selection Change | 31 | Sim | Sim | Apenas objecto envolvido | +| On Timer | 27 | Nunca | Sim | Nenhum | +| On Unload | 24 | Sim | Sim | Todos os objectos | +| On URL Filtering | 51 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Loading Error | 50 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Resource Loading | 48 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Validate | 3 | Sim | Sim | Todos os objectos | +| On VP Range Changed | 61 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On VP Ready | 9 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Window Opening Denied | 53 | Sim (Área Web) | Nunca | Apenas objecto envolvido | Lembre-se sempre de que, para qualquer evento, o método de um formulário ou de um objeto é chamado se a propriedade de evento correspondente estiver selecionada para o formulário ou para os objetos. A vantagem de desativar os eventos no ambiente Design (usando a Lista de propriedades do editor de formulários) é que você pode reduzir o número de chamadas para métodos e, portanto, otimizar significativamente a velocidade de execução dos formulários. > AVISO: Os eventos [On Load](onLoad.md) e [On Unload](onUnload.md) são gerados para objetos se estiverem ativados tanto para os objetos quanto para o formulário ao qual os objetos pertencem. Se os eventos estiverem ativados somente para objetos, eles não ocorrerão; esses dois eventos também devem ser ativados no nível do formulário. + diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md index 68b21918066c1b..e8b05062d823bd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/Events/overview.md @@ -46,68 +46,68 @@ O número de objetos envolvidos em um evento depende da natureza do evento. A tabela seguinte resume a forma como os métodos objeto e formulário são chamados para cada tipo de evento: -| Evento | Métodos objecto | Método formulário | Que objectos | -| ------------------------ | --------------------------------------------------------------- | ----------------- | -------------------------- | -| On Load | Sim | Sim | Todos os objectos | -| On Unload | Sim | Sim | Todos os objectos | -| On Validate | Sim | Sim | Todos os objectos | -| On Clicked | Sim | Sim | Apenas objecto envolvido | -| On Double Clicked | Sim | Sim | Apenas objecto envolvido | -| On Before Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Edit | Sim | Sim | Apenas objecto envolvido | -| On Getting Focus | Sim | Sim | Apenas objecto envolvido | -| On Losing Focus | Sim | Sim | Apenas objecto envolvido | -| On Activate | Nunca | Sim | Nenhum | -| On Deactivate | Nunca | Sim | Nenhum | -| On Outside Call | Nunca | Sim | Nenhum | -| On Page Change | Nunca | Sim | Nenhum | -| On Begin Drag Over | Sim | Sim | Apenas objecto envolvido | -| On Drop | Sim | Sim | Apenas objecto envolvido | -| On Drag Over | Sim | Nunca | Apenas objecto envolvido | -| On Mouse Enter | Sim | Sim | Todos os objectos | -| On Mouse Move | Sim | Sim | Todos os objectos | -| On Mouse Leave | Sim | Sim | Todos os objectos | -| On Mouse Up | Sim | Nunca | Apenas objecto envolvido | -| On Menu Selected | Nunca | Sim | Nenhum | -| On Bound variable change | Nunca | Sim | Nenhum | -| On Data Change | Sim | Sim | Apenas objecto envolvido | -| On Plug in Area | Sim | Sim | Apenas objecto envolvido | -| On Header | Sim | Sim | Todos os objectos | -| On Printing Detail | Sim | Sim | Todos os objectos | -| On Printing Break | Sim | Sim | Todos os objectos | -| On Printing Footer | Sim | Sim | Todos os objectos | -| On Close Box | Nunca | Sim | Nenhum | -| On Display Detail | Sim | Sim | Todos os objectos | -| On Open Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Close Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Resize | Nunca | Sim | Nenhum | -| On Selection Change | Sim | Sim | Apenas objecto envolvido | -| On Load Record | Nunca | Sim | Nenhum | -| On Timer | Nunca | Sim | Nenhum | -| On Scroll | Sim | Nunca | Apenas objecto envolvido | -| On Before Data Entry | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Row Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Resize | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Header Click | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Footer Click | Sim (List box) | Nunca | Apenas objecto envolvido | -| On After Sort | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Long Click | Sim (Botão) | Sim | Apenas objecto envolvido | -| On Alternative Click | Sim (botão e List box) | Nunca | Apenas objecto envolvido | -| On Expand | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Collapse | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Delete Action | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On URL Resource Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Begin URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Loading Error | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Filtering | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On End URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Open External Link | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Window Opening Denied | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On VP Range Changed | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On VP Ready | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Row Resize | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| Evento | Code | Métodos objecto | Método formulário | Que objectos | +| ------------------------ | ---- | --------------------------------------------------------------- | ----------------- | -------------------------- | +| On Activate | 11 | Nunca | Sim | Nenhum | +| On After Edit | 45 | Sim | Sim | Apenas objecto envolvido | +| On After Keystroke | 28 | Sim | Sim | Apenas objecto envolvido | +| On After Sort | 30 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Alternative Click | 38 | Sim (botão e List box) | Nunca | Apenas objecto envolvido | +| On Before Data Entry | 41 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Before Keystroke | 17 | Sim | Sim | Apenas objecto envolvido | +| On Begin Drag Over | 46 | Sim | Sim | Apenas objecto envolvido | +| On Begin URL Loading | 47 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Bound variable change | 54 | Nunca | Sim | Nenhum | +| On Clicked | 4 | Sim | Sim | Apenas objecto envolvido | +| On Close Box | 22 | Nunca | Sim | Nenhum | +| On Close Detail | 26 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Collapse | 44 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Column Moved | 32 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Column Resize | 33 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Data Change | 20 | Sim | Sim | Apenas objecto envolvido | +| On Deactivate | 12 | Nunca | Sim | Nenhum | +| On Delete Action | 58 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Display Detail | 8 | Sim | Sim | Todos os objectos | +| On Double Clicked | 13 | Sim | Sim | Apenas objecto envolvido | +| On Drag Over | 21 | Sim | Nunca | Apenas objecto envolvido | +| On Drop | 16 | Sim | Sim | Apenas objecto envolvido | +| On End URL Loading | 49 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Expand | 43 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Footer Click | 57 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Getting Focus | 15 | Sim | Sim | Apenas objecto envolvido | +| On Header | 5 | Sim | Sim | Todos os objectos | +| On Header Click | 42 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Load | 1 | Sim | Sim | Todos os objectos | +| On Load Record | 40 | Nunca | Sim | Nenhum | +| On Long Click | 39 | Sim (Botão) | Sim | Apenas objecto envolvido | +| On Losing Focus | 14 | Sim | Sim | Apenas objecto envolvido | +| On Menu Selected | 18 | Nunca | Sim | Nenhum | +| On Mouse Enter | 35 | Sim | Sim | Todos os objectos | +| On Mouse Leave | 36 | Sim | Sim | Todos os objectos | +| On Mouse Move | 37 | Sim | Sim | Todos os objectos | +| On Mouse Up | 2 | Sim | Nunca | Apenas objecto envolvido | +| On Open Detail | 25 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Open External Link | 52 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Outside Call | 10 | Nunca | Sim | Nenhum | +| On Page Change | 56 | Nunca | Sim | Nenhum | +| On Plug in Area | 19 | Sim | Sim | Apenas objecto envolvido | +| On Printing Break | 6 | Sim | Sim | Todos os objectos | +| On Printing Detail | 23 | Sim | Sim | Todos os objectos | +| On Printing Footer | 7 | Sim | Sim | Todos os objectos | +| On Resize | 29 | Nunca | Sim | Nenhum | +| On Row Moved | 34 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Row Resize | 60 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Scroll | 59 | Sim | Nunca | Apenas objecto envolvido | +| On Selection Change | 31 | Sim | Sim | Apenas objecto envolvido | +| On Timer | 27 | Nunca | Sim | Nenhum | +| On Unload | 24 | Sim | Sim | Todos os objectos | +| On URL Filtering | 51 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Loading Error | 50 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Resource Loading | 48 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Validate | 3 | Sim | Sim | Todos os objectos | +| On VP Range Changed | 61 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On VP Ready | 9 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Window Opening Denied | 53 | Sim (Área Web) | Nunca | Apenas objecto envolvido | Lembre-se sempre de que, para qualquer evento, o método de um formulário ou de um objeto é chamado se a propriedade de evento correspondente estiver selecionada para o formulário ou para os objetos. A vantagem de desativar os eventos no ambiente Design (usando a Lista de propriedades do editor de formulários) é que você pode reduzir o número de chamadas para métodos e, portanto, otimizar significativamente a velocidade de execução dos formulários. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md index 68b21918066c1b..e8b05062d823bd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/Events/overview.md @@ -46,68 +46,68 @@ O número de objetos envolvidos em um evento depende da natureza do evento. A tabela seguinte resume a forma como os métodos objeto e formulário são chamados para cada tipo de evento: -| Evento | Métodos objecto | Método formulário | Que objectos | -| ------------------------ | --------------------------------------------------------------- | ----------------- | -------------------------- | -| On Load | Sim | Sim | Todos os objectos | -| On Unload | Sim | Sim | Todos os objectos | -| On Validate | Sim | Sim | Todos os objectos | -| On Clicked | Sim | Sim | Apenas objecto envolvido | -| On Double Clicked | Sim | Sim | Apenas objecto envolvido | -| On Before Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Edit | Sim | Sim | Apenas objecto envolvido | -| On Getting Focus | Sim | Sim | Apenas objecto envolvido | -| On Losing Focus | Sim | Sim | Apenas objecto envolvido | -| On Activate | Nunca | Sim | Nenhum | -| On Deactivate | Nunca | Sim | Nenhum | -| On Outside Call | Nunca | Sim | Nenhum | -| On Page Change | Nunca | Sim | Nenhum | -| On Begin Drag Over | Sim | Sim | Apenas objecto envolvido | -| On Drop | Sim | Sim | Apenas objecto envolvido | -| On Drag Over | Sim | Nunca | Apenas objecto envolvido | -| On Mouse Enter | Sim | Sim | Todos os objectos | -| On Mouse Move | Sim | Sim | Todos os objectos | -| On Mouse Leave | Sim | Sim | Todos os objectos | -| On Mouse Up | Sim | Nunca | Apenas objecto envolvido | -| On Menu Selected | Nunca | Sim | Nenhum | -| On Bound variable change | Nunca | Sim | Nenhum | -| On Data Change | Sim | Sim | Apenas objecto envolvido | -| On Plug in Area | Sim | Sim | Apenas objecto envolvido | -| On Header | Sim | Sim | Todos os objectos | -| On Printing Detail | Sim | Sim | Todos os objectos | -| On Printing Break | Sim | Sim | Todos os objectos | -| On Printing Footer | Sim | Sim | Todos os objectos | -| On Close Box | Nunca | Sim | Nenhum | -| On Display Detail | Sim | Sim | Todos os objectos | -| On Open Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Close Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Resize | Nunca | Sim | Nenhum | -| On Selection Change | Sim | Sim | Apenas objecto envolvido | -| On Load Record | Nunca | Sim | Nenhum | -| On Timer | Nunca | Sim | Nenhum | -| On Scroll | Sim | Nunca | Apenas objecto envolvido | -| On Before Data Entry | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Row Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Resize | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Header Click | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Footer Click | Sim (List box) | Nunca | Apenas objecto envolvido | -| On After Sort | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Long Click | Sim (Botão) | Sim | Apenas objecto envolvido | -| On Alternative Click | Sim (botão e List box) | Nunca | Apenas objecto envolvido | -| On Expand | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Collapse | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Delete Action | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On URL Resource Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Begin URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Loading Error | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Filtering | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On End URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Open External Link | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Window Opening Denied | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On VP Range Changed | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On VP Ready | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Row Resize | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| Evento | Code | Métodos objecto | Método formulário | Que objectos | +| ------------------------ | ---- | --------------------------------------------------------------- | ----------------- | -------------------------- | +| On Activate | 11 | Nunca | Sim | Nenhum | +| On After Edit | 45 | Sim | Sim | Apenas objecto envolvido | +| On After Keystroke | 28 | Sim | Sim | Apenas objecto envolvido | +| On After Sort | 30 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Alternative Click | 38 | Sim (botão e List box) | Nunca | Apenas objecto envolvido | +| On Before Data Entry | 41 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Before Keystroke | 17 | Sim | Sim | Apenas objecto envolvido | +| On Begin Drag Over | 46 | Sim | Sim | Apenas objecto envolvido | +| On Begin URL Loading | 47 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Bound variable change | 54 | Nunca | Sim | Nenhum | +| On Clicked | 4 | Sim | Sim | Apenas objecto envolvido | +| On Close Box | 22 | Nunca | Sim | Nenhum | +| On Close Detail | 26 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Collapse | 44 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Column Moved | 32 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Column Resize | 33 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Data Change | 20 | Sim | Sim | Apenas objecto envolvido | +| On Deactivate | 12 | Nunca | Sim | Nenhum | +| On Delete Action | 58 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Display Detail | 8 | Sim | Sim | Todos os objectos | +| On Double Clicked | 13 | Sim | Sim | Apenas objecto envolvido | +| On Drag Over | 21 | Sim | Nunca | Apenas objecto envolvido | +| On Drop | 16 | Sim | Sim | Apenas objecto envolvido | +| On End URL Loading | 49 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Expand | 43 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Footer Click | 57 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Getting Focus | 15 | Sim | Sim | Apenas objecto envolvido | +| On Header | 5 | Sim | Sim | Todos os objectos | +| On Header Click | 42 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Load | 1 | Sim | Sim | Todos os objectos | +| On Load Record | 40 | Nunca | Sim | Nenhum | +| On Long Click | 39 | Sim (Botão) | Sim | Apenas objecto envolvido | +| On Losing Focus | 14 | Sim | Sim | Apenas objecto envolvido | +| On Menu Selected | 18 | Nunca | Sim | Nenhum | +| On Mouse Enter | 35 | Sim | Sim | Todos os objectos | +| On Mouse Leave | 36 | Sim | Sim | Todos os objectos | +| On Mouse Move | 37 | Sim | Sim | Todos os objectos | +| On Mouse Up | 2 | Sim | Nunca | Apenas objecto envolvido | +| On Open Detail | 25 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Open External Link | 52 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Outside Call | 10 | Nunca | Sim | Nenhum | +| On Page Change | 56 | Nunca | Sim | Nenhum | +| On Plug in Area | 19 | Sim | Sim | Apenas objecto envolvido | +| On Printing Break | 6 | Sim | Sim | Todos os objectos | +| On Printing Detail | 23 | Sim | Sim | Todos os objectos | +| On Printing Footer | 7 | Sim | Sim | Todos os objectos | +| On Resize | 29 | Nunca | Sim | Nenhum | +| On Row Moved | 34 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Row Resize | 60 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Scroll | 59 | Sim | Nunca | Apenas objecto envolvido | +| On Selection Change | 31 | Sim | Sim | Apenas objecto envolvido | +| On Timer | 27 | Nunca | Sim | Nenhum | +| On Unload | 24 | Sim | Sim | Todos os objectos | +| On URL Filtering | 51 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Loading Error | 50 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Resource Loading | 48 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Validate | 3 | Sim | Sim | Todos os objectos | +| On VP Range Changed | 61 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On VP Ready | 9 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Window Opening Denied | 53 | Sim (Área Web) | Nunca | Apenas objecto envolvido | Lembre-se sempre de que, para qualquer evento, o método de um formulário ou de um objeto é chamado se a propriedade de evento correspondente estiver selecionada para o formulário ou para os objetos. A vantagem de desativar os eventos no ambiente Design (usando a Lista de propriedades do editor de formulários) é que você pode reduzir o número de chamadas para métodos e, portanto, otimizar significativamente a velocidade de execução dos formulários. diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/overview.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/overview.md index 46be1873d6b75a..e8b05062d823bd 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/overview.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Events/overview.md @@ -5,7 +5,7 @@ title: Eventos formulário Eventos de formulário são eventos que podem levar à execução do método de formulário e/ou método(s) de objeto de formulário. Os eventos de formulário permitem que você controle o fluxo do aplicativo e escreva códigos que são executados somente quando ocorre um evento específico. -Em seu código, você controla os eventos usando o comando [`FORM Event`](../commands/form-event.md), que retorna o evento acionado. Por exemplo: +Em seu código, você controla os eventos usando o comando [`FORM Event`](../commands/form-event), que retorna o evento acionado. Por exemplo: ```4d //código de um botão If(FORM Event.code=On Clicked) @@ -16,7 +16,7 @@ Em seu código, você controla os eventos usando o comando [`FORM Event`](../com ## Objecto evento -Cada evento é retornado como um objeto pelo comando [`FORM Event`](../commands/form-event.md). Por padrão, ele contém as seguintes propriedades: +Cada evento é retornado como um objeto pelo comando [`FORM Event`](../commands/form-event). Por padrão, ele contém as seguintes propriedades: | Propriedade | Tipo | Descrição | | ----------- | ------------- | ------------------------------------------------------------------------------------------------------- | @@ -46,70 +46,71 @@ O número de objetos envolvidos em um evento depende da natureza do evento. A tabela seguinte resume a forma como os métodos objeto e formulário são chamados para cada tipo de evento: -| Evento | Métodos objecto | Método formulário | Que objectos | -| ------------------------ | --------------------------------------------------------------- | ----------------- | -------------------------- | -| On Load | Sim | Sim | Todos os objectos | -| On Unload | Sim | Sim | Todos os objectos | -| On Validate | Sim | Sim | Todos os objectos | -| On Clicked | Sim | Sim | Apenas objecto envolvido | -| On Double Clicked | Sim | Sim | Apenas objecto envolvido | -| On Before Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Keystroke | Sim | Sim | Apenas objecto envolvido | -| On After Edit | Sim | Sim | Apenas objecto envolvido | -| On Getting Focus | Sim | Sim | Apenas objecto envolvido | -| On Losing Focus | Sim | Sim | Apenas objecto envolvido | -| On Activate | Nunca | Sim | Nenhum | -| On Deactivate | Nunca | Sim | Nenhum | -| On Outside Call | Nunca | Sim | Nenhum | -| On Page Change | Nunca | Sim | Nenhum | -| On Begin Drag Over | Sim | Sim | Apenas objecto envolvido | -| On Drop | Sim | Sim | Apenas objecto envolvido | -| On Drag Over | Sim | Nunca | Apenas objecto envolvido | -| On Mouse Enter | Sim | Sim | Todos os objectos | -| On Mouse Move | Sim | Sim | Todos os objectos | -| On Mouse Leave | Sim | Sim | Todos os objectos | -| On Mouse Up | Sim | Nunca | Apenas objecto envolvido | -| On Menu Selected | Nunca | Sim | Nenhum | -| On Bound variable change | Nunca | Sim | Nenhum | -| On Data Change | Sim | Sim | Apenas objecto envolvido | -| On Plug in Area | Sim | Sim | Apenas objecto envolvido | -| On Header | Sim | Sim | Todos os objectos | -| On Printing Detail | Sim | Sim | Todos os objectos | -| On Printing Break | Sim | Sim | Todos os objectos | -| On Printing Footer | Sim | Sim | Todos os objectos | -| On Close Box | Nunca | Sim | Nenhum | -| On Display Detail | Sim | Sim | Todos os objectos | -| On Open Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Close Detail | Sim (List box) | Sim | Nenhum, excepto List boxes | -| On Resize | Nunca | Sim | Nenhum | -| On Selection Change | Sim | Sim | Apenas objecto envolvido | -| On Load Record | Nunca | Sim | Nenhum | -| On Timer | Nunca | Sim | Nenhum | -| On Scroll | Sim | Nunca | Apenas objecto envolvido | -| On Before Data Entry | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Row Moved | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Column Resize | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Header Click | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Footer Click | Sim (List box) | Nunca | Apenas objecto envolvido | -| On After Sort | Sim (List box) | Nunca | Apenas objecto envolvido | -| On Long Click | Sim (Botão) | Sim | Apenas objecto envolvido | -| On Alternative Click | Sim (botão e List box) | Nunca | Apenas objecto envolvido | -| On Expand | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Collapse | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On Delete Action | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | -| On URL Resource Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Begin URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Loading Error | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On URL Filtering | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On End URL Loading | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Open External Link | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On Window Opening Denied | Sim (Área Web) | Nunca | Apenas objecto envolvido | -| On VP Range Changed | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On VP Ready | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | -| On Row Resize | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| Evento | Code | Métodos objecto | Método formulário | Que objectos | +| ------------------------ | ---- | --------------------------------------------------------------- | ----------------- | -------------------------- | +| On Activate | 11 | Nunca | Sim | Nenhum | +| On After Edit | 45 | Sim | Sim | Apenas objecto envolvido | +| On After Keystroke | 28 | Sim | Sim | Apenas objecto envolvido | +| On After Sort | 30 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Alternative Click | 38 | Sim (botão e List box) | Nunca | Apenas objecto envolvido | +| On Before Data Entry | 41 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Before Keystroke | 17 | Sim | Sim | Apenas objecto envolvido | +| On Begin Drag Over | 46 | Sim | Sim | Apenas objecto envolvido | +| On Begin URL Loading | 47 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Bound variable change | 54 | Nunca | Sim | Nenhum | +| On Clicked | 4 | Sim | Sim | Apenas objecto envolvido | +| On Close Box | 22 | Nunca | Sim | Nenhum | +| On Close Detail | 26 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Collapse | 44 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Column Moved | 32 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Column Resize | 33 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Data Change | 20 | Sim | Sim | Apenas objecto envolvido | +| On Deactivate | 12 | Nunca | Sim | Nenhum | +| On Delete Action | 58 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Display Detail | 8 | Sim | Sim | Todos os objectos | +| On Double Clicked | 13 | Sim | Sim | Apenas objecto envolvido | +| On Drag Over | 21 | Sim | Nunca | Apenas objecto envolvido | +| On Drop | 16 | Sim | Sim | Apenas objecto envolvido | +| On End URL Loading | 49 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Expand | 43 | Sim (Hier. lista e list box) | Nunca | Apenas objecto envolvido | +| On Footer Click | 57 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Getting Focus | 15 | Sim | Sim | Apenas objecto envolvido | +| On Header | 5 | Sim | Sim | Todos os objectos | +| On Header Click | 42 | Sim (List box e Area 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Load | 1 | Sim | Sim | Todos os objectos | +| On Load Record | 40 | Nunca | Sim | Nenhum | +| On Long Click | 39 | Sim (Botão) | Sim | Apenas objecto envolvido | +| On Losing Focus | 14 | Sim | Sim | Apenas objecto envolvido | +| On Menu Selected | 18 | Nunca | Sim | Nenhum | +| On Mouse Enter | 35 | Sim | Sim | Todos os objectos | +| On Mouse Leave | 36 | Sim | Sim | Todos os objectos | +| On Mouse Move | 37 | Sim | Sim | Todos os objectos | +| On Mouse Up | 2 | Sim | Nunca | Apenas objecto envolvido | +| On Open Detail | 25 | Sim (List box) | Sim | Nenhum, excepto List boxes | +| On Open External Link | 52 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Outside Call | 10 | Nunca | Sim | Nenhum | +| On Page Change | 56 | Nunca | Sim | Nenhum | +| On Plug in Area | 19 | Sim | Sim | Apenas objecto envolvido | +| On Printing Break | 6 | Sim | Sim | Todos os objectos | +| On Printing Detail | 23 | Sim | Sim | Todos os objectos | +| On Printing Footer | 7 | Sim | Sim | Todos os objectos | +| On Resize | 29 | Nunca | Sim | Nenhum | +| On Row Moved | 34 | Sim (List box) | Nunca | Apenas objecto envolvido | +| On Row Resize | 60 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Scroll | 59 | Sim | Nunca | Apenas objecto envolvido | +| On Selection Change | 31 | Sim | Sim | Apenas objecto envolvido | +| On Timer | 27 | Nunca | Sim | Nenhum | +| On Unload | 24 | Sim | Sim | Todos os objectos | +| On URL Filtering | 51 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Loading Error | 50 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On URL Resource Loading | 48 | Sim (Área Web) | Nunca | Apenas objecto envolvido | +| On Validate | 3 | Sim | Sim | Todos os objectos | +| On VP Range Changed | 61 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On VP Ready | 9 | Sim (Área 4D View Pro) | Nunca | Apenas objecto envolvido | +| On Window Opening Denied | 53 | Sim (Área Web) | Nunca | Apenas objecto envolvido | Lembre-se sempre de que, para qualquer evento, o método de um formulário ou de um objeto é chamado se a propriedade de evento correspondente estiver selecionada para o formulário ou para os objetos. A vantagem de desativar os eventos no ambiente Design (usando a Lista de propriedades do editor de formulários) é que você pode reduzir o número de chamadas para métodos e, portanto, otimizar significativamente a velocidade de execução dos formulários. > Excepto en los eventos [En carga](onLoad.md) y [En descarga](onUnload.md) (ver más abajo), si la propiedad del evento formulario no está seleccionada para un evento determinado, esto no impide las llamadas a los métodos objetos cuya misma propiedad de eve Em outras palavras, ativar ou desativar um evento no nível do formulário não tem efeito sobre as propriedades do evento do objeto. Se os eventos estiverem ativados somente para objetos, eles não ocorrerão; esses dois eventos também devem ser ativados no nível do formulário. + diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index a87c6bd9e16d1c..32654e8606beb3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -48,8 +48,8 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | compression | Integer |
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | -| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | -| encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | +| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | +| encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | | files | Collection |
  • a collection of `4D.File` or `4D.Folder` objects or
  • a collection of objects with the following properties:
  • PropertyTypeDescription
    source4D.File or 4D.FolderFile or Folder
    destinationText(optional) - Specify a relative filepath to change the organization of the contents of the archive
    optionnumber(optional) - `ZIP Ignore invisible files` or 0 to compress all of the file
    | | callback | 4D. Function | Uma fórmula de callback (retrochamada) que recebe o progresso da compactação (0-100) em $1. | From 1d6bfaf679cc7c205ac32a8ec726313dcb82aaa7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 21 Sep 2026 14:41:10 +0200 Subject: [PATCH 56/60] bullets fix --- docs/language-legacy/File and Folder/zip-create-archive.md | 4 ++-- .../language-legacy/File and Folder/zip-create-archive.md | 2 +- .../language-legacy/File and Folder/zip-create-archive.md | 2 +- .../language-legacy/File and Folder/zip-create-archive.md | 2 +- .../version-21/commands/zip-create-archive.md | 2 +- .../language-legacy/File and Folder/zip-create-archive.md | 4 ++-- .../language-legacy/File and Folder/zip-create-archive.md | 4 ++-- .../language-legacy/File and Folder/zip-create-archive.md | 4 ++-- .../version-21/commands/zip-create-archive.md | 4 ++-- .../language-legacy/File and Folder/zip-create-archive.md | 4 ++-- .../language-legacy/File and Folder/zip-create-archive.md | 4 ++-- .../language-legacy/File and Folder/zip-create-archive.md | 4 ++-- .../version-21/commands/zip-create-archive.md | 4 ++-- versioned_docs/version-19/API/ZipArchiveClass.md | 4 ++-- versioned_docs/version-20/API/ZipArchiveClass.md | 4 ++-- .../language-legacy/File and Folder/zip-create-archive.md | 4 ++-- .../language-legacy/File and Folder/zip-create-archive.md | 4 ++-- versioned_docs/version-21/commands/zip-create-archive.md | 4 ++-- 18 files changed, 32 insertions(+), 32 deletions(-) diff --git a/docs/language-legacy/File and Folder/zip-create-archive.md b/docs/language-legacy/File and Folder/zip-create-archive.md index b9825ffdb16267..1772478ab7dc0c 100644 --- a/docs/language-legacy/File and Folder/zip-create-archive.md +++ b/docs/language-legacy/File and Folder/zip-create-archive.md @@ -49,7 +49,7 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| -|compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +|compression|Integer|
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | |level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | |encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| @@ -66,7 +66,7 @@ The returned status object contains the following properties: |Property|Type|Description| |---|---|---| -|statusText|Text|Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • +|statusText|Text|Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    |status|Integer|Status code| |success|Boolean|True if archive created successfully, else false| diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md index e9ba46a80b9850..f584bdd9f1b3d1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md @@ -65,7 +65,7 @@ El objeto status devuelto contiene las siguientes propiedades: | Propiedad | Tipo | Descripción | | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Mensaje de error (si lo hay):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Mensaje de error (si lo hay):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Código de estado | | success | Boolean | True si el archivo se ha creado con éxito, si no, false | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md index e9ba46a80b9850..f584bdd9f1b3d1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md @@ -65,7 +65,7 @@ El objeto status devuelto contiene las siguientes propiedades: | Propiedad | Tipo | Descripción | | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Mensaje de error (si lo hay):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Mensaje de error (si lo hay):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Código de estado | | success | Boolean | True si el archivo se ha creado con éxito, si no, false | diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md index e9ba46a80b9850..f584bdd9f1b3d1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md @@ -65,7 +65,7 @@ El objeto status devuelto contiene las siguientes propiedades: | Propiedad | Tipo | Descripción | | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Mensaje de error (si lo hay):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Mensaje de error (si lo hay):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Código de estado | | success | Boolean | True si el archivo se ha creado con éxito, si no, false | 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 fac2fb49c3f3a1..42dfc9f8602365 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 @@ -64,7 +64,7 @@ El objeto status devuelto contiene las siguientes propiedades: | Propiedad | Tipo | Descripción | | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Mensaje de error (si lo hay):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Mensaje de error (si lo hay):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Código de estado | | success | Boolean | True si el archivo se ha creado con éxito, si no, false | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md index 38e0a5a669c012..66ff91bdb6dc61 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md @@ -48,7 +48,7 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | +| compression | Integer |
    • `ZIP Compression standard` : Compression Deflate (par défaut)
    • `ZIP Compression LZMA` : Compression LZMA
    • `ZIP Compression XZ` : Compression XZ
    • `ZIP Compression none` : Pas de compression
    | | level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
    • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | @@ -65,7 +65,7 @@ L'objet statut retourné contient les propriétés suivantes : | Propriété | Type | Description | | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Message d'erreur (le cas échéant) :
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Message d'erreur (le cas échéant) :
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Code d'état | | success | Boolean | Vrai si l'archive a été créée avec succès, sinon faux | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md index 4446e9969fbff8..99c1d24360e43e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md @@ -48,7 +48,7 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | +| compression | Integer |
    • `ZIP Compression standard` : Compression Deflate (par défaut)
    • `ZIP Compression LZMA` : Compression LZMA
    • `ZIP Compression XZ` : Compression XZ
    • `ZIP Compression none` : Pas de compression
    | | level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
    • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | @@ -65,7 +65,7 @@ L'objet statut retourné contient les propriétés suivantes : | Propriété | Type | Description | | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Message d'erreur (le cas échéant) :
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Message d'erreur (le cas échéant) :
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Code d'état | | success | Boolean | Vrai si l'archive a été créée avec succès, sinon faux | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md index 4446e9969fbff8..99c1d24360e43e 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md @@ -48,7 +48,7 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | +| compression | Integer |
    • `ZIP Compression standard` : Compression Deflate (par défaut)
    • `ZIP Compression LZMA` : Compression LZMA
    • `ZIP Compression XZ` : Compression XZ
    • `ZIP Compression none` : Pas de compression
    | | level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeurs par défaut si omis :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | Le cryptage à utiliser si un mot de passe est défini
    • :`ZIP Encryption AES128` : Cryptage AES avec une clé de 128 bits.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas cryptées (par défaut si aucun mot de passe n'est défini)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | @@ -65,7 +65,7 @@ L'objet statut retourné contient les propriétés suivantes : | Propriété | Type | Description | | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Message d'erreur (le cas échéant) :
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Message d'erreur (le cas échéant) :
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Code d'état | | success | Boolean | Vrai si l'archive a été créée avec succès, sinon faux | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index 5093dab76b92a3..c91fc747e158b4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -47,7 +47,7 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard` : Compression Deflate (par défaut)
  • `ZIP Compression LZMA` : Compression LZMA
  • `ZIP Compression XZ` : Compression XZ
  • `ZIP Compression none` : Pas de compression
  • | +| compression | Integer |
    • `ZIP Compression standard` : Compression Deflate (par défaut)
    • `ZIP Compression LZMA` : Compression LZMA
    • `ZIP Compression XZ` : Compression XZ
    • `ZIP Compression none` : Pas de compression
    | | level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | @@ -64,7 +64,7 @@ L'objet statut retourné contient les propriétés suivantes : | Propriété | Type | Description | | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Message d'erreur (le cas échéant) :
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Message d'erreur (le cas échéant) :
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Code d'état | | success | Boolean | Vrai si l'archive a été créée avec succès, sinon faux | diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md index 3258d198e4e451..b6eadba810573d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/language-legacy/File and Folder/zip-create-archive.md @@ -48,7 +48,7 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +| compression | Integer |
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | | level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | @@ -65,7 +65,7 @@ O estado do objeto retornado contém as propriedades abaixo: | Propriedade | Tipo | Descrição | | ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Código de estado | | success | Parâmetros | True se o arquivo for criado com sucesso, senão false | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md index 3258d198e4e451..b6eadba810573d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md @@ -48,7 +48,7 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +| compression | Integer |
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | | level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | @@ -65,7 +65,7 @@ O estado do objeto retornado contém as propriedades abaixo: | Propriedade | Tipo | Descrição | | ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Código de estado | | success | Parâmetros | True se o arquivo for criado com sucesso, senão false | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md index 3258d198e4e451..b6eadba810573d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md @@ -48,7 +48,7 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +| compression | Integer |
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | | level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | @@ -65,7 +65,7 @@ O estado do objeto retornado contém as propriedades abaixo: | Propriedade | Tipo | Descrição | | ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Código de estado | | success | Parâmetros | True se o arquivo for criado com sucesso, senão false | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index 32654e8606beb3..3b3ad9f4c79118 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -47,7 +47,7 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +| compression | Integer |
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | | level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | @@ -64,7 +64,7 @@ O estado do objeto retornado contém as propriedades abaixo: | Propriedade | Tipo | Descrição | | ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • | +| statusText | Text | Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | | status | Integer | Código de estado | | success | Parâmetros | True se o arquivo for criado com sucesso, senão false | diff --git a/versioned_docs/version-19/API/ZipArchiveClass.md b/versioned_docs/version-19/API/ZipArchiveClass.md index a5e75fa6d8d9f8..4e0a6268beb885 100644 --- a/versioned_docs/version-19/API/ZipArchiveClass.md +++ b/versioned_docs/version-19/API/ZipArchiveClass.md @@ -76,7 +76,7 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| -|compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +|compression|Integer|
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | |level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | |encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| @@ -93,7 +93,7 @@ The returned status object contains the following properties: |Property|Type|Description| |---|---|---| -|statusText|Text|Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • +|statusText|Text|Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    |status|Integer|Status code| |success|Boolean|True if archive created successfully, else false| diff --git a/versioned_docs/version-20/API/ZipArchiveClass.md b/versioned_docs/version-20/API/ZipArchiveClass.md index 828bde27c28658..5b799154463d92 100644 --- a/versioned_docs/version-20/API/ZipArchiveClass.md +++ b/versioned_docs/version-20/API/ZipArchiveClass.md @@ -77,7 +77,7 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| -|compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +|compression|Integer|
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | |level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | |encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| @@ -94,7 +94,7 @@ The returned status object contains the following properties: |Property|Type|Description| |---|---|---| -|statusText|Text|Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • +|statusText|Text|Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    |status|Integer|Status code| |success|Boolean|True if archive created successfully, else false| diff --git a/versioned_docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md b/versioned_docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md index b9825ffdb16267..1772478ab7dc0c 100644 --- a/versioned_docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md +++ b/versioned_docs/version-21-R3/language-legacy/File and Folder/zip-create-archive.md @@ -49,7 +49,7 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| -|compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +|compression|Integer|
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | |level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | |encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| @@ -66,7 +66,7 @@ The returned status object contains the following properties: |Property|Type|Description| |---|---|---| -|statusText|Text|Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • +|statusText|Text|Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    |status|Integer|Status code| |success|Boolean|True if archive created successfully, else false| diff --git a/versioned_docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md b/versioned_docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md index b9825ffdb16267..1772478ab7dc0c 100644 --- a/versioned_docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md +++ b/versioned_docs/version-21-R4/language-legacy/File and Folder/zip-create-archive.md @@ -49,7 +49,7 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| -|compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +|compression|Integer|
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | |level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | |encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| @@ -66,7 +66,7 @@ The returned status object contains the following properties: |Property|Type|Description| |---|---|---| -|statusText|Text|Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • +|statusText|Text|Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    |status|Integer|Status code| |success|Boolean|True if archive created successfully, else false| diff --git a/versioned_docs/version-21/commands/zip-create-archive.md b/versioned_docs/version-21/commands/zip-create-archive.md index b6768856a4d823..22a48ae66acfd0 100644 --- a/versioned_docs/version-21/commands/zip-create-archive.md +++ b/versioned_docs/version-21/commands/zip-create-archive.md @@ -48,7 +48,7 @@ You can pass a 4D.File, a 4D.Folder, or a zip structure object as first paramete |Property|Type|Description| |---|---|---| -|compression|Integer|
  • `ZIP Compression standard`: Deflate compression (default)
  • `ZIP Compression LZMA`: LZMA compression
  • `ZIP Compression XZ`: XZ compression
  • `ZIP Compression none`: No compression
  • | +|compression|Integer|
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | |level|Integer|Compression level. Possible values: 1 to 10. A lower value will produce a larger file, while a higher value will produce a smaller file. Compression level has however an impact on performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | |encryption|Integer|The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | |password|Text|A password to use if encryption is required.| @@ -65,7 +65,7 @@ The returned status object contains the following properties: |Property|Type|Description| |---|---|---| -|statusText|Text|Error message (if any):
  • Cannot open ZIP archive
  • Cannot create ZIP archive
  • Password is required for encryption
  • +|statusText|Text|Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    |status|Integer|Status code| |success|Boolean|True if archive created successfully, else false| From 91928790a095c4730cc9994b4c8283ed5c6d864d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 22 Sep 2026 10:26:35 +0200 Subject: [PATCH 57/60] New Crowdin updates (#3435) * ziparchiveclass.md French * zip-create-archive.md French --- .../version-20/API/ZipArchiveClass.md | 14 +++++++------- .../version-21/commands/zip-create-archive.md | 12 ++++++------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index c4f3f86731c3ac..4b5de71bdfc260 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -77,11 +77,11 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Réduire la compression (par défaut)
  • `ZIP Compression LZMA`: compression LZMA
  • `ZIP Compression XZ`: compression XZ
  • `ZIP Compression none`: Pas de compression
  • | +| compression | Integer |
    • `ZIP Compression standard`: Réduire la compression (par défaut)
    • `ZIP Compression LZMA`: compression LZMA
    • `ZIP Compression XZ`: compression XZ
    • `ZIP Compression none`: Pas de compression
    | | level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Valeur par défaut (si omis) :
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | Le chiffrement à utiliser si un mot de passe est défini :
    • `ZIP Encryption AES128`: chiffrement AES à l'aide d'une clé 128 octets.
    • `ZIP Encryption AES192`: chiffrement AES à l'aide d'une clé 192 octets.
    • `ZIP Encryption AES256`: chiffrement AES à l'aide d'une clé 256 octets (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: les données ne sont pas chiffrées (par défaut si aucun mot de passe n'est défini)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | -| Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets dont les propriétés sont les suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFile ou Folder
    destinationText(facultatif) - Indiquer un chemin de fichier relatif pour modifier l'organisation du contenu de l'archive
    optionnumber(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser tout le fichier
    | +| Historique | Collection |
  • une collection d'objets `4D.File` ou `4D.Folder` ou
  • une collection d'objets dont les propriétés sont les suivantes :
  • PropriétéTypeDescription
    source4D.File ou 4D.FolderFile ou Folder
    destinationText(facultatif) - Indiquer un chemin de fichier relatif pour modifier l'organisation du contenu de l'archive
    optionnumber(facultatif) - `ZIP Ignore invisible files` ou 0 pour compresser tout le fichier
    | | callback | 4D.Function | Une formule de rétro-appel qui recevra la progression de la compression (0 à 100) dans $1. | Dans le paramètre *destinationFile*, passez un objet `4D.File` décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel. @@ -92,11 +92,11 @@ Une fois que l'archive est créée, vous pouvez utiliser la commande [ZIP Read a L'objet statut retourné contient les propriétés suivantes : -| Propriété | Type | Description | -| ---------- | ------- | ----------------------------------------------------------------------------------------------------------------- | -| statusText | Text | Message d'erreur (le cas échéant) :
  • Impossible d'ouvrir l'archive ZIP
  • Impossible de créer une archive ZIP
  • Le mot de passe est requis pour le chiffrement
  • | -| status | Integer | Code d'état | -| success | Boolean | Vrai si l'archive a été créée avec succès, sinon faux | +| Propriété | Type | Description | +| ---------- | ------- | ------------------------------------------------------------ | +| statusText | Text | Message d'erreur (le cas échéant) :
    • Impossible d'ouvrir l'archive ZIP
    • Impossible de créer une archive ZIP
    • Le mot de passe est requis pour le chiffrement
    | +| status | Integer | Code d'état | +| success | Boolean | Vrai si l'archive a été créée avec succès, sinon faux | #### Exemple 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index c91fc747e158b4..272b11ea7f3925 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -47,7 +47,7 @@ Vous pouvez passer un objet 4D.File, 4D.Folder, ou une structure Zip en tant que | Propriété | Type | Description | | ----------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
    • `ZIP Compression standard` : Compression Deflate (par défaut)
    • `ZIP Compression LZMA` : Compression LZMA
    • `ZIP Compression XZ` : Compression XZ
    • `ZIP Compression none` : Pas de compression
    | +| compression | Integer |
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | | level | Integer | Niveau de compression. Valeurs possibles : 1 à 10. Une valeur plus faible produira un fichier plus volumineux, tandis qu'une valeur plus élevée produira un fichier plus petit. Le niveau de compression a toutefois un impact sur les performances. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: Cryptage AES avec une clé de 192 bits.
    • `ZIP Encryption AES256`: Cryptage AES à l'aide d'une clé de 256 bits (par défaut si un mot de passe est défini).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | password | Text | Un mot de passe à définir si le chiffrement est requis. | @@ -62,11 +62,11 @@ Une fois qu'une archive est créée, vous pouvez utiliser la commande [ZIP Read L'objet statut retourné contient les propriétés suivantes : -| Propriété | Type | Description | -| ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Message d'erreur (le cas échéant) :
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | -| status | Integer | Code d'état | -| success | Boolean | Vrai si l'archive a été créée avec succès, sinon faux | +| Propriété | Type | Description | +| ---------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| statusText | Text | Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | +| status | Integer | Code d'état | +| success | Boolean | Vrai si l'archive a été créée avec succès, sinon faux | ## Exemple 1 From 7becf6d0913b06f3f406f1c6a9303839c1b5ad43 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 22 Sep 2026 18:24:45 +0200 Subject: [PATCH 58/60] Update data-collect.md --- docs/Admin/data-collect.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Admin/data-collect.md b/docs/Admin/data-collect.md index da07aa038a5476..35136d64c13737 100644 --- a/docs/Admin/data-collect.md +++ b/docs/Admin/data-collect.md @@ -97,7 +97,7 @@ Some data is also collected at regular intervals. |isEncrypted|Boolean|True if the data file is encrypted| |isEngined|Boolean|True if the application is merged with 4D Volume Desktop| |isProjectMode|Boolean|True if the application is a project| -|isShadowCopyActivated|Boolean|True if the Volume Shadow Copy feature is enabled (Windows only| +|isShadowCopyActivated|Boolean|True if the Volume Shadow Copy feature is enabled (Windows only)| |LDAPLogin|Number|Number of calls to `LDAP LOGIN`| |license.sffPrimaryKey|Number|Server master product number| |machine.CPU|Text|Name, type, and speed of the processor| From f4f969b204de7d7d237eb1ac6e1b7325d8596a7c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 23 Sep 2026 10:05:01 +0200 Subject: [PATCH 59/60] New Crowdin updates (#3436) * data-collect.md French * data-collect.md Spanish * data-collect.md Japanese * data-collect.md Portuguese, Brazilian * zip-create-archive.md Spanish * ziparchiveclass.md Japanese * zip-create-archive.md Japanese * ziparchiveclass.md Portuguese, Brazilian * zip-create-archive.md Portuguese, Brazilian --- .../current/Admin/data-collect.md | 2 +- .../version-21/commands/zip-create-archive.md | 12 ++++++------ .../current/Admin/data-collect.md | 10 +++++----- .../current/Admin/data-collect.md | 2 +- .../version-20/API/ZipArchiveClass.md | 14 +++++++------- .../version-21/commands/zip-create-archive.md | 12 ++++++------ .../current/Admin/data-collect.md | 2 +- .../version-20/API/ZipArchiveClass.md | 14 +++++++------- .../version-21/commands/zip-create-archive.md | 10 +++++----- 9 files changed, 39 insertions(+), 39 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md b/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md index c9185fc9e8c3a7..26082915753778 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md @@ -95,7 +95,7 @@ También se recogen algunos datos a intervalos regulares. | isEncrypted | Boolean | True si el archivo de datos está encriptado | | isEngined | Boolean | True si la aplicación se fusiona con 4D Volume Desktop | | isProjectMode | Boolean | True si la aplicación es un proyecto | -| isShadowCopyActivated | Boolean | True if the Volume Shadow Copy feature is enabled (Windows only | +| isShadowCopyActivated | Boolean | True if the Volume Shadow Copy feature is enabled (Windows only) | | LDAPLogin | Number | Número de llamadas a `LDAP LOGIN` | | license.sffPrimaryKey | Number | Número de producto del servidor principal | | machine.CPU | Text | Nombre, tipo y velocidad del procesador | 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 42dfc9f8602365..4a6e374e3e008e 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 @@ -47,7 +47,7 @@ Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer pará | Propiedad | Tipo | Descripción | | ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Compresión Deflate (por defecto)
  • `ZIP Compression LZMA`: Compression LZMA
  • `ZIP Compresión XZ`: Compression XZ
  • `ZIP Compresión`: sin compresión
  • | +| compression | Integer |
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | | 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. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: cifrado AES con una clave de 192 bits.
    • `ZIP Encryption AES256`: encriptación AES con una llave de 256 bits (por defecto si se define la contraseña).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | @@ -62,11 +62,11 @@ Una vez creado un archivo, puede utilizar el comando [ZIP Read archive](zip-read El objeto status devuelto contiene las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| statusText | Text | Mensaje de error (si lo hay):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | -| status | Integer | Código de estado | -| success | Boolean | True si el archivo se ha creado con éxito, si no, false | +| Propiedad | Tipo | Descripción | +| ---------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| statusText | Text | Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | +| status | Integer | Código de estado | +| success | Boolean | True si el archivo se ha creado con éxito, si no, false | ## Ejemplo 1 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/data-collect.md b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/data-collect.md index 3374812340dcf9..09d92121b6646a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/data-collect.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/data-collect.md @@ -37,12 +37,12 @@ Certaines données sont également collectées à intervalles réguliers. | cacheReadCount | Object | Nombre de lectures dans le cache | | classUsage | Object | Nombre d'instances de certaines classes du langage | | connectionSystems | Collection | Système d'exploitation du client sans le numéro de build (entre parenthèses) et nombre de clients qui l'utilisent | -| databases[].backupSettings | Object | Current backup settings values | +| databases[].backupSettings | Object | Valeurs courantes des paramètres de sauvegarde | | databases[].cacheSize | Number | Taille du cache en octets | | databases[].compatibilitySettings | Object | Paramètres de compatibilité activés | | databases[].externalDatastoreOpened | Number | Nombre d'appels à `Open datastore` | | databases[].fluentUI | Boolean | Vrai si l'option "Utiliser Fluent UI sous Windows" est sélectionnée | -| databases[].flushCacheInterval | Number | Defined time period between each automatic saving of the data cache | +| databases[].flushCacheInterval | Number | Intervalle de temps défini entre chaque sauvegarde automatique du cache de données | | databases[].id | Number | ID de la base de données | | databases[].internalDatastoreOpened | Number | Nombre de fois où le datastore est ouvert par un serveur externe | | databases[].maxConcurrent4DClients | Number | Nombre maximum de sessions 4D Client simultanées (utilisant une licence 4D Client) sur l'intervalle de collecte | @@ -54,7 +54,7 @@ Certaines données sont également collectées à intervalles réguliers. | databases[].numberOfKeepRecordSyncInfo | Number | Nombre de tables dont l'option "Activer la réplication" est cochée | | databases[].numberOfRecordsMax | Number | Nombre total d'enregistrements | | databases[].numberOfTables | Number | Nombre de tables | -| databases[].numberOfUncaughtExecutionErrors | Number | Number of times an execution error is displayed as an alert | +| databases[].numberOfUncaughtExecutionErrors | Number | Nombre d'erreurs d'exécution affichées sous forme d'alerte | | databases[].qodly.webforms | Number | Nombre de webforms Qodly | | databases[].remoteDebugger4DRemoteAttachments | Number | Nombre de rattachements au débogueur distant à partir d'un 4D distant | | databases[].remoteDebuggerQodlyAttachments | Number | Nombre de rattachements au débogueur distant à partir de Qodly | @@ -95,7 +95,7 @@ Certaines données sont également collectées à intervalles réguliers. | isEncrypted | Boolean | Vrai si le fichier de données est chiffré | | isEngined | Boolean | True si l'application est fusionnée avec 4D Volume Desktop | | isProjectMode | Boolean | True si l'application est un projet | -| isShadowCopyActivated | Boolean | True if the Volume Shadow Copy feature is enabled (Windows only | +| isShadowCopyActivated | Boolean | True if the Volume Shadow Copy feature is enabled (Windows only) | | LDAPLogin | Number | Nombre d'appels à la fonction `LDAP LOGIN` | | license.sffPrimaryKey | Number | Numéro de produit du serveur principal | | machine.CPU | Text | Nom, type et vitesse du processeur | @@ -106,7 +106,7 @@ Certaines données sont également collectées à intervalles réguliers. | maximumUsedPhysicalMemory | Number | Utilisation maximale de la mémoire physique | | maximumUsedVirtualMemory | Number | Utilisation maximale de la mémoire virtuelle | | mobile | Collection | Informations sur les sessions mobiles | -| numberOfCrashes | Number | Number of times 4D has crashed | +| numberOfCrashes | Number | Nombre de plantages de 4D | | numberOfWebServices | Number | Nombre de méthodes publiées en tant que Services Web | | ODBCLogin | Number | Nombre d'appels à `SQL LOGIN` utilisant ODBC | | phpCall | Number | Nombre d'appels à `PHP execute` | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/data-collect.md b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/data-collect.md index 138d67d5c9de1a..735ffdf7bb2b7a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/data-collect.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/data-collect.md @@ -95,7 +95,7 @@ title: データ収集 | isEncrypted | Boolean | データファイルが暗号化されていれば true | | isEngined | Boolean | アプリケーションに 4D Volume Desktop が組み込まれている場合は true | | isProjectMode | Boolean | アプリケーションがプロジェクトの場合は true | -| isShadowCopyActivated | Boolean | ボリュームシャドウコピー機能が有効化されていればTrue (Windows のみ)。 | +| isShadowCopyActivated | Boolean | True if the Volume Shadow Copy feature is enabled (Windows only) | | LDAPLogin | Number | `LDAP LOGIN` の呼び出し回数 | | license.sffPrimaryKey | Number | サーバーのマスタープロダクト番号 | | machine.CPU | Text | プロセッサーの名前、種類、および速度 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 627e98641f1d75..48a0c0a862a7c9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -77,11 +77,11 @@ End if | プロパティ | 型 | 説明 | | ----------- | ----------- | -------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | +| compression | Integer |
    • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
    • `ZIP Compression LZMA`: LZMA圧縮
    • `ZIP Compression XZ`: XZ圧縮
    • `ZIP Compression none`: 圧縮なし
    | | level | Integer | 圧縮レベル。とりうる値: 1 - 10。低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。ただし、圧縮レベルはパフォーマンスに影響します。デフォルト値 (省略時):
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | パスワードが設定されていた場合に使用する暗号化方法:
    • `ZIP Encryption AES128`: 128-bit キーを使った AES による暗号化
    • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化
    • `ZIP Encryption AES256`: 256-bit キーを使った AES による暗号化 (パスワードが設定されている場合のデフォルト)
    • `ZIP Encryption none`: 暗号化なし (パスワードが設定されてない場合のデフォルト)
    | | password | Text | 暗号化が必要な場合に使用するパスワード | -| files | Collection |
  • `4D.File` または `4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティ型説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | +| files | Collection |
  • `4D.File` または `4D.Folder` オブジェクトのコレクション
  • 以下のプロパティを持ったオブジェクトのコレクション:
  • プロパティ型説明
    source4D.File または 4D.FolderFile または Folder
    destinationText(任意) - アーカイブのコンテンツ構成を変更するための相対ファイルパス
    optionnumber(任意) - `ZIP Ignore invisible files` で非表示ファイルを無視、0 を渡すと全ファイルを圧縮
    | | callback | 4D.Function | $1 に圧縮の進捗 (0 - 100) を受け取るコールバックフォーミュラ | *destinationFile* には、作成する ZIPアーカイブ (名前や位置など) を記述する `4D.File` オブジェクトを渡します。作成した ZIPアーカイブがあらゆるソフトウェアで自動的に処理されるようにするため、".zip" 拡張子の使用が推奨されます。 @@ -92,11 +92,11 @@ End if 戻り値のステータスオブジェクトには、以下のプロパティが格納されています: -| プロパティ | 型 | 説明 | -| ---------- | ------- | --------------------------------------------------------------------------------------------- | -| statusText | Text | エラーメッセージ (あれば):
  • ZIPアーカイブを開けません
  • ZIPアーカイブを作成できません
  • 暗号化にはパスワードが必要です
  • | -| status | Integer | ステータスコード | -| success | Boolean | アーカイブが正常に作成された場合には true、それ以外は false | +| プロパティ | 型 | 説明 | +| ---------- | ------- | ---------------------------------------- | +| statusText | Text | エラーメッセージ (あれば):
    • ZIPアーカイブを開けません
    • ZIPアーカイブを作成できません
    • 暗号化にはパスワードが必要です
    | +| status | Integer | ステータスコード | +| success | Boolean | アーカイブが正常に作成された場合には true、それ以外は false | #### 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index 036df3f08e0ba0..b3632dde436027 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -47,7 +47,7 @@ displayed_sidebar: docs | プロパティ | 型 | 説明 | | ----------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Deflate圧縮 (デフォルト)
  • `ZIP Compression LZMA`: LZMA圧縮
  • `ZIP Compression XZ`: XZ圧縮
  • `ZIP Compression none`: 圧縮なし
  • | +| compression | Integer |
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | | level | Integer | 圧縮レベル。とりうる値: 1 - 10。低い値ではファイルが大きくなり、高い値ではファイルが小さくなります。ただし、圧縮レベルはパフォーマンスに影響します。 Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: 192-bit キーを使った AES による暗号化。
    • `ZIP Encryption AES256`: AES encryption using 256-bit キーを使用したAES 暗号化 (パスワードが設定されていた場合のデフォルト)。
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | password | Text | 暗号化が必要な場合に使用するパスワード | @@ -62,11 +62,11 @@ displayed_sidebar: docs 戻り値のステータスオブジェクトには、以下のプロパティが格納されています: -| プロパティ | 型 | 説明 | -| ---------- | ------- | -------------------------------------------------------------------------------------------------------------------------- | -| statusText | Text | エラーメッセージ (あれば):
  • ZIPアーカイブを開けません
  • ZIPアーカイブを作成できません
  • 暗号化にはパスワードが必要です
  • | -| status | Integer | ステータスコード | -| success | Boolean | アーカイブが正常に作成された場合には true、それ以外は false | +| プロパティ | 型 | 説明 | +| ---------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| statusText | Text | Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | +| status | Integer | ステータスコード | +| success | Boolean | アーカイブが正常に作成された場合には true、それ以外は false | ## 例題 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/data-collect.md b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/data-collect.md index 697b41ebe723f4..811ed136e36f10 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/data-collect.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/data-collect.md @@ -95,7 +95,7 @@ Alguns dados são também recolhidos a intervalos regulares. | isEncrypted | Parâmetros | True se o arquivo de dados estiver criptografado | | isEngined | Parâmetros | Verdadeiro se a aplicação for fundida com o Volume Desktop 4D | | isProjectMode | Parâmetros | Verdadeiro se a aplicação for compilada | -| isShadowCopyActivated | Parâmetros | True if the Volume Shadow Copy feature is enabled (Windows only | +| isShadowCopyActivated | Parâmetros | True if the Volume Shadow Copy feature is enabled (Windows only) | | LDAPLogin | Number | Number of calls to `LDAP LOGIN` | | license.sffPrimaryKey | Number | Server master product number | | machine.CPU | Text | Nome, tipo, e velocidade do processador | diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 45e2d318141e58..259294c9be1a8e 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md @@ -75,11 +75,11 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
  • `ZIP Compression standard`: Reduz a compactação (padrão)
  • `ZIP Compression LZMA`: compactação LZMA
  • `ZIP Compression XZ`: compactação XZ
  • `ZIP Compression none`: Sem compactação
  • | +| compression | Integer |
    • `ZIP Compression standard`: Reduz a compactação (padrão)
    • `ZIP Compression LZMA`: compactação LZMA
    • `ZIP Compression XZ`: compactação XZ
    • `ZIP Compression none`: Sem compactação
    | | level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Valores padrão se omitidos:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | A criptografia a usar se uma senha for estabelecida:
    • `ZIP Encryption AES128`: criptografia AES com uma chave de 128-bits.
    • `ZIP Encryption AES192`: criptografia AES com uma chave de 192-bits.
    • `ZIP Encryption AES256`: criptografia AES com chave de 256-bits (padrão se uma senha for estabelecida).
    • `ZIP Encryption none`: os dados não são criptografados (padrão se não estabelecer uma senha)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | -| files | Collection |
  • a collection of `4D. File` or `4D. Folder` objects or
  • uma coleção de objetos com as propriedades abaixo:
  • PropriedadeTipoDescrição
    source4D. File or 4D. FolderFile ou Folder
    destinationText(opcional) especifique uma rota de arquivo relativa para mudar a organização dos conteúdos do arquivo
    optionnumber(opcional) - 'ZIP ignore invisible files' ou 0 para compactar o arquivo inteiro
    | +| files | Collection |
  • a collection of `4D. File` or `4D. Folder` objects or
  • uma coleção de objetos com as propriedades abaixo:
  • PropriedadeTipoDescrição
    source4D. File or 4D. FolderFile ou Folder
    destinationText(opcional) especifique uma rota de arquivo relativa para mudar a organização dos conteúdos do arquivo
    optionnumber(opcional) - 'ZIP ignore invisible files' ou 0 para compactar o arquivo inteiro
    | | callback | 4D. Function | Uma fórmula de callback (retrochamada) que recebe o progresso da compactação (0-100) em $1. | In the *destinationFile* parameter, pass a `4D. File` object describing the ZIP archive to create (name, location, etc.). É recomendado usar a extensão ".zip" se quiser que o arquivo ZIP seja processado automaticamente por um software. @@ -90,11 +90,11 @@ Quando um arquivo for criado, pode usar o comando [ZIP Read archive](#zip-read-a O estado do objeto retornado contém as propriedades abaixo: -| Propriedade | Tipo | Descrição | -| ----------- | ---------- | ----------------------------------------------------------------------------------------------------------- | -| statusText | Text | Mensagem de erro (se houver):
  • Impossível abrir o arquivo ZIP
  • IMpossível criar o arquivo ZIP
  • Uma senha é necessária para criptografia
  • | -| status | Integer | Código de estado | -| success | Parâmetros | True se o arquivo for criado com sucesso, senão false | +| Propriedade | Tipo | Descrição | +| ----------- | ---------- | ------------------------------------------------------ | +| statusText | Text | Mensagem de erro (se houver):
    • Impossível abrir o arquivo ZIP
    • IMpossível criar o arquivo ZIP
    • Uma senha é necessária para criptografia
    | +| status | Integer | Código de estado | +| success | Parâmetros | True se o arquivo for criado com sucesso, senão false | #### Exemplo 1 diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md index 3b3ad9f4c79118..5a96aa04d18680 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/zip-create-archive.md @@ -47,7 +47,7 @@ You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parame | Propriedade | Tipo | Descrição | | ----------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| compression | Integer |
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | +| compression | Integer |
    • `ZIP Compression standard`: Deflate compression (default)
    • `ZIP Compression LZMA`: LZMA compression
    • `ZIP Compression XZ`: XZ compression
    • `ZIP Compression none`: No compression
    | | level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted:
    • `ZIP Compression standard`: 6
    • `ZIP Compression LZMA`: 4
    • `ZIP Compression XZ`: 4
    | | encryption | Integer | The encryption to use if a password is set:
    • `ZIP Encryption AES128`: AES encryption using 128-bit key.
    • `ZIP Encryption AES192`: AES encryption using 192-bit key.
    • `ZIP Encryption AES256`: AES encryption using 256-bit key (default if password is set).
    • `ZIP Encryption none`: Data is not encrypted (default if no password is set)
    | | senha | Text | Uma senha a usar se a criptografia for necessária. | @@ -62,11 +62,11 @@ Once an archive is created, you can use the [ZIP Read archive](zip-read-archive. O estado do objeto retornado contém as propriedades abaixo: -| Propriedade | Tipo | Descrição | -| ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Propriedade | Tipo | Descrição | +| ----------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | statusText | Text | Error message (if any):
    • Cannot open ZIP archive
    • Cannot create ZIP archive
    • Password is required for encryption
    | -| status | Integer | Código de estado | -| success | Parâmetros | True se o arquivo for criado com sucesso, senão false | +| status | Integer | Código de estado | +| success | Parâmetros | True se o arquivo for criado com sucesso, senão false | ## Exemplo 1 From 143bd69d59cb3e293ab212269bda12925205d4bf Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 23 Sep 2026 14:17:58 +0200 Subject: [PATCH 60/60] Update updates.md --- versioned_docs/version-20/Notes/updates.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/versioned_docs/version-20/Notes/updates.md b/versioned_docs/version-20/Notes/updates.md index 5c83651ab64330..234735b6a149c2 100644 --- a/versioned_docs/version-20/Notes/updates.md +++ b/versioned_docs/version-20/Notes/updates.md @@ -11,6 +11,14 @@ Read [**What’s new in 4D 20**](https://blog.4d.com/en-whats-new-in-4d-v20/), t ::: +## 4D 20.9 LTS + +#### Highlights + +- [**Fixed bugs list**](https://bugs.4d.com/fixes?version=20.9): list of all bugs that have been fixed in 4D 20.9 LTS. + + + ## 4D 20.8 LTS #### Highlights