From 97fa6b69430fee90106de5c7a4e2f8e423bec6c8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 31 Aug 2026 18:59:51 +0200 Subject: [PATCH 01/77] 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/77] 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 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/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 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 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 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/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 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 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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 zcmcgxcQjjnppQ{|#VEB$sZp!;rh-zlW^G!th*6_jBekN0wrUimV%FZ95-KfiiPRRO ziiA>Hd%ml`_s)Cgoj1<==lzl7-gEB#-jVNTeiKcN^=PTssX!nQt^O^@9T149AJ{IW zAOpUcr~LGRAEKZ;dN)DUUpWcD4ylKhkroJ4mr8x&atYX{^uKjC2n3?*yZ8{Hp=I|$ zAkHp*h?Yf|;|9(ME-;nNyqY0u8QZ^NOm4k-XT6$~U$eKjF~b6f!#CTeXIh}vtWo>>Yl>hn zrYm5_%OWW z=QqxR*~n1TyMi=TN(@f0i_V*i{>1n6M4CZld?2h2<=uqxc0oavC!=Uek{78Ox=ZMo zaMFyZ377TDx;($>pKg+p@%xU_WNk3KbV?+2rxAD0_0@Xxy^#WIgwjB!vv-u+Zg`x{ zPt`vl&$D*$W-+G4G{#O4dYHJC13qOGTeOQ6Z58a(^x%6#t{IF$dPF9_@OBxuAM+h@ z2zQIerp<*oWQemD=3gRtA)g4oo+agHhG8~l%1}obR9DFKgpTD{P&m^@H;hqLd|<29 zJ2zw(Tg$R|YbjLq1%aV&=O0rZ{m;El4`?iJKE^8}Q z?bfZZ7%7~k^t!efXJI}y$qQGaO81khMruRoZh|mhpZvfz-4iJ7skzE)7US?9ecjRtdz0aF03~fU zchBHPjU@0S7Z-RP<89UVL)%#;GmBig@g=ET{5pCWCc8smU}E*}@H(ttCtj~7EOWxD zMV#0RCF865W}S=FjI9x`-`C-xg$ep4sxDb!mF}h}xsg)@kjP>|8^{}Z!0?|n6 zqY*ZEquLVbJsZz)@3OHJ>4_P_H-9Re_rQEfDv^x%YsQGcSAm3VOv93799evlG|KNx z^GcOQpM}#oqLRMc4BEjx%ncuph2|C1upmS@w0LMZNU`L6U34h{1B@cLY4z;x(X-j* zbDrZ#d3lNwdPC>?L@T~@=7Ri3AAxJLwguH7`z-FR@gYs9NM7vSTptc3=b;&UBME_o za$d}2IP4Y#!t8P}leZhG`T38&ou2K#w@&a|{{HJMuhfA746gc%0Gk_v{L{D!>zb{j z-3Rs#4)4qpbqir39SD!%ym#h}g%Rn7R{)Txgq@uz&2>FaxMq^~*0H7no46d9_~%cM zYS3e(h$CiJR@OCU9C!>S%=yjxwQf4< zlYO4p(We#-ef^pS42_kdcZ?0uwQhqa(v&ska!#7K6)wta5r~|b^Sq*juiPzQ8x42g zs2YcG{QdL!tEu^CvnP)CYi8efqoPi1*43dXmtlpYA_oVD#f1e;E(wd839+H_MyL6x zb2SMG3IBiq*su5Jj&J5n!Eiyfjh|jCj1J~+?M`~jt_VHf`KmqZL_@KXNk9}qCgtmf zA801&Q_RrGbRF)Y*}9=Ic7l^l>h3LmC_AI%>v-(G*QT9e^7YCNE}=jpV^*nCclJP0 zLV@`M*T`(bwTZMGC%@!f zRoQ?*WV|%)*^X2X+fpOWg^2caig?Mt_DbOE=&uggZ}>k?=K&5pI9jjS?xWYZdVaQ; zz_YbG;k4>kC`t(-Dy7c#+a<6B-_G~B>KbW3$Pfa};^@dFA89&Js$aHgiVb-!GLc?& ziy_X>lYK;%q-4}fSu}!5@zSuFTxPm>zOGnWu#%MHsfgPLd^4kCDWw>Nv)t0ga0X2w z`PWzc={MZaF}IZUnKM)4%(W*j&H5dk{pc_ec7vjm3|`08n4?toT=IMxz9uWj9&?Cy z75Xi8`EuV>Y&$PS>Ce9}`fYloPNCQ&Vc&}PvqT9Zj~6F;jGKZhuVJs2z(}0fVl_(l^o-)|n2TB$W7@=Ip#2okr~h@! z0r&DWgK>^G`SBJ@lxYW!GJHG8Fj(vl=U7nA)lOs9tm+|HK!re6>QuXGE1Ljk*z@&t ziw?xLYh3y?*-gc=V3=2+22-RAlQS%i=qqyHjmD<%3oDeyI%_&w4Z-ac&LtZmBMvo& z`N^Ny^C;S}WQZ1rc0SJZ69G5dDO#YRyt(W`T|WAIil@Y;2kHG56y}#jV(wm6M(E z-j|iXC%y$9T3tmt#q3f^+gg^sCu@n~f#V~OK1fCu&JRnw;+1A|iU}4>dBmm5r#wy&hS{l#p+o zGKAD?f6^SLTRbM5X&Yg|%v@O{Ac`Bs!+33#h{~q2s}+%1<$?o02k#_T+Vfg}@s$d% zb!d9XQRP1xfn;LlEbP$2K5WGqCR&8E`E;CD^}A5lrZgN2>($<}VV%wlQ=bT?qt@I?x@}%RA1*1^=5Icgbx~67q@#fGnBSKf3t3<_BfC2hS z#CJSf{qrdOXE>$-Od7sPa#nkZRBJ_hp3PO74r4?|{HfYtdSn&-sr-Wi^NTD{#2q@9!U|Kf5;! zrn`1IqA?gSw?<^8F(zd%m>^H~oi+%tUM(A93{WRPEBKFSa5QBH(Y`I-+zs!luQcGX*5Mu4h_=|1ouDOg zko&=(b4qbZNa98W9a!Ndu2XnFgf#cy`*%!pt}C=FuTkB-0w+;x1cBsd{MKX^I9NG| z&xVOr%hkAGF+IJ|7o~S`ECc&nU0W>8>#Uw)`UPT3a&C-%9ZeMx9ovzgv#gi zuAqx)T=wJJ>V_UoGf7*gY}^k&Be9ELty8(UDQAB+Yb59Gk&ipE+!V#SkI8*TIVN$c1;_Kggc`b2pe2_UC97P~5 zHi~Kqo%BW{LJP^dtNJ{zzq%n&FrWsGifsCnMH8Q(Xl8u1cC|l8;e$q@UobydS7;)9(3kWtX;NixS$P)* zm!*854gbrTOJv=jx^?~%ak6#l)Igt+*vFp_eC|DIrpsuhgt{xSN8lx$kG@=GmRuzw zu6V8LIHALd0!`n`y^2VD>_ur!b#O$`C9#tZaLF(44M}{&0HKX~0K7DZRti41+1;+Y z0h(VQSMy2&3`&2&po`ic>wS~0`*nU1fx*6$6#XyKY11wg&5Em6M2*ItYkklo#l0t% ze$i-Q&2|UI^~>&G$x+GXn!~b>p7yy-Es$KlrHF%B3ieJsMKzpmLMyhXQZLAPP%`og+4*tO{JgW zvLT!8Cwa%O;C`{KGS1G(P`GFQe@}SdvE1dCgLH>=8St2H)T9eF#nZ5JKBOhql@po6 zDfLoqvY0j^k~39dF(*LDdc9D=WC+;=1Qcs~+o(8{OtX$Sz)^r#9peOkKWjNFvR|jLn_z3>Y%t=JA9m6T#L&? znKlxcYZhO3cjYd~Vrx-5_}M0fV><%wsVC{!+2bQ$VJ|Yi9(-}|_7ZxHdBf8w)9)TY zIGAg`POz}!mm)w6_4sSJ`!C|-GpYZSEQhtP0v0>!IOo#Y@p*gyOhwe4Qbs4)NXkDG zQL&3rM-#x9@C!?hBieI1zZ`X_P=AAlXklYaqxWhY(jBj1llM=5u>Y{~5d&k6 z+r8Y%!XNJruQA}jEHJj-6q4u>rw3 zio=VeOk_ly&WRsMPiXz42b`|83=`Jf`XcQUtct!ct&ZQ?MK&L2_2*~xG;K8UNrC{5 zI;o}E`3ag*72-b{IXTM**}Us}NS;oLjK*FvZdr49B|lZgo_Qk{$FVXXvFc?4S^TyT zW|pv@at-_P!EBH;1=31)z22jl)3)(u6?2WET4_c`tPF1XuA?Awe|z&fFeN;F-6lO6Mk42l~?# z5JIq&=Le&(mT_G%?=N|USA?buV*3SG;Cn1W$CryCSq~qkPL`VW&3H53Af4R|mz#)X zd6juHZALC4E6MO<3tI8+`BETVa>JJ=w7JPdQBE71iFn5?kN17&XB+3}^WzE)H@3*9 z|Cp+m##;`p{ups3MrNCu&WHW!!>V7RDS1#Arb_td_lP9d($fUr4ykg=;azW14yI5YR$Ri$ZEKN54sT!yVojU(dXqo1eeb8$*uY4PTSp zaCU-y1b~g9o9lcOqnFBU8P5meEHL3kTKiyz+R`>Z zHvHw#N|Ph*6{Z()q@B@Ya_yM+N<-B{&t=TtQbaTY& zf+hQX*b^!3JFG`V*GK@L8lz+oPR;}d3mOoc^$>_l?RGV8j5IhH$}@p6{L)4c=>Tju z9Hk|04rMX6T}!sgWdsN!%SNP*subxJ04s}K*AW~$cvL*$@+ch+kFM8bHf9y}J?iLs zG9_y+VM$RMuMc&Icj(zkUHnuA-cog(OVo#l)PHBrYE|}Ilf2%g<)_1L6SQL`RvAxL zG@*r6sB^v;=^3$EI2Vm=(qPH^oM}(4@_PnTjg9uAeA+!5)z;odHd@TFy2C(>GXup7 z85==}L{$`L8`GCjkh^zt10q?|2paw)BG&%2H2=>F2 z&_$$Og|LYMeaz^Xt*tyu8pBfBcM6heHpy|Ze!Pcg|1k(h8T%^Qt4GQ(mWfE@30~*6 z5pR^~7jh-f1UOt>j{~OoId;@r?m{fbXyQ7UiW7{nPaVx15rZXYwpgKLBwEvgy-8Q+ z@fN^p3~3lnaqT3l+(i(&+tDVx3(j(||{eyCCw_W)SAfbvH8t52u`jPeBZ(h^A-NY{h&H0gBosa&IrE;s4(`bVL z4D?`2O#%V}3XK0vyS}m*uY?z3OiIvDBCy<#s=3fxr<#^YsIJJVGL9i26K}Y=8UE_iij*Uh+csV6&Mc4lh!Q^yH_0c9) zDZA}?5-N1Wwx~skgw*^w9Nuio4RB}*|WQ%*L$?V_WL$DfBCQ+OD0MQ3@V8mX5!!c7Lz23vt4`Gm< zHz6WiUrVE z|1<^%iZj=13=(T`C>M9(fXSOGub#K|tBw>%($0&yTbHKZl8Unj4CvuFAFDcXw$Wb^?0S3MG8y;2hwpG-u673vr zpJ@m#3y~kkrub|(zP!8+y0s`^;0pAu_fY^)@gachWN~V-r_1?HW|g~rmIDGp<6Ee? zqnZ!Vcz}@2CEaoP<5Srk6W`Xh-)rGK#d(#Yh%{+uxj&^aiq&}RO*lLR>nZCW5m80Q zYAccHDa*blg#&ZI!US4!@>W@YG0m2DmhVdEtkq_($9T6#hyU=rat}U+ip`&Gi7$b= z)(w)@jiaxt(_WqG)`xcZ3IMN8PfsuG@V8*bP_c4)P(%dcqH}z5VEP8B@-)*=fPWg3 z#40J3^F`G9*={)3#la^Bb;>#_(-Xxr7v=tr{){#6T=#tgVDrk~V*lTBCI3b5Zx(ye zl=lAtJX^^A|4+a)tx&pke4tDSzNwIXl41I*a8^t45Iv;EBcDT6v7d0nw(j0<*)rwc zkqB@04-Sq4TGZfH(=NxF>lLGDOE8>quE&y`=yCRXJj{>wP5qoHN~?<6P=-tPa#gRc z=M>g30U;tkW7LGUskE}Gy3CegCN0uUuL!`a0b29lU~hP0$3?=bc-gW_Bgv%j7QHFK_1RcuzTK%{@n>6F zqxpWIJA7{ z&0t%1_rT$y61V!3GJw!~Z?}NK8~6`NtXW^&)5Si7cclOat45yKyg_nptdII$R5?dQ z|DpT&-&f#(#ks!)5XFC5()h12{9lHz=qRGvin#=E{M!*=brYnoV+^Uj>HPFx0J9zn 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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 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/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 zcmY(q1yq|&)IV4#v`8r)+}+)+xD{!z;Kkh?f);moDaDGrLvVL5P+Wpr&|=H`?YIBk zJtxn}%sex5Z|>ZgE5AvEsMs-dfg{j(Fa_;9P*R z67Q-ei4Wf@2o~Z>;_u$o#-TnLA->g-9p$uL-o5+W``-hHORo^{HXzJO9pnm9`YLGR zV8?1?>R@cf>S^cr*8AN%VKGlfBNH1lS8`)B3oCmOy7TrfI&v#h5jrg%C3Yo8Ni$0; zId5k(HE(5g6K@+60aH3LQ8W}`PrnNyy4%E3FtX1T;A{R!5B(Lb zF^8n%!P`(=Q$y&|NOcA|Q){DN>1q}!i=-F^-loLZ03TUBj-F~^3~?xw7ClTwk-ao_ zLD$33B?a`n5A@QLt6q$}A3x3rA|e#2I*CrENlb^UnI9u_?kL%iJOJKHC+Zm6k+0r? z<-E!WVOwPF$%f!DX+?Av6M`|&;2p7!O%OS`lG?lC;$n;q&nt$pGJlxX zU!QZo1A1l=S5{YvsiVeEpDUfEY;%HrM3La+t?~1s{_=ij#*vgZr0K@Dq{%d|h`?H- zwW8?viXi!^X?Ll6zB*YAF*%-OxCf~pdyzIzO-swAA%sT?SRX^=W# zbixr}(nQ#Q5;Fs{O#A=I z>++5H&R$a({*<(EudBSmg8e^i^|g!o zrFXU4d}@1cO2H`&nKvyP9rtFG6`g?rH;b5$AHL|ar_%YuII9eFb-b^G_}z|h{IBTz zCH(!x$o@@-rDtS4mz0a*A`#Xa7@ssnn=$Xa($HEnBqt|@`ofhKm9IkE6x$EZE=d?3 zdok+}wiIQ5qJ}{pm^-nQugB%B^UM11U`>?}BEhIHtePR=(b;yIp|#|A$q8gy%hN&| zv{c$D3tTD>tq<}fs`C4mQt#5KT}$={32%T#o$VL zrD`ER?cYT9rk|wi5;LrvdUZ|xhR@eBFaO>jKRl^8?9MjQgnw$_Ua~#kYTjs#%x!P#g0qbvF}5zU*2cu-qA{9+~2&!Sda7rd^U zzVe4nrOr>9!n{>ThxCvCQCZZGZW|?Cl0Kpp%3r0^j>9o>F-tV_|oJzC2kY@ z7H<(IZv{^UPEHMIf<9e0{sj$_W|iN!GUSA3i)bn%6%=#Ak>>2evD%8vx2*#4@SHd& z*(6e#`0`C$4fbHz7Oo=3IkFa~d|7tv^DsU3=rwds@(#_xdyL(|;512!)T$!Gy2uhu zR|_#aJDPzZZiHSOzem-fyWdqx#UU_7^l8>Y#c^lh`3Y9e1m46R@`4^~UEO?~q7;nm zfR%mT?yspW2w*{O;N{j~utKpy_#kO(boxDTUr&MYyIHf!$~-rFw9d%Cy3MrLZG1JQ zgWsOE+L*u#8a`WQSj0!#bgRM)zj?g;88B^11YZEG+=f2!F zJk;E2`#whLHdndLw$P;4mza5TLeG_pbH5Ysv)3PYHQqI2@QJ z&_ja_X!(&Xr88x3C$AFPXBGpM4uAXb!DJH%^Lwsx4P76?wVr0 zZXKk;y~{qg^~X_h`!!G@fIygnUx>sB8c66tR+&UEZuo6R;Zv>Cq)ADM4%kg4CNY`Y zctV|OEBD#ugd|Epm~e-wDv2` z-MxEhRl6{<7mDIC7JI*`JpPaljK2@Hce88XHbe9NVgKW;u&}hm9W0#JVR)ZI@%H&R zwHPmfL6e!%Db0u&_rt;_7*be5JgtA5Q8jQPrd9;J_}vJsNd@-2@77Ap9Ut@r^Y+5O zjZ<4lPsjl51sOZrYf~D$DU}w88gnSLoLA#Mg2?;f*&*6_sH-hJ@3kCTxW?zRL_`UK zm5g;Re6lG$hOL2Cv7+UfXW3}?m%!f{L3Fh%)11><$_FNli8*TNpOFs zgE#Ud7y@+qmH6zp^W$C+Z2X_%(&eKnbn8=Fy`yy5NH#ZKrvc_i$P*wKYTloL<7V_L zuIe>8rWs)maO%cG*fV$^uiBz10r(lW>*~jo+r_dIb}6 zCb<)JMlxa9o3{AbwatkTdAa=IMzgrD@q0xP2K`GPy2Bo}2iacU^H~A0u-aZRi|gg$qm2xpO&!>;Js>>R~Ccpk*M&r}{ zpQYFfMgOL#9NFT-^G^?@aiWtY5U*%M&oSx3hadm>DVHKWZpWjlD)ogFwcK5VZClwYB{;v zekPz_cN!abN)z*sk9)Z(P_?_HI&Vug^f{l&ey<~hg^Bs{l-BAs6(`lUhEGW1z8pjEF4|6iL{CZEYA=Z6 z5akMUPL#75if_sfn(IED;eEbH$ZJcCumrag1%PjrLXtjnQ0jAmzOFwd35u-xW~Pyx4j!9TYQF+ZkucjTP)W2NcqEA{)Nko zclo`tJpFsLH-fdlrvFZHeE8@0vh!#-`FcMl`>-$hc(`1X5ZGf>vG6p(wlRDfm$$`6 z#^2-rkYM-sW*qOL&&fV!X_tNaY zqa*b)4h1#h{`uTrjBBo*xi-M>rDiaI1E*bae4bMDC8XrOc9nJOwAtQhY+w9k;CyX_ zk4yj|C0?^4qfF-OxXcr@%R83OfT!Q^sr(p8c;LMc?fo#`EsSlWB|_{mZRx79M5g8V z@Y|pT6{HTvoYw)x7jqvYRF3Am5b4PSpRybNaSHWLcJ?kCVe7Es%DZnpZn;T>%N5}m zOUn};lRe|_Za0Jst}WMD8~^7uhyg)1m+wPb9wTzzL~ZcLbZw&RLYov~LFO8)>_bX} zQKWj26C|Xd=i1c$z98R&#%~FwVkQ|iaxziHgJE;rH7Th2&7Yn8rNW__onsGV_4HKu z8ABt_k|Q0bX^o#{g-P?lh9$om170CtLSCF|mU<

  • 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/77] 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/77] 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/77] 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/77] 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# 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/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# 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 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 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/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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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/77] 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 From 482bc77744df7897ea80abc244b6a192629ae284 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 24 Sep 2026 10:10:08 +0200 Subject: [PATCH 61/77] fix link --- docs/ViewPro/getting-started.md | 2 +- versioned_docs/version-20/ViewPro/getting-started.md | 2 +- versioned_docs/version-21-R3/ViewPro/getting-started.md | 2 +- versioned_docs/version-21-R4/ViewPro/getting-started.md | 2 +- versioned_docs/version-21/ViewPro/getting-started.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/ViewPro/getting-started.md b/docs/ViewPro/getting-started.md index b651d1efbf4308..caf96c6e9d1b82 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 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: +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-20/ViewPro/getting-started.md b/versioned_docs/version-20/ViewPro/getting-started.md index 50c1f8a607617b..4efcfe8c733d58 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 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: +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/ViewPro/getting-started.md b/versioned_docs/version-21-R3/ViewPro/getting-started.md index b651d1efbf4308..caf96c6e9d1b82 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 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: +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/ViewPro/getting-started.md b/versioned_docs/version-21-R4/ViewPro/getting-started.md index b651d1efbf4308..caf96c6e9d1b82 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 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: +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/ViewPro/getting-started.md b/versioned_docs/version-21/ViewPro/getting-started.md index 6f79f77ed3ab53..aeb54fd96665d5 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 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: +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) From f0adbad2e1236c9a5ebd48a2ddaab33c308091d0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 24 Sep 2026 10:11:39 +0200 Subject: [PATCH 62/77] New Crowdin updates (#3438) * components.md French * data-collect.md French * updates.md French * updates.md Spanish * updates.md Portuguese, Brazilian * dt_pointer.md French * error-handling.md French * dt_pointer.md French * error-handling.md French * dt_pointer.md French * error-handling.md French * dt_pointer.md French * error-handling.md French --- .../version-20/Notes/updates.md | 8 ++++++++ .../current/Admin/data-collect.md | 2 +- .../current/Concepts/components.md | 2 +- .../current/Concepts/dt_pointer.md | 2 +- .../current/Concepts/error-handling.md | 16 ++++++++-------- .../version-20/Notes/updates.md | 10 +++++++++- .../version-21-R3/Concepts/dt_pointer.md | 2 +- .../version-21-R3/Concepts/error-handling.md | 2 +- .../version-21-R4/Concepts/dt_pointer.md | 2 +- .../version-21-R4/Concepts/error-handling.md | 16 ++++++++-------- .../version-21/Concepts/dt_pointer.md | 2 +- .../version-21/Concepts/error-handling.md | 2 +- .../version-20/Notes/updates.md | 8 ++++++++ 13 files changed, 49 insertions(+), 25 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md index 6dc8e3d48d7861..2c25baf48e4158 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md @@ -11,6 +11,14 @@ Lea las [**novedades de 4D 20**](https://blog.4d.com/en-whats-new-in-4d-v20/), l ::: +## 4D 20.9 LTS + +#### Lo más destacado + +- [**Lista de bugs corregidos**](https://bugs.4d.com/fixes?version=20.9): lista de todos los bugs corregidos en 4D 20.9 LTS. + + + ## 4D 20.8 LTS #### Lo más destacado 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 09d92121b6646a..f2d27b94bbe22c 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 @@ -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 | Vrai si la fonctionnalité "Volume Shadow Copy" est activée (Windows uniquement) | | 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 | 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 7b3f8838973409..d1421e2315a5fe 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/components.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/components.md @@ -9,7 +9,7 @@ Un composant 4D est un ensemble de code et de formulaires 4D représentant une o L'installation et le chargement des composants dans vos projets 4D sont gérés par le [Gestionnaire de dépendances de 4D](../Project/components.md). -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 4D sont également proposés par la communauté 4D. Utilisez la [plateforme 4D Corner](https://corner.4d.com/) pour obtenir la liste détaillée de tous les composants 4D disponibles. 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). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/dt_pointer.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/dt_pointer.md index 4d19e6f45c951a..d89fba2af40016 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/dt_pointer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/dt_pointer.md @@ -142,7 +142,7 @@ Partout où le langage requiert un nom de champ, vous pouvez utiliser un pointeu $ChampPtr:=->[uneTable]CeChamp ``` -Vous pouvez également récupérer un pointeur vers un champ à l’aide de la fonction `Champ`. Par exemple : +Vous pouvez également récupérer un pointeur vers un champ à l’aide de la fonction `Field`. Par exemple : ```4d $FieldPtr:=Field(1;2) 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 c6c377f5debb8f..30e9b067fa2a5f 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. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. Vous voulez gérer à la fois les erreurs [prévisibles et non prévisibles](#predictable-vs-unpredictable-errors) : ```4d var $e:=ds.Employee.new() @@ -293,21 +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 -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 notamment de son origine, vous pouvez utiliser la [boîte de dialogue d'erreur de 4D](../Debugging/basics.md) ou la commande [`Last errors`](../commands/last-errors). -### Error dialog box +### Boîte de dialogue d'erreur -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: +La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. Dépliez la zone **Détails** et cliquez sur le bouton **Enregistrer...** ou **Copier** : ![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: +Les informations détaillées relatives à l'erreur sont ensuite enregistrées dans un fichier texte ou copiées dans le presse-papiers, y compris le contexte et le composant : ![pasted-error](../assets/en/Concepts/error2.png) -### `Last errors` command +### Commande `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. +Vous pouvez appeler la commande [`Last errors`](../commands/last-errors) dans votre code pour obtenir des informations sur les erreurs. Cette commande doit être appelée à partir d'une méthode d'appel sur erreur installée par la commande [`ON ERR CALL`](../commands/on-err-call) ou dans un contexte [`Try ou 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. +Lorsque vous interceptez et traitez les erreurs dans vos applications finales, utilisez [`Last errors`](../commands/last-errors) et veillez à consigner 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-20/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Notes/updates.md index 90741c1da65cc1..2293549241b8d7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Notes/updates.md @@ -11,13 +11,21 @@ Lisez [**Les nouveautés de 4D 20**](https://blog.4d.com/fr-whats-new-in-4d-v20/ ::: +## 4D 20.9 LTS + +#### Points forts + +- [**Liste des bugs corrigés**](https://bugs.4d.com/fixes?version=20.9) : liste de tous les bugs qui ont été corrigés dans 4D 20.9 LTS. + + + ## 4D 20.8 LTS #### Points forts - 4D 20.8 LTS est certifié sur Windows 11 25H2. - 4D 20.8 LTS est certifié sur macOS Tahoe (macOS 26). -- [**Fixed bugs list**](https://bugs.4d.com/fixes?version=20.8): list of all bugs that have been fixed in 4D 20.8 LTS. +- [**Liste des bugs corrigés**](https://bugs.4d.com/fixes?version=20.8) : liste de tous les bugs qui ont été corrigés dans 4D 20.8 LTS. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/dt_pointer.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/dt_pointer.md index 4d19e6f45c951a..d89fba2af40016 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/dt_pointer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/Concepts/dt_pointer.md @@ -142,7 +142,7 @@ Partout où le langage requiert un nom de champ, vous pouvez utiliser un pointeu $ChampPtr:=->[uneTable]CeChamp ``` -Vous pouvez également récupérer un pointeur vers un champ à l’aide de la fonction `Champ`. Par exemple : +Vous pouvez également récupérer un pointeur vers un champ à l’aide de la fonction `Field`. Par exemple : ```4d $FieldPtr:=Field(1;2) 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 aa995d1490f8c2..64e475d66329b3 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. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. Vous voulez gérer à la fois les erreurs [prévisibles et non prévisibles](#predictable-vs-unpredictable-errors) : ```4d var $e:=ds.Employee.new() diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/dt_pointer.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/dt_pointer.md index 4d19e6f45c951a..d89fba2af40016 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/dt_pointer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/dt_pointer.md @@ -142,7 +142,7 @@ Partout où le langage requiert un nom de champ, vous pouvez utiliser un pointeu $ChampPtr:=->[uneTable]CeChamp ``` -Vous pouvez également récupérer un pointeur vers un champ à l’aide de la fonction `Champ`. Par exemple : +Vous pouvez également récupérer un pointeur vers un champ à l’aide de la fonction `Field`. Par exemple : ```4d $FieldPtr:=Field(1;2) 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 c6c377f5debb8f..30e9b067fa2a5f 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. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. Vous voulez gérer à la fois les erreurs [prévisibles et non prévisibles](#predictable-vs-unpredictable-errors) : ```4d var $e:=ds.Employee.new() @@ -293,21 +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 -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 notamment de son origine, vous pouvez utiliser la [boîte de dialogue d'erreur de 4D](../Debugging/basics.md) ou la commande [`Last errors`](../commands/last-errors). -### Error dialog box +### Boîte de dialogue d'erreur -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: +La [boîte de dialogue d'erreur 4D](../Debugging/basics.md) affiche le code et le message à l'utilisateur. Dépliez la zone **Détails** et cliquez sur le bouton **Enregistrer...** ou **Copier** : ![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: +Les informations détaillées relatives à l'erreur sont ensuite enregistrées dans un fichier texte ou copiées dans le presse-papiers, y compris le contexte et le composant : ![pasted-error](../assets/en/Concepts/error2.png) -### `Last errors` command +### Commande `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. +Vous pouvez appeler la commande [`Last errors`](../commands/last-errors) dans votre code pour obtenir des informations sur les erreurs. Cette commande doit être appelée à partir d'une méthode d'appel sur erreur installée par la commande [`ON ERR CALL`](../commands/on-err-call) ou dans un contexte [`Try ou 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. +Lorsque vous interceptez et traitez les erreurs dans vos applications finales, utilisez [`Last errors`](../commands/last-errors) et veillez à consigner 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/Concepts/dt_pointer.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/dt_pointer.md index 4d19e6f45c951a..d89fba2af40016 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/dt_pointer.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/dt_pointer.md @@ -142,7 +142,7 @@ Partout où le langage requiert un nom de champ, vous pouvez utiliser un pointeu $ChampPtr:=->[uneTable]CeChamp ``` -Vous pouvez également récupérer un pointeur vers un champ à l’aide de la fonction `Champ`. Par exemple : +Vous pouvez également récupérer un pointeur vers un champ à l’aide de la fonction `Field`. Par exemple : ```4d $FieldPtr:=Field(1;2) 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 0f09195e5fcef7..b0e2ed710a3c67 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. You want to handle both [predictable and non-predictable](#predictable-vs-unpredictable-errors) errors: +3. Vous voulez gérer à la fois les erreurs [prévisibles et non prévisibles](#predictable-vs-unpredictable-errors) : ```4d var $e:=ds.Employee.new() diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/Notes/updates.md index 210e3c9b7f1e40..d90f6e032059d5 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/Notes/updates.md @@ -11,6 +11,14 @@ Leia [**O que há de novo no 4D 20**](https://blog.4d.com/en-whats-new-in-4d-v20 ::: +## 4D 20.9 LTS + +#### Destaques + +- [**Lista de bugs corrigidos**](https://bugs.4d.com/fixes?version=20.9): lista de todos os erros corrigidos no 4D 20.9 LTS. + + + ## 4D 20.8 LTS #### Destaques From 8e6750528acf768087c363ab8e7bd83f583b8324 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 24 Sep 2026 11:06:38 +0200 Subject: [PATCH 63/77] Feature/custom button (#3437) * 1st edits * fill color, frame width, frame color, update Reference, update button overview * border radius * up to set corner radius command * first final draft * final * Update properties_BackgroundAndBorder.md * moved cornerradius * fix after Vanessa proofread * Update radio_overview.md * Fix formatting of properties list in radio_overview.md * Fix formatting of additional properties list * Fix markdown link formatting in checkbox overview * Update properties_BackgroundAndBorder.md * Fix formatting in properties_BackgroundAndBorder.md * Fix formatting in properties_BackgroundAndBorder.md * after closure --- docs/FormObjects/button_overview.md | 52 +++-- docs/FormObjects/checkbox_overview.md | 25 ++- docs/FormObjects/groupBox.md | 2 +- docs/FormObjects/input_overview.md | 2 +- docs/FormObjects/properties_Appearance.md | 5 +- .../properties_BackgroundAndBorder.md | 188 +++++++++++++++--- .../properties_CoordinatesAndSizing.md | 46 ----- docs/FormObjects/properties_Reference.md | 9 +- docs/FormObjects/radio_overview.md | 11 +- docs/FormObjects/shapes_overview.md | 13 +- docs/FormObjects/text.md | 2 +- docs/Notes/updates.md | 4 + docs/assets/en/FormObjects/button_custom.png | Bin 7798 -> 3194 bytes docs/assets/en/FormObjects/custom-button.png | Bin 0 -> 1320 bytes .../en/FormObjects/custom-radius-runtime.png | Bin 0 -> 1413 bytes docs/assets/en/FormObjects/custom-radius.png | Bin 0 -> 1919 bytes .../object-get-border-style.md | 7 +- .../object-get-corner-radius.md | 10 +- .../object-set-border-style.md | 7 +- .../object-set-corner-radius.md | 28 ++- 20 files changed, 285 insertions(+), 126 deletions(-) create mode 100644 docs/assets/en/FormObjects/custom-button.png create mode 100644 docs/assets/en/FormObjects/custom-radius-runtime.png create mode 100644 docs/assets/en/FormObjects/custom-radius.png diff --git a/docs/FormObjects/button_overview.md b/docs/FormObjects/button_overview.md index 159c5daf9a5dc6..122eb00f90a8f9 100644 --- a/docs/FormObjects/button_overview.md +++ b/docs/FormObjects/button_overview.md @@ -62,7 +62,7 @@ By default, the Regular style has a light gray background with a label in the ce ``` -Only the Regular and Flat styles offer the [Default Button](properties_Appearance.md#default-button) property. +The Regular style offers an [additional property](#additional-properties-for-flat-and-regular-buttons): the [Default Button](properties_Appearance.md#default-button) property. ### Flat @@ -91,7 +91,7 @@ By default, the Flat style has a white background with a label in the center, ro ``` -Only the Regular and Flat styles offer the [Default Button](properties_Appearance.md#default-button) property. +The Flat style offers an [additional property](#additional-properties-for-flat-and-regular-buttons): the [Default Button](properties_Appearance.md#default-button) property. ### Toolbar @@ -326,7 +326,8 @@ On Windows Classic UI theme, this style is not supported. ### Custom -The Custom button style accepts a personalized background picture and allows managing additional parameters such as icon and margin offset. +The Custom button style accepts a personalized background picture and allows managing [additional properties](#additional-properties-for-custom-buttons) such as [icon offset](properties_TextAndPicture.md#icon-offset) and [margins](properties_TextAndPicture.md#horizontal-margin). + ![](../assets/en/FormObjects/button_custom.png) @@ -335,16 +336,26 @@ The Custom button style accepts a personalized background picture and allows man ```code "myButton": { - "type": "button", - "style":"custom", - "text": "", - "customBackgroundPicture": "/RESOURCES/bkgnd.png", - "icon": "/RESOURCES/custom.png", - "textPlacement": "center", - "left": 60, - "top": 160, - "width": 100, - "height": 20 + "type": "button", + "text": "Custom", + "top": 211, + "left": 310, + "width": 112, + "height": 41, + "events": [ + "onClick" + ], + "style": "custom", + "fontWeight": "bold", + "icon": "/RESOURCES/custom.png", + "borderStyle": "custom", + "borderColor": "#696969", + "borderFillColor": "#c0c0c0", + "borderWidth": 2, + "customBackgroundPicture": "", + "textPlacement": "center", + "borderRadius": 5, + "iconFrames": 4 } ``` @@ -361,13 +372,20 @@ All buttons share the same set of basic properties: > (1) Not supported by the [Help](#help) style.
    > (2) Not supported by the [Help](#help), [Flat](#flat) and [Regular](#regular) styles. +### Additional properties for custom buttons -Additional specific properties are available, depending on the [button style](#button-styles): +Additional specific properties are available for [custom](#custom) style buttons: -- Custom: [Background pathname](properties_TextAndPicture.md#background-pathname) - [Horizontal Margin](properties_TextAndPicture.md#horizontal-margin) - [Icon Offset](properties_TextAndPicture.md#icon-offset) - [Vertical Margin](properties_TextAndPicture.md#vertical-margin) -- Flat, Regular: [Default Button](properties_Appearance.md#default-button) +[Background pathname](properties_TextAndPicture.md#background-pathname) - [Border color](./properties_BackgroundAndBorder.md#border-color) - [Border width](./properties_BackgroundAndBorder.md#border-width) - [Corner radius](./properties_BackgroundAndBorder.md#corner-radius) - [Default Button](properties_Appearance.md#default-button) - [Fill color](./properties_BackgroundAndBorder.md#fill-color) - [Horizontal Margin](properties_TextAndPicture.md#horizontal-margin) - [Icon Offset](properties_TextAndPicture.md#icon-offset) - [Vertical Margin](properties_TextAndPicture.md#vertical-margin) + +### Additional properties for flat and regular buttons + +An additional specific property is available for [flat](#flat) and [regular](#regular) style buttons: + +[Default Button](properties_Appearance.md#default-button) ## Supported Events -[On Alternative Click](../Events/onAlternativeClick.md) - [On Begin Drag Over](../Events/onBeginDragOver.md) - [On Clicked](../Events/onClicked.md) - [On Double Clicked](../Events/onDoubleClicked.md) - [On Drag Over](../Events/onDragOver.md) - [On Drop](../Events/onDrop.md) - [On Getting focus](../Events/onGettingFocus.md) - [On Header](../Events/onHeader.md) - [On Load](../Events/onLoad.md) - [On Long Click](../Events/onLongClick.md) - [On Losing focus](../Events/onLosingFocus.md) - [On Mouse Enter](../Events/onMouseEnter.md) - [On Mouse Leave](../Events/onMouseLeave.md) - [On Mouse Move](../Events/onMouseMove.md) - [On Printing Break](../Events/onPrintingBreak.md) - [On Printing Detail](../Events/onPrintingDetail.md) - [On Printing Footer](../Events/onPrintingFooter.md) - [On Unload](../Events/onUnload.md) - [On Validate](../Events/onValidate.md) \ No newline at end of file +[On Alternative Click](../Events/onAlternativeClick.md) - [On Begin Drag Over](../Events/onBeginDragOver.md) - [On Clicked](../Events/onClicked.md) - [On Double Clicked](../Events/onDoubleClicked.md) - [On Drag Over](../Events/onDragOver.md) - [On Drop](../Events/onDrop.md) - [On Getting focus](../Events/onGettingFocus.md) - [On Header](../Events/onHeader.md) - [On Load](../Events/onLoad.md) - [On Long Click](../Events/onLongClick.md) - [On Losing focus](../Events/onLosingFocus.md) - [On Mouse Enter](../Events/onMouseEnter.md) - [On Mouse Leave](../Events/onMouseLeave.md) - [On Mouse Move](../Events/onMouseMove.md) - [On Printing Break](../Events/onPrintingBreak.md) - [On Printing Detail](../Events/onPrintingDetail.md) - [On Printing Footer](../Events/onPrintingFooter.md) - [On Unload](../Events/onUnload.md) - [On Validate](../Events/onValidate.md) + diff --git a/docs/FormObjects/checkbox_overview.md b/docs/FormObjects/checkbox_overview.md index 3016354e29a950..10bc302022e413 100644 --- a/docs/FormObjects/checkbox_overview.md +++ b/docs/FormObjects/checkbox_overview.md @@ -106,6 +106,7 @@ The Regular check box button style is a standard system check box (*i.e.*, a rec } ``` +The Regular style offers an [additional property](#additional-properties-for-flat-and-regular-check-boxes): the [Three-States](properties_Display.md#three-states) property. ### Flat @@ -129,6 +130,7 @@ The Flat check box button style is a minimalist appearance. The Flat style's gra } ``` +The Flat style offers an [additional property](#additional-properties-for-flat-and-regular-check-boxes): the [Three-States](properties_Display.md#three-states) property. ### Toolbar Button @@ -385,11 +387,7 @@ The Disclosure style is named "roundedDisclosure" in the [button style JSON Gram ### Custom -The Custom button style accepts a personalized background picture and allows managing specific properties: - -- [Background pathname](properties_TextAndPicture.md#background-pathname) -- [Icon Offset](properties_TextAndPicture.md#icon-offset) -- [Horizontal Margin](properties_TextAndPicture.md#horizontal-margin) and [Vertical Margin](properties_TextAndPicture.md#vertical-margin) +The Custom check box style accepts a personalized background picture and allows managing [additional properties](#additional-properties-for-custom-check-boxes) such as [icon offset](properties_TextAndPicture.md#icon-offset) and [margins](properties_TextAndPicture.md#horizontal-margin). It is usually associated with a [4-state picture](properties_TextAndPicture.md#number-of-states), that can be used in conjunction with a [4-state](properties_TextAndPicture.md#number-of-states) [background picture](properties_TextAndPicture.md#background-pathname). @@ -426,12 +424,21 @@ All check boxes share the same set of basic properties: > (1) Not supported by the [Regular](#regular) and [Flat](#flat) styles.
    > (2) Not supported by the [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) and [Collapse/Expand](#collapseexpand) styles. -Additional specific properties are available, depending on the [button style](#check-box-button-styles): +### Additional properties for custom check boxes + +Additional specific properties are available for [custom](#custom) style check boxes: + +[Background pathname](properties_TextAndPicture.md#background-pathname) - [Border color](./properties_BackgroundAndBorder.md#border-color) - [Border width](./properties_BackgroundAndBorder.md#border-width) - [Corner radius](./properties_BackgroundAndBorder.md#corner-radius) - [Fill color](./properties_BackgroundAndBorder.md#fill-color) - [Horizontal Margin](properties_TextAndPicture.md#horizontal-margin) - [Icon Offset](properties_TextAndPicture.md#icon-offset) - [Vertical Margin](properties_TextAndPicture.md#vertical-margin) + -- Custom: [Background pathname](properties_TextAndPicture.md#background-pathname) - [Horizontal Margin](properties_TextAndPicture.md#horizontal-margin) - [Icon Offset](properties_TextAndPicture.md#icon-offset) - [Vertical Margin](properties_TextAndPicture.md#vertical-margin) -- Flat, Regular: [Three-States](properties_Display.md#three-states) +### Additional properties for flat and regular check boxes + +An additional specific property is available for [flat](#flat) and [regular](#regular) style check boxes: + +[Three-States](properties_Display.md#three-states) ## Supported Events -[On Begin Drag Over](../Events/onBeginDragOver.md) - [On Clicked](../Events/onClicked.md) - [On Double Clicked](../Events/onDoubleClicked.md) - [On Drag Over](../Events/onDragOver.md) - [On Drop](../Events/onDrop.md) - [On Losing focus](../Events/onLosingFocus.md) - [On Mouse Enter](../Events/onMouseEnter.md) - [On Mouse Leave](../Events/onMouseLeave.md) - [On Mouse Move](../Events/onMouseMove.md) - [On Printing Break](../Events/onPrintingBreak.md) - [On Printing Detail](../Events/onPrintingDetail.md) - [On Printing Footer](../Events/onPrintingFooter.md) - [On Unload](../Events/onUnload.md) - [On Validate](../Events/onValidate.md) \ No newline at end of file +[On Begin Drag Over](../Events/onBeginDragOver.md) - [On Clicked](../Events/onClicked.md) - [On Double Clicked](../Events/onDoubleClicked.md) - [On Drag Over](../Events/onDragOver.md) - [On Drop](../Events/onDrop.md) - [On Losing focus](../Events/onLosingFocus.md) - [On Mouse Enter](../Events/onMouseEnter.md) - [On Mouse Leave](../Events/onMouseLeave.md) - [On Mouse Move](../Events/onMouseMove.md) - [On Printing Break](../Events/onPrintingBreak.md) - [On Printing Detail](../Events/onPrintingDetail.md) - [On Printing Footer](../Events/onPrintingFooter.md) - [On Unload](../Events/onUnload.md) - [On Validate](../Events/onValidate.md) + diff --git a/docs/FormObjects/groupBox.md b/docs/FormObjects/groupBox.md index 88e2282a4b202a..bbd234e81d0a18 100644 --- a/docs/FormObjects/groupBox.md +++ b/docs/FormObjects/groupBox.md @@ -24,6 +24,6 @@ A group box is a static object that allows you to visually assemble multiple for } ``` -#### Supported Properties +## Supported Properties [Bottom](properties_CoordinatesAndSizing.md#bottom) - [CSS Class](properties_Object.md#css-class) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) \ No newline at end of file diff --git a/docs/FormObjects/input_overview.md b/docs/FormObjects/input_overview.md index 7574085fdb6ef2..c2e9931bc4c8d2 100644 --- a/docs/FormObjects/input_overview.md +++ b/docs/FormObjects/input_overview.md @@ -46,7 +46,7 @@ For security reasons, in [multi-style](./properties_Text.md#multi-style) input a -[Allow font/color picker](properties_Text.md#allow-fontcolor-picker) - [Alpha Format](properties_Display.md#alpha-format) - [Auto Spellcheck](properties_Entry.md#auto-spellcheck) - [Background Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Bold](properties_Text.md#bold) - [Boolean format](properties_Display.md#text-when-falsetext-when-true) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Choice List](properties_DataSource.md#choice-list) - [Class](properties_Object.md#css-class) - [Context Menu](properties_Entry.md#context-menu) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Date Format](properties_Display.md#date-format) - [Default value](properties_RangeOfValues.md#default-value) - [Draggable](properties_Action.md#draggable) - [Droppable](properties_Action.md#droppable) - [Enterable](properties_Entry.md#enterable) - [Entry Filter](properties_Entry.md#entry-filter) - [Excluded List](properties_RangeOfValues.md#excluded-list) - [Expression type](properties_Object.md#expression-type) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Hide focus rectangle](properties_Appearance.md#hide-focus-rectangle) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Scroll Bar](properties_Appearance.md#horizontal-scroll-bar) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Multiline](properties_Entry.md#multiline) - [Multi-style](properties_Text.md#multi-style) - [Number Format](properties_Display.md#number-format) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Picture Format](properties_Display.md#picture-format) - [Placeholder](properties_Entry.md#placeholder) - [Print Frame](properties_Print.md#print-frame) - [Required List](properties_RangeOfValues.md#required-list) - [Right](properties_CoordinatesAndSizing.md#right) - [Selection always visible](properties_Entry.md#selection-always-visible) - [Store with default style tags](properties_Text.md#store-with-default-style-tags) - [Text when False/Text when True](properties_Display.md#text-when-falsetext-when-true) - [Time Format](properties_Display.md#time-format) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Scroll Bar](properties_Appearance.md#vertical-scroll-bar) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) - [Wordwrap](properties_Display.md#wordwrap) - [Writing Tools](properties_Entry.md#writing-tools) +[Allow font/color picker](properties_Text.md#allow-fontcolor-picker) - [Alpha Format](properties_Display.md#alpha-format) - [Auto Spellcheck](properties_Entry.md#auto-spellcheck) - [Background Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Bold](properties_Text.md#bold) - [Boolean format](properties_Display.md#text-when-falsetext-when-true) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Choice List](properties_DataSource.md#choice-list) - [Class](properties_Object.md#css-class) - [Context Menu](properties_Entry.md#context-menu) - [Corner radius](./properties_BackgroundAndBorder.md#corner-radius) - [Date Format](properties_Display.md#date-format) - [Default value](properties_RangeOfValues.md#default-value) - [Draggable](properties_Action.md#draggable) - [Droppable](properties_Action.md#droppable) - [Enterable](properties_Entry.md#enterable) - [Entry Filter](properties_Entry.md#entry-filter) - [Excluded List](properties_RangeOfValues.md#excluded-list) - [Expression type](properties_Object.md#expression-type) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Hide focus rectangle](properties_Appearance.md#hide-focus-rectangle) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Scroll Bar](properties_Appearance.md#horizontal-scroll-bar) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Multiline](properties_Entry.md#multiline) - [Multi-style](properties_Text.md#multi-style) - [Number Format](properties_Display.md#number-format) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Picture Format](properties_Display.md#picture-format) - [Placeholder](properties_Entry.md#placeholder) - [Print Frame](properties_Print.md#print-frame) - [Required List](properties_RangeOfValues.md#required-list) - [Right](properties_CoordinatesAndSizing.md#right) - [Selection always visible](properties_Entry.md#selection-always-visible) - [Store with default style tags](properties_Text.md#store-with-default-style-tags) - [Text when False/Text when True](properties_Display.md#text-when-falsetext-when-true) - [Time Format](properties_Display.md#time-format) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Variable or Expression](properties_Object.md#variable-or-expression) - [Vertical Scroll Bar](properties_Appearance.md#vertical-scroll-bar) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) - [Wordwrap](properties_Display.md#wordwrap) - [Writing Tools](properties_Entry.md#writing-tools) ## Supported Events diff --git a/docs/FormObjects/properties_Appearance.md b/docs/FormObjects/properties_Appearance.md index 828b28d20f90a6..80d0abe8a7c336 100644 --- a/docs/FormObjects/properties_Appearance.md +++ b/docs/FormObjects/properties_Appearance.md @@ -15,10 +15,11 @@ In addition, on macOS, the default button property modifies the button's appeara > Button must have a standard height to get the default button appearance. -On Windows, the concept of "recommended choice" is not supported: only the focused button has a different appearance at runtime and the **Enter** key is bound to the focused button. However, in the 4D form editor, the default button is represented with a blue outline: +On Windows, the concept of "recommended choice" is not supported: only the focused button has a different appearance at runtime and the **Enter** key is bound to the focused button. However, in the 4D form editor, the default button is represented with a blue outline when using [regular](button_overview.md#regular) or [flat](button_overview.md#regular) style (no specific outline is drawn when using [custom](button_overview.md#custom) style): ![](../assets/en/FormObjects/property_defaultButtonWindows.en.png) + #### JSON Grammar |Name|Data Type|Possible Values| @@ -27,7 +28,7 @@ defaultButton|boolean|true, false | #### Objects Supported -[Regular Button](button_overview.md#regular) - [Flat Button](button_overview.md#regular) +[Custom Button](button_overview.md#custom) - [Regular Button](button_overview.md#regular) - [Flat Button](button_overview.md#regular) --- diff --git a/docs/FormObjects/properties_BackgroundAndBorder.md b/docs/FormObjects/properties_BackgroundAndBorder.md index c43ef42455b7d4..c38ec4a76dcace 100644 --- a/docs/FormObjects/properties_BackgroundAndBorder.md +++ b/docs/FormObjects/properties_BackgroundAndBorder.md @@ -26,82 +26,164 @@ You can also set this property using the [`OBJECT SET RGB COLORS`](../commands/o --- -## Background Color / Fill Color +## Background Color -Defines the background color of an object. +See [**Fill Color**](#fill-color). "Background color" is used in the Property list for [List Box](listbox_overview.md), [List Box Column](listbox-column.md) and [List Box Footer](listbox-header-footer.md#footers) objects. -In the case of a list box, by default *Automatic* is selected: the column uses the background color set at the list box level. +--- -You can also set this property using the [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) command. +## Background Color Expression {#background-color-expression} + +`Selection and collection type list boxes` + +An expression or a variable (array variables cannot be used) to apply a custom background color to each row of the list box. The expression or variable will be evaluated for each row displayed and must return a RGB color value. For more information, refer to the description of the [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) command. + +You can also set this property using the [`LISTBOX SET PROPERTY`](../commands/listbox-set-property) command with `lk background color expression` constant. + +>With collection or entity selection type list boxes, this property can also be set using a [Meta Info Expression](properties_Text.md#meta-info-expression). #### JSON Grammar |Name|Data Type|Possible Values| |---|---|---| -|fill|string|any css value; "transparent"; "automatic"| +|rowFillSource|string|An expression returning a RGB color value| #### Objects Supported -[Hierarchical List](list_overview.md) - [Input](input_overview.md) - [List Box](listbox_overview.md) - [List Box Column](listbox-column.md) - [List Box Footer](listbox-header-footer.md#footers) - [Oval](shapes_overview.md#oval) - [Rectangle](shapes_overview.md#rectangle) - [Text Area](text.md) +[List Box](listbox_overview.md) - [List Box Column](listbox-column.md) #### Commands -[`LISTBOX Get row color`](../commands/listbox-get-row-color) - [`LISTBOX SET ROW COLOR`](../commands/listbox-set-row-color) - [`OBJECT GET RGB COLORS`](../commands/object-get-rgb-colors) - [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) +[`LISTBOX Get property`](../commands/listbox-get-property) - [`LISTBOX SET PROPERTY`](../commands/listbox-set-property) +--- +## Border Color {#border-color} -#### See also +Defines the color of the inner border for to [custom buttons](./button_overview.md#custom), [custom check boxes](./checkbox_overview.md#custom), or [custom radio buttons](./radio_overview.md#custom). In addition, [custom buttons](./button_overview.md#custom) must have the ["custom" Border Line Style](#border-line-style). In other contexts, the property is ignored. -[Transparent](#transparent) +Note that the border is only displayed when its [width](#broder-width) is > 0. ---- +#### JSON Grammar -## Background Color Expression {#background-color-expression} +|Name|Data Type|Possible Values| +|---|---|---| +|borderColor|string|any css value; "transparent"; "automatic"| -`Selection and collection type list boxes` -An expression or a variable (array variables cannot be used) to apply a custom background color to each row of the list box. The expression or variable will be evaluated for each row displayed and must return a RGB color value. For more information, refer to the description of the [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) command in the *4D Language Reference manual*. +#### Objects Supported -You can also set this property using the [`LISTBOX SET PROPERTY`](../commands/listbox-set-property) command with `lk background color expression` constant. +[Custom Button](./button_overview.md#custom) (with ["custom" Border Line Style](#border-line-style)) - [Custom Check Box](checkbox_overview.md#custom) - [Custom Radio Button](radio_overview.md#custom) + + +#### Commands + +[`OBJECT GET RGB COLORS`](../commands/object-get-rgb-colors) - [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) + + + +## Border Line Style {#border-line-style} + +Allows setting a standard style for the object border. + +:::note + +For [custom buttons](./button_overview.md#custom), the **custom** border line style enables the inner frame design, that includes a set of extra properties: [Fill color](#fill-color), [Frame color](#frame-color), [Frame width](#frame-width), and [Corner radius](./properties_BackgroundAndBorder.md#corner-radius). + +![](../assets/en/FormObjects/custom-button.png) + +::: + + +:::tip Related blog post + +[Customize Buttons, Radio Buttons, and Check Boxes with Background and Border Properties](https://blog.4d.com/customize-buttons-radio-buttons-and-check-boxes-with-background-and-border-properties). + +::: ->With collection or entity selection type list boxes, this property can also be set using a [Meta Info Expression](properties_Text.md#meta-info-expression). #### JSON Grammar |Name|Data Type|Possible Values| |---|---|---| -|rowFillSource|string|An expression returning a RGB color value| +|borderStyle|text |"system", "none", "solid", "dotted", "raised", "sunken", "double", "custom"| + + #### Objects Supported -[List Box](listbox_overview.md) - [List Box Column](listbox-column.md) +[4D View Pro Area](viewProArea_overview.md) - [4D Write Pro areas](writeProArea_overview.md) - [Buttons](button_overview.md) - [Button Grid](buttonGrid_overview.md) - [Hierarchical List](list_overview.md) - [Input](input_overview.md) - [List Box](listbox_overview.md) - [Picture Button](pictureButton_overview.md) - [Picture Pop-up Menu](picturePopupMenu_overview.md) - [Plug-in Area](pluginArea_overview.md) - [Progress Indicator](progressIndicator.md) - [Ruler](ruler.md) - [Spinner](spinner.md) - [Stepper](stepper.md) - [Subform](subform_overview.md) - [Text Area](text.md) - [Web Area](webArea_overview.md) + #### Commands -[`LISTBOX Get property`](../commands/listbox-get-property) - [`LISTBOX SET PROPERTY`](../commands/listbox-set-property) +[`OBJECT Get border style`](../commands/object-get-border-style) - [`OBJECT SET BORDER STYLE`](../commands/object-set-border-style) --- -## Border Line Style {#border-line-style} +## Border Width {#border-width} -Allows setting a standard style for the object border. +Defines the width of the inner border for to [custom buttons](./button_overview.md#custom), [custom check boxes](./checkbox_overview.md#custom), or [custom radio buttons](./radio_overview.md#custom). In addition, [custom buttons](./button_overview.md#custom) must have the ["custom" Border Line Style](#border-line-style). In other contexts, the property is ignored. + +The value is expressed in pixels. #### JSON Grammar |Name|Data Type|Possible Values| |---|---|---| -|borderStyle|text |"system", "none", "solid", "dotted", "raised", "sunken", "double"| +|borderWidth|number|Integer value (pixels). Minimum value = 0| + #### Objects Supported -[4D View Pro Area](viewProArea_overview.md) - [4D Write Pro areas](writeProArea_overview.md) - [Buttons](button_overview.md) - [Button Grid](buttonGrid_overview.md) - [Hierarchical List](list_overview.md) - [Input](input_overview.md) - [List Box](listbox_overview.md) - [Picture Button](pictureButton_overview.md) - [Picture Pop-up Menu](picturePopupMenu_overview.md) - [Plug-in Area](pluginArea_overview.md) - [Progress Indicator](progressIndicator.md) - [Ruler](ruler.md) - [Spinner](spinner.md) - [Stepper](stepper.md) - [Subform](subform_overview.md) - [Text Area](text.md) - [Web Area](webArea_overview.md) +[Custom Button](./button_overview.md#custom) (with ["custom" Border Line Style](#border-line-style)) - [Custom Check Box](checkbox_overview.md#custom) - [Custom Radio Button](radio_overview.md#custom) -#### Commands +--- -[`OBJECT Get border style`](../commands/object-get-border-style) - [`OBJECT SET BORDER STYLE`](../commands/object-set-border-style) +## Corner Radius + +
    History + +|Release|Changes| +|---|---| +|21 R5|Support for custom-styled buttons, radio buttons and check boxes | +|19 R7|Support for inputs and text areas| + +
    +Defines the corner roundness (in pixels) of the object. By default, the radius value is 0 pixels. You can change this property to draw rounded objects with custom shapes: + +![](../assets/en/FormObjects/shape_rectangle.png) + +Minimum value is 0, in this case a standard non-rounded object rectangle is drawn. +Maximum value depends on the rectangle size (it cannot exceed half the size of the shortest rectangle side) and is calculated dynamically. + +In [text areas](./text.md) and [inputs](./input_overview.md): + +- the corner radius property is only available with "none", "solid", or "dotted" [border line styles](#border-line-style), +- the corner roundness is drawn **outside** the area of the object (the object appears larger in the form but its [width](./properties_CoordinatesAndSizing.md#width) and [height](./properties_CoordinatesAndSizing.md#height) are not extended). + +![](../assets/en/FormObjects/radius-text.png) + + +In [custom buttons](./button_overview.md#custom) (with a ["custom" Border Line Style](#border-line-style)), [custom check boxes](checkbox_overview.md#custom) and [custom radio buttons](radio_overview.md#custom), the corner radius is drawn **inside** the area of the object. + + +#### JSON Grammar + +|Name|Data Type|Possible Values| +|---|---|---| +|borderRadius|integer |minimum: 0| + +#### Objects Supported + +[Custom Button](./button_overview.md#custom) (with ["custom" Border Line Style](#border-line-style)) - [Custom Check Box](checkbox_overview.md#custom) - [Input](input_overview.md) - [Rectangle](shapes_overview.md#rectangle) - [Text Area](text.md) - [Custom Radio Button](radio_overview.md#custom) + +#### Commands + +[OBJECT GET CORNER RADIUS](../commands/object-get-corner-radius) - [OBJECT SET CORNER RADIUS](../commands/object-set-corner-radius) --- @@ -122,6 +204,64 @@ Describes dotted line type as a sequence of black and white points. --- +## Fill Color {#fill-color} + +Defines the fill color / background color of an object. It can be defined for some standard objects (`fill` JSON property) or ["custom style" objects](#custom-style-button-check-box-or-radio-button) (`borderFillColor` JSON property). + + +### Standard objects + +:::note + +This property is named [**Background color**](#background-color) with [List Box](listbox_overview.md), [List Box Column](listbox-column.md) and [List Box Footer](listbox-header-footer.md#footers) objects. + +::: + +In the case of a list box, by default *Automatic* is selected: the column uses the background color set at the list box level. + +#### JSON Grammar + +|Name|Data Type|Possible Values| +|---|---|---| +|fill|string|any css value; "transparent"; "automatic"| + +#### Objects Supported + +[Hierarchical List](list_overview.md) - [Input](input_overview.md) - [List Box](listbox_overview.md) - [List Box Column](listbox-column.md) - [List Box Footer](listbox-header-footer.md#footers) - [Oval](shapes_overview.md#oval) - [Rectangle](shapes_overview.md#rectangle) - [Text Area](text.md) + +#### Commands + +[`LISTBOX Get row color`](../commands/listbox-get-row-color) - [`LISTBOX SET ROW COLOR`](../commands/listbox-set-row-color) - [`OBJECT GET RGB COLORS`](../commands/object-get-rgb-colors) - [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) + + +### Custom button, custom check box, or custom radio button + +This property allows you to assign a fill color attribute to [custom buttons](./button_overview.md#custom), [custom check boxes](./checkbox_overview.md#custom), or [custom radio buttons](./radio_overview.md#custom). In addition, [custom buttons](./button_overview.md#custom) must have the ["custom" Border Line Style](#border-line-style). In other contexts, the property is ignored. + + + +#### JSON Grammar + +|Name|Data Type|Possible Values| +|---|---|---| +|borderFillColor|string|any css value; "transparent"; "automatic"| + +#### Objects Supported + +[Custom Button](./button_overview.md#custom) (with ["custom" Border Line Style](#border-line-style)) - [Custom Check Box](checkbox_overview.md#custom) - [Custom Radio Button](radio_overview.md#custom) + + +#### Commands + +[`OBJECT GET RGB COLORS`](../commands/object-get-rgb-colors) - [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) + + +#### See also + +[Transparent](#transparent) + + + ## Hide extra blank rows Controls the display of extra blank rows added at the bottom of a list box object. By default, 4D adds such extra rows to fill the empty area: diff --git a/docs/FormObjects/properties_CoordinatesAndSizing.md b/docs/FormObjects/properties_CoordinatesAndSizing.md index 89292325ac7553..0181dc32f190e0 100644 --- a/docs/FormObjects/properties_CoordinatesAndSizing.md +++ b/docs/FormObjects/properties_CoordinatesAndSizing.md @@ -135,52 +135,6 @@ Top coordinate of the object in the form. --- -## Corner Radius - -
    History - -|Release|Changes| -|---|---| -|19 R7|Support for inputs and text areas| - -
    - -Defines the corner roundness (in pixels) of the object. By default, the radius value is 0 pixels. You can change this property to draw rounded objects with custom shapes: - -![](../assets/en/FormObjects/shape_rectangle.png) - -Minimum value is 0, in this case a standard non-rounded object rectangle is drawn. -Maximum value depends on the rectangle size (it cannot exceed half the size of the shortest rectangle side) and is calculated dynamically. - -:::note - -With [text areas](text.md) and [inputs](input_overview.md): - -- the corner radius property is only available with "none", "solid", or "dotted" [border line styles](properties_BackgroundAndBorder.md#border-line-style), -- the corner roundness is drawn outside the area of the object (the object appears larger in the form but its [width](properties_CoordinatesAndSizing.md#width) and [height](properties_CoordinatesAndSizing.md#height) are not extended). - -![](../assets/en/FormObjects/radius-text.png) - -::: - -You can also set this property using the [OBJECT Get corner radius](../commands/object-get-corner-radius) and [OBJECT SET CORNER RADIUS](../commands/object-set-corner-radius) commands. - -#### JSON Grammar - -|Name|Data Type|Possible Values| -|---|---|---| -|borderRadius|integer |minimum: 0| - -#### Objects Supported - -[Input](input_overview.md) - [Rectangle](shapes_overview.md#rectangle) - [Text Area](text.md) - -#### Commands - -[OBJECT GET CORNER RADIUS](../commands/object-get-corner-radius) - [OBJECT SET CORNER RADIUS](../commands/object-set-corner-radius) - - ---- ## Height diff --git a/docs/FormObjects/properties_Reference.md b/docs/FormObjects/properties_Reference.md index 5dad9f8abe5213..3155eb75ad80d2 100644 --- a/docs/FormObjects/properties_Reference.md +++ b/docs/FormObjects/properties_Reference.md @@ -40,8 +40,11 @@ You will find in this page a comprehensive list of all object properties sorted |[`automaticInsertion`](properties_DataSource.md#automatic-insertion)|Enables automatically adding a value to a list when a user enters a value that is not in the object's associated choice list.|true, false
    | |**b**||| |[`booleanFormat`](properties_Display.md#text-when-falsetext-when-true)|Specifies only two possible values.|true, false| -|[`borderRadius`](properties_CoordinatesAndSizing.md#corner-radius)|The radius value for round rectangles. |minimum: 0| -|[`borderStyle`](properties_BackgroundAndBorder.md#border-line-style)|Allows setting a standard style for the object border. |"system", "none", "solid", "dotted", "raised", "sunken", "double"| +|[`borderColor`](./properties_BackgroundAndBorder.md#frame-color)|Defines the border (frame) color of a custom-styled button, check box, or radio button. |Any CSS value, "transparent", "automatic". Must be used in conjunction with the "custom" style option.| +|[`borderFillColor`](properties_BackgroundAndBorder.md#fill-color)|Defines the background color of a custom-styled button, check box, or radio button. |Any CSS value, "transparent", "automatic". Must be used in conjunction with the "custom" style option.| +|[`borderRadius`](properties_BackgroundAndBorder.md#corner-radius)|The radius value for round rectangles. |minimum: 0| +|[`borderStyle`](properties_BackgroundAndBorder.md#border-line-style)|Allows setting a standard style for the object border. |"system", "none", "solid", "dotted", "raised", "sunken", "double", "custom"| +|[`borderWidth`](./properties_BackgroundAndBorder.md#frame-width)|Defines the border width of a custom-styled button, check box, or radio button. |minimum: 0. Must be used in conjunction with the "custom" style option.| |[`bottom`](properties_CoordinatesAndSizing.md#bottom)|Positions an object at the bottom (centered).|minimum: 0| |**c**||| |[`choiceList`](properties_DataSource.md#choice-list)|A list of choices associated with an object|A list of choices| @@ -79,7 +82,7 @@ You will find in this page a comprehensive list of all object properties sorted |[`events`](Events/overview.md)|List of all events selected for the object or form|Collection of event names, e.g. ["onClick","onDataChange"...].| |[`excludedList`](properties_RangeOfValues.md#excluded-list)|Allows setting a list whose values cannot be entered in the column.|A list of values to be excluded.| |**f**||| -|[`fill`](properties_BackgroundAndBorder.md#background-color--fill-color)|Defines the background color of an object. |Any CSS value, "transparent", "automatic"| +|[`fill`](properties_BackgroundAndBorder.md#fill-color)|Defines the background color of an object. |Any CSS value, "transparent", "automatic"| |[`focusable`](properties_Entry.md#focusable)|Indicates whether the object can have the focus (and can thus be activated by the keyboard for instance)|true, false| |[`fontFamily`](properties_Text.md#font)|Specifies the name of font family used in the object. |CSS font family name | |[`fontSize`](properties_Text.md#font-size)|Sets the font size in points when no font theme is selected|minimum: 0| diff --git a/docs/FormObjects/radio_overview.md b/docs/FormObjects/radio_overview.md index 4bd32fd27586ed..81106f94fcfe4a 100644 --- a/docs/FormObjects/radio_overview.md +++ b/docs/FormObjects/radio_overview.md @@ -158,7 +158,7 @@ The Disclosure style is named "roundedDisclosure" in the [button style JSON Gram ### Custom -The Custom radio button style accepts a personalized background picture and allows managing additional parameters such as [icon offset](properties_TextAndPicture.md#icon-offset) and [margins](properties_TextAndPicture.md#horizontal-margin). +The Custom radio button style accepts a personalized background picture and allows managing [additional properties](#additional-properties-for-custom-radio-buttons) such as [icon offset](properties_TextAndPicture.md#icon-offset) and [margins](properties_TextAndPicture.md#horizontal-margin). ## Supported properties @@ -170,11 +170,14 @@ All radio buttons share the same set of basic properties: > (1) Not supported by the [Regular](#regular) and [Flat](#flat) styles.
    > (2) Not supported by the [Regular](#regular), [Flat](#flat), [Disclosure](#disclosure) and [Collapse/Expand](#collapseexpand) styles. -Additional specific properties are available depending on the [button style](#button-styles): -- Custom: [Background pathname](properties_TextAndPicture.md#background-pathname) - [Horizontal Margin](properties_TextAndPicture.md#horizontal-margin) - [Icon Offset](properties_TextAndPicture.md#icon-offset) - [Vertical Margin](properties_TextAndPicture.md#vertical-margin) +### Additional properties for custom radio buttons + +Additional specific properties are available for [custom](#custom) style radio buttons: + +[Background pathname](properties_TextAndPicture.md#background-pathname) - [Border color](./properties_BackgroundAndBorder.md#border-color) - [Border width](./properties_BackgroundAndBorder.md#border-width) - [Corner radius](./properties_BackgroundAndBorder.md#corner-radius) - [Fill color](./properties_BackgroundAndBorder.md#fill-color) - [Horizontal Margin](properties_TextAndPicture.md#horizontal-margin) - [Icon Offset](properties_TextAndPicture.md#icon-offset) - [Vertical Margin](properties_TextAndPicture.md#vertical-margin) ## Supported Events -[On Begin Drag Over](../Events/onBeginDragOver.md) - [On Clicked](../Events/onClicked.md) - [On Double Clicked](../Events/onDoubleClicked.md) - [On Drag Over](../Events/onDragOver.md) - [On Drop](../Events/onDrop.md) - [On Getting focus](../Events/onGettingFocus.md) - [On Header](../Events/onHeader.md) - [On Load](../Events/onLoad.md) - [On Losing focus](../Events/onLosingFocus.md) - [On Mouse Enter](../Events/onMouseEnter.md) - [On Mouse Leave](../Events/onMouseLeave.md) - [On Mouse Move](../Events/onMouseMove.md) - [On Printing Break](../Events/onPrintingBreak.md) - [On Printing Detail](../Events/onPrintingDetail.md) - [On Printing Footer](../Events/onPrintingFooter.md) - [On Unload](../Events/onUnload.md) - [On Validate](../Events/onValidate.md) \ No newline at end of file +[On Begin Drag Over](../Events/onBeginDragOver.md) - [On Clicked](../Events/onClicked.md) - [On Double Clicked](../Events/onDoubleClicked.md) - [On Drag Over](../Events/onDragOver.md) - [On Drop](../Events/onDrop.md) - [On Getting focus](../Events/onGettingFocus.md) - [On Header](../Events/onHeader.md) - [On Load](../Events/onLoad.md) - [On Losing focus](../Events/onLosingFocus.md) - [On Mouse Enter](../Events/onMouseEnter.md) - [On Mouse Leave](../Events/onMouseLeave.md) - [On Mouse Move](../Events/onMouseMove.md) - [On Printing Break](../Events/onPrintingBreak.md) - [On Printing Detail](../Events/onPrintingDetail.md) - [On Printing Footer](../Events/onPrintingFooter.md) - [On Unload](../Events/onUnload.md) - [On Validate](../Events/onValidate.md) diff --git a/docs/FormObjects/shapes_overview.md b/docs/FormObjects/shapes_overview.md index 6b2af9bd147015..f99ba880e3b8f9 100644 --- a/docs/FormObjects/shapes_overview.md +++ b/docs/FormObjects/shapes_overview.md @@ -16,7 +16,7 @@ Shapes are [static objects](formObjects_overview.md#active-and-static-objects) t A static rectangle is a decorative object for forms. Rectangles are constrained to squared shapes. -The design of rectangles is controlled through many properties (color, line thickness, pattern, etc.). Specifically, the [roundness](properties_CoordinatesAndSizing.md#corner-radius) of its corners can be defined. +The design of rectangles is controlled through many properties (color, line thickness, pattern, etc.). Specifically, the [roundness](properties_BackgroundAndBorder.md#corner-radius) of its corners can be defined. ![](../assets/en/FormObjects/shapes_rectangle2.png) @@ -34,8 +34,9 @@ The design of rectangles is controlled through many properties (color, line thic ``` -#### Supported Properties -[Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Dotted Line Type](properties_BackgroundAndBorder.md#dotted-line-type) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Left](properties_CoordinatesAndSizing.md#left) - [Line Color](properties_BackgroundAndBorder.md#line-color) - [Line Width](properties_BackgroundAndBorder.md#line-width) - [Object Name](properties_Object.md#object-name) - [Right](properties_CoordinatesAndSizing.md#right) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) +### Supported Properties + +[Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](./properties_BackgroundAndBorder.md#corner-radius) - [Dotted Line Type](properties_BackgroundAndBorder.md#dotted-line-type) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Left](properties_CoordinatesAndSizing.md#left) - [Line Color](properties_BackgroundAndBorder.md#line-color) - [Line Width](properties_BackgroundAndBorder.md#line-width) - [Object Name](properties_Object.md#object-name) - [Right](properties_CoordinatesAndSizing.md#right) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) ## Line @@ -84,7 +85,8 @@ Result: -#### Supported Properties +### Supported Properties + [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Dotted Line Type](properties_BackgroundAndBorder.md#dotted-line-type) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Left](properties_CoordinatesAndSizing.md#left) - [Line Color](properties_BackgroundAndBorder.md#line-color) - [Line Width](properties_BackgroundAndBorder.md#line-width) - [Object Name](properties_Object.md#object-name) - [Right](properties_CoordinatesAndSizing.md#right) - [startPoint](#startpoint-property) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) ## Oval @@ -107,5 +109,6 @@ A static oval is a decorative object for forms. Oval objects can be used to draw ``` -#### Supported Properties +### Supported Properties + [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Dotted Line Type](properties_BackgroundAndBorder.md#dotted-line-type) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Left](properties_CoordinatesAndSizing.md#left) - [Line Color](properties_BackgroundAndBorder.md#line-color) - [Line Width](properties_BackgroundAndBorder.md#line-width) - [Object Name](properties_Object.md#object-name) - [Right](properties_CoordinatesAndSizing.md#right) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) \ No newline at end of file diff --git a/docs/FormObjects/text.md b/docs/FormObjects/text.md index 1dc1be11e557af..558a912cce5ca1 100644 --- a/docs/FormObjects/text.md +++ b/docs/FormObjects/text.md @@ -51,4 +51,4 @@ Once a text is rotated, you can still change its size or position, as well as al -[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](properties_CoordinatesAndSizing.md#corner-radius) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) +[Bold](properties_Text.md#bold) - [Border Line Style](properties_BackgroundAndBorder.md#border-line-style) - [Bottom](properties_CoordinatesAndSizing.md#bottom) - [Class](properties_Object.md#css-class) - [Corner radius](./properties_BackgroundAndBorder.md#corner-radius) - [Fill Color](properties_BackgroundAndBorder.md#background-color--fill-color) - [Font](properties_Text.md#font) - [Font Color](properties_Text.md#font-color) - [Font Size](properties_Text.md#font-size) - [Height](properties_CoordinatesAndSizing.md#height) - [Horizontal Alignment](properties_Text.md#horizontal-alignment) - [Horizontal Sizing](properties_ResizingOptions.md#horizontal-sizing) - [Italic](properties_Text.md#italic) - [Left](properties_CoordinatesAndSizing.md#left) - [Object Name](properties_Object.md#object-name) - [Orientation](properties_Text.md#orientation) - [Right](properties_CoordinatesAndSizing.md#right) - [Title](properties_Object.md#title) - [Top](properties_CoordinatesAndSizing.md#top) - [Type](properties_Object.md#type) - [Underline](properties_Text.md#underline) - [Vertical Sizing](properties_ResizingOptions.md#vertical-sizing) - [Visibility](properties_Display.md#visibility) - [Width](properties_CoordinatesAndSizing.md#width) diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md index 4794856b40c058..92db778c0928ca 100644 --- a/docs/Notes/updates.md +++ b/docs/Notes/updates.md @@ -13,9 +13,13 @@ 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). - 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. +- New inner border design for [custom buttons](../FormObjects/button_overview.md#custom), [custom check boxes](../FormObjects/checkbox_overview.md#custom) and [custom radio buttons](../FormObjects/radio_overview.md#custom): support of [fill color](../FormObjects/properties_BackgroundAndBorder.md#fill-color) and [corner radius](../FormObjects/properties_BackgroundAndBorder.md#corner-radius) properties; new [border color](../FormObjects/properties_BackgroundAndBorder.md#border-color) and [border width](../FormObjects/properties_BackgroundAndBorder.md#border-width) properties. - 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. +#### Behavior changes + +- For consistency, the **corner radius** property has been moved from the ["Coordinates & Sizing"](../FormObjects/properties_CoordinatesAndSizing.md) to the ["Background and Border"](../FormObjects/properties_BackgroundAndBorder.md#corner-radius) section of the Property List. diff --git a/docs/assets/en/FormObjects/button_custom.png b/docs/assets/en/FormObjects/button_custom.png index 150980cdb5f79a81bc357ab56bb85acf8b315dc2..7779b50bc22c2a8cafefd8b21af2e72fc6eb93a6 100644 GIT binary patch delta 3175 zcmV-t44CuwJo*?RiBL{Q4GJ0x0000DNk~Le0001c0000#2nGNE0Kg8n1(6{%e+&;v zL_t(|UhSMsY*oh<$NzILK?1iJM@l6cEP|^-G0!EYGOUtCF(R;wRA51>MqOYQX<0QA zs=DfeD4R%$l!|l{QE&K=A|%R(3|$nV5?bsw7^7OjE|`J}l?)VWiTciTG56d#bKczh z?lY#)y!(?ze)DnX>wo6V+z(Lqf9~BgsAvfynNac7r4qY^sKjm|DzRILO6(S*61#<{ z#BL!fv0I2r>=vRDyM<6?AD2!{OyJU`OPHLT#PsyE%&vHbbaZrJ<;s;KAicXxLs^m9mCTN_rd zUXA|#ek@q90K>z>7#kat#fn$ivi>!BV+&EfM*v_VKg=^B!D-U?>XIVl z4cHllKVdvy!t2Vrp86C+Au<580knZKHcc4-T0WTrliWP=e;%Rj!WiTAtqggF%(oF9 zY+n7=Q$+ca01RdUrJ<1^(R4yiyr7iMI%D@2UW1R~hYMo^S*d>*iGv}EVnmVM$D&B? zw_dakxl%)uMt$J?9W^8+Gx zrx8anViwP%e}04|a3{n1TOw=KGBpexHfXOy1A(39$#J^|nk}R(KBL?qEB9fA}Ige{vsN58TJLPmW?) zn#bEKCHUxGoZ8)vE2A=_JkrzU1!&Cz01cSL-`3=skp|L;GUXeWV1y>oUsdG7nQ(z? z5U_gb!i@3L)ZLG9?HqvDj-pme)6^Ec(%rmz9s zzqGD@>swp!(p&e@_nIxz`P2K@`oqmIf0y^-xFb<;%Rx1&`ytXb6TzxquB^2WjsX4kcwzrf+1Iw z{avD01xTx=PRq7ldi8Apz{7t`WMxUzOzSMi(YEO{-gxIn0D$Sk-@}RbeuYOlWjV%# z%kZ&NoFnrkp%q(Hz6iNRG@>c7e-RJ|so+IV)8>WRUaai`rVsaG^omVV>I|;`?r+&- z-Mf7aN-50T{-bv(Y9CLLo)>X)UA`{ zrz!g{g)?9mHzs`(CdOsUxjPafw73$Tc#oF%t^NxD;LxE%0D%4b_h)%%c4bTWds{w< z($Xj{(~ICw=I9k70GM|YWq{MS`Mu8)QrdqP9FMVOpuYMm z&KP%(FISusHY}bif1?p0Lac0{-w}|-5sQ_v9a-~z_e_SNF(kZPBay9tr;ScQR zYgH2d>ZDcVr_UFmv6kVfeQ+p+b?JUpN}MzyL@w%^teYd-A!J)+DCz@PKSJYu8qC#D z^FH{HglDb+p$V6hUAEJFLPP0(TE4e<5}K(i)UUb1+m(Hg@euU!2XZu#G%mrgdxQH+ z1NYs!EAL#qe{+8>4^T#@-$2v1&^k+V-$!diaKU|Rtr5XJSC3%7Y>CoA)jf9)1-9)x zO>#Y2WbX=$@_&cop`f*O-(~w>u2cXLQ3}Xkd2*cKE}y=s-zJ;;n-N%6> z9F@%*f4?&vS2xA|a(=vMd=fVvTYhF{1^}>R$r4erf!Hfot^@$wym?b*0R@93_~7J# zB=WvIWbH|kKx-GM9KWW1V)KI}Z<493ye7Y%dZXg?@`b|T?W^=|rYKMyyq;UPZUF$6 zFJJBwQwm>%T)lb~2M-=Z9LMPI@5j=mOJ$LYf9Hq?4<2A>Xb7{jv)Hw37i#peUP`?g zGuEtGgTB5#BuRp^XU}4Md^~d#70(YdGc&k$?OG;utyZfO8jV&q06c#D7{`ts!|?F1 z%&K?}snu%OzJ2@L{sKjm|{tJiUdnQ!;iMap( N002ovPDHLkV1laABWwTw literal 7798 zcmV-+9*NPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D9t%lCK~!i%?Rsf+ z9M^T`d-ZCs>K$lwV+Tlr0L5LTsC}_ETN*F29V?cXI8HoCJZGHaSebZYImb>s_Q)Pj zd?r?6JC5ulJDzB)#gZ&brX)%tDQcm(f&f7P1hFrT-n;gy_ukwl`8O2t!{^L7qwh3v zsteuq>VEIu?|!#H%sEHz;_}cW>z@2KFTQ&h|302v`fK6h;k&pDyi3*^@GeM0*_>wNs7)wBr%x_niwcb zgd@&F$|#BbC=v#1oNU5n8Aa(MU1kVGv=TvVd{U5JdqM zgsLNY6oo!_De@Q!7;d?=zo~DD<~mT^9npG(fY~ zKvsR-iYST#7Jx4a;U;lJB19Gl!U)MgJc?rQUM9NAOxJP*y^0isMV$eUUi0@76)=&Q zAQEbjAf|+(K%?crA|aSd98wEO0uvDvv4BNcL`X+|N(>`YClGHGd66VUz9bPT zVuXai7v!Btn5uA12{jzpJQf7l2pv7LkwS=gUL3HDDOVUyhouB+6iG`R_(^IIc@S_F z0!I-;I1GYHphiCTBkm*Y`4Sc}Fov;i2MF>AcEbvMD-xUld!Z0UjM9)%=5rdc2t`7w z*mFLD5HLW*{4uQ#6cpjQtR?5M#mvI0an5 zcavNULL&N+$lcJkdB};4;ZleSitl3!v@PI{MLpY%>QyH|E>%L1Cl)~(hFtWafCJwP zTo2guXrnN6A;3#xZDd`0!=fojm|)N?BZ^e)LUM?Tj8zq>dV)v!U^yZxiUOTek#ht4 z8V(7DB;-hw5R{~%6HVe$1cHY|2@#zkS>PTLLLiVQ+L)|x*P=cU1LtbkP?4fy*cDdd zfyCve0%8y+-oOzQTZkMFl#nCBL40h_r)n)Ss-D=W!(CwDBXC3Cry)l{08;Kl#=1fr zL=F2j>{_npSzH`l+I=CwOJi+hefG|oP?uF%5e2~vTm=Up_aeqBW-3D>_Y-bSY?442 zbTvg4Adx_Q1jry_RjZ1rDlr+sdaBG+2@Z@^}3fq*4cCNT`<3UVu9s;ERVo9l@_ zvTW%79N7YQIijF=AklDfMnxQoScx?Sl7dDFykR59#~xEx&q@k7zNHPpj zH3+Rx@HzGZt`ix)37AzwjW19XcA1ejn!(|Dl>lppax27|{~ zER5vP2d^P$lB~w%{gc)!rzU^#`q*;C>1>H_a6fYXF5dxbBkRfkK7vRPA=q2+4Jx#K zD2e7xixL^dLcJ7A4u{qR*JP{=8; zRVcxDQNBp2?T+0Mqs&`M?h)BoPg9C;qr>uaKLCc9h$

    4$M+6c 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 IM6N<$g3b{5SO5S3 diff --git a/docs/assets/en/FormObjects/custom-button.png b/docs/assets/en/FormObjects/custom-button.png new file mode 100644 index 0000000000000000000000000000000000000000..bb72d8e22b44e724434b55666ec1ab125a4023c4 GIT binary patch literal 1320 zcmeAS@N?(olHy`uVBq!ia0vp^{XlHO!3HEZ=Vhw`DaPU;cPEB*=VV?2IV|apzK#qG z8~eHcB(eheoCO|{#S9F5he4R}c>anMpqjm&E{-7;ac}1sW=Mxi9IwB=WlKQEq=gG7 zzbx=_3|%lmXKKbS(UkTi;eusXoV#0m9iw9A9BJfZbKVo-%z7y(X3rI8LlN(24GC@8 zNoOZ2?mD^fqdg)Ia-~0aMz0Z7y*z=@1i1!sR{-zFczp z>_7ka?DrSW+4$z&-NovlH$8ZEi(GnA5>vy?n~_^r>aI)m7PzJOOmGXDKW7V@^}Cwo zB}nx8+jK8&nOsds(-KhE#-Z`FL?eQ@q3simD; z4+UAC+^{^->KwroehCU>|J_< zhHkKj-(<6oC&JI_E}fojR=VX*&8LKJ^It#iJ)R)-tZQ|pRqVQaZyl!y+vn|nDbNF#FWiTo(O-nui9a^Np^}v`txZg&m3sVO%|Ul!p3_nV#RT>$y1Dr^`5S{ z__D3hkmIQH;WX_lcRp3^3~Q@>QdVO1HaYxrgz1K?_VC#6aaXSx)SePu^~%z|MfnI< z^S$x~Ut3CLlxNROvx;1{=|6Y!8T}=Oj6#Q1It{H-uFVEAVoy&jJ|~>GOuAUyey5+A zlx?xK)!c6z!Os1DL?+23EFto_n9=1mH_fhI9M|pPq)+{r2j;bX3JQR$si`>i(%ox{NKI7S_wQ_#6~uOIUV&#ku1V`K8jc z#5*4uET5XX?1Aa=O9!G7SIQ_09Sh&L?vMP=T@&_%+%J3e=J8SeKlvvMO!=>T-(>gy zm+Ir$+kb9|h~M>Is%oLP^LP5kyr;ddp= z&GX80IFPcQ+Zp8yWuz2qBQLaS{e6$PPv7m&>^;@I_Lo<204U{e+?Vw9XwvlQntq(- z@1HR(73V+uscWjTkjdT>$IY)#JpR@tx_|xs7pAaGWOeuT#cUQ|{n!gNX<1pX*uSbc zn0(>i^H;7uXaD*A>Gx8fZ0`U0bJhN+8{J@4Z=$xbER@BWf&MdS>!j6}%#Aw_EZrD9 MUHx3vIVCg!0BE^!_y7O^ literal 0 HcmV?d00001 diff --git a/docs/assets/en/FormObjects/custom-radius-runtime.png b/docs/assets/en/FormObjects/custom-radius-runtime.png new file mode 100644 index 0000000000000000000000000000000000000000..aebec4c6175b0dc10130ec07b5e571faddab8a01 GIT binary patch literal 1413 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 FV1gBbuOt8f literal 0 HcmV?d00001 diff --git a/docs/language-legacy/Objects (Forms)/object-get-border-style.md b/docs/language-legacy/Objects (Forms)/object-get-border-style.md index 87d6aee0b791da..0ce7616dd67a29 100644 --- a/docs/language-legacy/Objects (Forms)/object-get-border-style.md +++ b/docs/language-legacy/Objects (Forms)/object-get-border-style.md @@ -1,4 +1,4 @@ ---- +--- id: object-get-border-style title: OBJECT Get border style slug: /commands/object-get-border-style @@ -22,6 +22,7 @@ displayed_sidebar: docs |Release|Changes| |---|---| +|21 R5|New Border Custom` constant | |14|Created| @@ -31,7 +32,7 @@ displayed_sidebar: docs The **OBJECT Get border style** command returns the border line style of the object(s) designated by the *object* and *\** parameters. -You can set the border line style for an object in Design mode using the Property List, or using the [OBJECT SET BORDER STYLE](../commands/object-set-border-style) command. +You can set the border line style for an object in the Form editor using the [Property List](../../FormObjects/properties_BackgroundAndBorder.md#border-line-style), or using the [OBJECT SET BORDER STYLE](../commands/object-set-border-style) command. Passing the optional *\** parameter indicates that the *object* parameter is an object name (string). If you do not pass this parameter, it indicates that the *object* parameter is a field or variable. In this case, you pass a field or variable reference instead of a string (field or variable object only). @@ -39,6 +40,7 @@ The command returns a value corresponding to the border line style. You can comp | Constant | Type | Value | Comment | | ------------- | ------- | ----- | ----------------------------------------------------------------------------------------------- | +| Border Custom | Integer | 9 | (buttons only) Enables the inner frame design for buttons, supporting extra properties | | Border Dotted | Integer | 2 | Objects appear framed with a dotted 1-pt. border line | | Border Double | Integer | 5 | Objects appear framed with a double line, i.e., two continuous 1-pt. lines separated by a pixel | | Border None | Integer | 0 | Objects appear with no border | @@ -49,6 +51,7 @@ The command returns a value corresponding to the border line style. You can comp ## See also +[OBJECT Get corner radius](../commands/object-get-corner-radius) [OBJECT SET BORDER STYLE](../commands/object-set-border-style) ## Properties diff --git a/docs/language-legacy/Objects (Forms)/object-get-corner-radius.md b/docs/language-legacy/Objects (Forms)/object-get-corner-radius.md index b5321c58f3ff3c..332a5fc1b2ede6 100644 --- a/docs/language-legacy/Objects (Forms)/object-get-corner-radius.md +++ b/docs/language-legacy/Objects (Forms)/object-get-corner-radius.md @@ -22,6 +22,7 @@ displayed_sidebar: docs |Release|Changes| |---|---| +|21 R5|Support for custom-styled buttons, radio buttons and check boxes | |19 R7|Modified| |14 R4|Created| @@ -30,13 +31,14 @@ displayed_sidebar: docs ## Description -The **OBJECT Get corner radius** command returns the current value of the corner radius for the object designated by the *object* parameter. This value may have been set at the form level using the *Corner radius property* or for the current process using the [OBJECT SET CORNER RADIUS](../commands/object-set-corner-radius) command. +The **OBJECT Get corner radius** command returns the current value of the corner radius for the object designated by the *object* parameter. This value may have been set at the form level using the [**Corner radius property**](../../FormObjects/properties_BackgroundAndBorder.md#corner-radius) or for the current process using the [OBJECT SET CORNER RADIUS](../commands/object-set-corner-radius) command. The **OBJECT Get corner radius** command can be used with the following form objects: -* rectangles -* inputs (4D projects only) -* text areas (4D projects only) +- [rectangles](../../FormObjects/shapes_overview.md#rectangle) +- [inputs](../../FormObjects/input_overview.md) (4D projects only) +- [text areas](../../FormObjects/text.md) (4D projects only) +- custom-styled [buttons](../../FormObjects/button_overview.md#custom) with ["custom" Border Line Style](#border-line-style), custom-styled [radio buttons](../../FormObjects/radio_overview.md#custom) and custom-styled [check boxes](../../FormObjects/checkbox_overview.md#custom) (4D projects only) Passing the optional *\** parameter indicates that the *object* parameter is an object name (string). If you do not pass this parameter, it indicates that the *object* parameter is a field or variable. In this case, you pass a field or variable reference instead of a string (field or variable object only). diff --git a/docs/language-legacy/Objects (Forms)/object-set-border-style.md b/docs/language-legacy/Objects (Forms)/object-set-border-style.md index 7da11347459c3c..05d73830d5923b 100644 --- a/docs/language-legacy/Objects (Forms)/object-set-border-style.md +++ b/docs/language-legacy/Objects (Forms)/object-set-border-style.md @@ -1,4 +1,4 @@ ---- +--- id: object-set-border-style title: OBJECT SET BORDER STYLE slug: /commands/object-set-border-style @@ -22,6 +22,7 @@ displayed_sidebar: docs |Release|Changes| |---|---| +|21 R5|New Border Custom` constant | |14|Created| @@ -31,7 +32,7 @@ displayed_sidebar: docs The **OBJECT SET BORDER STYLE** command modifies the border line style of the object(s) designated by the *object* and *\** parameters. -The "Border Line Style" property modifies the appearance of the object outlines. For more information, refer to *Border Line Style* in the *Design Reference* manual. +The "Border Line Style" property modifies the appearance of the object outlines. For more information, see [*Border Line Style*](../../FormObjects/properties_BackgroundAndBorder.md#border-line-style) section. Passing the optional *\** parameter indicates that the *object* parameter is an object name (string). If you do not pass this parameter, it indicates that the *object* parameter is a field or variable. In this case, you pass a field or variable reference instead of a string (field or variable object only). @@ -39,6 +40,7 @@ In the *borderStyle* parameter, pass the value of the border line style that you | Constant | Type | Value | Comment | | ------------- | ------- | ----- | ----------------------------------------------------------------------------------------------- | +| Border Custom | Integer | 9 | (buttons only) Enables the inner frame design for buttons, supporting extra properties | | Border Dotted | Integer | 2 | Objects appear framed with a dotted 1-pt. border line | | Border Double | Integer | 5 | Objects appear framed with a double line, i.e., two continuous 1-pt. lines separated by a pixel | | Border None | Integer | 0 | Objects appear with no border | @@ -50,6 +52,7 @@ In the *borderStyle* parameter, pass the value of the border line style that you ## See also [OBJECT Get border style](../commands/object-get-border-style) +[OBJECT SET CORNER RADIUS](../commands/object-set-corner-radius) ## Properties diff --git a/docs/language-legacy/Objects (Forms)/object-set-corner-radius.md b/docs/language-legacy/Objects (Forms)/object-set-corner-radius.md index 006bf40b23b518..575bd41d32987e 100644 --- a/docs/language-legacy/Objects (Forms)/object-set-corner-radius.md +++ b/docs/language-legacy/Objects (Forms)/object-set-corner-radius.md @@ -22,6 +22,7 @@ displayed_sidebar: docs |Release|Changes| |---|---| +|21 R5|Support for custom-styled buttons, radio buttons and check boxes | |19 R7|Modified| |14 R4|Created| @@ -34,9 +35,10 @@ displayed_sidebar: docs You can use this command with the following form objects: -* rectangles -* inputs (4D projects only) -* text areas (4D projects only) +- [rectangles](../../FormObjects/shapes_overview.md#rectangle) +- [inputs](../../FormObjects/input_overview.md) (4D projects only) +- [text areas](../../FormObjects/text.md) (4D projects only) +- custom-styled [buttons](../../FormObjects/button_overview.md#custom) with ["custom" Border Line Style](#border-line-style), custom-styled [radio buttons](../../FormObjects/radio_overview.md#custom) and custom-styled [check boxes](../../FormObjects/checkbox_overview.md#custom) (4D projects only) Passing the optional *\** parameter indicates that the *object* parameter is an object name (string). If you do not pass this parameter, it indicates that the *object* parameter is a field or variable. In this case, you pass a field or variable reference instead of a string (field or variable object only). @@ -44,7 +46,7 @@ In the *radius* parameter, you pass a new radius value in pixels to be applied t **Note**: With input and text area objects, the corner radius property is only available with "none", "solid", or "dotted" border line styles. -You can modify this value at the form level using the *Corner radius property* (see also *Corner radius (rectangles)*). +You can modify this value at the form level using the [**Corner radius property**](../../FormObjects/properties_BackgroundAndBorder.md#corner-radius). ## Example 1 @@ -74,11 +76,27 @@ If you execute the following code: ![](../../assets/en/commands/pict6074568.en.png) -Note that for text areas (as well as inputs), unlike for rectangles, the corner roundness is drawn outside the initial area of the object. +Note that for text areas (as well as inputs), unlike for rectangles, the corner roundness is drawn **outside** the initial area of the object. + +## Example 3 + +With custom-styled buttons that have a ["custom" Border Line Style](#border-line-style), the corner radius is drawn inside the initial area of the object: + +![](../../assets/en/FormObjects/custom-button.png) + +```4d + OBJECT SET CORNER RADIUS(*;"custom-button";8) +``` + +![](../../assets/en/FormObjects/custom-radius-runtime.png) + + ## See also [OBJECT Get corner radius](../commands/object-get-corner-radius) +[OBJECT SET BORDER STYLE](../commands/object-set-border-style) + ## Properties From 7f68c769bdfeec62501abd7b2b8522d387e40ca9 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 18:06:58 +0900 Subject: [PATCH 64/77] Update set-list-item-properties.md (#3439) JA fixing old info (mainly parameters info) --- .../set-list-item-properties.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-properties.md index 4cf346d93be065..71c083296b4adb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item-properties.md @@ -5,7 +5,7 @@ slug: /commands/set-list-item-properties displayed_sidebar: docs --- -**SET LIST ITEM PROPERTIES** ( {* ;} *list* : Integer, Text ; *itemRef* : 演算子, 倍長整数 ; *enterable* : Boolean ; *styles* : Integer {; *icon* : Text, Integer {; *color* : Integer}} )
    **SET LIST ITEM PROPERTIES** ( * ; *list* : Integer, Text ; * ; *enterable* : Boolean ; *styles* : Integer {; *icon* : Text, Integer {; *color* : Integer}} ) +**SET LIST ITEM PROPERTIES** ( * ; *list* : Text ; *itemRef* : 演算子, 倍長整数 ; *enterable* : Boolean ; *styles* : Integer {; *icon* : Text, Integer {; *color* : Integer}} )
    **SET 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 | → | ピクチャー名または番号 (アイコンを使用しない場合は "" または 0) | @@ -36,25 +36,25 @@ displayed_sidebar: docs ## 説明 -**SET LIST ITEM PROPERTIES** コマンドは、引数*list*に渡された参照番号またはオブジェクト名のリスト内で、*itemRef*によって指定された項目を変更します。 +**SET LIST ITEM PROPERTIES** コマンドは、引数*list* に渡された参照番号またはオブジェクト名のリスト内で、*itemRef* によって指定された項目を変更します。 オプションの第一引数 *\** を渡すと、*list* 引数はフォーム上のリストオブジェクトに対応するオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数は階層リスト参照 ([ListRef](# "階層リストへの参照")) です。リストオブジェクトを一つしか使わない場合や、2番目の *\** を使用しない場合は、両方のシンタックスを使用できます。他方フォーム上に同じ階層リストを参照する複数のオブジェクトがある場合で、2番目の *\** を渡してカレント項目を参照する場合、それぞれのオブジェクトが個別にカレント項目をもつので、オブジェクト名に基づくシンタックスを使用しなければなりません。 -*itemRef*には参照番号を渡すことができます。渡された項目参照番号を持つ項目が存在しない場合、コマンドは何も動作しません。オプションとして*itemRef*に0を渡すことによって、[APPEND TO LIST](../commands/append-to-list) コマンドを使用してリストに追加した最後の項目を変更することができます。 +*itemRef* には参照番号を渡すことができます。渡された項目参照番号を持つ項目が存在しない場合、コマンドは何も動作しません。オプションとして*itemRef* に*0* を渡すことによって、[APPEND TO LIST](../commands/append-to-list) コマンドを使用してリストに追加した最後の項目を変更することができます。 -最後に、引数*itemRef*に *\** を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目となります。選択された項目が存在しない場合、コマンドは何も行いません。 +最後に、引数*itemRef* に *\** を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目となります。選択された項目が存在しない場合、コマンドは何も行いません。 -項目参照番号を使用して作業を実行する場合、項目がユニークな参照番号を持つリストを作成します。そうでなければ、項目を区別できません。詳細については、*階層リストの管理* を参照してください。 +項目参照番号を使用して作業を実行する場合、項目がユニークな参照番号を持つリストを作成します。そうでなければ、項目を区別できません。詳細については、[*階層リストフォームオブジェクト*](../../FormObjects/list_overview.md) を参照してください。 **注:** 項目のテキストまたはそのサブリストを変更するには、[SET LIST ITEM](../commands/set-list-item) コマンドを使用します。 -項目を入力可能にする場合は、*enterable*引数にTRUEを渡し、そうでない場合はFALSEを渡します。 +項目を入力可能にする場合は、*enterable* 引数にTRUE を渡し、そうでない場合はFALSE を渡します。 **重要**: 項目を入力可にするには、その項目が入力可であるリストに属している必要があります。 [OBJECT SET ENTERABLE](../commands/object-set-enterable) コマンドを使用すると、リスト全体を入力可または入力不可にすることができます。**SET LIST ITEM PROPERTIES** コマンドを使用すると、個々のリスト項目を入力可または入力不可にすることができます。入力可プロパティをリストレベルで変更しても、項目の入力可プロパティは変更されません。しかし、項目に入力できるのは、そのリストが入力可な場合のみです。 -項目のフォントスタイルは、*styles*引数で指定します。以下の定義済定数の1つ、または複数を組み合わせて渡します: +項目のフォントスタイルは、*styles* 引数で指定します。以下の(*Font Styles* テーマの)定義済定数の1つ、または複数を組み合わせて渡します: | 定数 | 型 | 値 | | --------- | ---- | - | @@ -91,7 +91,7 @@ displayed_sidebar: docs ## 参照 [GET LIST ITEM PROPERTIES](../commands/get-list-item-properties) -*Hierarchical Lists* +[階層リスト](../../FormObjects/list_overview.md) [SET LIST ITEM](../commands/set-list-item) [SET LIST ITEM ICON](../commands/set-list-item-icon) From 8b95350a64e19772b8f6d4c1475f8aa43287f0a0 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 18:07:26 +0900 Subject: [PATCH 65/77] Update set-list-item.md (#3440) JA fixing old info (mainly parameters info) --- .../Hierarchical Lists/set-list-item.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item.md index 2e647d48007c41..f63416d0b33591 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Hierarchical Lists/set-list-item.md @@ -5,7 +5,7 @@ slug: /commands/set-list-item displayed_sidebar: docs --- -**SET LIST ITEM** ( {* ;} *list* : Integer, Text ; *itemRef* : 演算子, 倍長整数 ; *newItemText* : Text ; *newItemRef* : Integer {; *sublist* : Integer ; *expanded* : Boolean} )
    **SET LIST ITEM** ( * ; *list* : Integer, Text ; * ; *newItemText* : Text ; *newItemRef* : Integer {; *sublist* : Integer ; *expanded* : Boolean} ) +**SET LIST ITEM** ( * ; *list* : Text ; *itemRef* : 演算子, 倍長整数 ; *newItemText* : Text ; *newItemRef* : Integer {; *sublist* : Integer ; *expanded* : Boolean} )
    **SET LIST ITEM** (*list* : Integer ; *itemRef* : Integer, Operator ; *newItemText* : Text ; *newItemRef* : Integer {; *sublist* : Integer ; *expanded* : Boolean} )
    @@ -13,7 +13,7 @@ displayed_sidebar: docs | --- | --- | --- | --- | | * | 演算子 | → | 指定時, listはオブジェクト名 (文字列) 省略時, listはリスト参照番号 | | list | Integer, Text | → | リスト参照番号 (* 省略時), または リストオブジェクト名 (* 指定時) | -| itemRef | * | 演算子, 倍長整数 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: リスト中のカレント項目 | +| itemRef | 演算子, 倍長整数 | → | 項目参照番号, または 0: リストに最後に追加された項目, または *: リスト中のカレント項目 | | newItemText | Text | → | 新しい項目テキスト | | newItemRef | Integer | → | 新しい項目参照番号 | | sublist | Integer | → | 項目に添付する新しいサブリスト, または 0: サブリストがない場合 (現在のサブリストを取り除く), または -1: 変更しない | @@ -34,28 +34,28 @@ displayed_sidebar: docs ## 説明 -SET LIST ITEM コマンドは、*list*引数に渡した参照番号またはオブジェクト名のリストにおいて、*itemRef*で指定した項目を変更します。 +**SET LIST ITEM** コマンドは、*list* 引数に渡した参照番号またはオブジェクト名のリストにおいて、*itemRef* で指定した項目を変更します。 1番目の \* 引数を渡した場合、*list* 引数はフォーム中のリストオブジェクトのオブジェクト名 (文字列) です。この引数を渡さない場合、*list* 引数はリスト参照番号 ([ListRef](# "階層リストへの参照")) です。1つしかフォーム上でリストオブジェクトを使用しない場合、いずれのシンタックスも使用できます。同じリストの複数のリストオブジェクトがフォーム上にあり、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* には *\** を渡すことができます。この場合、コマンドはリストのカレント項目に対して適用されます。手動で複数のリスト項目が選択されている場合、最後に選択された項目がカレントリスト項目になります。選択された項目が存在しない場合、コマンドは何も行いません。 -項目参照番号を使用して作業を実行する場合、項目がユニークな参照番号を持つリストを作成します。そうでなければ、項目を区別できません。詳細についてはの説明を参照してください。 +項目参照番号を使用して作業を実行する場合、項目がユニークな参照番号を持つリストを作成します。そうでなければ、項目を区別できません。詳細については[*階層リストフォームオブジェクト*](../../FormObjects/list_overview.md) の説明を参照してください。 -*newItemText*に項目の新しいテキストを渡します。項目参照番号を変更する場合、*newItemRef*に新しい値を渡します。変更しない場合は同じ値を渡します。 +*newItemText* に項目の新しいテキストを渡します。項目参照番号を変更する場合、*newItemRef* に新しい値を渡します。変更しない場合は*itemRef* と同じ値を渡します。 -項目にサブリストを添付する場合、サブリストの参照番号を*subList*に渡します。この時、新たなサブリスを展開するには*expanded*に[True](../commands/true)を、そうでない場合は[False](../commands/false)を渡します。 +項目にサブリストを添付する場合、サブリストの参照番号を*subList* に渡します。この時、新たなサブリスを展開するには*expanded* に[True](../commands/true)を、そうでない場合は[False](../commands/false) を渡します。 -項目にすでに添付されているサブリストを切り離す場合は、*sublist*に0を渡します。この場合、[GET LIST ITEM](get-list-item.md "GET LIST ITEM")コマンドを使用して、そのリストの参照番号をあらかじめ取得しておくとよいでしょう。そうすれば、リストが必要なくなったときに[CLEAR LIST](clear-list.md "CLEAR LIST")コマンドを使用して削除することができます。 +項目にすでに添付されているサブリストを切り離す場合は、*sublist* に*0* を渡します。この場合、[GET LIST ITEM](get-list-item.md "GET LIST ITEM") コマンドを使用して、そのリストの参照番号をあらかじめ取得しておくとよいでしょう。そうすれば、リストが必要なくなったときに[CLEAR LIST](clear-list.md "CLEAR LIST") コマンドを使用して削除することができます。 -項目のサブリストプロパティを変更しない場合は、*sublist*に-1を渡します。 +項目のサブリストプロパティを変更しない場合は、*sublist* に-1 を渡します。 -**Note:** 引数*sublist*と*expanded*はともにオプションですが、指定する場合は組み合わせて指定してください。 +**Note:** 引数*sublist* と*expanded* はともにオプションですが、指定する場合は組み合わせて指定してください。 ## 例題 1 -*hList*はユニークな参照番号が付いた項目を持つリストです。以下のボタン用オブジェクトメソッドは、現在選択されているリスト項目にサブ項目を追加します。 +*hList* はユニークな参照番号が付いた項目を持つリストです。以下のボタン用オブジェクトメソッドは、現在選択されているリスト項目にサブ項目を追加します。 ```4d  $vlItemPos:=Selected list items(hList) @@ -76,11 +76,11 @@ displayed_sidebar: docs ## 例題 2 -[GET LIST ITEM](get-list-item.md "GET LIST ITEM")コマンドの例題参照 +[GET LIST ITEM](get-list-item.md "GET LIST ITEM") コマンドの例題参照 ## 例題 3 -[APPEND TO LIST](append-to-list.md "APPEND TO LIST")コマンドの例題参照 +[APPEND TO LIST](append-to-list.md "APPEND TO LIST") コマンドの例題参照 ## 参照 From f89c0b589282d60e8008f5364338339d23aa00e8 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 18:08:29 +0900 Subject: [PATCH 66/77] Update execute-method.md (#3441) JA fixing old info (mainly parameters info) --- .../language-legacy/Language/execute-method.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Language/execute-method.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Language/execute-method.md index 14810bc0e7f6a0..38b31097c78392 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Language/execute-method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Language/execute-method.md @@ -5,14 +5,15 @@ slug: /commands/execute-method displayed_sidebar: docs --- -**EXECUTE METHOD** ( *methodName* : Text ; *result* : Variable {; ...*param* : Expression} )
    **EXECUTE METHOD** ( *methodName* : Text ; * {; ...*param* : Expression} ) +**EXECUTE METHOD** ( *methodName* : Text )
    **EXECUTE METHOD** ( *methodName* : Text ; *result* : Variable {; ...*param* : Expression} )
    **EXECUTE METHOD** ( *methodName* : Text ; * {; ...*param* : Expression} )
    | 引数 | 型 | | 説明 | | --- | --- | --- | --- | | methodName | Text | → | 実行するプロジェクトメソッド名 | -| result | * | Variable, Operator | ← | メソッドの結果を受け取る変数 または *: メソッドが結果を返さない場合 | +| result | Variable | ← | メソッドの結果を受け取る変数 | +| * | Operator | → | メソッドが結果を返さない場合に指定 | | param | Expression | → | メソッドの引数 |
    @@ -29,13 +30,13 @@ displayed_sidebar: docs ## 説明 -EXECUTE METHOD コマンドは、*param1...paramN*を引数に渡して、*methodName*プロジェクトメソッドを実行します。データベースまたはコマンドを実行するコンポーネントから呼び出し可能なメソッド名を渡すことができます。 +EXECUTE METHOD コマンドは、*param1...paramN* を引数に渡して、*methodName* プロジェクトメソッドを実行します。データベースまたはコマンドを実行するコンポーネントから呼び出し可能なメソッド名を渡すことができます。 -*result*には、*methodName* の実行結果を受け取る変数を渡します (*methodName*内で$0に置かれる値)。メソッドが値を返さない場合、*\** を2番目の引数に渡します。メソッドが結果を返さず、引数を必要としない場合、*methodName* 引数のみを渡します。 +*result* には、*methodName* の実行結果を受け取る変数を渡します (*methodName* 内で$0 に置かれる値)。メソッドが値を返さない場合、*\** を2番目の引数に渡します。メソッドが結果を返さず、引数を必要としない場合、*methodName* 引数のみを渡します。 実行コンテキストは呼び出しメソッドです。すなわちカレントフォームやカレントフォームイベントは呼び出されるメソッド内でも有効です。 -このコマンドを*methodName* にホストデータベースのメソッドを渡してコンポーネントから呼び出す場合 (あるいはその逆の場合)、メソッドはメソッドプロパティ内でホストデータベースとコンポーネントで共有されるよう設定しなければなりません。 +このコマンドを*methodName* にホストデータベースのメソッドを渡してコンポーネントから呼び出す場合 (あるいはその逆の場合)、メソッドは[メソッドプロパティ](../../Project/project-method-properties.md) 内でホストデータベースとコンポーネントで共有されるよう設定しなければなりません。 ## システム変数およびセット From 303873c3ffae8e4fa7cc6939f1936b23eb72d74b Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 18:35:17 +0900 Subject: [PATCH 67/77] Update listbox-set-table-source.md (#3442) JA fixing old info (mainly parameters info) --- .../List Box/listbox-set-table-source.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/List Box/listbox-set-table-source.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/List Box/listbox-set-table-source.md index efb55587a4f6f7..d7bca283cbf118 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/List Box/listbox-set-table-source.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/List Box/listbox-set-table-source.md @@ -5,15 +5,16 @@ slug: /commands/listbox-set-table-source displayed_sidebar: docs --- -**LISTBOX SET TABLE SOURCE** ( * ; *object* : Text ; tableNum | name {; *highlightName* : Text} )
    **LISTBOX SET TABLE SOURCE** ( *object* : Variable ; tableNum | name {; *highlightName* : Text} ) +**LISTBOX SET TABLE SOURCE** ( * ; *object* : Text ; *tableNum* : Integer {; *highlightName* : Text} )
    **LISTBOX SET TABLE SOURCE** ( *object* : Variable ; *tableNum* : Integer {; *highlightName* : Text} )
    **LISTBOX SET TABLE SOURCE** ( * ; *object* : Text ; *selName* : Text {; *highlightName* : Text} )
    **LISTBOX SET TABLE SOURCE** ( *object* : Variable ; *selName* : Text {; *highlightName* : Text} )
    | 引数 | 型 | | 説明 | | --- | --- | --- | --- | | * | 演算子 | → | 指定時, objectはオブジェクト名 (文字列) 省略時, objectは変数 | -| object | any | → | オブジェクト名 (* 指定時) または 変数 (* 省略時) | -| tableNum | name | 倍長整数, 文字 | → | カレントセレクションが使用されるテーブル番号 または使用される命名セレクション | +| object | Text, Variable | → | オブジェクト名 (* 指定時) または 変数 (* 省略時) | +| tableNum | 倍長整数 | → | カレントセレクションが使用されるテーブル番号 | +| selName | Text | → | 使用する命名セレクション | | highlightName | Text | → | ハイライトセットの名前 |
    @@ -32,21 +33,21 @@ displayed_sidebar: docs ## 説明 -**LISTBOX SET TABLE SOURCE**コマンドは、*\** と *object* 引数で指定されるリストボックスに表示されるデータのソースを変更するために使用します。 +**LISTBOX SET TABLE SOURCE** コマンドは、*\** と *object* 引数で指定されるリストボックスに表示されるデータのソースを変更するために使用します。 -**注:** このコマンドは、リストボックスの“データソース”プロパティが**カレントセレクション**または**命名セレクション**に設定されている場合にのみ使用できます (詳細は*リストボックスオブジェクトの管理*を参照してください)。配列型、コレクション型、あるいはエンティティセレクション型のリストボックスにこのコマンドを適用しても何も行いません。 +**注:** このコマンドは、リストボックスの“データソース”プロパティが**カレントセレクション**または**命名セレクション**に設定されている場合にのみ使用できます (詳細は*リストボックスオブジェクトの管理* を参照してください)。配列型、コレクション型、あるいはエンティティセレクション型のリストボックスにこのコマンドを適用しても何も行いません。 -オプションの引数 *\** を渡すことにより、*object*引数がオブジェクト名(文字列)であることを示します。この引数を渡さない場合、*object*引数が変数であることを示します。この場合、文字列ではなく変数参照を指定します。オブジェクト名についての詳細は*オブジェクトプロパティ*を参照してください。 +オプションの引数 *\** を渡すことにより、*object* 引数がオブジェクト名(文字列)であることを示します。この引数を渡さない場合、*object* 引数が変数であることを示します。この場合、文字列ではなく変数参照を指定します。オブジェクト名についての詳細は*オブジェクトプロパティ* の章を参照してください。 *tableNum* 引数としてテーブル番号を渡すと、リストボックスにはそのテーブルのカレントセレクションが表示されます。 -*name* 引数として命名セレクション名を渡すと、リストボックスには命名セレクションに属するデータが表示されます。 +*selName* 引数として命名セレクション名を渡すと、リストボックスには命名セレクションに属するデータが表示されます。 オプションの *highlightName* 引数はリストボックスにハイライトセットを割り当てます。ハイライトセットはリストボックス中でユーザーがハイライトしたレコードを管理します。 -リストボックスに列が既に含まれている場合、コマンド実行後に内容が更新されます。 +リストボックスにカラムが既に含まれている場合、コマンド実行後に内容が更新されます。 -**注:** 最適化のため、このコマンドは非同期で処理されます。言い換えればリストボックスのソースはコマンドが呼び出されたメソッドの実行が完全に終了したときに変更されます。 +**注:** 最適化のため、このコマンドは非同期で処理されます。言い換えればリストボックスのソースはこのコマンドが呼び出されたメソッドの実行が完全に終了したときに変更されます。 ## 参照 From 76eb02b59cf7e49ecb2292b1cba1397409427b2c Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 18:54:00 +0900 Subject: [PATCH 68/77] Update print-label.md (#3443) JA fixing old info (mainly parameters info) --- .../language-legacy/Printing/print-label.md | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Printing/print-label.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Printing/print-label.md index 9c11f475244ef1..46f661b1986efd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Printing/print-label.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Printing/print-label.md @@ -5,7 +5,7 @@ slug: /commands/print-label displayed_sidebar: docs --- -**PRINT LABEL** ( *aTable* : Table {; *document* : Text {; * }} )
    **PRINT LABEL** ( *aTable* : Table {; *document* : Text {; >}} ) +**PRINT LABEL** ( { *aTable* : Table }{; > : >}{; * } )
    **PRINT LABEL** ({ *aTable* : Table }{; *document* : Text {; > : >}}{; * } )
    @@ -13,7 +13,8 @@ displayed_sidebar: docs | --- | --- | --- | --- | | aTable | Table | → | 印刷するテーブル, または 省略した場合、デフォルトテーブル | | document | Text | → | ディスクに保存したラベルドキュメント名 | -| * | > | Operator | → | *: 印刷ダイアログを省略, または >: 印刷設定の再初期化をしない | +| * |Operator| → | 印刷ダイアログを省略 | +| > | > | → | 印刷設定の再初期化をしない |
    @@ -32,9 +33,9 @@ displayed_sidebar: docs **PRINT LABEL** は、*aTable*のセレクションのデータを使用してラベルを印刷します。 -*document* パラメーターを指定しない場合、**PRINT LABEL** はカレント出力フォームを使用して、*aTable*のカレントセレクションをラベル印刷します。サブフォームの印刷にこのコマンドを使用することはできません。ラベルのフォーム作成に関する詳細は *4D Design Reference* マニュアルを参照してください。 +*document* パラメーターを指定しない場合、**PRINT LABEL** はカレント出力フォームを使用して、*aTable* のカレントセレクションをラベル印刷します。サブフォームの印刷にこのコマンドを使用することはできません。ラベルのフォーム作成に関する詳細は *4D Design Reference* マニュアルを参照してください。 -*document* を指定すると、**PRINT LABEL** コマンドは、ラベルウィザード(下図)を表示するか、またはディスクに保存された既存のラベルドキュメントを印刷します。以下の説明を参照してください。 +*document* を指定すると、**PRINT LABEL** コマンドは、[ラベルウィザード](../../Desktop/labels.md) (下図)を表示するか、またはディスクに保存された既存のラベルドキュメントを印刷します。以下の説明を参照してください。 ![](../../assets/en/commands/pict2980390.en.png) @@ -46,16 +47,16 @@ displayed_sidebar: docs これらの引数はラベルウィザード使用時には効果を持たないことに注意してください。 -ラベルウィザードを使用しない場合、ラベルがすべてプリントされるとシステム変数OKに1が代入されます。それ以外の場合には0が代入されます (印刷ダイアログボックスでキャンセルがクリックされた場合等)。 +[ラベルウィザード](../../Desktop/labels.md) を使用しない場合、ラベルがすべてプリントされるとシステム変数OKに1が代入されます。それ以外の場合には0が代入されます (印刷ダイアログボックスで**キャンセル** がクリックされた場合等)。 -*document* 引数を指定すると、ラベルは*document*に定義されたラベル設定情報に従って印刷されます。*document* に空の文字列 ("") を指定すると、**PRINT LABEL** はファイルを開くダイアログボックスが表示し、ユーザーはラベル設定として使用するファイルを指定することができます。*document*に存在しないドキュメント名を指定すると (例えば*char(1)*を*document*に渡す) 、ラベルウィザードが表示され、ユーザーはラベル設定を定義することができます。 +*document* 引数を指定すると、ラベルは*document* に定義されたラベル設定情報に従って印刷されます。*document* に空の文字列 ("") を指定すると、**PRINT LABEL** はファイルを開くダイアログボックスが表示し、ユーザーはラベル設定として使用するファイルを指定することができます。*document* に存在しないドキュメント名を指定すると (例えば*char(1)* を*document* に渡す)、ラベルウィザードが表示され、ユーザーはラベル設定を定義することができます。 -**Note:** デザインモードで、*table*が非表示に設定されている場合、ラベルウィザードは表示されません。 +**Note:** デザインモードで、*table* が非表示に設定されている場合、ラベルウィザードは表示されません。 -**4D Server:** このコマンドは、ストアドプロシージャー内にて4D Server上で実行することができます。この状況では、次の制約があります: +**4D Server:** このコマンドは、ストアドプロシージャー内にて4D Server 上で実行することができます。この状況では、次の制約があります: * サーバーマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。そのためにはこのコマンドを *\** または *\>* 引数付きで呼び出さなければなりません。 -* ラベルエディターが表示されるシンタックスは4D Serverでは動作しません。この場合システム変数OKは0に設定されます。 +* ラベルエディターが表示されるシンタックスは4D Server では動作しません。この場合システム変数OKは0に設定されます。 * プリンター関連の問題が発生しても (用紙切れ、プリンター接続切断等) 、エラーメッセージは生成されません。 ## 例題 1 @@ -69,12 +70,12 @@ displayed_sidebar: docs  FORM SET OUTPUT([Addresses];"Output") // デフォルトの出力フォームに戻す ``` -2つ目のメソッドはフォーム“**Label Out**”のフォームメソッドです。このフォームは、各フィールドの内容を連結した結果を格納するための1つの変数*vLabel*を含みます。フィールドAddr2が空の場合、メソッドにより取り除かれます。ラベルウィザードを使用しても、この処理が自動的に実行される点に注意してください。フォームメソッドは、各レコードに対して1つずつラベルを作成します: +2つ目のメソッドはフォーム“*Label Out*”のフォームメソッドです。このフォームは、各フィールドの内容を連結した結果を格納するための1つの変数*vLabel* を含みます。フィールドAddr2 が空の場合、メソッドにより取り除かれます。ラベルウィザードを使用しても、この処理が自動的に実行される点に注意してください。フォームメソッドは、各レコードに対して1つずつラベルを作成します: ```4d   // [Addresses]; "Label Out" フォームメソッド  Case of -    :(Form event code=On Load) //v17 以前ではForm event を使用すること +    :(FORM Event.code=On Load)        vLabel:=[Addresses]Name1+" "+[Addresses]Name2+Char(13)+[Addresses]Addr1+Char(13)        If([Addresses]Addr2 #"")           vLabel:=vLabel+[Addresses]Addr2+Char(13) @@ -85,7 +86,7 @@ displayed_sidebar: docs ## 例題 2 -以下の例では、ユーザが\[People\]テーブルを検索し、自動で“My Labels”ラベルを印刷します: +以下の例では、ユーザが\[People\] テーブルを検索し、自動で“My Labels” ラベルを印刷します: ```4d  QUERY([People]) From 76eeba9ed3147ebc81f25531c841da9f09873336 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:31:36 +0900 Subject: [PATCH 69/77] Update print-record.md (#3444) JA fixing old info (mainly parameters info) --- .../language-legacy/Printing/print-record.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Printing/print-record.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Printing/print-record.md index 8a667d9a4842c9..6c2132af266b1d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Printing/print-record.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Printing/print-record.md @@ -5,14 +5,15 @@ slug: /commands/print-record displayed_sidebar: docs --- -**PRINT RECORD** ( *aTable* : Table {; *} )
    **PRINT RECORD** ( *aTable* : Table {; >} ) +**PRINT RECORD** ( *aTable* : Table {; *} )
    **PRINT RECORD** ( *aTable* : Table {; > : > } )
    | 引数 | 型 | | 説明 | | --- | --- | --- | --- | | aTable | Table | → | カレントレコードを印刷するテーブル または 省略した場合はデフォルトテーブル | -| * | > | 演算子 | → | *: 印刷ダイアログを省略, または >: 印刷設定の再初期化をしない | +| * | 演算子 | → | 印刷ダイアログを省略 | +| > | > | → | 印刷設定の再初期化をしない |
    @@ -30,7 +31,7 @@ displayed_sidebar: docs ## 説明 -**PRINT RECORD** は *aTable*のカレントレコードを、カレントセレクションを変更せずに印刷します。カレント出力フォームが印刷に用いられます。*aTable*にカレントレコードが存在しない場合、**PRINT RECORD**は何も行いません。 +**PRINT RECORD** は *aTable* のカレントレコードを、カレントセレクションを変更せずに印刷します。カレント出力フォームが印刷に用いられます。*aTable* にカレントレコードが存在しない場合、**PRINT RECORD** は何も行いません。 **PRINT RECORD** コマンドを使ってサブフォームを印刷することができます。これは [Print form](../commands/print-form) では実行できません。 @@ -42,7 +43,7 @@ displayed_sidebar: docs * *\** 引数は、現在の印刷設定 (デフォルトの設定、もしくは *\_o\_PAGE SETUP* や [SET PRINT OPTION](../commands/set-print-option) コマンドで定義した設定) に従い、印刷処理を行います。 * *\>* 引数は上記に加え、現在の印刷設定を再初期化することなく印刷を行います。この設定は、以前に設定した内容を継続し、(例えばループ中で) 連続した **PRINT RECORD** コマンドを使用する時に役立ちます。 -**4D Server:** このコマンドは、ストアドプロシージャー内において4D Server上で実行することができます。この状況では、次の制約があります: +**4D Server:** このコマンドは、ストアドプロシージャー内において4D Server 上で実行することができます。この状況では、次の制約があります: * サーバーマシン上ではダイアログボックスを一切表示しないでください (特定の必要性がある場合を除く)。そのためにはこのコマンドを *\** または *\>* 引数付きで呼び出さなければなりません。 * プリンター関連の問題が発生しても (用紙切れ、プリンター接続切断等) 、エラーメッセージは生成されません。 @@ -51,7 +52,7 @@ displayed_sidebar: docs ## 例題 1 -以下の例では、\[Invoices\] テーブルのカレントレコードを印刷します。このコードは入力フォームの**印刷**ボタンのオブジェクトメソッド内に記述されています。ユーザがそのボタンをクリックすると、レコードは指定した出力フォームで印刷されます。 +以下の例では、\[Invoices\] テーブルのカレントレコードを印刷します。このコードは入力フォームの**印刷** ボタンのオブジェクトメソッド内に記述されています。ユーザがそのボタンをクリックすると、レコードは指定した出力フォームで印刷されます。 ```4d  FORM SET OUTPUT([Invoices];"Print One From Data Entry") // 印刷用に作成された出力フォームを選択 @@ -61,7 +62,7 @@ displayed_sidebar: docs ## 例題 2 -以下の例では、同じカレントレコードを二種類の異なるフォームを使用して印刷しています。このコードは、入力フォームの**印刷**ボタンのオブジェクトメソッド内に記述されています。印刷設定をを行った後、二種類のフォームでその設定を使用することが出来ます。 +以下の例では、同じカレントレコードを二種類の異なるフォームを使用して印刷しています。このコードは、入力フォームの**印刷** ボタンのオブジェクトメソッド内に記述されています。印刷設定をを行った後、二種類のフォームでその設定を使用することが出来ます。 ```4d  PRINT SETTINGS //ユーザが印刷設定を行う From 8ce0c48f7807c072dd6d77d04339eaddd936f9e5 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:32:10 +0900 Subject: [PATCH 70/77] Update set-field-relation.md (#3446) JA fixing old info (mainly parameters info) --- .../language-legacy/Relations/set-field-relation.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Relations/set-field-relation.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Relations/set-field-relation.md index d118f62de56dd3..b6f94e75045946 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Relations/set-field-relation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Relations/set-field-relation.md @@ -5,13 +5,14 @@ slug: /commands/set-field-relation displayed_sidebar: docs --- -**SET FIELD RELATION** ( manyTable | manyField ; *one* : Integer ; *many* : Integer ) +**SET FIELD RELATION** ( *manyTable* : Table ; *one* : Integer ; *many* : Integer )
    **SET FIELD RELATION** ( *manyField* : Field ; *one* : Integer ; *many* : Integer )
    | 引数 | 型 | | 説明 | | --- | --- | --- | --- | -| manyTable | manyField | テーブル, フィールド | → | リレーションの開始テーブル, または リレーションの開始フィールド | +| manyTable | テーブル | → | リレーションの開始テーブル | +| manyField | フィールド | → | リレーションの開始フィールド | | one | Integer | → | テーブルまたはフィールドを開始点とする n対1リレーションの状態 | | many | Integer | → | テーブルまたはフィールドを開始点とする 1対nリレーションの状態 |
    @@ -33,9 +34,9 @@ displayed_sidebar: docs 1番目の引数には、テーブルやフィールドの名前を渡します: -* フィールド名 (*manyField*) を渡すと、コマンドは指定したnフィールドから開始するリレートに対してのみ適用されます。 -* テーブル名 (*manyTable*) を渡すと、コマンドは指定したnテーブルから開始するリレートに対してのみ適用されます。 -* *manyField*または*manyTable*から開始するリレートが存在しない場合、シンタックスエラー16(“このフィールドにはリレートが設定されていません。”)が生成され、システム変数OKには0が代入されます。 +* フィールド名 (*manyField*) を渡すと、コマンドは指定したn フィールドから開始するリレートに対してのみ適用されます。 +* テーブル名 (*manyTable*) を渡すと、コマンドは指定したn テーブルから開始するリレートに対してのみ適用されます。 +* *manyField* または*manyTable* から開始するリレートが存在しない場合、シンタックスエラー16(“このフィールドにはリレートが設定されていません。”)が生成され、システム変数OK には0\ が代入されます。 引数*one*と*many*には、指定した1対nリレートやn対1リレートに適用される自動/マニュアルの状態を示す値を渡します。この値として、"*Relations*"テーマの定数を使用できます。 From 21273f11e56bed7d914dc40b6f0af70560552121 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:32:36 +0900 Subject: [PATCH 71/77] Update redraw.md (#3448) JA fixing old info (mainly parameters info) --- .../current/language-legacy/User Interface/redraw.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/User Interface/redraw.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/User Interface/redraw.md index 56679a43f74433..44afaec6294118 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/User Interface/redraw.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/User Interface/redraw.md @@ -5,13 +5,14 @@ slug: /commands/redraw displayed_sidebar: docs --- -**REDRAW** ( *object* : any ) +**REDRAW** ( *aTable* : Table )
    **REDRAW** ( *object* : Field, Variable )
    | 引数 | 型 | | 説明 | | --- | --- | --- | --- | -| object | any | → | サブフォームを再描画するテーブル、またはエリアを再描画するフィールド、またはエリアを再描画する変数、または更新されるべきリストボックス | +| aTable | Table | → | サブフォームを再描画するテーブル | +| object | Field, Variable | → | エリアを再描画するフィールド、またはエリアを再描画する変数、または更新されるべきリストボックス |
    @@ -33,8 +34,6 @@ displayed_sidebar: docs セレクション表示モードのリストボックスのコンテキストでは、REDRAWがリストボックスタイプのオブジェクトに適用されると、オブジェクトに表示されているデータが再描画されます。このステートメントは特にセレクションのレコードに対し、データの更新が行われた場合に呼び出されなければなりません。 - - ## 参照 [SET TIMER](../commands/set-timer) From 5721140f6fb7dc80f2571e9be1d8a9424982f8bb Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:33:02 +0900 Subject: [PATCH 72/77] Update get-table-properties.md (#3447) JA fixing old info (mainly parameters info) --- .../Structure Access/get-table-properties.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Structure Access/get-table-properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Structure Access/get-table-properties.md index 7c84d936a48194..21c89aa30d18d0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Structure Access/get-table-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Structure Access/get-table-properties.md @@ -5,13 +5,14 @@ slug: /commands/get-table-properties displayed_sidebar: docs --- -**GET TABLE PROPERTIES** ( tablePtr| tableNum ; *invisible* : Boolean {; *trigSaveNew* : Boolean {; *trigSaveRec* : Boolean {; *trigDelRec* : Boolean {; *trigLoadRec* : Boolean}}}} ) +**GET TABLE PROPERTIES** ( *tablePtr* : Pointer ; *invisible* : Boolean {; *trigSaveNew* : Boolean {; *trigSaveRec* : Boolean {; *trigDelRec* : Boolean {; *trigLoadRec* : Boolean}}}} )
    **GET TABLE PROPERTIES** ( *tableNum* : Integer ; *invisible* : Boolean {; *trigSaveNew* : Boolean {; *trigSaveRec* : Boolean {; *trigDelRec* : Boolean {; *trigLoadRec* : Boolean}}}} )
    | 引数 | 型 | | 説明 | | --- | --- | --- | --- | -| tablePtr| tableNum | ポインター, 倍長整数 | → | テーブルポインタ、またはテーブル番号 | +| tablePtr | ポインター | → | テーブルポインタ | +| tableNum | 倍長整数 | → | テーブル番号 | | invisible | Boolean | ← | True = 非表示、False = 表示 | | trigSaveNew | Boolean | ← | True = トリガ“新規レコード保存時”が有効、 False = それ以外 | | trigSaveRec | Boolean | ← | True = トリガ“既存レコード保存時”が有効、 False = それ以外 | @@ -33,14 +34,14 @@ displayed_sidebar: docs ## 説明 -GET TABLE PROPERTIESコマンドは、*tablePtr*または*tableNum*で渡したテーブルのプロパティを返します。最初の引数としてテーブル番号またはテーブルへのポインタを渡すことができます。 +GET TABLE PROPERTIESコマンドは、*tablePtr* または*tableNum* で渡したテーブルのプロパティを返します。最初の引数としてテーブル番号またはテーブルへのポインタを渡すことができます。 このコマンドが実行されると -* このテーブルに対し非表示属性が設定されている場合、引数*invisible*にTrueが返され、そうでない場合Falseが返されます。非表示属性を指定することにより、4D標準のエディタ(ラベル、チャート等)の使用時にテーブルを隠すことができます。 -* このテーブルに対し新規レコード保存時トリガが設定されている場合、引数*trigSaveNew*にTrueが返され、そうでない場合Falseが返されます。 -* このテーブルに対し既存レコード保存時トリガが設定されている場合、引数*trigSaveRec*にTrueが返され、そうでない場合Falseが返されます。 -* このテーブルに対しレコード削除時トリガが設定されている場合、引数*trigDelRec*にTrueが返され、そうでない場合Falseが返されます。 +* このテーブルに対し非表示属性が設定されている場合、引数*invisible* にTrue が返され、そうでない場合False が返されます。非表示属性を指定することにより、4D標準のエディタ(ラベル、チャート等)の使用時にテーブルを隠すことができます。 +* このテーブルに対し新規レコード保存時トリガが設定されている場合、引数*trigSaveNew* にTrue が返され、そうでない場合False が返されます。 +* このテーブルに対し既存レコード保存時トリガが設定されている場合、引数*trigSaveRec* にTrue が返され、そうでない場合False が返されます。 +* このテーブルに対しレコード削除時トリガが設定されている場合、引数*trigDelRec* にTrue が返され、そうでない場合False が返されます。 ## 参照 From 5a80a4d274d8cbe0dd96a21a19ab4e889a9459e4 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:37:58 +0900 Subject: [PATCH 73/77] Update relate-one.md (#3445) JA fixing old info (mainly parameters info) --- .../language-legacy/Relations/relate-one.md | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Relations/relate-one.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Relations/relate-one.md index ad2d2f3aff2772..9041b939a20c87 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Relations/relate-one.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/Relations/relate-one.md @@ -5,13 +5,14 @@ slug: /commands/relate-one displayed_sidebar: docs --- -**RELATE ONE** ( *manyTable* : テーブル, フィールド {; *choiceField* : Field} )
    **RELATE ONE** ( *field* : テーブル, フィールド {; *choiceField* : Field} ) +**RELATE ONE** ( *manyTable* : テーブル )
    **RELATE ONE** ( *manyField* : フィールド {; *choiceField* : Field} )
    | 引数 | 型 | | 説明 | | --- | --- | --- | --- | -| manyTable | Field | テーブル, フィールド | → | すべての自動リレーションを実行するテーブル, または1テーブルへのマニュアルリレーションが引かれたフィールド | +| manyTable | テーブル | → | すべての自動リレーションを実行するテーブル | +| manyField | フィールド | → | 1テーブルへのマニュアルリレーションが引かれたフィールド | | choiceField | Field | → | 1テーブルの選択フィールド |
    @@ -31,15 +32,15 @@ displayed_sidebar: docs **RELATE ONE** には2つの形式があります。 -一番目の形式、**RELATE ONE** **(manyTable)**は、カレントプロセスの*manyTable*に対しすべての自動n対1リレーションを実行します。これはつまり、*manyTable*の自動n対1リレーションを持つフィールドごとに、コマンドはリレートしたテーブルのリレートしたレコードを選択します。これはプロセスにおいて、リレートしたテーブルのカレントレコードを変更します。 +一番目の形式、**RELATE ONE**(manyTable) は、カレントプロセスの*manyTable* に対しすべての自動n対1リレーションを実行します。これはつまり、*manyTable* の自動n対1リレーションを持つフィールドごとに、コマンドはリレートしたテーブルのリレートしたレコードを選択します。これはプロセスにおいて、リレートしたテーブルのカレントレコードを変更します。 -二番目形式**RELATE ONE** **(manyField{;choiceField})**は、*manyField*に関連するレコードを検索します。自動リレートである必要はありません。レコードが存在する場合、**RELATE ONE** はリレート先レコードをメモリにロードし、これをそのテーブルのカレントレコードおよびカレントセレクションにします。 +二番目形式**RELATE ONE**(manyField{;choiceField}) は、*manyField* に関連するレコードを検索します。自動リレートである必要はありません。レコードが存在する場合、**RELATE ONE** はリレート先レコードをメモリにロードし、これをそのテーブルのカレントレコードおよびカレントセレクションにします。 -任意の引数の*choiceField*は、リレート先テーブルのフィールドでなければなりません。*choiceField*は文字、テキスト、数値、日付、時間、またはブ-ルフィールドでなければなりません。具体的には、ピクチャまたはBLOB 型フィールドを選択することはできません。 +任意の引数の*choiceField* は、リレート先テーブルのフィールドでなければなりません。*choiceField* は文字、テキスト、数値、日付、時間、またはブ-ルフィールドでなければなりません。具体的には、ピクチャまたはBLOB 型フィールドを選択することはできません。 -*choiceField*が指定され、リレート先テーブルで複数のレコードを発見した場合、**RELATE ONE** は*manyField*の内容と一致するレコードをリストに表示します。この選択リストは、左の欄にリレート先フィールドの内容を、右の欄に*choiceField*の内容を表示します。 +*choiceField* が指定され、リレート先テーブルで複数のレコードを発見した場合、**RELATE ONE** は*manyField* の内容と一致するレコードをリストに表示します。この選択リストは、左の欄にリレート先フィールドの内容を、右の欄に*choiceField* の内容を表示します。 -*manyField*の内容がワイルドカード記号 (@) で終了する場合、複数のレコードが見つかることがあります。一致するレコードが1件しかなければ、リストは表示されません。 +*manyField* の内容がワイルドカード記号 (@) で終了する場合、複数のレコードが見つかることがあります。一致するレコードが1件しかなければ、リストは表示されません。 以下の画像には、レコードが入力中で、選択リストが前面に表示されています。 @@ -51,9 +52,9 @@ displayed_sidebar: docs  RELATE ONE([Personnel]Company;[Companies]Region) ``` -ここではユーザーは、LLCで名前が始まる会社を探すために"LLC@"と入力し、またその場所についても調べています。 +ここではユーザーは、LLC で名前が始まる会社を探すために"LLC@"と入力し、またその場所についても調べています。 -*choiceField*を指定することは、テーブルのリレートを設定する時点でワイルドカード選択を指定するのと同じことです。ワイルドカード選択に関する詳細は、4D Design Referenceマニュアルを参照してください。 +*choiceField* を指定することは、テーブルのリレートを設定する時点でワイルドカード選択を指定するのと同じことです。ワイルドカード選択に関する詳細は、*4D Design Reference* マニュアルを参照してください。 ### @@ -69,7 +70,7 @@ displayed_sidebar: docs ![](../../assets/en/commands/pict2287723.en.png) -両方のリレート先は同じ\[Customers\]テーブルになっており、同時に請求先と発送先の情報を得ることは出来ません。フォームに両方の住所を表示するためには、変数とRELATE ONEコマンドを使用します。 もし、\[Customers\]フィールドを表示に使用したなら、一方のリレートから得られたデータしか表示されません。 +両方のリレート先は同じ\[Customers\]テーブルになっており、同時に請求先と発送先の情報を得ることは出来ません。フォームに両方の住所を表示するためには、変数と**RELATE ONE** コマンドを使用します。 もし、\[Customers\]フィールドを表示に使用したなら、一方のリレートから得られたデータしか表示されません。 以下は\[Invoice\]Bill toと\[Invoice\]Ship toフィールドのオブジェクトメソッドです。これらはフィールドに入力されると実行されます。 @@ -95,7 +96,7 @@ displayed_sidebar: docs ## システム変数およびセット -コマンドが正しく実行されリレーとされたレコードがロードされると、OKシステム変数は1に設定されます。ユーザが(リレートされたレコードが更新されたときに表示される) レコード選択ダイアログボックスで**キャンセル**をクリックすると、OK変数は0に設定されます。 +コマンドが正しく実行されリレーとされたレコードがロードされると、OK システム変数は1 に設定されます。ユーザが(リレートされたレコードが更新されたときに表示される) レコード選択ダイアログボックスで**キャンセル**をクリックすると、OK 変数は0 に設定されます。 ## 参照 From 72da600cb05f32be238f7a5b621636c718000ef2 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:38:14 +0900 Subject: [PATCH 74/77] Update dom-get-xml-element.md (#3449) JA fixing old info (mainly parameters info) --- .../language-legacy/XML DOM/dom-get-xml-element.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML DOM/dom-get-xml-element.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML DOM/dom-get-xml-element.md index 37cd3a9567e89d..d2e4ca6fe40f3b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML DOM/dom-get-xml-element.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML DOM/dom-get-xml-element.md @@ -5,7 +5,7 @@ slug: /commands/dom-get-xml-element displayed_sidebar: docs --- -**DOM Get XML element** ( *elementRef* : Text ; *elementName* : Text ; *index* : Integer ; *elementValue* : Variable ) : Text +**DOM Get XML element** ( *elementRef* : Text ; *elementName* : Text ; *index* : Integer {; *elementValue* : Variable {; *attrNames* : Text array {; *attrValues* : Text array }}}) : Text
    @@ -15,6 +15,8 @@ displayed_sidebar: docs | elementName | Text | → | 取得する要素の名前 | | index | Integer | → | 取得する要素のインデックス番号 | | elementValue | Variable | ← | 要素値 | +| attrNames | Text array | ← | 属性名 | +| attrValues | Text array | ← | 属性値 | | 戻り値 | Text | ← | XML参照 (16 文字) |
    @@ -33,15 +35,19 @@ displayed_sidebar: docs ## 説明 -DOM Get XML element コマンドは、*elementName* と *index* 引数に基づき、子要素の参照を返します。 +**DOM Get XML element** コマンドは、*elementName* と *index* 引数に基づき、子要素の参照を返します。 要素の値が*elementValue* 引数に返されます。 +*attrNames* 配列を渡した場合、コマンドは要素の属性名をこの配列に返します。必要であれば、配列を自動的に作成してサイズを調整します。 + +*attrValues* 配列を渡した場合、コマンドはターゲットの要素の属性値をこの配列に返します。必要であれば、配列を自動的に作成してサイズを調整します。 + **注:** デフォルトでは、**DOM Get XML element** は*elementName* 引数については大文字と小文字を区別します(xml準拠のため)。コマンドの大文字と小文字の区別については、[XML SET OPTIONS](../commands/xml-set-options) コマンドのXML DOM case sensitivity セレクターを使用することで管理可能です。 ## システム変数およびセット -コマンドが正しく実行されるとシステム変数OKに1が設定され、エラーが発生すると0が設定されます。 +コマンドが正しく実行されるとシステム変数OK に1 が設定され、エラーが発生すると0 が設定されます。 ## 参照 From 8f6cd3bf9528cdfea01d0971b69f9e174ded27e8 Mon Sep 17 00:00:00 2001 From: nobu teshima <44628598+nobuteshima@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:38:32 +0900 Subject: [PATCH 75/77] Update sax-set-xml-declaration.md (#3450) JA fixing old info (mainly parameters info) --- .../current/language-legacy/XML SAX/sax-set-xml-declaration.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-set-xml-declaration.md b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-set-xml-declaration.md index 601f76e55b67ec..09b692e1d0a0e1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-set-xml-declaration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/language-legacy/XML SAX/sax-set-xml-declaration.md @@ -14,6 +14,7 @@ displayed_sidebar: docs | document | Time | → | 開いたドキュメントの参照 | | encoding | Text | → | XMLドキュメント文字セット | | standalone | Boolean | → | True = ドキュメントはスタンドアロン False (デフォルト) = ドキュメントはスタンドアロンではない | +| indentation | Boolean | → | *** 廃止予定。使用しないでください *** |
    @@ -34,7 +35,7 @@ displayed_sidebar: docs **SAX SET XML DECLARATION** コマンドは*document* で参照されるXMLドキュメントを、引数のエンコーディングを使用して初期化します。オプションとして、*standalone* 引数を使用してスタンドアロン属性を設定することができます。 * *encoding*: ドキュメントで使用される文字セットを指定するために使用します。コマンドが呼び出されない場合のデフォルトはUTF-8文字セットです。 -**注:** 4D XMLコマンドによってサポートされていないエンコーディングを渡した場合、UTF-8が使用されます。サポートされている文字コードの一覧については*文字セット*を参照して下さい(ただし、多くの場合についてUTF-8が推奨されます)。 +**注:** 4D XMLコマンドによってサポートされていないエンコーディングを渡した場合、UTF-8が使用されます。サポートされている文字コードの一覧については*文字セット* を参照して下さい(ただし、多くの場合についてUTF-8が推奨されます)。 * *standalone*: ドキュメントがスタンドアロンか ([True](../commands/true))、あるいは他のファイルや外部リソースを必要とするか ([False](../commands/false)) を示します。コマンドが呼び出されないか引数が省略された場合のデフォルトは[False](../commands/false)です。 **注:** 何も書き込んでいない状態で[XML SET OPTIONS](../commands/xml-set-options) コマンドを使用することで、ドキュメントのインデントを指定することができます。 From 29cf749262584725500f42d1eccebadf2a20f4a6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Fri, 25 Sep 2026 10:00:33 +0200 Subject: [PATCH 76/77] New Crowdin updates (#3451) * $atomic_$atonce.md Japanese * $attributes.md Japanese * $catalog.md Japanese * $clean.md Japanese * $compute.md Japanese * $directory.md Japanese * $distinct.md Japanese * $entityset.md Japanese * $expand.md Japanese * $filter.md Japanese * $imageformat.md Japanese * $info.md Japanese * $lock.md Japanese * $method.md Japanese * $orderby.md Japanese * $querypath.md Japanese * $savedfilter.md Japanese * $savedorderby.md Japanese * $singleton.md Japanese * $skip.md Japanese * $timeout.md Japanese * $top_$limit.md Japanese * $upload.md Japanese * $version.md Japanese * classfunctions.md Japanese * rest_requests.md Japanese * authusers.md Japanese * configuration.md Japanese * dataclass.md Japanese * geninfo.md Japanese * gettingstarted.md Japanese * mandata.md Japanese * application-server.md Japanese * http-server.md Japanese * maintenance.md French * maintenance.md Japanese * monitor.md Japanese * overview.md Japanese * real-time-monitor.md Japanese * remote-admin.md Japanese * sessions.md Japanese * sql-server.md Japanese * transformation-tags.md Japanese * handling_users_groups.md Japanese * overview.md Japanese * advanced-programming.md Japanese * classes.md Japanese * vp-add-formula-name.md Japanese * vp-add-range-name.md Japanese * vp-add-sheet.md Japanese * vp-add-span.md Japanese * vp-add-stylesheet.md Japanese * vp-all.md Japanese * vp-cell.md Japanese * vp-cells.md Japanese * vp-column.md Japanese * vp-combine-ranges.md Japanese * vp-convert-from-4d-view.md Japanese * vp-convert-to-picture.md Japanese * vp-copy-to-object.md Japanese * vp-create-table.md Japanese * vp-delete-columns.md Japanese * vp-delete-rows.md Japanese * vp-export-document.md Japanese * vp-export-to-blob.md Japanese * vp-export-to-object.md Japanese * vp-find-table.md Japanese * vp-find.md Japanese * vp-flush-commands.md Japanese * vp-font-to-object.md Japanese * vp-get-active-cell.md Japanese * vp-get-binding-path.md Japanese * vp-get-column-count.md Japanese * vp-get-current-sheet.md Japanese * vp-get-data-context.md Japanese * vp-get-default-style.md Japanese * vp-get-formula-by-name.md Japanese * vp-get-formulas.md Japanese * vp-get-frozen-panes.md Japanese * vp-get-names.md Japanese * vp-get-print-info.md Japanese * vp-get-row-count.md Japanese * vp-get-selection.md Japanese * vp-get-sheet-options.md Japanese * vp-get-stylesheet.md Japanese * vp-get-stylesheets.md Japanese * vp-get-table-column-attributes.md Japanese * vp-get-table-dirty-rows.md Japanese * vp-get-table-theme.md Japanese * vp-get-value.md Japanese * vp-get-values.md Japanese * vp-import-document.md Japanese * vp-import-from-blob.md Japanese * vp-import-from-object.md Japanese * vp-insert-columns.md Japanese * vp-insert-rows.md Japanese * vp-insert-table-columns.md Japanese * vp-insert-table-rows.md Japanese * vp-move-cells.md Japanese * vp-name.md Japanese * vp-new-document.md Japanese * vp-object-to-font.md Japanese * vp-paste-from-object.md Japanese * vp-print.md Japanese * vp-recompute-formulas.md Japanese * vp-remove-name.md Japanese * vp-remove-span.md Japanese * vp-remove-stylesheet.md Japanese * vp-remove-table-columns.md Japanese * vp-remove-table-rows.md Japanese * vp-remove-table.md Japanese * vp-reset-selection.md Japanese * vp-resize-table.md Japanese * vp-resume-computing.md Japanese * vp-row.md Japanese * vp-run-offscreen-area.md Japanese * vp-set-allowed-methods.md Japanese * vp-set-binding-path.md Japanese * vp-set-border.md Japanese * vp-set-cell-style.md Japanese * vp-set-column-attributes.md Japanese * vp-set-column-count.md Japanese * vp-set-current-sheet.md Japanese * vp-set-custom-functions.md Japanese * vp-set-data-context.md Japanese * vp-set-date-time-value.md Japanese * vp-set-date-value.md Japanese * vp-set-default-style.md Japanese * vp-set-field.md Japanese * vp-set-formulas.md Japanese * vp-set-frozen-panes.md Japanese * vp-set-print-info.md Japanese * vp-set-row-attributes.md Japanese * vp-set-row-count.md Japanese * vp-set-sheet-count.md Japanese * vp-set-sheet-options.md Japanese * vp-set-show-print-lines.md Japanese * vp-set-table-column-attributes.md Japanese * vp-set-value.md Japanese * vp-set-values.md Japanese * vp-set-workbook-options.md Japanese * vp-show-cell.md Japanese * vp-suspend-computing.md Japanese * configuring.md Japanese * formulas.md Japanese * getting-started.md French * getting-started.md Spanish * getting-started.md Japanese * getting-started.md Portuguese, Brazilian * allowproject.md Japanese * authentication.md Japanese * errorpages.md Japanese * gettingstarted.md Japanese * http-request-handler.md Japanese * http-rules.md Japanese * httprequests.md Japanese * preemptiveweb.md Japanese * sessions.md Japanese * templates.md Japanese * webserver.md Japanese * webserveradmin.md Japanese * webserverconfig.md Japanese * webserverobject.md Japanese * wp-add-picture.md Japanese * wp-delete-section.md Japanese * wp-delete-style-sheet.md Japanese * wp-delete-subsection.md Japanese * wp-export-document.md Japanese * wp-export-variable.md Japanese * wp-get-attributes.md Japanese * wp-import-document.md Japanese * wp-insert-document-body.md Japanese * wp-insert-formula.md Japanese * wp-insert-picture.md Japanese * wp-new-style-sheet.md Japanese * wp-reset-attributes.md Japanese * wp-set-attributes.md Japanese * wp-table-append-row.md Japanese * managing-formulas.md Japanese * user-new.md Japanese * writeprointerface.md Japanese * openai.md French * openai.md Japanese * openaichatcompletionsapi.md Japanese * openaichatcompletionslistparameters.md Japanese * openaichatcompletionsmessagesapi.md Japanese * openaichatcompletionsmessagesparameters.md Japanese * openaichatcompletionsparameters.md French * openaichatcompletionsparameters.md Japanese * openaichatcompletionsresult.md French * openaichatcompletionsstreamresult.md French * openaichatcompletionsstreamresult.md Japanese * openaichathelper.md French * openaichathelper.md Japanese * openaifile.md Japanese * openaifiledeleted.md Japanese * openaifiledeletedresult.md Japanese * openaifilelistparameters.md Japanese * openaifilelistresult.md Japanese * openaifileparameters.md Japanese * openaifileresult.md Japanese * openaifilesapi.md Japanese * openaiimage.md Japanese * openaiimageparameters.md Japanese * openaiimagesapi.md Japanese * openaiimagesresult.md French * openaiimagesresult.md Japanese * openaimessage.md French * openaimessage.md Japanese * openaimoderation.md Japanese * openaimoderationsapi.md Japanese * openaiparameters.md French * openaiparameters.md Japanese * openaiproviders.md French * openaiproviders.md Japanese * openairesult.md French * openairesult.md Japanese * openaitool.md Japanese * asynchronous-call.md French * asynchronous-call.md Japanese * overview.md Japanese * provider-model-aliases.md French * provider-model-aliases.md Japanese * plugins.png French * plugins.png Spanish * plugins.png Japanese * plugins.png Portuguese, Brazilian * vpformevents.md.backup Japanese * write-class-method.md Japanese * file_and_folder.md Japanese * styled_text.md Japanese * system_documents.md Japanese * web_services_client.md Japanese * web_services_server.md Japanese * ai.md Japanese * client-server.md Japanese * compatibility.md Japanese * database.md Japanese * general.md Japanese * interface.md Japanese * overview.md Japanese * sql.md Japanese * web.md Japanese * mirror.md Japanese * exit.md Japanese * menus.md Japanese * overview.md Japanese * service.md Japanese * sso.md Japanese * vss.md Japanese --- .../current/Desktop/clientServer.md | 26 +- .../current/ViewPro/getting-started.md | 2 +- .../current/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../version-20/API/ZipArchiveClass.md | 14 +- .../version-20/Concepts/plug-ins.md | 2 +- .../FormObjects/pluginArea_overview.md | 2 +- .../version-20/Menus/sdi.md | 2 +- .../version-20/ViewPro/getting-started.md | 2 +- .../version-21-R3/Concepts/plug-ins.md | 2 +- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../version-21-R3/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../version-21-R4/Concepts/classes.md | 2 +- .../version-21-R4/Concepts/plug-ins.md | 2 +- .../version-21-R4/ViewPro/getting-started.md | 2 +- .../version-21-R4/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../version-21/Concepts/plug-ins.md | 2 +- .../version-21/ViewPro/getting-started.md | 2 +- .../version-21/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../current/Admin/tls.md | 2 +- .../current/FormObjects/properties_Text.md | 4 +- .../current/ServerWindow/maintenance.md | 2 +- .../current/ViewPro/getting-started.md | 2 +- .../current/aikit/Classes/OpenAIProviders.md | 2 +- .../current/aikit/provider-model-aliases.md | 24 +- .../current/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../version-20/ServerWindow/maintenance.md | 2 +- .../version-20/ViewPro/getting-started.md | 2 +- .../FormObjects/properties_Text.md | 4 +- .../version-21-R3/REST/$timeout.md | 6 +- .../version-21-R3/ServerWindow/maintenance.md | 2 +- .../Users/handling_users_groups.md | 6 +- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../OpenAIChatCompletionsParameters.md | 40 +- .../Classes/OpenAIChatCompletionsResult.md | 50 +- .../OpenAIChatCompletionsStreamResult.md | 32 +- .../aikit/Classes/OpenAIChatHelper.md | 30 +- .../aikit/Classes/OpenAIEmbeddingsResult.md | 30 +- .../aikit/Classes/OpenAIImagesResult.md | 36 +- .../aikit/Classes/OpenAIMessage.md | 8 +- .../aikit/Classes/OpenAIParameters.md | 16 +- .../aikit/Classes/OpenAIProviders.md | 2 +- .../aikit/Classes/OpenAIResult.md | 30 +- .../version-21-R3/aikit/asynchronous-call.md | 22 +- .../aikit/provider-model-aliases.md | 24 +- .../version-21-R3/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../version-21-R4/Concepts/classes.md | 2 +- .../version-21-R4/Concepts/dt_collection.md | 8 +- .../FormObjects/properties_Text.md | 4 +- .../version-21-R4/ServerWindow/maintenance.md | 2 +- .../version-21-R4/ViewPro/getting-started.md | 2 +- .../version-21-R4/aikit/Classes/OpenAI.md | 2 +- .../OpenAIChatCompletionsParameters.md | 40 +- .../Classes/OpenAIChatCompletionsResult.md | 50 +- .../OpenAIChatCompletionsStreamResult.md | 32 +- .../aikit/Classes/OpenAIChatHelper.md | 30 +- .../aikit/Classes/OpenAIImagesResult.md | 36 +- .../aikit/Classes/OpenAIMessage.md | 8 +- .../aikit/Classes/OpenAIParameters.md | 16 +- .../aikit/Classes/OpenAIProviders.md | 2 +- .../aikit/Classes/OpenAIResult.md | 30 +- .../version-21-R4/aikit/asynchronous-call.md | 22 +- .../aikit/provider-model-aliases.md | 24 +- .../version-21-R4/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../version-21/FormObjects/properties_Text.md | 4 +- .../version-21/Project/code-overview.md | 2 +- .../version-21/REST/$timeout.md | 6 +- .../version-21/ServerWindow/maintenance.md | 2 +- .../version-21/Users/handling_users_groups.md | 9 +- .../version-21/ViewPro/getting-started.md | 2 +- .../version-21/WritePro/managing-formulas.md | 2 +- .../OpenAIChatCompletionsParameters.md | 40 +- .../aikit/Classes/OpenAIParameters.md | 16 +- .../version-21/aikit/Classes/OpenAIResult.md | 2 +- .../version-21/aikit/asynchronous-call.md | 22 +- .../version-21/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../current/API/BlobClass.md | 6 +- .../current/API/ClassClass.md | 12 +- .../current/API/CollectionClass.md | 195 +++-- .../current/API/CryptoKeyClass.md | 58 +- .../current/API/DataClassClass.md | 261 ++++--- .../current/API/DataStoreClass.md | 102 ++- .../current/API/Directory.md | 16 +- .../current/API/Document.md | 19 +- .../current/API/EmailObjectClass.md | 24 +- .../current/API/EntityClass.md | 136 ++-- .../current/API/EntitySelectionClass.md | 114 +-- .../current/API/FileClass.md | 96 +-- .../current/API/FileHandleClass.md | 24 +- .../current/API/FolderClass.md | 21 +- .../current/API/FormulaClass.md | 6 +- .../current/API/FunctionClass.md | 6 +- .../current/API/HTTPAgentClass.md | 26 +- .../current/API/HTTPRequestClass.md | 94 +-- .../current/API/IMAPNotifierClass.md | 8 +- .../current/API/IMAPTransporterClass.md | 135 ++-- .../current/API/IncomingMessageClass.md | 8 +- .../current/API/MailAttachmentClass.md | 6 +- .../current/API/MethodClass.md | 34 +- .../current/API/OutgoingMessageClass.md | 14 +- .../current/API/POP3TransporterClass.md | 28 +- .../current/API/QuotaManagerClass.md | 14 +- .../current/API/SMTPTransporterClass.md | 22 +- .../current/API/SessionClass.md | 42 +- .../current/API/SignalClass.md | 14 +- .../current/API/SystemWorkerClass.md | 48 +- .../current/API/TCPConnectionClass.md | 42 +- .../current/API/TCPEventClass.md | 8 +- .../current/API/TCPListenerClass.md | 14 +- .../current/API/Transporter.md | 12 +- .../current/API/UDPEventClass.md | 6 +- .../current/API/UDPSocketClass.md | 10 +- .../current/API/VectorClass.md | 28 +- .../current/API/WebFormClass.md | 4 +- .../current/API/WebServerClass.md | 60 +- .../current/API/WebSocketClass.md | 22 +- .../current/API/WebSocketConnectionClass.md | 2 +- .../current/API/WebSocketServerClass.md | 44 +- .../current/API/ZipArchiveClass.md | 2 +- .../current/API/ZipFolderClass.md | 50 +- .../current/Admin/cli.md | 54 +- .../current/Admin/data-collect.md | 2 +- .../current/Admin/dataExplorer.md | 52 +- .../current/Admin/licenses.md | 22 +- .../current/Admin/tls.md | 32 +- .../current/Admin/webAdmin.md | 36 +- .../current/Backup/backup.md | 44 +- .../current/Backup/log.md | 41 +- .../current/Backup/mirror.md | 50 +- .../current/Backup/overview.md | 6 +- .../current/Backup/restore.md | 38 +- .../current/Backup/settings.md | 85 +- .../current/Concepts/about.md | 35 +- .../current/Concepts/arrays.md | 26 +- .../current/Concepts/classes.md | 120 +-- .../current/Concepts/components.md | 6 +- .../current/Concepts/data-types.md | 8 +- .../current/Concepts/dt_blob.md | 20 +- .../current/Concepts/dt_boolean.md | 6 +- .../current/Concepts/dt_collection.md | 24 +- .../current/Concepts/dt_date.md | 12 +- .../current/Concepts/dt_null_undefined.md | 10 +- .../current/Concepts/dt_number.md | 56 +- .../current/Concepts/dt_object.md | 52 +- .../current/Concepts/dt_picture.md | 12 +- .../current/Concepts/dt_pointer.md | 52 +- .../current/Concepts/dt_string.md | 34 +- .../current/Concepts/dt_time.md | 6 +- .../current/Concepts/dt_variant.md | 8 +- .../current/Concepts/error-handling.md | 36 +- .../current/Concepts/flow-control.md | 85 +- .../current/Concepts/identifiers.md | 12 +- .../current/Concepts/interpreted.md | 20 +- .../current/Concepts/methods.md | 39 +- .../current/Concepts/operators.md | 28 +- .../current/Concepts/ordering.md | 10 +- .../current/Concepts/parameters.md | 70 +- .../current/Concepts/paths.md | 16 +- .../current/Concepts/plug-ins.md | 10 +- .../current/Concepts/quick-tour.md | 138 ++-- .../current/Concepts/shared.md | 24 +- .../current/Concepts/variables.md | 89 ++- .../current/Debugging/basics.md | 38 +- .../current/Debugging/breakpoints.md | 37 +- .../current/Debugging/debugLogFiles.md | 90 +-- .../current/Debugging/debugger.md | 112 ++- .../current/Debugging/debugging-remote.md | 14 +- .../current/Desktop/building.md | 244 +++--- .../current/Desktop/clientServer.md | 157 ++-- .../current/Desktop/drag-and-drop.md | 52 +- .../current/Desktop/labels.md | 97 ++- .../current/Develop/async.md | 36 +- .../current/Develop/field-properties.md | 6 +- .../current/Develop/preemptive.md | 78 +- .../current/Develop/processes.md | 42 +- .../current/Develop/triggers-new.md | 2 +- .../current/Events/onActivate.md | 2 +- .../current/Events/onAfterKeystroke.md | 4 +- .../current/Events/onAfterSort.md | 2 +- .../current/Events/onAlternativeClick.md | 8 +- .../current/Events/onBeforeDataEntry.md | 2 +- .../current/Events/onBeforeKeystroke.md | 6 +- .../current/Events/onBeginDragOver.md | 6 +- .../current/Events/onClicked.md | 8 +- .../current/Events/onCloseDetail.md | 2 +- .../current/Events/onColumnMoved.md | 2 +- .../current/Events/onColumnResize.md | 4 +- .../current/Events/onDeactivate.md | 2 +- .../current/Events/onDeleteAction.md | 2 +- .../current/Events/onDisplayDetail.md | 4 +- .../current/Events/onDoubleClicked.md | 4 +- .../current/Events/onDragOver.md | 11 +- .../current/Events/onDrop.md | 4 +- .../current/Events/onFooterClick.md | 2 +- .../current/Events/onGettingFocus.md | 2 +- .../current/Events/onHeader.md | 2 +- .../current/Events/onHeaderClick.md | 6 +- .../current/Events/onLoad.md | 4 +- .../current/Events/onLoadRecord.md | 2 +- .../current/Events/onLongClick.md | 4 +- .../current/Events/onLosingFocus.md | 2 +- .../current/Events/onMenuSelected.md | 4 +- .../current/Events/onMouseEnter.md | 2 +- .../current/Events/onMouseLeave.md | 2 +- .../current/Events/onMouseMove.md | 4 +- .../current/Events/onMouseUp.md | 6 +- .../current/Events/onOpenDetail.md | 4 +- .../current/Events/onOutsideCall.md | 2 +- .../current/Events/onPageChange.md | 4 +- .../current/Events/onPrintingBreak.md | 2 +- .../current/Events/onPrintingDetail.md | 2 +- .../current/Events/onPrintingFooter.md | 2 +- .../current/Events/onResize.md | 2 +- .../current/Events/onRowMoved.md | 2 +- .../current/Events/onRowResize.md | 2 +- .../current/Events/onScroll.md | 4 +- .../current/Events/onSelectionChange.md | 2 +- .../current/Events/onUnload.md | 7 +- .../current/Events/onUrlResourceLoading.md | 2 +- .../current/Events/onVpRangeChanged.md | 2 +- .../current/Events/onVpReady.md | 4 +- .../current/Events/onWindowOpeningDenied.md | 2 +- .../current/Extensions/develop-components.md | 115 ++- .../current/Extensions/develop-plug-ins.md | 14 +- .../current/Extensions/overview.md | 8 +- .../current/FormEditor/createStylesheet.md | 12 +- .../current/FormEditor/formEditor.md | 252 +++--- .../current/FormEditor/forms.md | 66 +- .../current/FormEditor/macros.md | 26 +- .../current/FormEditor/objectLibrary.md | 30 +- .../current/FormEditor/pictures.md | 20 +- .../current/FormEditor/properties_Action.md | 4 +- .../FormEditor/properties_FormProperties.md | 31 +- .../current/FormEditor/properties_JSONref.md | 2 +- .../current/FormEditor/properties_Markers.md | 42 +- .../current/FormEditor/properties_Print.md | 8 +- .../FormEditor/properties_WindowSize.md | 4 +- .../FormObjects/buttonGrid_overview.md | 11 +- .../current/FormObjects/button_overview.md | 57 +- .../current/FormObjects/checkbox_overview.md | 50 +- .../current/FormObjects/comboBox_overview.md | 16 +- .../FormObjects/dropdownList_Overview.md | 75 +- .../FormObjects/formObjects_overview.md | 15 +- .../current/FormObjects/input_overview.md | 6 +- .../current/FormObjects/list_overview.md | 52 +- .../current/FormObjects/listbox-column.md | 109 ++- .../FormObjects/listbox-header-footer.md | 10 +- .../current/FormObjects/listbox-object.md | 93 ++- .../current/FormObjects/listbox_overview.md | 284 ++++--- .../FormObjects/pictureButton_overview.md | 14 +- .../FormObjects/picturePopupMenu_overview.md | 11 +- .../FormObjects/pluginArea_overview.md | 10 +- .../current/FormObjects/progressIndicator.md | 18 +- .../current/FormObjects/properties_Action.md | 32 +- .../FormObjects/properties_Animation.md | 12 +- .../FormObjects/properties_Appearance.md | 20 +- .../properties_BackgroundAndBorder.md | 21 +- .../properties_CoordinatesAndSizing.md | 19 +- .../FormObjects/properties_DataSource.md | 64 +- .../current/FormObjects/properties_Display.md | 105 ++- .../current/FormObjects/properties_Entry.md | 89 ++- .../current/FormObjects/properties_Footers.md | 14 +- .../current/FormObjects/properties_Headers.md | 14 +- .../current/FormObjects/properties_Help.md | 6 +- .../FormObjects/properties_Hierarchy.md | 2 +- .../current/FormObjects/properties_ListBox.md | 36 +- .../current/FormObjects/properties_Object.md | 49 +- .../current/FormObjects/properties_Picture.md | 10 +- .../current/FormObjects/properties_Plugins.md | 4 +- .../current/FormObjects/properties_Print.md | 6 +- .../FormObjects/properties_RangeOfValues.md | 13 +- .../FormObjects/properties_Reference.md | 22 +- .../FormObjects/properties_ResizingOptions.md | 12 +- .../current/FormObjects/properties_Scale.md | 4 +- .../current/FormObjects/properties_Subform.md | 28 +- .../current/FormObjects/properties_Text.md | 91 ++- .../FormObjects/properties_TextAndPicture.md | 52 +- .../current/FormObjects/properties_WebArea.md | 12 +- .../current/FormObjects/radio_overview.md | 26 +- .../current/FormObjects/shapes_overview.md | 8 +- .../current/FormObjects/spinner.md | 4 +- .../current/FormObjects/splitters.md | 24 +- .../current/FormObjects/staticPicture.md | 8 +- .../current/FormObjects/stepper.md | 4 +- .../current/FormObjects/subform_overview.md | 53 +- .../current/FormObjects/tabControl.md | 24 +- .../current/FormObjects/text.md | 4 +- .../FormObjects/viewProArea_overview.md | 2 +- .../current/FormObjects/webArea_overview.md | 36 +- .../FormObjects/writeProArea_overview.md | 2 +- .../current/GettingStarted/Installation.md | 4 +- .../current/GettingStarted/creating.md | 20 +- .../current/MSC/analysis.md | 16 +- .../current/MSC/backup.md | 4 +- .../current/MSC/compact.md | 39 +- .../current/MSC/encrypt.md | 36 +- .../current/MSC/information.md | 24 +- .../current/MSC/overview.md | 12 +- .../current/MSC/repair.md | 37 +- .../current/MSC/restore.md | 58 +- .../current/MSC/rollback.md | 8 +- .../current/MSC/verify.md | 13 +- .../current/Menus/bars.md | 16 +- .../current/Menus/creating.md | 51 +- .../current/Menus/overview.md | 12 +- .../current/Menus/properties.md | 63 +- .../current/Menus/sdi.md | 28 +- .../current/Notes/updates.md | 10 +- .../ORDA/client-server-optimization.md | 30 +- .../current/ORDA/dsMapping.md | 45 +- .../current/ORDA/entities.md | 132 ++-- .../current/ORDA/global-stamp.md | 7 +- .../current/ORDA/glossary.md | 58 +- .../current/ORDA/orda-events.md | 52 +- .../current/ORDA/ordaClasses.md | 129 ++-- .../current/ORDA/overview.md | 10 +- .../current/ORDA/privileges.md | 56 +- .../current/ORDA/remoteDatastores.md | 15 +- .../current/Preferences/forms.md | 12 +- .../current/Preferences/general.md | 38 +- .../current/Preferences/methods.md | 39 +- .../current/Preferences/overview.md | 10 +- .../current/Preferences/shortcuts.md | 4 +- .../current/Preferences/structure.md | 6 +- .../current/Project/architecture.md | 114 +-- .../current/Project/code-overview.md | 24 +- .../current/Project/compiler.md | 126 ++- .../current/Project/date-time-formats.md | 10 +- .../current/Project/documentation.md | 12 +- .../current/Project/overview.md | 4 +- .../Project/project-method-properties.md | 111 ++- .../current/Project/search-replace.md | 91 ++- .../current/REST/$atomic_$atonce.md | 4 +- .../current/REST/$attributes.md | 2 +- .../current/REST/$catalog.md | 10 +- .../current/REST/$clean.md | 4 +- .../current/REST/$compute.md | 2 +- .../current/REST/$directory.md | 2 +- .../current/REST/$distinct.md | 2 +- .../current/REST/$entityset.md | 6 +- .../current/REST/$expand.md | 4 +- .../current/REST/$filter.md | 16 +- .../current/REST/$imageformat.md | 2 +- .../current/REST/$info.md | 34 +- .../current/REST/$lock.md | 2 +- .../current/REST/$method.md | 20 +- .../current/REST/$orderby.md | 2 +- .../current/REST/$querypath.md | 4 +- .../current/REST/$savedfilter.md | 2 +- .../current/REST/$savedorderby.md | 2 +- .../current/REST/$singleton.md | 6 +- .../current/REST/$skip.md | 2 +- .../current/REST/$timeout.md | 2 +- .../current/REST/$top_$limit.md | 2 +- .../current/REST/$upload.md | 6 +- .../current/REST/$version.md | 2 +- .../current/REST/ClassFunctions.md | 29 +- .../current/REST/REST_requests.md | 6 +- .../current/REST/authUsers.md | 19 +- .../current/REST/configuration.md | 16 +- .../current/REST/dataClass.md | 24 +- .../current/REST/genInfo.md | 4 +- .../current/REST/gettingStarted.md | 12 +- .../current/REST/manData.md | 26 +- .../ServerWindow/application-server.md | 10 +- .../current/ServerWindow/http-server.md | 18 +- .../current/ServerWindow/maintenance.md | 34 +- .../current/ServerWindow/monitor.md | 20 +- .../current/ServerWindow/overview.md | 4 +- .../current/ServerWindow/processes.md | 28 +- .../current/ServerWindow/real-time-monitor.md | 19 +- .../current/ServerWindow/remote-admin.md | 8 +- .../current/ServerWindow/sessions.md | 30 +- .../current/ServerWindow/sql-server.md | 8 +- .../current/Tags/transformation-tags.md | 102 ++- .../current/Users/handling_users_groups.md | 69 +- .../current/Users/overview.md | 12 +- .../current/ViewPro/advanced-programming.md | 6 +- .../current/ViewPro/classes.md | 33 +- .../ViewPro/commands/vp-add-formula-name.md | 16 +- .../ViewPro/commands/vp-add-range-name.md | 12 +- .../current/ViewPro/commands/vp-add-sheet.md | 4 +- .../current/ViewPro/commands/vp-add-span.md | 4 +- .../ViewPro/commands/vp-add-stylesheet.md | 8 +- .../current/ViewPro/commands/vp-all.md | 4 +- .../current/ViewPro/commands/vp-cell.md | 10 +- .../current/ViewPro/commands/vp-cells.md | 8 +- .../current/ViewPro/commands/vp-column.md | 8 +- .../ViewPro/commands/vp-combine-ranges.md | 2 +- .../commands/vp-convert-from-4d-view.md | 2 +- .../ViewPro/commands/vp-convert-to-picture.md | 8 +- .../ViewPro/commands/vp-copy-to-object.md | 18 +- .../ViewPro/commands/vp-create-table.md | 12 +- .../ViewPro/commands/vp-delete-columns.md | 2 +- .../ViewPro/commands/vp-delete-rows.md | 2 +- .../ViewPro/commands/vp-export-document.md | 96 +-- .../ViewPro/commands/vp-export-to-blob.md | 24 +- .../ViewPro/commands/vp-export-to-object.md | 12 +- .../current/ViewPro/commands/vp-find-table.md | 2 +- .../current/ViewPro/commands/vp-find.md | 22 +- .../ViewPro/commands/vp-flush-commands.md | 4 +- .../ViewPro/commands/vp-font-to-object.md | 6 +- .../ViewPro/commands/vp-get-active-cell.md | 4 +- .../ViewPro/commands/vp-get-binding-path.md | 2 +- .../ViewPro/commands/vp-get-column-count.md | 4 +- .../ViewPro/commands/vp-get-current-sheet.md | 2 +- .../ViewPro/commands/vp-get-data-context.md | 14 +- .../ViewPro/commands/vp-get-default-style.md | 6 +- .../commands/vp-get-formula-by-name.md | 12 +- .../ViewPro/commands/vp-get-formulas.md | 4 +- .../ViewPro/commands/vp-get-frozen-panes.md | 6 +- .../current/ViewPro/commands/vp-get-names.md | 4 +- .../ViewPro/commands/vp-get-print-info.md | 4 +- .../ViewPro/commands/vp-get-row-count.md | 4 +- .../ViewPro/commands/vp-get-selection.md | 4 +- .../ViewPro/commands/vp-get-sheet-options.md | 6 +- .../ViewPro/commands/vp-get-stylesheet.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 2 +- .../vp-get-table-column-attributes.md | 14 +- .../commands/vp-get-table-dirty-rows.md | 4 +- .../ViewPro/commands/vp-get-table-theme.md | 2 +- .../current/ViewPro/commands/vp-get-value.md | 2 +- .../current/ViewPro/commands/vp-get-values.md | 2 +- .../ViewPro/commands/vp-import-document.md | 68 +- .../ViewPro/commands/vp-import-from-blob.md | 22 +- .../ViewPro/commands/vp-import-from-object.md | 14 +- .../ViewPro/commands/vp-insert-columns.md | 2 +- .../ViewPro/commands/vp-insert-rows.md | 2 +- .../commands/vp-insert-table-columns.md | 2 +- .../ViewPro/commands/vp-insert-table-rows.md | 2 +- .../current/ViewPro/commands/vp-move-cells.md | 8 +- .../current/ViewPro/commands/vp-name.md | 4 +- .../ViewPro/commands/vp-new-document.md | 4 +- .../ViewPro/commands/vp-object-to-font.md | 2 +- .../ViewPro/commands/vp-paste-from-object.md | 2 +- .../current/ViewPro/commands/vp-print.md | 8 +- .../ViewPro/commands/vp-recompute-formulas.md | 4 +- .../ViewPro/commands/vp-remove-name.md | 2 +- .../ViewPro/commands/vp-remove-span.md | 2 +- .../ViewPro/commands/vp-remove-stylesheet.md | 2 +- .../commands/vp-remove-table-columns.md | 4 +- .../ViewPro/commands/vp-remove-table-rows.md | 4 +- .../ViewPro/commands/vp-remove-table.md | 2 +- .../ViewPro/commands/vp-reset-selection.md | 4 +- .../ViewPro/commands/vp-resize-table.md | 2 +- .../ViewPro/commands/vp-resume-computing.md | 6 +- .../current/ViewPro/commands/vp-row.md | 8 +- .../ViewPro/commands/vp-run-offscreen-area.md | 20 +- .../commands/vp-set-allowed-methods.md | 24 +- .../ViewPro/commands/vp-set-binding-path.md | 4 +- .../current/ViewPro/commands/vp-set-border.md | 10 +- .../ViewPro/commands/vp-set-cell-style.md | 2 +- .../commands/vp-set-column-attributes.md | 4 +- .../ViewPro/commands/vp-set-column-count.md | 4 +- .../ViewPro/commands/vp-set-current-sheet.md | 2 +- .../commands/vp-set-custom-functions.md | 26 +- .../ViewPro/commands/vp-set-data-context.md | 22 +- .../commands/vp-set-date-time-value.md | 2 +- .../ViewPro/commands/vp-set-date-value.md | 2 +- .../ViewPro/commands/vp-set-default-style.md | 6 +- .../current/ViewPro/commands/vp-set-field.md | 4 +- .../ViewPro/commands/vp-set-formulas.md | 4 +- .../ViewPro/commands/vp-set-frozen-panes.md | 12 +- .../current/ViewPro/commands/vp-set-values.md | 4 +- .../commands/vp-set-workbook-options.md | 120 +-- .../current/ViewPro/commands/vp-show-cell.md | 20 +- .../ViewPro/commands/vp-suspend-computing.md | 8 +- .../current/ViewPro/configuring.md | 455 ++++++----- .../current/ViewPro/formulas.md | 46 +- .../current/ViewPro/getting-started.md | 26 +- .../current/WebServer/allowProject.md | 8 +- .../current/WebServer/authentication.md | 32 +- .../current/WebServer/errorPages.md | 4 +- .../current/WebServer/gettingStarted.md | 20 +- .../current/WebServer/http-request-handler.md | 23 +- .../current/WebServer/http-rules.md | 26 +- .../current/WebServer/httpRequests.md | 41 +- .../current/WebServer/preemptiveWeb.md | 2 +- .../current/WebServer/sessions.md | 36 +- .../current/WebServer/templates.md | 32 +- .../current/WebServer/webServer.md | 8 +- .../current/WebServer/webServerAdmin.md | 106 +-- .../current/WebServer/webServerConfig.md | 131 ++-- .../current/WebServer/webServerObject.md | 6 +- .../WritePro/commands/wp-add-picture.md | 10 +- .../WritePro/commands/wp-delete-section.md | 4 +- .../commands/wp-delete-style-sheet.md | 4 +- .../WritePro/commands/wp-delete-subsection.md | 8 +- .../WritePro/commands/wp-export-document.md | 88 +-- .../WritePro/commands/wp-export-variable.md | 60 +- .../WritePro/commands/wp-import-document.md | 30 +- .../commands/wp-insert-document-body.md | 4 +- .../WritePro/commands/wp-insert-formula.md | 2 +- .../WritePro/commands/wp-insert-picture.md | 5 +- .../WritePro/commands/wp-new-style-sheet.md | 12 +- .../WritePro/commands/wp-reset-attributes.md | 6 +- .../WritePro/commands/wp-set-attributes.md | 4 +- .../WritePro/commands/wp-table-append-row.md | 6 +- .../current/WritePro/managing-formulas.md | 25 +- .../current/WritePro/writeprointerface.md | 125 ++- .../current/aikit/Classes/OpenAI.md | 8 +- .../aikit/Classes/OpenAIChatCompletionsAPI.md | 2 +- .../OpenAIChatCompletionsListParameters.md | 16 +- .../OpenAIChatCompletionsMessagesAPI.md | 2 +- ...OpenAIChatCompletionsMessagesParameters.md | 10 +- .../OpenAIChatCompletionsParameters.md | 34 +- .../OpenAIChatCompletionsStreamResult.md | 4 +- .../current/aikit/Classes/OpenAIChatHelper.md | 14 +- .../current/aikit/Classes/OpenAIEmbedding.md | 10 +- .../Classes/OpenAIEmbeddingsParameters.md | 8 +- .../current/aikit/Classes/OpenAIError.md | 2 +- .../current/aikit/Classes/OpenAIFile.md | 24 +- .../aikit/Classes/OpenAIFileDeletedResult.md | 6 +- .../aikit/Classes/OpenAIFileListParameters.md | 12 +- .../aikit/Classes/OpenAIFileListResult.md | 2 +- .../aikit/Classes/OpenAIFileParameters.md | 8 +- .../current/aikit/Classes/OpenAIFileResult.md | 6 +- .../current/aikit/Classes/OpenAIFilesAPI.md | 6 +- .../current/aikit/Classes/OpenAIImage.md | 4 +- .../aikit/Classes/OpenAIImageParameters.md | 2 +- .../aikit/Classes/OpenAIImagesResult.md | 2 +- .../current/aikit/Classes/OpenAIMessage.md | 10 +- .../current/aikit/Classes/OpenAIModeration.md | 2 +- .../aikit/Classes/OpenAIModerationsAPI.md | 12 +- .../current/aikit/Classes/OpenAIParameters.md | 34 +- .../current/aikit/Classes/OpenAIProviders.md | 6 +- .../current/aikit/Classes/OpenAIResult.md | 13 +- .../current/aikit/Classes/OpenAITool.md | 14 +- .../current/aikit/asynchronous-call.md | 6 +- .../current/aikit/overview.md | 4 +- .../current/aikit/provider-model-aliases.md | 8 +- .../current/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../assets/en/ViewPro/vpFormEvents.md.backup | 2 +- .../current/code-editor/write-class-method.md | 398 +++++----- .../current/commands/theme/File_and_Folder.md | 4 +- .../current/commands/theme/Styled_Text.md | 12 +- .../commands/theme/System_Documents.md | 20 +- .../commands/theme/Web_Services_Client.md | 6 +- .../commands/theme/Web_Services_Server.md | 4 +- .../current/server/exit.md | 12 +- .../current/server/menus.md | 25 +- .../current/server/overview.md | 2 +- .../current/server/service.md | 16 +- .../current/server/sso.md | 22 +- .../current/server/vss.md | 8 +- .../current/settings/ai.md | 16 +- .../current/settings/client-server.md | 42 +- .../current/settings/compatibility.md | 18 +- .../current/settings/database.md | 77 +- .../current/settings/general.md | 8 +- .../current/settings/interface.md | 26 +- .../current/settings/overview.md | 46 +- .../current/settings/web.md | 73 +- .../version-20/API/BlobClass.md | 6 +- .../version-20/API/ClassClass.md | 10 +- .../version-20/API/CryptoKeyClass.md | 60 +- .../version-20/API/EmailObjectClass.md | 40 +- .../version-20/API/EntitySelectionClass.md | 122 +-- .../version-20/API/FileHandleClass.md | 24 +- .../version-20/API/FolderClass.md | 26 +- .../version-20/API/FunctionClass.md | 18 +- .../version-20/API/HTTPRequestClass.md | 88 +-- .../version-20/API/MailAttachmentClass.md | 18 +- .../version-20/API/POP3TransporterClass.md | 32 +- .../version-20/API/SMTPTransporterClass.md | 16 +- .../version-20/API/SessionClass.md | 18 +- .../version-20/API/SignalClass.md | 18 +- .../version-20/API/SystemWorkerClass.md | 48 +- .../version-20/API/Transporter.md | 14 +- .../version-20/API/WebServerClass.md | 60 +- .../version-20/API/WebSocketServerClass.md | 44 +- .../version-20/API/ZipFolderClass.md | 50 +- .../version-20/API/overview.md | 10 +- .../version-20/Admin/cli.md | 54 +- .../version-20/Admin/data-collect.md | 6 +- .../version-20/Concepts/arrays.md | 26 +- .../version-20/Concepts/classes.md | 62 +- .../version-20/Concepts/commands.md | 4 +- .../version-20/Concepts/components.md | 10 +- .../version-20/Concepts/dt_blob.md | 18 +- .../version-20/Concepts/dt_boolean.md | 6 +- .../version-20/Concepts/dt_collection.md | 16 +- .../version-20/Concepts/dt_date.md | 8 +- .../version-20/Concepts/dt_null_undefined.md | 10 +- .../version-20/Concepts/dt_number.md | 46 +- .../version-20/Concepts/dt_object.md | 38 +- .../version-20/Concepts/dt_picture.md | 14 +- .../version-20/Concepts/dt_pointer.md | 60 +- .../version-20/Concepts/dt_string.md | 33 +- .../version-20/Concepts/dt_time.md | 6 +- .../version-20/Concepts/dt_variant.md | 10 +- .../version-20/Concepts/error-handling.md | 22 +- .../version-20/Concepts/flow-control.md | 86 +-- .../version-20/Concepts/identifiers.md | 10 +- .../version-20/Concepts/interpreted.md | 20 +- .../version-20/Concepts/methods.md | 88 +-- .../version-20/Concepts/operators.md | 28 +- .../version-20/Concepts/parameters.md | 84 +- .../version-20/Concepts/paths.md | 16 +- .../version-20/Concepts/plug-ins.md | 10 +- .../version-20/Concepts/quick-tour.md | 130 ++-- .../version-20/Concepts/shared.md | 26 +- .../version-20/Concepts/variables.md | 68 +- .../version-20/Debugging/basics.md | 38 +- .../version-20/Debugging/breakpoints.md | 36 +- .../version-20/Debugging/debugger.md | 100 +-- .../version-20/Debugging/debugging-remote.md | 14 +- .../version-20/Desktop/building.md | 234 +++--- .../version-20/Desktop/clientServer.md | 30 +- .../version-20/Desktop/user-settings.md | 28 +- .../version-20/Events/onAfterSort.md | 2 +- .../version-20/Events/onBeforeKeystroke.md | 6 +- .../version-20/Events/onBeginDragOver.md | 6 +- .../version-20/Events/onClicked.md | 8 +- .../version-20/Events/onCloseBox.md | 2 +- .../version-20/Events/onColumnMoved.md | 2 +- .../version-20/Events/onDeactivate.md | 2 +- .../version-20/Events/onDisplayDetail.md | 4 +- .../version-20/Events/onDoubleClicked.md | 4 +- .../version-20/Events/onDrop.md | 4 +- .../version-20/Events/onGettingFocus.md | 2 +- .../version-20/Events/onHeader.md | 2 +- .../version-20/Events/onLoad.md | 6 +- .../version-20/Events/onLosingFocus.md | 2 +- .../version-20/Events/onMenuSelected.md | 4 +- .../version-20/Events/onMouseUp.md | 6 +- .../version-20/Events/onOpenDetail.md | 4 +- .../version-20/Events/onOutsideCall.md | 2 +- .../version-20/Events/onPrintingBreak.md | 2 +- .../version-20/Events/onPrintingDetail.md | 2 +- .../version-20/Events/onPrintingFooter.md | 2 +- .../version-20/Events/onVpReady.md | 4 +- .../Extensions/develop-components.md | 92 +-- .../version-20/Extensions/develop-plug-ins.md | 14 +- .../version-20/Extensions/overview.md | 8 +- .../version-20/FormEditor/createStylesheet.md | 14 +- .../version-20/FormEditor/formEditor.md | 244 +++--- .../version-20/FormEditor/forms.md | 24 +- .../version-20/FormEditor/macros.md | 24 +- .../version-20/FormEditor/objectLibrary.md | 28 +- .../version-20/FormEditor/pictures.md | 20 +- .../FormEditor/properties_Action.md | 4 +- .../FormEditor/properties_FormProperties.md | 20 +- .../FormEditor/properties_FormSize.md | 10 +- .../FormEditor/properties_JSONref.md | 2 +- .../FormEditor/properties_Markers.md | 42 +- .../version-20/FormEditor/properties_Print.md | 8 +- .../FormEditor/properties_WindowSize.md | 4 +- .../FormObjects/buttonGrid_overview.md | 10 +- .../version-20/FormObjects/button_overview.md | 58 +- .../FormObjects/checkbox_overview.md | 50 +- .../FormObjects/comboBox_overview.md | 16 +- .../FormObjects/dropdownList_Overview.md | 74 +- .../FormObjects/formObjects_overview.md | 8 +- .../version-20/FormObjects/input_overview.md | 4 +- .../version-20/FormObjects/list_overview.md | 50 +- .../version-20/FormObjects/listbox-column.md | 109 ++- .../FormObjects/listbox-header-footer.md | 10 +- .../version-20/FormObjects/listbox-object.md | 89 ++- .../FormObjects/listbox_overview.md | 138 ++-- .../FormObjects/pictureButton_overview.md | 14 +- .../FormObjects/picturePopupMenu_overview.md | 10 +- .../FormObjects/pluginArea_overview.md | 10 +- .../FormObjects/progressIndicator.md | 18 +- .../FormObjects/properties_Action.md | 32 +- .../FormObjects/properties_Animation.md | 12 +- .../FormObjects/properties_Appearance.md | 20 +- .../properties_BackgroundAndBorder.md | 20 +- .../properties_CoordinatesAndSizing.md | 18 +- .../FormObjects/properties_DataSource.md | 58 +- .../FormObjects/properties_Display.md | 98 +-- .../FormObjects/properties_Entry.md | 80 +- .../FormObjects/properties_Footers.md | 14 +- .../FormObjects/properties_Headers.md | 14 +- .../version-20/FormObjects/properties_Help.md | 6 +- .../FormObjects/properties_Hierarchy.md | 2 +- .../FormObjects/properties_ListBox.md | 36 +- .../FormObjects/properties_Object.md | 54 +- .../FormObjects/properties_Picture.md | 10 +- .../FormObjects/properties_Plugins.md | 2 +- .../FormObjects/properties_Print.md | 6 +- .../FormObjects/properties_RangeOfValues.md | 12 +- .../FormObjects/properties_Reference.md | 22 +- .../FormObjects/properties_ResizingOptions.md | 10 +- .../FormObjects/properties_Scale.md | 4 +- .../FormObjects/properties_Subform.md | 28 +- .../version-20/FormObjects/properties_Text.md | 64 +- .../FormObjects/properties_TextAndPicture.md | 52 +- .../FormObjects/properties_WebArea.md | 12 +- .../version-20/FormObjects/radio_overview.md | 26 +- .../version-20/FormObjects/shapes_overview.md | 8 +- .../version-20/FormObjects/spinner.md | 4 +- .../version-20/FormObjects/splitters.md | 24 +- .../version-20/FormObjects/staticPicture.md | 8 +- .../version-20/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 52 +- .../version-20/FormObjects/tabControl.md | 32 +- .../version-20/FormObjects/text.md | 4 +- .../FormObjects/viewProArea_overview.md | 2 +- .../FormObjects/webArea_overview.md | 24 +- .../FormObjects/writeProArea_overview.md | 2 +- .../version-20/GettingStarted/Installation.md | 6 +- .../version-20/GettingStarted/creating.md | 24 +- .../version-20/MSC/analysis.md | 18 +- .../version-20/MSC/backup.md | 4 +- .../version-20/MSC/compact.md | 36 +- .../version-20/MSC/encrypt.md | 37 +- .../version-20/MSC/information.md | 20 +- .../version-20/MSC/overview.md | 12 +- .../version-20/MSC/repair.md | 36 +- .../version-20/MSC/restore.md | 58 +- .../version-20/MSC/rollback.md | 8 +- .../version-20/MSC/verify.md | 12 +- .../version-20/Menus/bars.md | 14 +- .../version-20/Menus/creating.md | 40 +- .../version-20/Menus/overview.md | 12 +- .../version-20/Menus/properties.md | 56 +- .../version-20/Menus/sdi.md | 28 +- .../version-20/Notes/updates.md | 8 + .../version-20/ORDA/dsMapping.md | 44 +- .../version-20/ORDA/entities.md | 70 +- .../version-20/ORDA/glossary.md | 60 +- .../version-20/ORDA/ordaClasses.md | 132 ++-- .../version-20/ORDA/overview.md | 10 +- .../version-20/ORDA/privileges.md | 46 +- .../version-20/ORDA/remoteDatastores.md | 42 +- .../version-20/Preferences/forms.md | 12 +- .../version-20/Preferences/general.md | 36 +- .../version-20/Preferences/methods.md | 32 +- .../version-20/Preferences/overview.md | 10 +- .../version-20/Preferences/shortcuts.md | 4 +- .../version-20/Preferences/structure.md | 6 +- .../version-20/Project/architecture.md | 98 +-- .../version-20/Project/compiler.md | 96 +-- .../version-20/Project/documentation.md | 12 +- .../version-20/Project/overview.md | 4 +- .../version-20/REST/$atomic_$atonce.md | 4 +- .../version-20/REST/$attributes.md | 2 +- .../version-20/REST/$catalog.md | 6 +- .../version-20/REST/$compute.md | 2 +- .../version-20/REST/$directory.md | 2 +- .../version-20/REST/$distinct.md | 2 +- .../version-20/REST/$entityset.md | 6 +- .../version-20/REST/$expand.md | 2 +- .../version-20/REST/$filter.md | 4 +- .../version-20/REST/$imageformat.md | 2 +- .../version-20/REST/$info.md | 16 +- .../version-20/REST/$lock.md | 2 +- .../version-20/REST/$method.md | 18 +- .../version-20/REST/$orderby.md | 2 +- .../version-20/REST/$querypath.md | 4 +- .../version-20/REST/$savedfilter.md | 2 +- .../version-20/REST/$savedorderby.md | 2 +- .../version-20/REST/$skip.md | 2 +- .../version-20/REST/$timeout.md | 2 +- .../version-20/REST/$top_$limit.md | 2 +- .../version-20/REST/$upload.md | 4 +- .../version-20/REST/$version.md | 2 +- .../version-20/REST/ClassFunctions.md | 24 +- .../version-20/REST/REST_requests.md | 6 +- .../version-20/REST/authUsers.md | 10 +- .../version-20/REST/configuration.md | 16 +- .../version-20/REST/dataClass.md | 24 +- .../version-20/REST/genInfo.md | 4 +- .../version-20/REST/gettingStarted.md | 12 +- .../version-20/REST/manData.md | 22 +- .../ServerWindow/application-server.md | 10 +- .../version-20/ServerWindow/http-server.md | 18 +- .../version-20/ServerWindow/maintenance.md | 32 +- .../version-20/ServerWindow/monitor.md | 20 +- .../version-20/ServerWindow/overview.md | 4 +- .../version-20/ServerWindow/processes.md | 28 +- .../ServerWindow/real-time-monitor.md | 18 +- .../version-20/ServerWindow/remote-admin.md | 8 +- .../version-20/ServerWindow/sql-server.md | 8 +- .../version-20/ServerWindow/users.md | 28 +- .../version-20/Tags/tags.md | 100 +-- .../version-20/Users/handling_users_groups.md | 60 +- .../version-20/Users/overview.md | 14 +- .../ViewPro/advanced-programming.md | 6 +- .../version-20/ViewPro/classes.md | 34 +- .../version-20/ViewPro/configuring.md | 444 +++++------ .../version-20/ViewPro/formulas.md | 46 +- .../version-20/ViewPro/getting-started.md | 30 +- .../version-20/ViewPro/method-list.md | 728 +++++++++--------- .../version-20/WebServer/allowProject.md | 8 +- .../version-20/WebServer/authentication.md | 32 +- .../version-20/WebServer/errorPages.md | 4 +- .../version-20/WebServer/gettingStarted.md | 20 +- .../version-20/WebServer/httpRequests.md | 40 +- .../version-20/WebServer/preemptiveWeb.md | 6 +- .../version-20/WebServer/sessions.md | 20 +- .../version-20/WebServer/templates.md | 32 +- .../version-20/WebServer/webServer.md | 6 +- .../version-20/WebServer/webServerAdmin.md | 106 +-- .../version-20/WebServer/webServerConfig.md | 128 +-- .../version-20/WebServer/webServerObject.md | 6 +- .../assets/en/ViewPro/vpFormEvents.md.backup | 2 +- .../code-editor/creating-using-macros.md | 110 +-- .../version-20/code-editor/overview.md | 82 +- .../code-editor/write-class-method.md | 266 +++---- .../version-20/settings/client-server.md | 44 +- .../version-20/settings/compatibility.md | 14 +- .../version-20/settings/database.md | 56 +- .../version-20/settings/general.md | 8 +- .../version-20/settings/interface.md | 20 +- .../version-20/settings/overview.md | 18 +- .../version-20/settings/php.md | 14 +- .../version-20/settings/security.md | 20 +- .../version-20/settings/web.md | 70 +- .../version-21-R3/API/BlobClass.md | 6 +- .../version-21-R3/API/ClassClass.md | 12 +- .../version-21-R3/API/CollectionClass.md | 195 +++-- .../version-21-R3/API/CryptoKeyClass.md | 60 +- .../version-21-R3/API/DataClassClass.md | 261 ++++--- .../version-21-R3/API/DataStoreClass.md | 102 ++- .../version-21-R3/API/Directory.md | 16 +- .../version-21-R3/API/Document.md | 19 +- .../version-21-R3/API/EmailObjectClass.md | 24 +- .../version-21-R3/API/EntityClass.md | 136 ++-- .../version-21-R3/API/EntitySelectionClass.md | 114 +-- .../version-21-R3/API/FileClass.md | 96 +-- .../version-21-R3/API/FileHandleClass.md | 24 +- .../version-21-R3/API/FolderClass.md | 21 +- .../version-21-R3/API/FormulaClass.md | 6 +- .../version-21-R3/API/FunctionClass.md | 6 +- .../version-21-R3/API/HTTPAgentClass.md | 26 +- .../version-21-R3/API/HTTPRequestClass.md | 94 +-- .../version-21-R3/API/IMAPNotifierClass.md | 8 +- .../version-21-R3/API/IMAPTransporterClass.md | 135 ++-- .../version-21-R3/API/IncomingMessageClass.md | 8 +- .../version-21-R3/API/MailAttachmentClass.md | 6 +- .../version-21-R3/API/MethodClass.md | 28 +- .../version-21-R3/API/OutgoingMessageClass.md | 14 +- .../version-21-R3/API/POP3TransporterClass.md | 28 +- .../version-21-R3/API/SMTPTransporterClass.md | 12 +- .../version-21-R3/API/SessionClass.md | 40 +- .../version-21-R3/API/SignalClass.md | 14 +- .../version-21-R3/API/SystemWorkerClass.md | 50 +- .../version-21-R3/API/TCPConnectionClass.md | 42 +- .../version-21-R3/API/TCPEventClass.md | 8 +- .../version-21-R3/API/TCPListenerClass.md | 14 +- .../version-21-R3/API/Transporter.md | 12 +- .../version-21-R3/API/UDPEventClass.md | 6 +- .../version-21-R3/API/UDPSocketClass.md | 10 +- .../version-21-R3/API/VectorClass.md | 28 +- .../version-21-R3/API/WebFormClass.md | 4 +- .../version-21-R3/API/WebServerClass.md | 80 +- .../version-21-R3/API/WebSocketClass.md | 22 +- .../API/WebSocketConnectionClass.md | 2 +- .../version-21-R3/API/WebSocketServerClass.md | 44 +- .../version-21-R3/API/ZipArchiveClass.md | 2 +- .../version-21-R3/API/ZipFolderClass.md | 50 +- .../version-21-R3/Admin/cli.md | 54 +- .../version-21-R3/Admin/data-collect.md | 6 +- .../version-21-R3/Admin/dataExplorer.md | 52 +- .../version-21-R3/Admin/licenses.md | 22 +- .../version-21-R3/Admin/tls.md | 32 +- .../version-21-R3/Admin/webAdmin.md | 36 +- .../version-21-R3/Backup/backup.md | 44 +- .../version-21-R3/Backup/log.md | 41 +- .../version-21-R3/Backup/overview.md | 8 +- .../version-21-R3/Backup/restore.md | 38 +- .../version-21-R3/Backup/settings.md | 85 +- .../version-21-R3/Concepts/about.md | 35 +- .../version-21-R3/Concepts/arrays.md | 26 +- .../version-21-R3/Concepts/classes.md | 124 +-- .../version-21-R3/Concepts/components.md | 6 +- .../version-21-R3/Concepts/data-types.md | 10 +- .../version-21-R3/Concepts/dt_blob.md | 20 +- .../version-21-R3/Concepts/dt_boolean.md | 6 +- .../version-21-R3/Concepts/dt_collection.md | 16 +- .../version-21-R3/Concepts/dt_date.md | 12 +- .../Concepts/dt_null_undefined.md | 10 +- .../version-21-R3/Concepts/dt_number.md | 56 +- .../version-21-R3/Concepts/dt_object.md | 52 +- .../version-21-R3/Concepts/dt_picture.md | 12 +- .../version-21-R3/Concepts/dt_pointer.md | 54 +- .../version-21-R3/Concepts/dt_string.md | 30 +- .../version-21-R3/Concepts/dt_time.md | 6 +- .../version-21-R3/Concepts/dt_variant.md | 8 +- .../version-21-R3/Concepts/error-handling.md | 36 +- .../version-21-R3/Concepts/flow-control.md | 85 +- .../version-21-R3/Concepts/identifiers.md | 14 +- .../version-21-R3/Concepts/interpreted.md | 20 +- .../version-21-R3/Concepts/methods.md | 22 +- .../version-21-R3/Concepts/operators.md | 28 +- .../version-21-R3/Concepts/ordering.md | 10 +- .../version-21-R3/Concepts/parameters.md | 70 +- .../version-21-R3/Concepts/paths.md | 16 +- .../version-21-R3/Concepts/plug-ins.md | 10 +- .../version-21-R3/Concepts/quick-tour.md | 138 ++-- .../version-21-R3/Concepts/shared.md | 24 +- .../version-21-R3/Concepts/variables.md | 89 ++- .../version-21-R3/Debugging/basics.md | 38 +- .../version-21-R3/Debugging/breakpoints.md | 39 +- .../version-21-R3/Debugging/debugLogFiles.md | 90 +-- .../version-21-R3/Debugging/debugger.md | 120 ++- .../Debugging/debugging-remote.md | 30 +- .../version-21-R3/Desktop/building.md | 244 +++--- .../version-21-R3/Desktop/clientServer.md | 84 +- .../version-21-R3/Desktop/labels.md | 94 ++- .../version-21-R3/Desktop/sessions.md | 28 +- .../version-21-R3/Develop/async.md | 36 +- .../version-21-R3/Develop/explorer.md | 6 +- .../version-21-R3/Develop/field-properties.md | 6 +- .../version-21-R3/Develop/preemptive.md | 80 +- .../version-21-R3/Develop/processes.md | 46 +- .../version-21-R3/Develop/triggers-new.md | 8 +- .../version-21-R3/Events/onActivate.md | 2 +- .../version-21-R3/Events/onAfterKeystroke.md | 4 +- .../version-21-R3/Events/onAfterSort.md | 2 +- .../Events/onAlternativeClick.md | 8 +- .../version-21-R3/Events/onBeforeDataEntry.md | 2 +- .../version-21-R3/Events/onBeforeKeystroke.md | 6 +- .../version-21-R3/Events/onBeginDragOver.md | 6 +- .../version-21-R3/Events/onClicked.md | 8 +- .../version-21-R3/Events/onCloseDetail.md | 2 +- .../version-21-R3/Events/onColumnMoved.md | 2 +- .../version-21-R3/Events/onColumnResize.md | 4 +- .../version-21-R3/Events/onDeactivate.md | 2 +- .../version-21-R3/Events/onDeleteAction.md | 2 +- .../version-21-R3/Events/onDisplayDetail.md | 4 +- .../version-21-R3/Events/onDoubleClicked.md | 4 +- .../version-21-R3/Events/onDragOver.md | 11 +- .../version-21-R3/Events/onDrop.md | 4 +- .../version-21-R3/Events/onFooterClick.md | 2 +- .../version-21-R3/Events/onGettingFocus.md | 2 +- .../version-21-R3/Events/onHeader.md | 2 +- .../version-21-R3/Events/onHeaderClick.md | 6 +- .../version-21-R3/Events/onLoad.md | 4 +- .../version-21-R3/Events/onLoadRecord.md | 2 +- .../version-21-R3/Events/onLongClick.md | 4 +- .../version-21-R3/Events/onLosingFocus.md | 2 +- .../version-21-R3/Events/onMenuSelected.md | 4 +- .../version-21-R3/Events/onMouseEnter.md | 2 +- .../version-21-R3/Events/onMouseLeave.md | 2 +- .../version-21-R3/Events/onMouseMove.md | 4 +- .../version-21-R3/Events/onMouseUp.md | 6 +- .../version-21-R3/Events/onOpenDetail.md | 4 +- .../version-21-R3/Events/onOutsideCall.md | 2 +- .../version-21-R3/Events/onPageChange.md | 4 +- .../version-21-R3/Events/onPrintingBreak.md | 2 +- .../version-21-R3/Events/onPrintingDetail.md | 2 +- .../version-21-R3/Events/onPrintingFooter.md | 2 +- .../version-21-R3/Events/onResize.md | 2 +- .../version-21-R3/Events/onRowMoved.md | 2 +- .../version-21-R3/Events/onRowResize.md | 2 +- .../version-21-R3/Events/onScroll.md | 4 +- .../version-21-R3/Events/onSelectionChange.md | 2 +- .../version-21-R3/Events/onUnload.md | 7 +- .../Events/onUrlResourceLoading.md | 2 +- .../version-21-R3/Events/onVpRangeChanged.md | 2 +- .../version-21-R3/Events/onVpReady.md | 4 +- .../Events/onWindowOpeningDenied.md | 2 +- .../Extensions/develop-components.md | 113 ++- .../Extensions/develop-plug-ins.md | 14 +- .../version-21-R3/Extensions/overview.md | 8 +- .../FormEditor/createStylesheet.md | 12 +- .../version-21-R3/FormEditor/formEditor.md | 242 +++--- .../version-21-R3/FormEditor/forms.md | 46 +- .../version-21-R3/FormEditor/macros.md | 26 +- .../version-21-R3/FormEditor/objectLibrary.md | 32 +- .../version-21-R3/FormEditor/pictures.md | 20 +- .../FormEditor/properties_Action.md | 4 +- .../FormEditor/properties_FormProperties.md | 31 +- .../FormEditor/properties_FormSize.md | 10 +- .../FormEditor/properties_JSONref.md | 2 +- .../FormEditor/properties_Markers.md | 42 +- .../FormEditor/properties_Print.md | 8 +- .../FormEditor/properties_WindowSize.md | 4 +- .../FormObjects/buttonGrid_overview.md | 11 +- .../FormObjects/button_overview.md | 57 +- .../FormObjects/checkbox_overview.md | 50 +- .../FormObjects/comboBox_overview.md | 18 +- .../FormObjects/dropdownList_Overview.md | 77 +- .../FormObjects/formObjects_overview.md | 11 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 52 +- .../FormObjects/listbox-column.md | 111 ++- .../FormObjects/listbox-header-footer.md | 10 +- .../FormObjects/listbox-object.md | 93 ++- .../FormObjects/listbox_overview.md | 162 ++-- .../FormObjects/pictureButton_overview.md | 14 +- .../FormObjects/picturePopupMenu_overview.md | 11 +- .../FormObjects/pluginArea_overview.md | 10 +- .../FormObjects/progressIndicator.md | 18 +- .../FormObjects/properties_Action.md | 32 +- .../FormObjects/properties_Animation.md | 12 +- .../FormObjects/properties_Appearance.md | 20 +- .../properties_BackgroundAndBorder.md | 21 +- .../properties_CoordinatesAndSizing.md | 19 +- .../FormObjects/properties_Crop.md | 4 +- .../FormObjects/properties_DataSource.md | 70 +- .../FormObjects/properties_Display.md | 111 ++- .../FormObjects/properties_Entry.md | 89 ++- .../FormObjects/properties_Footers.md | 14 +- .../FormObjects/properties_Headers.md | 14 +- .../FormObjects/properties_Help.md | 6 +- .../FormObjects/properties_Hierarchy.md | 2 +- .../FormObjects/properties_ListBox.md | 36 +- .../FormObjects/properties_Object.md | 49 +- .../FormObjects/properties_Picture.md | 10 +- .../FormObjects/properties_Plugins.md | 4 +- .../FormObjects/properties_Print.md | 6 +- .../FormObjects/properties_RangeOfValues.md | 13 +- .../FormObjects/properties_Reference.md | 22 +- .../FormObjects/properties_ResizingOptions.md | 12 +- .../FormObjects/properties_Scale.md | 4 +- .../FormObjects/properties_Subform.md | 28 +- .../FormObjects/properties_Text.md | 71 +- .../FormObjects/properties_TextAndPicture.md | 52 +- .../FormObjects/properties_WebArea.md | 12 +- .../FormObjects/radio_overview.md | 26 +- .../FormObjects/shapes_overview.md | 8 +- .../version-21-R3/FormObjects/spinner.md | 4 +- .../version-21-R3/FormObjects/splitters.md | 24 +- .../FormObjects/staticPicture.md | 8 +- .../version-21-R3/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 53 +- .../version-21-R3/FormObjects/tabControl.md | 24 +- .../version-21-R3/FormObjects/text.md | 4 +- .../FormObjects/viewProArea_overview.md | 2 +- .../FormObjects/webArea_overview.md | 36 +- .../FormObjects/writeProArea_overview.md | 2 +- .../GettingStarted/Installation.md | 6 +- .../version-21-R3/GettingStarted/creating.md | 26 +- .../version-21-R3/MSC/analysis.md | 16 +- .../version-21-R3/MSC/backup.md | 4 +- .../version-21-R3/MSC/compact.md | 39 +- .../version-21-R3/MSC/encrypt.md | 36 +- .../version-21-R3/MSC/information.md | 24 +- .../version-21-R3/MSC/overview.md | 12 +- .../version-21-R3/MSC/repair.md | 37 +- .../version-21-R3/MSC/restore.md | 58 +- .../version-21-R3/MSC/rollback.md | 8 +- .../version-21-R3/MSC/verify.md | 13 +- .../version-21-R3/Menus/bars.md | 16 +- .../version-21-R3/Menus/creating.md | 51 +- .../version-21-R3/Menus/overview.md | 14 +- .../version-21-R3/Menus/properties.md | 65 +- .../version-21-R3/Menus/sdi.md | 28 +- .../version-21-R3/Notes/updates.md | 8 +- .../ORDA/client-server-optimization.md | 30 +- .../version-21-R3/Preferences/methods.md | 43 +- .../version-21-R3/Preferences/overview.md | 10 +- .../version-21-R3/Preferences/shortcuts.md | 4 +- .../version-21-R3/Preferences/structure.md | 6 +- .../version-21-R3/Project/architecture.md | 120 +-- .../version-21-R3/Project/code-overview.md | 32 +- .../version-21-R3/Project/compiler.md | 96 ++- .../version-21-R3/Project/components.md | 104 +-- .../Project/date-time-formats.md | 10 +- .../version-21-R3/Project/documentation.md | 12 +- .../version-21-R3/Project/overview.md | 4 +- .../Project/project-method-properties.md | 111 ++- .../version-21-R3/Project/search-replace.md | 91 ++- .../version-21-R3/REST/$atomic_$atonce.md | 4 +- .../version-21-R3/REST/$attributes.md | 2 +- .../version-21-R3/REST/$catalog.md | 10 +- .../version-21-R3/REST/$clean.md | 4 +- .../version-21-R3/REST/$compute.md | 2 +- .../version-21-R3/REST/$directory.md | 2 +- .../version-21-R3/REST/$distinct.md | 2 +- .../version-21-R3/REST/$entityset.md | 6 +- .../version-21-R3/REST/$expand.md | 4 +- .../version-21-R3/REST/$filter.md | 16 +- .../version-21-R3/REST/$imageformat.md | 2 +- .../version-21-R3/REST/$info.md | 36 +- .../version-21-R3/REST/$lock.md | 2 +- .../version-21-R3/REST/$method.md | 18 +- .../version-21-R3/REST/$orderby.md | 2 +- .../version-21-R3/REST/$querypath.md | 4 +- .../version-21-R3/REST/$savedfilter.md | 4 +- .../version-21-R3/REST/$savedorderby.md | 4 +- .../version-21-R3/REST/$singleton.md | 6 +- .../version-21-R3/REST/$skip.md | 2 +- .../version-21-R3/REST/$timeout.md | 2 +- .../version-21-R3/REST/$top_$limit.md | 2 +- .../version-21-R3/REST/$upload.md | 8 +- .../version-21-R3/REST/$version.md | 2 +- .../version-21-R3/REST/ClassFunctions.md | 33 +- .../version-21-R3/REST/REST_requests.md | 6 +- .../version-21-R3/REST/authUsers.md | 18 +- .../version-21-R3/REST/configuration.md | 16 +- .../version-21-R3/REST/dataClass.md | 24 +- .../version-21-R3/REST/genInfo.md | 4 +- .../version-21-R3/REST/gettingStarted.md | 12 +- .../version-21-R3/REST/manData.md | 26 +- .../ServerWindow/application-server.md | 10 +- .../version-21-R3/ServerWindow/http-server.md | 20 +- .../version-21-R3/ServerWindow/maintenance.md | 34 +- .../version-21-R3/ServerWindow/monitor.md | 20 +- .../version-21-R3/ServerWindow/overview.md | 4 +- .../version-21-R3/ServerWindow/processes.md | 28 +- .../ServerWindow/real-time-monitor.md | 23 +- .../ServerWindow/remote-admin.md | 8 +- .../version-21-R3/ServerWindow/sql-server.md | 10 +- .../version-21-R3/ServerWindow/users.md | 26 +- .../version-21-R3/Tags/transformation-tags.md | 108 ++- .../Users/handling_users_groups.md | 69 +- .../version-21-R3/Users/overview.md | 12 +- .../ViewPro/advanced-programming.md | 6 +- .../version-21-R3/ViewPro/classes.md | 33 +- .../ViewPro/commands/vp-add-formula-name.md | 16 +- .../ViewPro/commands/vp-add-range-name.md | 12 +- .../ViewPro/commands/vp-add-sheet.md | 4 +- .../ViewPro/commands/vp-add-span.md | 4 +- .../ViewPro/commands/vp-add-stylesheet.md | 8 +- .../version-21-R3/ViewPro/commands/vp-all.md | 4 +- .../version-21-R3/ViewPro/commands/vp-cell.md | 10 +- .../ViewPro/commands/vp-cells.md | 8 +- .../ViewPro/commands/vp-column.md | 8 +- .../ViewPro/commands/vp-combine-ranges.md | 2 +- .../commands/vp-convert-from-4d-view.md | 2 +- .../ViewPro/commands/vp-convert-to-picture.md | 8 +- .../ViewPro/commands/vp-copy-to-object.md | 18 +- .../ViewPro/commands/vp-create-table.md | 12 +- .../ViewPro/commands/vp-delete-columns.md | 2 +- .../ViewPro/commands/vp-delete-rows.md | 2 +- .../ViewPro/commands/vp-export-document.md | 96 +-- .../ViewPro/commands/vp-export-to-blob.md | 26 +- .../ViewPro/commands/vp-export-to-object.md | 12 +- .../ViewPro/commands/vp-find-table.md | 2 +- .../version-21-R3/ViewPro/commands/vp-find.md | 22 +- .../ViewPro/commands/vp-flush-commands.md | 4 +- .../ViewPro/commands/vp-font-to-object.md | 6 +- .../ViewPro/commands/vp-get-active-cell.md | 4 +- .../ViewPro/commands/vp-get-binding-path.md | 2 +- .../ViewPro/commands/vp-get-column-count.md | 4 +- .../ViewPro/commands/vp-get-current-sheet.md | 2 +- .../ViewPro/commands/vp-get-data-context.md | 14 +- .../ViewPro/commands/vp-get-default-style.md | 6 +- .../commands/vp-get-formula-by-name.md | 12 +- .../ViewPro/commands/vp-get-formulas.md | 4 +- .../ViewPro/commands/vp-get-frozen-panes.md | 6 +- .../ViewPro/commands/vp-get-names.md | 4 +- .../ViewPro/commands/vp-get-print-info.md | 4 +- .../ViewPro/commands/vp-get-row-count.md | 4 +- .../ViewPro/commands/vp-get-selection.md | 4 +- .../ViewPro/commands/vp-get-sheet-options.md | 6 +- .../ViewPro/commands/vp-get-stylesheet.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 2 +- .../vp-get-table-column-attributes.md | 14 +- .../commands/vp-get-table-dirty-rows.md | 4 +- .../ViewPro/commands/vp-get-table-theme.md | 2 +- .../ViewPro/commands/vp-get-value.md | 2 +- .../ViewPro/commands/vp-get-values.md | 2 +- .../ViewPro/commands/vp-import-document.md | 68 +- .../ViewPro/commands/vp-import-from-blob.md | 22 +- .../ViewPro/commands/vp-import-from-object.md | 14 +- .../ViewPro/commands/vp-insert-columns.md | 2 +- .../ViewPro/commands/vp-insert-rows.md | 2 +- .../commands/vp-insert-table-columns.md | 2 +- .../ViewPro/commands/vp-insert-table-rows.md | 2 +- .../ViewPro/commands/vp-move-cells.md | 8 +- .../version-21-R3/ViewPro/commands/vp-name.md | 4 +- .../ViewPro/commands/vp-new-document.md | 4 +- .../ViewPro/commands/vp-object-to-font.md | 2 +- .../ViewPro/commands/vp-paste-from-object.md | 2 +- .../ViewPro/commands/vp-print.md | 8 +- .../ViewPro/commands/vp-recompute-formulas.md | 4 +- .../ViewPro/commands/vp-remove-name.md | 2 +- .../ViewPro/commands/vp-remove-span.md | 2 +- .../ViewPro/commands/vp-remove-stylesheet.md | 2 +- .../commands/vp-remove-table-columns.md | 4 +- .../ViewPro/commands/vp-remove-table-rows.md | 4 +- .../ViewPro/commands/vp-remove-table.md | 2 +- .../ViewPro/commands/vp-reset-selection.md | 4 +- .../ViewPro/commands/vp-resize-table.md | 2 +- .../ViewPro/commands/vp-resume-computing.md | 6 +- .../version-21-R3/ViewPro/commands/vp-row.md | 8 +- .../ViewPro/commands/vp-run-offscreen-area.md | 20 +- .../commands/vp-set-allowed-methods.md | 24 +- .../ViewPro/commands/vp-set-binding-path.md | 4 +- .../ViewPro/commands/vp-set-border.md | 10 +- .../ViewPro/commands/vp-set-cell-style.md | 2 +- .../commands/vp-set-column-attributes.md | 4 +- .../ViewPro/commands/vp-set-column-count.md | 4 +- .../ViewPro/commands/vp-set-current-sheet.md | 2 +- .../commands/vp-set-custom-functions.md | 26 +- .../ViewPro/commands/vp-set-data-context.md | 22 +- .../commands/vp-set-date-time-value.md | 2 +- .../ViewPro/commands/vp-set-default-style.md | 6 +- .../ViewPro/commands/vp-set-field.md | 4 +- .../ViewPro/commands/vp-set-formulas.md | 4 +- .../ViewPro/commands/vp-set-frozen-panes.md | 12 +- .../ViewPro/commands/vp-set-print-info.md | 6 +- .../ViewPro/commands/vp-set-row-attributes.md | 4 +- .../ViewPro/commands/vp-set-row-count.md | 4 +- .../ViewPro/commands/vp-set-sheet-count.md | 2 +- .../ViewPro/commands/vp-set-sheet-options.md | 6 +- .../commands/vp-set-show-print-lines.md | 2 +- .../vp-set-table-column-attributes.md | 2 +- .../ViewPro/commands/vp-set-value.md | 12 +- .../ViewPro/commands/vp-set-values.md | 4 +- .../commands/vp-set-workbook-options.md | 120 +-- .../ViewPro/commands/vp-show-cell.md | 20 +- .../ViewPro/commands/vp-suspend-computing.md | 8 +- .../version-21-R3/ViewPro/configuring.md | 455 ++++++----- .../version-21-R3/ViewPro/formulas.md | 46 +- .../version-21-R3/ViewPro/getting-started.md | 26 +- .../version-21-R3/WebServer/allowProject.md | 8 +- .../version-21-R3/WebServer/authentication.md | 32 +- .../version-21-R3/WebServer/errorPages.md | 4 +- .../version-21-R3/WebServer/gettingStarted.md | 20 +- .../WebServer/http-request-handler.md | 27 +- .../version-21-R3/WebServer/http-rules.md | 26 +- .../version-21-R3/WebServer/httpRequests.md | 45 +- .../version-21-R3/WebServer/preemptiveWeb.md | 2 +- .../version-21-R3/WebServer/sessions.md | 36 +- .../version-21-R3/WebServer/templates.md | 32 +- .../version-21-R3/WebServer/webServer.md | 8 +- .../version-21-R3/WebServer/webServerAdmin.md | 106 +-- .../WebServer/webServerConfig.md | 136 ++-- .../WebServer/webServerObject.md | 6 +- .../WritePro/commands/wp-add-picture.md | 10 +- .../WritePro/commands/wp-delete-section.md | 4 +- .../commands/wp-delete-style-sheet.md | 2 +- .../WritePro/commands/wp-delete-subsection.md | 8 +- .../WritePro/commands/wp-export-document.md | 90 +-- .../WritePro/commands/wp-export-variable.md | 60 +- .../WritePro/commands/wp-get-attributes.md | 2 +- .../WritePro/commands/wp-import-document.md | 30 +- .../version-21-R3/aikit/Classes/OpenAI.md | 8 +- .../aikit/Classes/OpenAIChatCompletionsAPI.md | 2 +- .../OpenAIChatCompletionsListParameters.md | 16 +- .../OpenAIChatCompletionsMessagesAPI.md | 2 +- ...OpenAIChatCompletionsMessagesParameters.md | 10 +- .../OpenAIChatCompletionsParameters.md | 34 +- .../OpenAIChatCompletionsStreamResult.md | 4 +- .../aikit/Classes/OpenAIChatHelper.md | 32 +- .../aikit/Classes/OpenAIEmbedding.md | 10 +- .../aikit/Classes/OpenAIEmbeddingsAPI.md | 2 +- .../Classes/OpenAIEmbeddingsParameters.md | 8 +- .../aikit/Classes/OpenAIError.md | 2 +- .../version-21-R3/aikit/Classes/OpenAIFile.md | 24 +- .../aikit/Classes/OpenAIFileDeleted.md | 2 +- .../aikit/Classes/OpenAIFileDeletedResult.md | 6 +- .../aikit/Classes/OpenAIFileListParameters.md | 12 +- .../aikit/Classes/OpenAIFileListResult.md | 2 +- .../aikit/Classes/OpenAIFileParameters.md | 8 +- .../aikit/Classes/OpenAIFileResult.md | 6 +- .../aikit/Classes/OpenAIFilesAPI.md | 6 +- .../aikit/Classes/OpenAIImage.md | 4 +- .../aikit/Classes/OpenAIImageParameters.md | 2 +- .../aikit/Classes/OpenAIImagesAPI.md | 2 +- .../aikit/Classes/OpenAIImagesResult.md | 4 +- .../aikit/Classes/OpenAIMessage.md | 10 +- .../aikit/Classes/OpenAIModeration.md | 2 +- .../aikit/Classes/OpenAIModerationsAPI.md | 12 +- .../aikit/Classes/OpenAIParameters.md | 34 +- .../aikit/Classes/OpenAIProviders.md | 6 +- .../aikit/Classes/OpenAIResult.md | 13 +- .../version-21-R3/aikit/Classes/OpenAITool.md | 14 +- .../version-21-R3/aikit/asynchronous-call.md | 6 +- .../version-21-R3/aikit/overview.md | 4 +- .../aikit/provider-model-aliases.md | 8 +- .../version-21-R3/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../assets/en/ViewPro/vpFormEvents.md.backup | 2 +- .../code-editor/write-class-method.md | 398 +++++----- .../commands/theme/File_and_Folder.md | 4 +- .../version-21-R3/settings/ai.md | 16 +- .../version-21-R3/settings/client-server.md | 44 +- .../version-21-R3/settings/compatibility.md | 18 +- .../version-21-R3/settings/database.md | 65 +- .../version-21-R3/settings/general.md | 8 +- .../version-21-R3/settings/interface.md | 26 +- .../version-21-R3/settings/overview.md | 46 +- .../version-21-R3/settings/security.md | 23 +- .../version-21-R3/settings/sql.md | 4 +- .../version-21-R3/settings/web.md | 73 +- .../version-21-R4/API/BlobClass.md | 6 +- .../version-21-R4/API/ClassClass.md | 12 +- .../version-21-R4/API/CollectionClass.md | 195 +++-- .../version-21-R4/API/CryptoKeyClass.md | 60 +- .../version-21-R4/API/DataClassClass.md | 261 ++++--- .../version-21-R4/API/DataStoreClass.md | 102 ++- .../version-21-R4/API/Directory.md | 16 +- .../version-21-R4/API/Document.md | 19 +- .../version-21-R4/API/EmailObjectClass.md | 24 +- .../version-21-R4/API/EntityClass.md | 136 ++-- .../version-21-R4/API/EntitySelectionClass.md | 114 +-- .../version-21-R4/API/FileClass.md | 96 +-- .../version-21-R4/API/FileHandleClass.md | 24 +- .../version-21-R4/API/FolderClass.md | 21 +- .../version-21-R4/API/FormulaClass.md | 6 +- .../version-21-R4/API/FunctionClass.md | 6 +- .../version-21-R4/API/HTTPAgentClass.md | 26 +- .../version-21-R4/API/HTTPRequestClass.md | 94 +-- .../version-21-R4/API/IMAPNotifierClass.md | 8 +- .../version-21-R4/API/IMAPTransporterClass.md | 135 ++-- .../version-21-R4/API/IncomingMessageClass.md | 8 +- .../version-21-R4/API/MailAttachmentClass.md | 6 +- .../version-21-R4/API/MethodClass.md | 28 +- .../version-21-R4/API/OutgoingMessageClass.md | 14 +- .../version-21-R4/API/POP3TransporterClass.md | 28 +- .../version-21-R4/API/QuotaManagerClass.md | 14 +- .../version-21-R4/API/SMTPTransporterClass.md | 12 +- .../version-21-R4/API/SessionClass.md | 42 +- .../version-21-R4/API/SignalClass.md | 14 +- .../version-21-R4/API/SystemWorkerClass.md | 50 +- .../version-21-R4/API/TCPConnectionClass.md | 42 +- .../version-21-R4/API/TCPEventClass.md | 8 +- .../version-21-R4/API/TCPListenerClass.md | 14 +- .../version-21-R4/API/Transporter.md | 12 +- .../version-21-R4/API/UDPEventClass.md | 6 +- .../version-21-R4/API/UDPSocketClass.md | 10 +- .../version-21-R4/API/VectorClass.md | 28 +- .../version-21-R4/API/WebFormClass.md | 4 +- .../version-21-R4/API/WebServerClass.md | 80 +- .../version-21-R4/API/WebSocketClass.md | 22 +- .../API/WebSocketConnectionClass.md | 2 +- .../version-21-R4/API/WebSocketServerClass.md | 44 +- .../version-21-R4/Backup/settings.md | 85 +- .../version-21-R4/Concepts/about.md | 35 +- .../version-21-R4/Concepts/arrays.md | 26 +- .../version-21-R4/Concepts/classes.md | 124 +-- .../version-21-R4/Concepts/components.md | 6 +- .../version-21-R4/Concepts/data-types.md | 10 +- .../version-21-R4/Concepts/dt_blob.md | 20 +- .../version-21-R4/Concepts/dt_boolean.md | 6 +- .../version-21-R4/Concepts/dt_collection.md | 18 +- .../version-21-R4/Concepts/dt_date.md | 12 +- .../Concepts/dt_null_undefined.md | 10 +- .../version-21-R4/Concepts/dt_number.md | 56 +- .../version-21-R4/Concepts/dt_object.md | 52 +- .../version-21-R4/Concepts/dt_picture.md | 12 +- .../version-21-R4/Concepts/dt_pointer.md | 54 +- .../version-21-R4/Concepts/dt_string.md | 34 +- .../version-21-R4/Concepts/dt_time.md | 6 +- .../version-21-R4/Concepts/dt_variant.md | 8 +- .../version-21-R4/Concepts/error-handling.md | 36 +- .../version-21-R4/Concepts/flow-control.md | 85 +- .../version-21-R4/Concepts/identifiers.md | 14 +- .../version-21-R4/Concepts/interpreted.md | 20 +- .../version-21-R4/Concepts/methods.md | 41 +- .../version-21-R4/Concepts/operators.md | 28 +- .../version-21-R4/Concepts/ordering.md | 10 +- .../version-21-R4/Concepts/parameters.md | 70 +- .../version-21-R4/Concepts/paths.md | 16 +- .../version-21-R4/Concepts/plug-ins.md | 10 +- .../version-21-R4/Concepts/quick-tour.md | 138 ++-- .../version-21-R4/Concepts/shared.md | 24 +- .../version-21-R4/Concepts/variables.md | 89 ++- .../version-21-R4/Debugging/basics.md | 38 +- .../version-21-R4/Debugging/breakpoints.md | 39 +- .../version-21-R4/Debugging/debugLogFiles.md | 90 +-- .../version-21-R4/Debugging/debugger.md | 120 ++- .../Debugging/debugging-remote.md | 30 +- .../version-21-R4/Desktop/building.md | 244 +++--- .../version-21-R4/Desktop/clientServer.md | 92 +-- .../version-21-R4/Desktop/drag-and-drop.md | 66 +- .../version-21-R4/Desktop/labels.md | 94 ++- .../version-21-R4/Desktop/sessions.md | 28 +- .../version-21-R4/Develop/async.md | 36 +- .../version-21-R4/Develop/explorer.md | 6 +- .../version-21-R4/Develop/field-properties.md | 6 +- .../version-21-R4/Develop/preemptive.md | 80 +- .../version-21-R4/Develop/processes.md | 46 +- .../version-21-R4/Develop/triggers-new.md | 8 +- .../version-21-R4/Events/onActivate.md | 2 +- .../version-21-R4/Events/onAfterKeystroke.md | 4 +- .../version-21-R4/Events/onAfterSort.md | 2 +- .../Events/onAlternativeClick.md | 8 +- .../version-21-R4/Events/onBeforeDataEntry.md | 2 +- .../version-21-R4/Events/onBeforeKeystroke.md | 6 +- .../version-21-R4/Events/onBeginDragOver.md | 6 +- .../version-21-R4/Events/onClicked.md | 8 +- .../version-21-R4/Events/onCloseDetail.md | 2 +- .../version-21-R4/Events/onColumnMoved.md | 2 +- .../version-21-R4/Events/onColumnResize.md | 4 +- .../version-21-R4/Events/onDeactivate.md | 2 +- .../version-21-R4/Events/onDeleteAction.md | 2 +- .../version-21-R4/Events/onDisplayDetail.md | 4 +- .../version-21-R4/Events/onDoubleClicked.md | 4 +- .../version-21-R4/Events/onDragOver.md | 11 +- .../version-21-R4/Events/onDrop.md | 4 +- .../version-21-R4/Events/onFooterClick.md | 2 +- .../version-21-R4/Events/onGettingFocus.md | 2 +- .../version-21-R4/Events/onHeader.md | 2 +- .../version-21-R4/Events/onHeaderClick.md | 6 +- .../version-21-R4/Events/onLoad.md | 4 +- .../version-21-R4/Events/onLoadRecord.md | 2 +- .../version-21-R4/Events/onLongClick.md | 4 +- .../version-21-R4/Events/onLosingFocus.md | 2 +- .../version-21-R4/Events/onMenuSelected.md | 4 +- .../version-21-R4/Events/onMouseEnter.md | 2 +- .../version-21-R4/Events/onMouseLeave.md | 2 +- .../version-21-R4/Events/onMouseMove.md | 4 +- .../version-21-R4/Events/onMouseUp.md | 6 +- .../version-21-R4/Events/onOpenDetail.md | 4 +- .../version-21-R4/Events/onOutsideCall.md | 2 +- .../version-21-R4/Events/onPageChange.md | 4 +- .../version-21-R4/Events/onPrintingBreak.md | 2 +- .../version-21-R4/Events/onPrintingDetail.md | 2 +- .../version-21-R4/Events/onPrintingFooter.md | 2 +- .../version-21-R4/Events/onResize.md | 2 +- .../version-21-R4/Events/onRowMoved.md | 2 +- .../version-21-R4/Events/onRowResize.md | 2 +- .../version-21-R4/Events/onScroll.md | 4 +- .../version-21-R4/Events/onSelectionChange.md | 2 +- .../version-21-R4/Events/onUnload.md | 7 +- .../Events/onUrlResourceLoading.md | 2 +- .../version-21-R4/Events/onVpRangeChanged.md | 2 +- .../version-21-R4/Events/onVpReady.md | 4 +- .../Events/onWindowOpeningDenied.md | 2 +- .../Extensions/develop-components.md | 113 ++- .../Extensions/develop-plug-ins.md | 14 +- .../version-21-R4/Extensions/overview.md | 8 +- .../FormEditor/createStylesheet.md | 12 +- .../version-21-R4/FormEditor/formEditor.md | 242 +++--- .../version-21-R4/FormEditor/forms.md | 66 +- .../version-21-R4/FormEditor/macros.md | 26 +- .../version-21-R4/FormEditor/objectLibrary.md | 32 +- .../version-21-R4/FormEditor/pictures.md | 20 +- .../FormEditor/properties_Action.md | 4 +- .../FormEditor/properties_FormProperties.md | 31 +- .../FormEditor/properties_FormSize.md | 10 +- .../FormEditor/properties_JSONref.md | 2 +- .../FormEditor/properties_Markers.md | 42 +- .../FormEditor/properties_Print.md | 8 +- .../FormEditor/properties_WindowSize.md | 4 +- .../FormObjects/buttonGrid_overview.md | 11 +- .../FormObjects/button_overview.md | 57 +- .../FormObjects/checkbox_overview.md | 50 +- .../FormObjects/comboBox_overview.md | 18 +- .../FormObjects/dropdownList_Overview.md | 77 +- .../FormObjects/formObjects_overview.md | 15 +- .../FormObjects/input_overview.md | 6 +- .../FormObjects/list_overview.md | 52 +- .../FormObjects/listbox-column.md | 111 ++- .../FormObjects/listbox-header-footer.md | 10 +- .../FormObjects/listbox-object.md | 93 ++- .../FormObjects/listbox_overview.md | 284 ++++--- .../FormObjects/pictureButton_overview.md | 14 +- .../FormObjects/picturePopupMenu_overview.md | 11 +- .../FormObjects/pluginArea_overview.md | 10 +- .../FormObjects/progressIndicator.md | 18 +- .../FormObjects/properties_Action.md | 32 +- .../FormObjects/properties_Animation.md | 12 +- .../FormObjects/properties_Appearance.md | 20 +- .../properties_BackgroundAndBorder.md | 21 +- .../properties_CoordinatesAndSizing.md | 19 +- .../FormObjects/properties_Crop.md | 4 +- .../FormObjects/properties_DataSource.md | 70 +- .../FormObjects/properties_Display.md | 111 ++- .../FormObjects/properties_Entry.md | 89 ++- .../FormObjects/properties_Footers.md | 14 +- .../FormObjects/properties_Headers.md | 14 +- .../FormObjects/properties_Help.md | 6 +- .../FormObjects/properties_Hierarchy.md | 2 +- .../FormObjects/properties_ListBox.md | 36 +- .../FormObjects/properties_Object.md | 49 +- .../FormObjects/properties_Picture.md | 10 +- .../FormObjects/properties_Plugins.md | 4 +- .../FormObjects/properties_Print.md | 6 +- .../FormObjects/properties_RangeOfValues.md | 13 +- .../FormObjects/properties_Reference.md | 22 +- .../FormObjects/properties_ResizingOptions.md | 12 +- .../FormObjects/properties_Scale.md | 4 +- .../FormObjects/properties_Subform.md | 28 +- .../FormObjects/properties_Text.md | 97 ++- .../FormObjects/properties_TextAndPicture.md | 52 +- .../FormObjects/properties_WebArea.md | 12 +- .../FormObjects/radio_overview.md | 26 +- .../FormObjects/webArea_overview.md | 36 +- .../FormObjects/writeProArea_overview.md | 2 +- .../GettingStarted/Installation.md | 6 +- .../version-21-R4/GettingStarted/creating.md | 26 +- .../version-21-R4/MSC/analysis.md | 16 +- .../version-21-R4/MSC/backup.md | 4 +- .../version-21-R4/MSC/compact.md | 39 +- .../version-21-R4/MSC/encrypt.md | 36 +- .../version-21-R4/MSC/information.md | 24 +- .../version-21-R4/MSC/overview.md | 12 +- .../version-21-R4/MSC/repair.md | 37 +- .../version-21-R4/MSC/restore.md | 58 +- .../version-21-R4/MSC/rollback.md | 8 +- .../version-21-R4/MSC/verify.md | 13 +- .../version-21-R4/Menus/bars.md | 16 +- .../version-21-R4/Menus/creating.md | 51 +- .../version-21-R4/Menus/overview.md | 14 +- .../version-21-R4/Menus/properties.md | 65 +- .../version-21-R4/Menus/sdi.md | 28 +- .../version-21-R4/Notes/updates.md | 10 +- .../ORDA/client-server-optimization.md | 30 +- .../version-21-R4/ORDA/dsMapping.md | 45 +- .../version-21-R4/ORDA/entities.md | 134 ++-- .../version-21-R4/ORDA/global-stamp.md | 7 +- .../version-21-R4/ORDA/glossary.md | 60 +- .../version-21-R4/ORDA/orda-events.md | 54 +- .../version-21-R4/ORDA/ordaClasses.md | 129 ++-- .../version-21-R4/ORDA/overview.md | 10 +- .../version-21-R4/ORDA/privileges.md | 56 +- .../version-21-R4/ORDA/remoteDatastores.md | 15 +- .../version-21-R4/Preferences/forms.md | 12 +- .../version-21-R4/Preferences/general.md | 40 +- .../version-21-R4/Preferences/methods.md | 43 +- .../version-21-R4/Preferences/overview.md | 10 +- .../version-21-R4/Preferences/shortcuts.md | 4 +- .../version-21-R4/Preferences/structure.md | 6 +- .../version-21-R4/Project/architecture.md | 120 +-- .../version-21-R4/Project/code-overview.md | 32 +- .../version-21-R4/Project/compiler.md | 96 ++- .../version-21-R4/Project/components.md | 104 +-- .../Project/date-time-formats.md | 10 +- .../version-21-R4/Project/documentation.md | 12 +- .../version-21-R4/Project/overview.md | 4 +- .../Project/project-method-properties.md | 111 ++- .../version-21-R4/Project/search-replace.md | 91 ++- .../version-21-R4/REST/$atomic_$atonce.md | 4 +- .../version-21-R4/REST/$attributes.md | 2 +- .../version-21-R4/REST/$catalog.md | 10 +- .../version-21-R4/REST/$clean.md | 4 +- .../version-21-R4/REST/$compute.md | 2 +- .../version-21-R4/REST/$directory.md | 2 +- .../version-21-R4/REST/$distinct.md | 2 +- .../version-21-R4/REST/$entityset.md | 6 +- .../version-21-R4/REST/$expand.md | 4 +- .../version-21-R4/REST/$filter.md | 16 +- .../version-21-R4/REST/$imageformat.md | 2 +- .../version-21-R4/REST/$info.md | 36 +- .../version-21-R4/REST/$lock.md | 2 +- .../version-21-R4/REST/$method.md | 20 +- .../version-21-R4/REST/$orderby.md | 2 +- .../version-21-R4/REST/$querypath.md | 4 +- .../version-21-R4/REST/$savedfilter.md | 2 +- .../version-21-R4/REST/$savedorderby.md | 2 +- .../version-21-R4/REST/$singleton.md | 6 +- .../version-21-R4/REST/$skip.md | 2 +- .../version-21-R4/REST/$timeout.md | 2 +- .../version-21-R4/REST/$top_$limit.md | 2 +- .../version-21-R4/REST/$upload.md | 8 +- .../version-21-R4/REST/$version.md | 2 +- .../version-21-R4/REST/ClassFunctions.md | 33 +- .../version-21-R4/REST/REST_requests.md | 6 +- .../version-21-R4/REST/authUsers.md | 19 +- .../version-21-R4/REST/configuration.md | 16 +- .../version-21-R4/REST/dataClass.md | 24 +- .../version-21-R4/REST/genInfo.md | 4 +- .../version-21-R4/REST/gettingStarted.md | 12 +- .../version-21-R4/REST/manData.md | 28 +- .../ServerWindow/application-server.md | 10 +- .../version-21-R4/ServerWindow/http-server.md | 20 +- .../version-21-R4/ServerWindow/maintenance.md | 34 +- .../version-21-R4/ServerWindow/monitor.md | 20 +- .../version-21-R4/ServerWindow/overview.md | 4 +- .../version-21-R4/ServerWindow/processes.md | 28 +- .../ServerWindow/real-time-monitor.md | 23 +- .../ServerWindow/remote-admin.md | 8 +- .../version-21-R4/ServerWindow/sessions.md | 22 +- .../version-21-R4/ServerWindow/sql-server.md | 10 +- .../version-21-R4/Tags/transformation-tags.md | 108 ++- .../Users/handling_users_groups.md | 69 +- .../version-21-R4/Users/overview.md | 12 +- .../ViewPro/advanced-programming.md | 6 +- .../version-21-R4/ViewPro/classes.md | 33 +- .../ViewPro/commands/vp-add-formula-name.md | 16 +- .../ViewPro/commands/vp-add-range-name.md | 12 +- .../ViewPro/commands/vp-add-sheet.md | 4 +- .../ViewPro/commands/vp-add-span.md | 4 +- .../ViewPro/commands/vp-add-stylesheet.md | 8 +- .../version-21-R4/ViewPro/commands/vp-all.md | 4 +- .../version-21-R4/ViewPro/commands/vp-cell.md | 10 +- .../ViewPro/commands/vp-cells.md | 8 +- .../ViewPro/commands/vp-column.md | 8 +- .../ViewPro/commands/vp-combine-ranges.md | 2 +- .../commands/vp-convert-from-4d-view.md | 2 +- .../ViewPro/commands/vp-convert-to-picture.md | 8 +- .../ViewPro/commands/vp-copy-to-object.md | 18 +- .../ViewPro/commands/vp-create-table.md | 12 +- .../ViewPro/commands/vp-delete-columns.md | 2 +- .../ViewPro/commands/vp-delete-rows.md | 2 +- .../ViewPro/commands/vp-export-document.md | 96 +-- .../ViewPro/commands/vp-export-to-blob.md | 26 +- .../ViewPro/commands/vp-export-to-object.md | 12 +- .../ViewPro/commands/vp-find-table.md | 2 +- .../version-21-R4/ViewPro/commands/vp-find.md | 22 +- .../ViewPro/commands/vp-flush-commands.md | 4 +- .../ViewPro/commands/vp-font-to-object.md | 6 +- .../ViewPro/commands/vp-get-active-cell.md | 4 +- .../ViewPro/commands/vp-get-binding-path.md | 2 +- .../ViewPro/commands/vp-get-column-count.md | 4 +- .../ViewPro/commands/vp-get-current-sheet.md | 2 +- .../ViewPro/commands/vp-get-data-context.md | 14 +- .../ViewPro/commands/vp-get-default-style.md | 6 +- .../commands/vp-get-formula-by-name.md | 12 +- .../ViewPro/commands/vp-get-formulas.md | 4 +- .../ViewPro/commands/vp-get-frozen-panes.md | 6 +- .../ViewPro/commands/vp-get-names.md | 4 +- .../ViewPro/commands/vp-get-print-info.md | 4 +- .../ViewPro/commands/vp-get-row-count.md | 4 +- .../ViewPro/commands/vp-get-selection.md | 4 +- .../ViewPro/commands/vp-get-sheet-options.md | 6 +- .../ViewPro/commands/vp-get-stylesheet.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 2 +- .../vp-get-table-column-attributes.md | 14 +- .../commands/vp-get-table-dirty-rows.md | 4 +- .../ViewPro/commands/vp-get-table-theme.md | 2 +- .../ViewPro/commands/vp-get-value.md | 2 +- .../ViewPro/commands/vp-get-values.md | 2 +- .../ViewPro/commands/vp-import-document.md | 68 +- .../ViewPro/commands/vp-import-from-blob.md | 22 +- .../ViewPro/commands/vp-import-from-object.md | 14 +- .../ViewPro/commands/vp-insert-columns.md | 2 +- .../ViewPro/commands/vp-insert-rows.md | 2 +- .../commands/vp-insert-table-columns.md | 2 +- .../ViewPro/commands/vp-insert-table-rows.md | 2 +- .../ViewPro/commands/vp-move-cells.md | 8 +- .../version-21-R4/ViewPro/commands/vp-name.md | 4 +- .../ViewPro/commands/vp-new-document.md | 4 +- .../ViewPro/commands/vp-object-to-font.md | 2 +- .../ViewPro/commands/vp-paste-from-object.md | 2 +- .../ViewPro/commands/vp-print.md | 8 +- .../ViewPro/commands/vp-recompute-formulas.md | 4 +- .../ViewPro/commands/vp-remove-name.md | 2 +- .../ViewPro/commands/vp-remove-span.md | 2 +- .../ViewPro/commands/vp-remove-stylesheet.md | 2 +- .../commands/vp-remove-table-columns.md | 4 +- .../ViewPro/commands/vp-remove-table-rows.md | 4 +- .../ViewPro/commands/vp-remove-table.md | 2 +- .../ViewPro/commands/vp-reset-selection.md | 4 +- .../ViewPro/commands/vp-resize-table.md | 2 +- .../ViewPro/commands/vp-resume-computing.md | 6 +- .../version-21-R4/ViewPro/commands/vp-row.md | 8 +- .../ViewPro/commands/vp-run-offscreen-area.md | 20 +- .../commands/vp-set-allowed-methods.md | 24 +- .../ViewPro/commands/vp-set-binding-path.md | 4 +- .../ViewPro/commands/vp-set-border.md | 10 +- .../ViewPro/commands/vp-set-cell-style.md | 2 +- .../commands/vp-set-column-attributes.md | 4 +- .../ViewPro/commands/vp-set-column-count.md | 4 +- .../ViewPro/commands/vp-set-current-sheet.md | 2 +- .../commands/vp-set-custom-functions.md | 26 +- .../ViewPro/commands/vp-set-data-context.md | 22 +- .../commands/vp-set-date-time-value.md | 2 +- .../ViewPro/commands/vp-set-date-value.md | 2 +- .../ViewPro/commands/vp-set-default-style.md | 6 +- .../ViewPro/commands/vp-set-field.md | 4 +- .../ViewPro/commands/vp-set-formulas.md | 4 +- .../ViewPro/commands/vp-set-frozen-panes.md | 12 +- .../ViewPro/commands/vp-set-print-info.md | 6 +- .../ViewPro/commands/vp-set-row-attributes.md | 4 +- .../ViewPro/commands/vp-set-row-count.md | 4 +- .../ViewPro/commands/vp-set-sheet-count.md | 2 +- .../ViewPro/commands/vp-set-sheet-options.md | 6 +- .../commands/vp-set-show-print-lines.md | 2 +- .../vp-set-table-column-attributes.md | 2 +- .../ViewPro/commands/vp-set-value.md | 12 +- .../ViewPro/commands/vp-set-values.md | 4 +- .../commands/vp-set-workbook-options.md | 120 +-- .../ViewPro/commands/vp-show-cell.md | 20 +- .../ViewPro/commands/vp-suspend-computing.md | 8 +- .../version-21-R4/ViewPro/configuring.md | 455 ++++++----- .../version-21-R4/ViewPro/formulas.md | 46 +- .../version-21-R4/ViewPro/getting-started.md | 26 +- .../version-21-R4/WebServer/allowProject.md | 8 +- .../version-21-R4/WebServer/authentication.md | 32 +- .../version-21-R4/WebServer/errorPages.md | 4 +- .../version-21-R4/WebServer/gettingStarted.md | 20 +- .../WebServer/http-request-handler.md | 27 +- .../version-21-R4/WebServer/http-rules.md | 26 +- .../version-21-R4/WebServer/httpRequests.md | 45 +- .../version-21-R4/WebServer/preemptiveWeb.md | 2 +- .../version-21-R4/WebServer/sessions.md | 36 +- .../version-21-R4/WebServer/templates.md | 32 +- .../version-21-R4/WebServer/webServer.md | 8 +- .../version-21-R4/WebServer/webServerAdmin.md | 106 +-- .../WebServer/webServerConfig.md | 136 ++-- .../WebServer/webServerObject.md | 6 +- .../WritePro/commands/wp-add-picture.md | 10 +- .../WritePro/commands/wp-delete-section.md | 4 +- .../commands/wp-delete-style-sheet.md | 4 +- .../WritePro/commands/wp-delete-subsection.md | 8 +- .../WritePro/commands/wp-export-document.md | 90 +-- .../WritePro/commands/wp-export-variable.md | 60 +- .../WritePro/commands/wp-get-attributes.md | 2 +- .../WritePro/commands/wp-import-document.md | 30 +- .../commands/wp-insert-document-body.md | 4 +- .../WritePro/commands/wp-insert-formula.md | 12 +- .../WritePro/commands/wp-insert-picture.md | 7 +- .../WritePro/commands/wp-new-style-sheet.md | 12 +- .../WritePro/commands/wp-reset-attributes.md | 6 +- .../WritePro/commands/wp-set-attributes.md | 6 +- .../WritePro/commands/wp-table-append-row.md | 6 +- .../WritePro/managing-formulas.md | 25 +- .../version-21-R4/WritePro/user/user-new.md | 10 +- .../WritePro/writeprointerface.md | 125 ++- .../version-21-R4/aikit/Classes/OpenAI.md | 8 +- .../aikit/Classes/OpenAIChatCompletionsAPI.md | 2 +- .../OpenAIChatCompletionsListParameters.md | 16 +- .../OpenAIChatCompletionsMessagesAPI.md | 2 +- ...OpenAIChatCompletionsMessagesParameters.md | 10 +- .../OpenAIChatCompletionsParameters.md | 34 +- .../OpenAIChatCompletionsStreamResult.md | 4 +- .../aikit/Classes/OpenAIChatHelper.md | 32 +- .../version-21-R4/aikit/Classes/OpenAIFile.md | 24 +- .../aikit/Classes/OpenAIFileDeleted.md | 2 +- .../aikit/Classes/OpenAIFileDeletedResult.md | 6 +- .../aikit/Classes/OpenAIFileListParameters.md | 12 +- .../aikit/Classes/OpenAIFileListResult.md | 2 +- .../aikit/Classes/OpenAIFileParameters.md | 8 +- .../aikit/Classes/OpenAIFileResult.md | 6 +- .../aikit/Classes/OpenAIFilesAPI.md | 6 +- .../aikit/Classes/OpenAIImage.md | 4 +- .../aikit/Classes/OpenAIImageParameters.md | 2 +- .../aikit/Classes/OpenAIImagesAPI.md | 2 +- .../aikit/Classes/OpenAIImagesResult.md | 4 +- .../aikit/Classes/OpenAIMessage.md | 10 +- .../aikit/Classes/OpenAIModeration.md | 2 +- .../aikit/Classes/OpenAIModerationsAPI.md | 12 +- .../aikit/Classes/OpenAIParameters.md | 34 +- .../aikit/Classes/OpenAIProviders.md | 6 +- .../aikit/Classes/OpenAIResult.md | 13 +- .../version-21-R4/aikit/Classes/OpenAITool.md | 14 +- .../version-21-R4/aikit/asynchronous-call.md | 6 +- .../version-21-R4/aikit/overview.md | 4 +- .../aikit/provider-model-aliases.md | 8 +- .../version-21-R4/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../assets/en/ViewPro/vpFormEvents.md.backup | 2 +- .../code-editor/write-class-method.md | 398 +++++----- .../commands/theme/File_and_Folder.md | 4 +- .../commands/theme/Styled_Text.md | 12 +- .../commands/theme/System_Documents.md | 20 +- .../commands/theme/Web_Services_Client.md | 6 +- .../commands/theme/Web_Services_Server.md | 4 +- .../version-21-R4/settings/ai.md | 16 +- .../version-21-R4/settings/client-server.md | 44 +- .../version-21-R4/settings/compatibility.md | 18 +- .../version-21-R4/settings/database.md | 77 +- .../version-21-R4/settings/general.md | 8 +- .../version-21-R4/settings/interface.md | 26 +- .../version-21-R4/settings/overview.md | 46 +- .../version-21-R4/settings/security.md | 23 +- .../version-21-R4/settings/sql.md | 4 +- .../version-21-R4/settings/web.md | 73 +- .../version-21/API/BlobClass.md | 6 +- .../version-21/API/ClassClass.md | 12 +- .../version-21/API/CollectionClass.md | 201 +++-- .../version-21/API/CryptoKeyClass.md | 60 +- .../version-21/API/DataClassClass.md | 251 +++--- .../version-21/API/DataStoreClass.md | 102 ++- .../version-21/API/Directory.md | 16 +- .../version-21/API/Document.md | 19 +- .../version-21/API/EmailObjectClass.md | 24 +- .../version-21/API/EntityClass.md | 136 ++-- .../version-21/API/EntitySelectionClass.md | 114 +-- .../version-21/API/FileClass.md | 92 +-- .../version-21/API/FileHandleClass.md | 24 +- .../version-21/API/FolderClass.md | 21 +- .../version-21/API/FunctionClass.md | 10 +- .../version-21/API/HTTPAgentClass.md | 26 +- .../version-21/API/HTTPRequestClass.md | 94 +-- .../version-21/API/IMAPTransporterClass.md | 131 ++-- .../version-21/API/IncomingMessageClass.md | 8 +- .../version-21/API/MailAttachmentClass.md | 6 +- .../version-21/API/OutgoingMessageClass.md | 14 +- .../version-21/API/POP3TransporterClass.md | 26 +- .../version-21/API/SMTPTransporterClass.md | 10 +- .../version-21/API/SessionClass.md | 64 +- .../version-21/API/SignalClass.md | 14 +- .../version-21/API/SystemWorkerClass.md | 50 +- .../version-21/API/TCPConnectionClass.md | 42 +- .../version-21/API/TCPEventClass.md | 8 +- .../version-21/API/TCPListenerClass.md | 14 +- .../version-21/API/Transporter.md | 12 +- .../version-21/API/UDPEventClass.md | 6 +- .../version-21/API/UDPSocketClass.md | 10 +- .../version-21/API/VectorClass.md | 28 +- .../version-21/API/WebFormClass.md | 4 +- .../version-21/API/WebServerClass.md | 80 +- .../version-21/API/WebSocketClass.md | 22 +- .../API/WebSocketConnectionClass.md | 2 +- .../version-21/API/WebSocketServerClass.md | 44 +- .../version-21/API/ZipArchiveClass.md | 2 +- .../version-21/API/ZipFolderClass.md | 50 +- .../version-21/Admin/cli.md | 54 +- .../version-21/Admin/data-collect.md | 6 +- .../version-21/Admin/dataExplorer.md | 52 +- .../version-21/Admin/licenses.md | 22 +- .../version-21/Admin/tls.md | 32 +- .../version-21/Admin/webAdmin.md | 38 +- .../version-21/Backup/backup.md | 44 +- .../version-21/Backup/log.md | 41 +- .../version-21/Backup/overview.md | 8 +- .../version-21/Backup/restore.md | 38 +- .../version-21/Backup/settings.md | 85 +- .../version-21/Concepts/about.md | 35 +- .../version-21/Concepts/arrays.md | 26 +- .../version-21/Concepts/classes.md | 88 +-- .../version-21/Concepts/components.md | 6 +- .../version-21/Concepts/data-types.md | 10 +- .../version-21/Concepts/dt_blob.md | 20 +- .../version-21/Concepts/dt_boolean.md | 6 +- .../version-21/Concepts/dt_collection.md | 16 +- .../version-21/Concepts/dt_date.md | 12 +- .../version-21/Concepts/dt_null_undefined.md | 10 +- .../version-21/Concepts/dt_number.md | 56 +- .../version-21/Concepts/dt_object.md | 42 +- .../version-21/Concepts/dt_picture.md | 12 +- .../version-21/Concepts/dt_pointer.md | 54 +- .../version-21/Concepts/dt_string.md | 30 +- .../version-21/Concepts/dt_time.md | 6 +- .../version-21/Concepts/dt_variant.md | 8 +- .../version-21/Concepts/error-handling.md | 32 +- .../version-21/Concepts/flow-control.md | 85 +- .../version-21/Concepts/identifiers.md | 14 +- .../version-21/Concepts/interpreted.md | 20 +- .../version-21/Concepts/methods.md | 84 +- .../version-21/Concepts/operators.md | 28 +- .../version-21/Concepts/parameters.md | 72 +- .../version-21/Concepts/paths.md | 16 +- .../version-21/Concepts/plug-ins.md | 10 +- .../version-21/Concepts/quick-tour.md | 136 ++-- .../version-21/Concepts/shared.md | 24 +- .../version-21/Concepts/variables.md | 89 ++- .../version-21/Debugging/basics.md | 38 +- .../version-21/Debugging/breakpoints.md | 39 +- .../version-21/Debugging/debugLogFiles.md | 90 +-- .../version-21/Debugging/debugger.md | 120 ++- .../version-21/Debugging/debugging-remote.md | 30 +- .../version-21/Desktop/building.md | 248 +++--- .../version-21/Desktop/clientServer.md | 42 +- .../version-21/Desktop/labels.md | 94 ++- .../version-21/Develop/async.md | 36 +- .../version-21/Develop/field-properties.md | 6 +- .../version-21/Develop/preemptive.md | 80 +- .../version-21/Develop/processes.md | 46 +- .../version-21/Events/onActivate.md | 2 +- .../version-21/Events/onAfterKeystroke.md | 4 +- .../version-21/Events/onAfterSort.md | 2 +- .../version-21/Events/onAlternativeClick.md | 8 +- .../version-21/Events/onBeforeDataEntry.md | 2 +- .../version-21/Events/onBeforeKeystroke.md | 6 +- .../version-21/Events/onBeginDragOver.md | 6 +- .../version-21/Events/onClicked.md | 8 +- .../version-21/Events/onCloseDetail.md | 2 +- .../version-21/Events/onColumnMoved.md | 2 +- .../version-21/Events/onColumnResize.md | 4 +- .../version-21/Events/onDeactivate.md | 2 +- .../version-21/Events/onDeleteAction.md | 2 +- .../version-21/Events/onDisplayDetail.md | 4 +- .../version-21/Events/onDoubleClicked.md | 4 +- .../version-21/Events/onDragOver.md | 11 +- .../version-21/Events/onDrop.md | 4 +- .../version-21/Events/onFooterClick.md | 2 +- .../version-21/Events/onGettingFocus.md | 2 +- .../version-21/Events/onHeader.md | 2 +- .../version-21/Events/onHeaderClick.md | 6 +- .../version-21/Events/onLoad.md | 4 +- .../version-21/Events/onLoadRecord.md | 2 +- .../version-21/Events/onLongClick.md | 4 +- .../version-21/Events/onLosingFocus.md | 2 +- .../version-21/Events/onMenuSelected.md | 4 +- .../version-21/Events/onMouseEnter.md | 2 +- .../version-21/Events/onMouseLeave.md | 2 +- .../version-21/Events/onMouseMove.md | 4 +- .../version-21/Events/onMouseUp.md | 6 +- .../version-21/Events/onOpenDetail.md | 4 +- .../version-21/Events/onOutsideCall.md | 2 +- .../version-21/Events/onPageChange.md | 4 +- .../version-21/Events/onPrintingBreak.md | 2 +- .../version-21/Events/onPrintingDetail.md | 2 +- .../version-21/Events/onPrintingFooter.md | 2 +- .../version-21/Events/onResize.md | 2 +- .../version-21/Events/onRowMoved.md | 2 +- .../version-21/Events/onRowResize.md | 2 +- .../version-21/Events/onScroll.md | 4 +- .../version-21/Events/onSelectionChange.md | 2 +- .../version-21/Events/onUnload.md | 7 +- .../version-21/Events/onUrlResourceLoading.md | 2 +- .../version-21/Events/onVpRangeChanged.md | 2 +- .../version-21/Events/onVpReady.md | 4 +- .../Events/onWindowOpeningDenied.md | 2 +- .../Extensions/develop-components.md | 107 ++- .../version-21/Extensions/develop-plug-ins.md | 14 +- .../version-21/Extensions/overview.md | 8 +- .../version-21/FormEditor/createStylesheet.md | 14 +- .../version-21/FormEditor/formEditor.md | 242 +++--- .../version-21/FormEditor/forms.md | 26 +- .../version-21/FormEditor/macros.md | 26 +- .../version-21/FormEditor/objectLibrary.md | 32 +- .../version-21/FormEditor/pictures.md | 20 +- .../FormEditor/properties_Action.md | 4 +- .../FormEditor/properties_FormProperties.md | 24 +- .../FormEditor/properties_FormSize.md | 10 +- .../FormEditor/properties_JSONref.md | 2 +- .../FormEditor/properties_Markers.md | 42 +- .../version-21/FormEditor/properties_Print.md | 8 +- .../FormEditor/properties_WindowSize.md | 4 +- .../FormObjects/buttonGrid_overview.md | 11 +- .../version-21/FormObjects/button_overview.md | 59 +- .../FormObjects/checkbox_overview.md | 50 +- .../FormObjects/comboBox_overview.md | 18 +- .../FormObjects/dropdownList_Overview.md | 77 +- .../FormObjects/formObjects_overview.md | 11 +- .../version-21/FormObjects/input_overview.md | 6 +- .../version-21/FormObjects/list_overview.md | 52 +- .../version-21/FormObjects/listbox-column.md | 109 ++- .../FormObjects/listbox-header-footer.md | 10 +- .../version-21/FormObjects/listbox-object.md | 93 ++- .../FormObjects/listbox_overview.md | 162 ++-- .../FormObjects/pictureButton_overview.md | 14 +- .../FormObjects/picturePopupMenu_overview.md | 11 +- .../FormObjects/pluginArea_overview.md | 10 +- .../FormObjects/progressIndicator.md | 18 +- .../FormObjects/properties_Action.md | 32 +- .../FormObjects/properties_Animation.md | 12 +- .../FormObjects/properties_Appearance.md | 20 +- .../properties_BackgroundAndBorder.md | 21 +- .../properties_CoordinatesAndSizing.md | 19 +- .../version-21/FormObjects/properties_Crop.md | 4 +- .../FormObjects/properties_DataSource.md | 70 +- .../FormObjects/properties_Display.md | 111 ++- .../FormObjects/properties_Entry.md | 87 ++- .../FormObjects/properties_Footers.md | 14 +- .../FormObjects/properties_Headers.md | 14 +- .../version-21/FormObjects/properties_Help.md | 6 +- .../FormObjects/properties_Hierarchy.md | 2 +- .../FormObjects/properties_ListBox.md | 36 +- .../FormObjects/properties_Object.md | 47 +- .../FormObjects/properties_Picture.md | 10 +- .../FormObjects/properties_Plugins.md | 4 +- .../FormObjects/properties_Print.md | 6 +- .../FormObjects/properties_RangeOfValues.md | 13 +- .../FormObjects/properties_Reference.md | 22 +- .../FormObjects/properties_ResizingOptions.md | 10 +- .../FormObjects/properties_Scale.md | 4 +- .../FormObjects/properties_Subform.md | 28 +- .../version-21/FormObjects/properties_Text.md | 71 +- .../FormObjects/properties_TextAndPicture.md | 52 +- .../FormObjects/properties_WebArea.md | 12 +- .../version-21/FormObjects/radio_overview.md | 26 +- .../version-21/FormObjects/shapes_overview.md | 8 +- .../version-21/FormObjects/spinner.md | 4 +- .../version-21/FormObjects/splitters.md | 24 +- .../version-21/FormObjects/staticPicture.md | 8 +- .../version-21/FormObjects/stepper.md | 4 +- .../FormObjects/subform_overview.md | 53 +- .../version-21/FormObjects/tabControl.md | 24 +- .../version-21/FormObjects/text.md | 4 +- .../FormObjects/viewProArea_overview.md | 2 +- .../FormObjects/webArea_overview.md | 36 +- .../FormObjects/writeProArea_overview.md | 2 +- .../version-21/GettingStarted/Installation.md | 4 +- .../version-21/GettingStarted/creating.md | 26 +- .../version-21/MSC/analysis.md | 16 +- .../version-21/MSC/backup.md | 4 +- .../version-21/MSC/compact.md | 39 +- .../version-21/MSC/encrypt.md | 36 +- .../version-21/MSC/information.md | 24 +- .../version-21/MSC/overview.md | 12 +- .../version-21/MSC/repair.md | 37 +- .../version-21/MSC/restore.md | 58 +- .../version-21/MSC/rollback.md | 8 +- .../version-21/MSC/verify.md | 13 +- .../version-21/Menus/bars.md | 16 +- .../version-21/Menus/creating.md | 51 +- .../version-21/Menus/overview.md | 14 +- .../version-21/Menus/properties.md | 65 +- .../version-21/Menus/sdi.md | 28 +- .../version-21/Notes/updates.md | 40 +- .../ORDA/client-server-optimization.md | 24 +- .../version-21/ORDA/dsMapping.md | 45 +- .../version-21/ORDA/entities.md | 134 ++-- .../version-21/ORDA/global-stamp.md | 7 +- .../version-21/ORDA/glossary.md | 60 +- .../version-21/ORDA/orda-events.md | 54 +- .../version-21/ORDA/ordaClasses.md | 147 ++-- .../version-21/ORDA/overview.md | 10 +- .../version-21/ORDA/privileges.md | 56 +- .../version-21/ORDA/remoteDatastores.md | 15 +- .../version-21/Preferences/forms.md | 12 +- .../version-21/Preferences/general.md | 40 +- .../version-21/Preferences/methods.md | 43 +- .../version-21/Preferences/overview.md | 10 +- .../version-21/Preferences/shortcuts.md | 4 +- .../version-21/Preferences/structure.md | 6 +- .../version-21/Project/architecture.md | 114 +-- .../version-21/Project/code-overview.md | 4 +- .../version-21/Project/compiler.md | 96 ++- .../version-21/Project/components.md | 86 +-- .../version-21/Project/date-time-formats.md | 10 +- .../version-21/Project/documentation.md | 12 +- .../version-21/Project/overview.md | 4 +- .../Project/project-method-properties.md | 47 +- .../version-21/REST/$atomic_$atonce.md | 4 +- .../version-21/REST/$attributes.md | 2 +- .../version-21/REST/$catalog.md | 10 +- .../version-21/REST/$clean.md | 4 +- .../version-21/REST/$compute.md | 2 +- .../version-21/REST/$directory.md | 2 +- .../version-21/REST/$distinct.md | 2 +- .../version-21/REST/$entityset.md | 6 +- .../version-21/REST/$expand.md | 4 +- .../version-21/REST/$filter.md | 16 +- .../version-21/REST/$imageformat.md | 2 +- .../version-21/REST/$info.md | 36 +- .../version-21/REST/$lock.md | 2 +- .../version-21/REST/$method.md | 18 +- .../version-21/REST/$orderby.md | 2 +- .../version-21/REST/$querypath.md | 4 +- .../version-21/REST/$savedfilter.md | 4 +- .../version-21/REST/$savedorderby.md | 4 +- .../version-21/REST/$singleton.md | 6 +- .../version-21/REST/$skip.md | 2 +- .../version-21/REST/$timeout.md | 2 +- .../version-21/REST/$top_$limit.md | 2 +- .../version-21/REST/$upload.md | 8 +- .../version-21/REST/$version.md | 2 +- .../version-21/REST/ClassFunctions.md | 33 +- .../version-21/REST/REST_requests.md | 6 +- .../version-21/REST/authUsers.md | 16 +- .../version-21/REST/configuration.md | 16 +- .../version-21/REST/dataClass.md | 24 +- .../version-21/REST/genInfo.md | 4 +- .../version-21/REST/gettingStarted.md | 12 +- .../version-21/REST/manData.md | 26 +- .../ServerWindow/application-server.md | 10 +- .../version-21/ServerWindow/http-server.md | 20 +- .../version-21/ServerWindow/maintenance.md | 34 +- .../version-21/ServerWindow/monitor.md | 20 +- .../version-21/ServerWindow/overview.md | 4 +- .../version-21/ServerWindow/processes.md | 28 +- .../ServerWindow/real-time-monitor.md | 23 +- .../version-21/ServerWindow/remote-admin.md | 8 +- .../version-21/ServerWindow/sql-server.md | 10 +- .../version-21/ServerWindow/users.md | 26 +- .../version-21/Tags/transformation-tags.md | 108 ++- .../version-21/Users/handling_users_groups.md | 69 +- .../version-21/Users/overview.md | 12 +- .../ViewPro/advanced-programming.md | 6 +- .../version-21/ViewPro/classes.md | 33 +- .../ViewPro/commands/vp-add-formula-name.md | 16 +- .../ViewPro/commands/vp-add-range-name.md | 12 +- .../ViewPro/commands/vp-add-sheet.md | 4 +- .../ViewPro/commands/vp-add-span.md | 4 +- .../ViewPro/commands/vp-add-stylesheet.md | 8 +- .../version-21/ViewPro/commands/vp-all.md | 4 +- .../version-21/ViewPro/commands/vp-cell.md | 10 +- .../version-21/ViewPro/commands/vp-cells.md | 8 +- .../version-21/ViewPro/commands/vp-column.md | 8 +- .../ViewPro/commands/vp-combine-ranges.md | 2 +- .../commands/vp-convert-from-4d-view.md | 2 +- .../ViewPro/commands/vp-convert-to-picture.md | 8 +- .../ViewPro/commands/vp-copy-to-object.md | 18 +- .../ViewPro/commands/vp-create-table.md | 12 +- .../ViewPro/commands/vp-delete-columns.md | 2 +- .../ViewPro/commands/vp-delete-rows.md | 2 +- .../ViewPro/commands/vp-export-document.md | 94 +-- .../ViewPro/commands/vp-export-to-blob.md | 26 +- .../ViewPro/commands/vp-export-to-object.md | 12 +- .../ViewPro/commands/vp-find-table.md | 2 +- .../version-21/ViewPro/commands/vp-find.md | 22 +- .../ViewPro/commands/vp-flush-commands.md | 4 +- .../ViewPro/commands/vp-font-to-object.md | 6 +- .../ViewPro/commands/vp-get-active-cell.md | 4 +- .../ViewPro/commands/vp-get-binding-path.md | 2 +- .../ViewPro/commands/vp-get-column-count.md | 4 +- .../ViewPro/commands/vp-get-current-sheet.md | 2 +- .../ViewPro/commands/vp-get-data-context.md | 14 +- .../ViewPro/commands/vp-get-default-style.md | 6 +- .../commands/vp-get-formula-by-name.md | 12 +- .../ViewPro/commands/vp-get-formulas.md | 4 +- .../ViewPro/commands/vp-get-frozen-panes.md | 6 +- .../ViewPro/commands/vp-get-names.md | 4 +- .../ViewPro/commands/vp-get-print-info.md | 4 +- .../ViewPro/commands/vp-get-row-count.md | 4 +- .../ViewPro/commands/vp-get-selection.md | 4 +- .../ViewPro/commands/vp-get-sheet-options.md | 6 +- .../ViewPro/commands/vp-get-stylesheet.md | 2 +- .../ViewPro/commands/vp-get-stylesheets.md | 2 +- .../vp-get-table-column-attributes.md | 14 +- .../commands/vp-get-table-dirty-rows.md | 4 +- .../ViewPro/commands/vp-get-table-theme.md | 2 +- .../ViewPro/commands/vp-get-value.md | 2 +- .../ViewPro/commands/vp-get-values.md | 2 +- .../ViewPro/commands/vp-import-document.md | 68 +- .../ViewPro/commands/vp-import-from-blob.md | 22 +- .../ViewPro/commands/vp-import-from-object.md | 14 +- .../ViewPro/commands/vp-insert-columns.md | 2 +- .../ViewPro/commands/vp-insert-rows.md | 2 +- .../commands/vp-insert-table-columns.md | 2 +- .../ViewPro/commands/vp-insert-table-rows.md | 2 +- .../ViewPro/commands/vp-move-cells.md | 8 +- .../version-21/ViewPro/commands/vp-name.md | 4 +- .../ViewPro/commands/vp-new-document.md | 4 +- .../ViewPro/commands/vp-object-to-font.md | 2 +- .../ViewPro/commands/vp-paste-from-object.md | 2 +- .../version-21/ViewPro/commands/vp-print.md | 8 +- .../ViewPro/commands/vp-recompute-formulas.md | 4 +- .../ViewPro/commands/vp-remove-name.md | 2 +- .../ViewPro/commands/vp-remove-span.md | 2 +- .../ViewPro/commands/vp-remove-stylesheet.md | 2 +- .../commands/vp-remove-table-columns.md | 4 +- .../ViewPro/commands/vp-remove-table-rows.md | 4 +- .../ViewPro/commands/vp-remove-table.md | 2 +- .../ViewPro/commands/vp-reset-selection.md | 4 +- .../ViewPro/commands/vp-resize-table.md | 2 +- .../ViewPro/commands/vp-resume-computing.md | 6 +- .../version-21/ViewPro/commands/vp-row.md | 8 +- .../ViewPro/commands/vp-run-offscreen-area.md | 20 +- .../commands/vp-set-allowed-methods.md | 24 +- .../ViewPro/commands/vp-set-binding-path.md | 4 +- .../ViewPro/commands/vp-set-border.md | 10 +- .../ViewPro/commands/vp-set-cell-style.md | 2 +- .../commands/vp-set-column-attributes.md | 4 +- .../ViewPro/commands/vp-set-column-count.md | 4 +- .../ViewPro/commands/vp-set-current-sheet.md | 2 +- .../commands/vp-set-custom-functions.md | 26 +- .../ViewPro/commands/vp-set-data-context.md | 22 +- .../commands/vp-set-date-time-value.md | 2 +- .../ViewPro/commands/vp-set-date-value.md | 2 +- .../ViewPro/commands/vp-set-default-style.md | 6 +- .../ViewPro/commands/vp-set-field.md | 4 +- .../ViewPro/commands/vp-set-formulas.md | 4 +- .../ViewPro/commands/vp-set-frozen-panes.md | 12 +- .../ViewPro/commands/vp-set-print-info.md | 6 +- .../ViewPro/commands/vp-set-row-attributes.md | 4 +- .../ViewPro/commands/vp-set-row-count.md | 4 +- .../ViewPro/commands/vp-set-sheet-count.md | 2 +- .../ViewPro/commands/vp-set-sheet-options.md | 6 +- .../commands/vp-set-show-print-lines.md | 2 +- .../vp-set-table-column-attributes.md | 2 +- .../ViewPro/commands/vp-set-value.md | 12 +- .../ViewPro/commands/vp-set-values.md | 4 +- .../commands/vp-set-workbook-options.md | 120 +-- .../ViewPro/commands/vp-show-cell.md | 20 +- .../ViewPro/commands/vp-suspend-computing.md | 8 +- .../version-21/ViewPro/configuring.md | 455 ++++++----- .../version-21/ViewPro/formulas.md | 46 +- .../version-21/ViewPro/getting-started.md | 26 +- .../version-21/WebServer/allowProject.md | 8 +- .../version-21/WebServer/authentication.md | 32 +- .../version-21/WebServer/errorPages.md | 4 +- .../version-21/WebServer/gettingStarted.md | 20 +- .../WebServer/http-request-handler.md | 27 +- .../version-21/WebServer/http-rules.md | 26 +- .../version-21/WebServer/httpRequests.md | 45 +- .../version-21/WebServer/preemptiveWeb.md | 2 +- .../version-21/WebServer/sessions.md | 36 +- .../version-21/WebServer/templates.md | 32 +- .../version-21/WebServer/webServer.md | 8 +- .../version-21/WebServer/webServerAdmin.md | 106 +-- .../version-21/WebServer/webServerConfig.md | 136 ++-- .../version-21/WebServer/webServerObject.md | 6 +- .../WritePro/commands/wp-add-picture.md | 10 +- .../WritePro/commands/wp-delete-section.md | 4 +- .../WritePro/commands/wp-delete-subsection.md | 8 +- .../WritePro/commands/wp-export-document.md | 90 +-- .../WritePro/commands/wp-export-variable.md | 60 +- .../WritePro/commands/wp-get-attributes.md | 2 +- .../WritePro/commands/wp-import-document.md | 28 +- .../commands/wp-insert-document-body.md | 4 +- .../WritePro/commands/wp-insert-formula.md | 2 +- .../WritePro/commands/wp-insert-picture.md | 7 +- .../WritePro/commands/wp-reset-attributes.md | 6 +- .../WritePro/commands/wp-set-attributes.md | 6 +- .../WritePro/commands/wp-table-append-row.md | 6 +- .../version-21/WritePro/managing-formulas.md | 29 +- .../version-21/WritePro/writeprointerface.md | 118 +-- .../version-21/aikit/Classes/OpenAI.md | 4 +- .../aikit/Classes/OpenAIChatCompletionsAPI.md | 2 +- .../OpenAIChatCompletionsListParameters.md | 16 +- .../OpenAIChatCompletionsMessagesAPI.md | 2 +- ...OpenAIChatCompletionsMessagesParameters.md | 10 +- .../version-21/aikit/Classes/OpenAIError.md | 2 +- .../version-21/aikit/Classes/OpenAIImage.md | 4 +- .../aikit/Classes/OpenAIImageParameters.md | 2 +- .../aikit/Classes/OpenAIImagesAPI.md | 2 +- .../aikit/Classes/OpenAIImagesResult.md | 2 +- .../version-21/aikit/Classes/OpenAIMessage.md | 6 +- .../aikit/Classes/OpenAIModeration.md | 2 +- .../aikit/Classes/OpenAIModerationsAPI.md | 12 +- .../aikit/Classes/OpenAIParameters.md | 34 +- .../version-21/aikit/Classes/OpenAIResult.md | 23 +- .../version-21/aikit/Classes/OpenAITool.md | 14 +- .../version-21/aikit/asynchronous-call.md | 6 +- .../version-21/aikit/overview.md | 4 +- .../version-21/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../assets/en/ViewPro/vpFormEvents.md.backup | 2 +- .../code-editor/write-class-method.md | 396 +++++----- .../version-21/commands/call-chain.md | 6 +- .../version-21/commands/command-name.md | 10 +- .../version-21/commands/compile-project.md | 18 +- .../commands/create-deployment-license.md | 4 +- .../commands/create-entity-selection.md | 4 +- .../version-21/commands/dialog.md | 14 +- .../version-21/commands/ds.md | 4 +- .../version-21/commands/file.md | 58 +- .../version-21/commands/folder.md | 4 +- .../version-21/commands/form-edit.md | 6 +- .../version-21/commands/form-event-code.md | 14 +- .../version-21/commands/form-event.md | 10 +- .../version-21/commands/form-load.md | 12 +- .../commands/formula-from-string.md | 4 +- .../version-21/commands/formula.md | 6 +- .../version-21/commands/generate-uuid.md | 4 +- .../version-21/commands/http-parse-message.md | 4 +- .../commands/imap-new-transporter.md | 26 +- .../version-21/commands/license-info.md | 28 +- .../commands/listbox-get-property.md | 18 +- .../commands/listbox-set-property.md | 14 +- .../commands/mail-convert-from-mime.md | 2 +- .../commands/mail-convert-to-mime.md | 12 +- .../commands/mail-new-attachment.md | 14 +- .../version-21/commands/new-collection.md | 8 +- .../version-21/commands/new-log-file.md | 8 +- .../commands/new-shared-collection.md | 8 +- .../version-21/commands/new-signal.md | 2 +- .../version-21/commands/num.md | 24 +- .../object-get-data-source-formula.md | 2 +- .../object-set-data-source-formula.md | 10 +- .../version-21/commands/open-datastore.md | 26 +- .../commands/pop3-new-transporter.md | 26 +- .../version-21/commands/print-form.md | 28 +- .../version-21/commands/process-activity.md | 6 +- .../version-21/commands/process-info.md | 32 +- .../version-21/commands/process-number.md | 4 +- .../version-21/commands/select-log-file.md | 6 +- .../version-21/commands/session-info.md | 26 +- .../version-21/commands/session-storage.md | 4 +- .../version-21/commands/session.md | 2 +- .../commands/set-allowed-methods.md | 8 +- .../commands/set-window-document-icon.md | 4 +- .../commands/smtp-new-transporter.md | 36 +- .../version-21/commands/string.md | 58 +- .../version-21/commands/super.md | 8 +- .../commands/theme/File_and_Folder.md | 4 +- .../version-21/commands/this.md | 4 +- .../version-21/commands/trim-end.md | 6 +- .../version-21/commands/trim-start.md | 6 +- .../version-21/commands/trim.md | 4 +- .../commands/use-entity-selection.md | 4 +- .../version-21/commands/wa-get-context.md | 12 +- .../version-21/commands/wa-set-context.md | 6 +- .../version-21/commands/web-form.md | 2 +- .../version-21/commands/web-server-list.md | 2 +- .../version-21/commands/zip-create-archive.md | 26 +- .../version-21/commands/zip-read-archive.md | 8 +- .../version-21/settings/client-server.md | 44 +- .../version-21/settings/compatibility.md | 19 +- .../version-21/settings/database.md | 65 +- .../version-21/settings/general.md | 8 +- .../version-21/settings/interface.md | 18 +- .../version-21/settings/overview.md | 46 +- .../version-21/settings/php.md | 4 +- .../version-21/settings/security.md | 23 +- .../version-21/settings/sql.md | 4 +- .../version-21/settings/web.md | 73 +- .../current/ViewPro/getting-started.md | 2 +- .../current/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../version-20/ViewPro/getting-started.md | 2 +- .../version-21-R3/ViewPro/getting-started.md | 2 +- .../version-21-R3/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../version-21-R4/ViewPro/getting-started.md | 2 +- .../version-21-R4/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes .../version-21/ViewPro/getting-started.md | 2 +- .../version-21/assets/en/Users/plugins.png | Bin 3237 -> 7464 bytes 2259 files changed, 29013 insertions(+), 29678 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md index e2f9d1534033d2..c9209cd544690b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md @@ -360,18 +360,18 @@ Los métodos con el atributo "Ejecutar en el servidor" están sujetos a las mism #### Punteros -Si pasa un puntero a una variable (variable simple, array o elemento de array), el valor referenciado también se envía al servidor. If the pointed value is modified on the server by the method, the modified value is returned to the client in order to update the corresponding variable on the client side. -Pointers to a table or field are sent as references (table number, field number). The current record value is not automatically exchanged. +Si pasa un puntero a una variable (variable simple, array o elemento de array), el valor referenciado también se envía al servidor. Si el método modifica el valor apuntado en el servidor, se devuelve el valor modificado al cliente para actualizar la variable correspondiente del lado del cliente. +Los punteros a una tabla o a un campo se envían como referencias (número de tabla, número de campo). El valor del registro actual no se sustituye automáticamente. :::note -This option works the same way in [interpreted mode as in compiled mode](../Concepts/interpreted.md). +Esta opción funciona igual [en modo interpretado que en modo compilado](../Concepts/interpreted.md). ::: #### Ejemplo -Here is the code for the *MyAppli* project method which has the "Execute on Server" attribute: +A continuación se muestra el código del método proyecto *MyAppli* que tiene el atributo "Ejecutar en el servidor": ```4d #DECLARE($table: Pointer; $field: Pointer; $array: Pointer; $search: Text) -> $result : Integer @@ -395,18 +395,18 @@ Del lado del cliente, el método se llama de la siguiente manera: ## Carpeta Resources -The [**Resources** folder](../Project/architecture.md#resources) of a project can be used to share custom data (pictures, files, subfolders, etc.) between the server machine and all the client machines. On the server machine, the **Resources** folder is simply be located at the first level of the [project root folder](../Project/architecture.md). +La carpeta [**Resources**](../Project/architecture.md#resources) de un proyecto puede ser usada para compartir datos personalizados (imágenes, archivos, subcarpetas, etc.) entre la máquina servidor y todas las máquinas clientes. En la máquina del servidor, la carpeta **Resources** se encuentra simplemente en el primer nivel de la [carpeta raíz del proyecto](../Project/architecture.md). -All referencing mechanisms associated with the **Resources** folder are supported in client/server mode (.lproj folder, XLIFF, pictures and so on). +Todos los mecanismos de referencia asociados a la carpeta **Resources** son compatibles en modo cliente/servidor (carpeta .lproj, XLIFF, imágenes, etc.). -Each client has a local copy of this folder. The contents of the local folder are automatically synchronized with that of the server each time the client connects. +Cada cliente tiene una copia local de esta carpeta. El contenido de la carpeta local se sincroniza automáticamente con el del servidor cada vez que el cliente se conecta. -Moreover, client machines can be dynamically "notified" during a session when the contents of the **Resources** folder of the server application are modified by a developer. This notification can be triggered: +Además, las máquinas cliente pueden ser "notificadas" dinámicamente durante una sesión cuando el contenido de la carpeta **Resources** de la aplicación servidor es modificado por un desarrollador. Esta notificación puede activarse: -- either automatically by the server, two minutes after the last modification made by a client (this delay helps to avoid inopportune notification in the case where numerous files are being copied). -- or manually via the **Notify clients** command in the action menu of the [**Resources explorer**][Using the Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html) on the Toolbox of the client machine at the origin of the modification. -- or by programming, via a [`NOTIFY RESOURCES FOLDER MODIFICATION`](../commands/notify-resources-folder-notification) command. This command is useful when the contents of the **Resources** folder are modified on the server machine via a stored procedure. +- o bien de forma automática por parte del servidor, dos minutos después de la última modificación realizada por un cliente (este retraso ayuda a evitar notificaciones inoportunas en caso de que se estén copiando numerosos archivos). +- o manualmente mediante el comando **Notificar a los clientes** del menú de acciones del [**Explorador de recursos**](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.en.html) en la Caja de herramientas del equipo cliente donde se realizó la modificación. +- o por programación, a través de un comando [`NOTIFY RESOURCES FOLDER MODIFICATION`](../commands/notify-resources-folder-notification). Este comando resulta útil cuando se modifican los contenidos de la carpeta **Resources** en el servidor mediante un procedimiento almacenado. -On the client side, the way the notification of any modifications will be handled depending on the [**Update "Resources" folder during a session**](../settings/client-server.md#update-resources-folder-during-a-session) setting value. This can also be set individually via the [`Auto synchro resources folder` selector of the `SET DATABASE PARAMETER`](../commands/set-database-parameter#auto-synchro-resources-folder-48) command. Three choices are available: **no synchronization**, **auto synchronization** or **ask**. For more information, please refer to the [**Network and Client-Server options** section](../settings/client-server.md#update-resources-folder-during-a-session). +Del lado del cliente, la forma en que se gestionará la notificación de cualquier modificación dependerá del valor de la opción [**Actualizar la carpeta "Resources" durante una sesión**](../settings/client-server.md#update-resources-folder-during-a-session). Esto también se puede configurar individualmente mediante el selector [`Auto synchro resources folder` del comando `SET DATABASE PARAMETER`](../commands/set-database-parameter#auto-synchro-resources-folder-48). Hay tres opciones disponibles: **sin sincronización**, **sincronización automática** o **preguntar**. Para más información, por favor consulte la sección [**Opciones Red y cliente-servidor**](../settings/client-server.md#update-resources-folder-during-a-session). -Lastly, each client machine can synchronize itself with the server at any time via the **Update Local Resources** command in the action menu of the [Resources explorer](https://doc.4d.com/4Dv20/4D/20.2/Resources-explorer.200-6750091.en.html). \ No newline at end of file +Por último, cada equipo cliente puede sincronizarse con el servidor en cualquier momento mediante el comando **Actualizar recursos locales** del menú de acciones del [Explorador de recursos](https://doc.4d.com/4Dv20/4D/20.2/Resources-explorer.200-6750091.en.html). \ No newline at end of file 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 66a0189c6a3b21..04e21fa37f21c6 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. 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: +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/assets/en/Users/plugins.png b/i18n/es/docusaurus-plugin-content-docs/current/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/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20/API/ZipArchiveClass.md index 1ff861bb04b851..e1fa5972eb4d57 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 @@ -77,11 +77,11 @@ 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
  • | +| 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
    | +| 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. @@ -92,11 +92,11 @@ Una vez creado un archivo, puede utilizar el comando [ZIP Read archive](#zip-rea El objeto status devuelto contiene las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| ---------- | ------- | ----------------------------------------------------------------------------------------------------------- | -| statusText | Text | Mensaje de error (si lo hay):
  • No se puede abrir el archivo ZIP
  • No se puede crear un archivo ZIP
  • La contraseña es necesaria para la codificación
  • | -| 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 | Mensaje de error (si lo hay):
    • No se puede abrir el archivo ZIP
    • No se puede crear un archivo ZIP
    • La contraseña es necesaria para la codificación
    | +| 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/es/docusaurus-plugin-content-docs/version-20/Concepts/plug-ins.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/plug-ins.md index 0875aa81cc0460..8819483cf5d73d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/plug-ins.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Concepts/plug-ins.md @@ -7,7 +7,7 @@ A medida que desarrolle una aplicación 4D, descubrirá muchas funcionalidades d ## ¿Qué es un plug-in y qué puede hacer? -Un plug-in es una pieza de código, escrita en cualquier lenguaje como C o C++, que 4D lanza al inicio. Añade funcionalidad a 4D y aumenta así su capacidad. A plug-in usually contains a set of routines given to the 4D developer. Puede manejar las áreas externas y ejecutar los procesos externos. +Un plug-in es una pieza de código, escrita en cualquier lenguaje como C o C++, que 4D lanza al inicio. Añade funcionalidad a 4D y aumenta así su capacidad. Un plug-in contiene generalmente un conjunto de rutinas dadas al desarrollador 4D. Puede manejar las áreas externas y ejecutar los procesos externos. ## ¿Dónde encontrar los plug-ins? diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/pluginArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/pluginArea_overview.md index d95b668e83c302..e1413a5cd48a3d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/pluginArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/FormObjects/pluginArea_overview.md @@ -4,7 +4,7 @@ title: Área de plug-in --- -A plug-in area is an area on the form that is completely controlled by a [plug-in](../Extensions/develop-plug-ins.md). La capacidad de integrar plug-ins en los formularios le ofrece posibilidades ilimitadas a la hora de crear aplicaciones personalizadas. +Un área de plug-in es un área en el formulario que está completamente controlada por un [plug-in](../Extensions/develop-plug-ins.md). La capacidad de integrar plug-ins en los formularios le ofrece posibilidades ilimitadas a la hora de crear aplicaciones personalizadas. Al abrir una aplicación, 4D crea una lista interna de los plug-ins [instalados en su aplicación](../Concepts/plug-ins.md#installing-plug-ins). Una vez que haya insertado un área de plug-in en un formulario, puede asignar un plug-in al área directamente en la lista **Tipo** en la lista de propiedades: diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/Menus/sdi.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Menus/sdi.md index 5340a76f90cecd..9b6d0c54b4f7f8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Menus/sdi.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Menus/sdi.md @@ -1,6 +1,6 @@ --- id: sdi -title: SDI mode on Windows +title: Modo SDI en Windows --- 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 6b1e5465f6dc09..c83a2f4b68e011 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. 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: +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/Concepts/plug-ins.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/plug-ins.md index 780e32e49a63b2..b9bb37c4b26ff8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/plug-ins.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R3/Concepts/plug-ins.md @@ -7,7 +7,7 @@ A medida que desarrolle una aplicación 4D, descubrirá muchas funcionalidades d ## ¿Qué es un plug-in y qué puede hacer? -Un plug-in es una pieza de código, escrita en cualquier lenguaje como C o C++, que 4D lanza al inicio. Añade funcionalidad a 4D y aumenta así su capacidad. A plug-in usually contains a set of routines given to the 4D developer. Puede manejar las áreas externas y ejecutar los procesos externos. +Un plug-in es una pieza de código, escrita en cualquier lenguaje como C o C++, que 4D lanza al inicio. Añade funcionalidad a 4D y aumenta así su capacidad. Un plug-in contiene generalmente un conjunto de rutinas dadas al desarrollador 4D. Puede manejar las áreas externas y ejecutar los procesos externos. ## ¿Dónde encontrar los plug-ins? 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 66a0189c6a3b21..04e21fa37f21c6 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. 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: +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/assets/en/Users/plugins.png b/i18n/es/docusaurus-plugin-content-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/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/classes.md index c310fcae8ec394..a72b083131c203 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/classes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/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/version-21-R4/Concepts/plug-ins.md b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/plug-ins.md index 780e32e49a63b2..b9bb37c4b26ff8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/plug-ins.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/Concepts/plug-ins.md @@ -7,7 +7,7 @@ A medida que desarrolle una aplicación 4D, descubrirá muchas funcionalidades d ## ¿Qué es un plug-in y qué puede hacer? -Un plug-in es una pieza de código, escrita en cualquier lenguaje como C o C++, que 4D lanza al inicio. Añade funcionalidad a 4D y aumenta así su capacidad. A plug-in usually contains a set of routines given to the 4D developer. Puede manejar las áreas externas y ejecutar los procesos externos. +Un plug-in es una pieza de código, escrita en cualquier lenguaje como C o C++, que 4D lanza al inicio. Añade funcionalidad a 4D y aumenta así su capacidad. Un plug-in contiene generalmente un conjunto de rutinas dadas al desarrollador 4D. Puede manejar las áreas externas y ejecutar los procesos externos. ## ¿Dónde encontrar los plug-ins? 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 66a0189c6a3b21..04e21fa37f21c6 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. 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: +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/assets/en/Users/plugins.png b/i18n/es/docusaurus-plugin-content-docs/version-21-R4/assets/en/Users/plugins.png index dd3dc15bb2c6dfdd647473fb694a5d6b3976eda2..cbef1608509485e138f3c0d68ae2e60a0f0ddcc1 100644 GIT binary patch literal 7464 zcmcgxcQjjnppQ{|#VEB$sZp!;rh-zlW^G!th*6_jBekN0wrUimV%FZ95-KfiiPRRO ziiA>Hd%ml`_s)Cgoj1<==lzl7-gEB#-jVNTeiKcN^=PTssX!nQt^O^@9T149AJ{IW zAOpUcr~LGRAEKZ;dN)DUUpWcD4ylKhkroJ4mr8x&atYX{^uKjC2n3?*yZ8{Hp=I|$ zAkHp*h?Yf|;|9(ME-;nNyqY0u8QZ^NOm4k-XT6$~U$eKjF~b6f!#CTeXIh}vtWo>>Yl>hn zrYm5_%OWW z=QqxR*~n1TyMi=TN(@f0i_V*i{>1n6M4CZld?2h2<=uqxc0oavC!=Uek{78Ox=ZMo zaMFyZ377TDx;($>pKg+p@%xU_WNk3KbV?+2rxAD0_0@Xxy^#WIgwjB!vv-u+Zg`x{ zPt`vl&$D*$W-+G4G{#O4dYHJC13qOGTeOQ6Z58a(^x%6#t{IF$dPF9_@OBxuAM+h@ z2zQIerp<*oWQemD=3gRtA)g4oo+agHhG8~l%1}obR9DFKgpTD{P&m^@H;hqLd|<29 zJ2zw(Tg$R|YbjLq1%aV&=O0rZ{m;El4`?iJKE^8}Q z?bfZZ7%7~k^t!efXJI}y$qQGaO81khMruRoZh|mhpZvfz-4iJ7skzE)7US?9ecjRtdz0aF03~fU zchBHPjU@0S7Z-RP<89UVL)%#;GmBig@g=ET{5pCWCc8smU}E*}@H(ttCtj~7EOWxD zMV#0RCF865W}S=FjI9x`-`C-xg$ep4sxDb!mF}h}xsg)@kjP>|8^{}Z!0?|n6 zqY*ZEquLVbJsZz)@3OHJ>4_P_H-9Re_rQEfDv^x%YsQGcSAm3VOv93799evlG|KNx z^GcOQpM}#oqLRMc4BEjx%ncuph2|C1upmS@w0LMZNU`L6U34h{1B@cLY4z;x(X-j* zbDrZ#d3lNwdPC>?L@T~@=7Ri3AAxJLwguH7`z-FR@gYs9NM7vSTptc3=b;&UBME_o za$d}2IP4Y#!t8P}leZhG`T38&ou2K#w@&a|{{HJMuhfA746gc%0Gk_v{L{D!>zb{j z-3Rs#4)4qpbqir39SD!%ym#h}g%Rn7R{)Txgq@uz&2>FaxMq^~*0H7no46d9_~%cM zYS3e(h$CiJR@OCU9C!>S%=yjxwQf4< zlYO4p(We#-ef^pS42_kdcZ?0uwQhqa(v&ska!#7K6)wta5r~|b^Sq*juiPzQ8x42g zs2YcG{QdL!tEu^CvnP)CYi8efqoPi1*43dXmtlpYA_oVD#f1e;E(wd839+H_MyL6x zb2SMG3IBiq*su5Jj&J5n!Eiyfjh|jCj1J~+?M`~jt_VHf`KmqZL_@KXNk9}qCgtmf zA801&Q_RrGbRF)Y*}9=Ic7l^l>h3LmC_AI%>v-(G*QT9e^7YCNE}=jpV^*nCclJP0 zLV@`M*T`(bwTZMGC%@!f zRoQ?*WV|%)*^X2X+fpOWg^2caig?Mt_DbOE=&uggZ}>k?=K&5pI9jjS?xWYZdVaQ; zz_YbG;k4>kC`t(-Dy7c#+a<6B-_G~B>KbW3$Pfa};^@dFA89&Js$aHgiVb-!GLc?& ziy_X>lYK;%q-4}fSu}!5@zSuFTxPm>zOGnWu#%MHsfgPLd^4kCDWw>Nv)t0ga0X2w z`PWzc={MZaF}IZUnKM)4%(W*j&H5dk{pc_ec7vjm3|`08n4?toT=IMxz9uWj9&?Cy z75Xi8`EuV>Y&$PS>Ce9}`fYloPNCQ&Vc&}PvqT9Zj~6F;jGKZhuVJs2z(}0fVl_(l^o-)|n2TB$W7@=Ip#2okr~h@! z0r&DWgK>^G`SBJ@lxYW!GJHG8Fj(vl=U7nA)lOs9tm+|HK!re6>QuXGE1Ljk*z@&t ziw?xLYh3y?*-gc=V3=2+22-RAlQS%i=qqyHjmD<%3oDeyI%_&w4Z-ac&LtZmBMvo& z`N^Ny^C;S}WQZ1rc0SJZ69G5dDO#YRyt(W`T|WAIil@Y;2kHG56y}#jV(wm6M(E z-j|iXC%y$9T3tmt#q3f^+gg^sCu@n~f#V~OK1fCu&JRnw;+1A|iU}4>dBmm5r#wy&hS{l#p+o zGKAD?f6^SLTRbM5X&Yg|%v@O{Ac`Bs!+33#h{~q2s}+%1<$?o02k#_T+Vfg}@s$d% zb!d9XQRP1xfn;LlEbP$2K5WGqCR&8E`E;CD^}A5lrZgN2>($<}VV%wlQ=bT?qt@I?x@}%RA1*1^=5Icgbx~67q@#fGnBSKf3t3<_BfC2hS z#CJSf{qrdOXE>$-Od7sPa#nkZRBJ_hp3PO74r4?|{HfYtdSn&-sr-Wi^NTD{#2q@9!U|Kf5;! zrn`1IqA?gSw?<^8F(zd%m>^H~oi+%tUM(A93{WRPEBKFSa5QBH(Y`I-+zs!luQcGX*5Mu4h_=|1ouDOg zko&=(b4qbZNa98W9a!Ndu2XnFgf#cy`*%!pt}C=FuTkB-0w+;x1cBsd{MKX^I9NG| z&xVOr%hkAGF+IJ|7o~S`ECc&nU0W>8>#Uw)`UPT3a&C-%9ZeMx9ovzgv#gi zuAqx)T=wJJ>V_UoGf7*gY}^k&Be9ELty8(UDQAB+Yb59Gk&ipE+!V#SkI8*TIVN$c1;_Kggc`b2pe2_UC97P~5 zHi~Kqo%BW{LJP^dtNJ{zzq%n&FrWsGifsCnMH8Q(Xl8u1cC|l8;e$q@UobydS7;)9(3kWtX;NixS$P)* zm!*854gbrTOJv=jx^?~%ak6#l)Igt+*vFp_eC|DIrpsuhgt{xSN8lx$kG@=GmRuzw zu6V8LIHALd0!`n`y^2VD>_ur!b#O$`C9#tZaLF(44M}{&0HKX~0K7DZRti41+1;+Y z0h(VQSMy2&3`&2&po`ic>wS~0`*nU1fx*6$6#XyKY11wg&5Em6M2*ItYkklo#l0t% ze$i-Q&2|UI^~>&G$x+GXn!~b>p7yy-Es$KlrHF%B3ieJsMKzpmLMyhXQZLAPP%`og+4*tO{JgW zvLT!8Cwa%O;C`{KGS1G(P`GFQe@}SdvE1dCgLH>=8St2H)T9eF#nZ5JKBOhql@po6 zDfLoqvY0j^k~39dF(*LDdc9D=WC+;=1Qcs~+o(8{OtX$Sz)^r#9peOkKWjNFvR|jLn_z3>Y%t=JA9m6T#L&? znKlxcYZhO3cjYd~Vrx-5_}M0fV><%wsVC{!+2bQ$VJ|Yi9(-}|_7ZxHdBf8w)9)TY zIGAg`POz}!mm)w6_4sSJ`!C|-GpYZSEQhtP0v0>!IOo#Y@p*gyOhwe4Qbs4)NXkDG zQL&3rM-#x9@C!?hBieI1zZ`X_P=AAlXklYaqxWhY(jBj1llM=5u>Y{~5d&k6 z+r8Y%!XNJruQA}jEHJj-6q4u>rw3 zio=VeOk_ly&WRsMPiXz42b`|83=`Jf`XcQUtct!ct&ZQ?MK&L2_2*~xG;K8UNrC{5 zI;o}E`3ag*72-b{IXTM**}Us}NS;oLjK*FvZdr49B|lZgo_Qk{$FVXXvFc?4S^TyT zW|pv@at-_P!EBH;1=31)z22jl)3)(u6?2WET4_c`tPF1XuA?Awe|z&fFeN;F-6lO6Mk42l~?# z5JIq&=Le&(mT_G%?=N|USA?buV*3SG;Cn1W$CryCSq~qkPL`VW&3H53Af4R|mz#)X zd6juHZALC4E6MO<3tI8+`BETVa>JJ=w7JPdQBE71iFn5?kN17&XB+3}^WzE)H@3*9 z|Cp+m##;`p{ups3MrNCu&WHW!!>V7RDS1#Arb_td_lP9d($fUr4ykg=;azW14yI5YR$Ri$ZEKN54sT!yVojU(dXqo1eeb8$*uY4PTSp zaCU-y1b~g9o9lcOqnFBU8P5meEHL3kTKiyz+R`>Z zHvHw#N|Ph*6{Z()q@B@Ya_yM+N<-B{&t=TtQbaTY& zf+hQX*b^!3JFG`V*GK@L8lz+oPR;}d3mOoc^$>_l?RGV8j5IhH$}@p6{L)4c=>Tju z9Hk|04rMX6T}!sgWdsN!%SNP*subxJ04s}K*AW~$cvL*$@+ch+kFM8bHf9y}J?iLs zG9_y+VM$RMuMc&Icj(zkUHnuA-cog(OVo#l)PHBrYE|}Ilf2%g<)_1L6SQL`RvAxL zG@*r6sB^v;=^3$EI2Vm=(qPH^oM}(4@_PnTjg9uAeA+!5)z;odHd@TFy2C(>GXup7 z85==}L{$`L8`GCjkh^zt10q?|2paw)BG&%2H2=>F2 z&_$$Og|LYMeaz^Xt*tyu8pBfBcM6heHpy|Ze!Pcg|1k(h8T%^Qt4GQ(mWfE@30~*6 z5pR^~7jh-f1UOt>j{~OoId;@r?m{fbXyQ7UiW7{nPaVx15rZXYwpgKLBwEvgy-8Q+ z@fN^p3~3lnaqT3l+(i(&+tDVx3(j(||{eyCCw_W)SAfbvH8t52u`jPeBZ(h^A-NY{h&H0gBosa&IrE;s4(`bVL z4D?`2O#%V}3XK0vyS}m*uY?z3OiIvDBCy<#s=3fxr<#^YsIJJVGL9i26K}Y=8UE_iij*Uh+csV6&Mc4lh!Q^yH_0c9) zDZA}?5-N1Wwx~skgw*^w9Nuio4RB}*|WQ%*L$?V_WL$DfBCQ+OD0MQ3@V8mX5!!c7Lz23vt4`Gm< zHz6WiUrVE z|1<^%iZj=13=(T`C>M9(fXSOGub#K|tBw>%($0&yTbHKZl8Unj4CvuFAFDcXw$Wb^?0S3MG8y;2hwpG-u673vr zpJ@m#3y~kkrub|(zP!8+y0s`^;0pAu_fY^)@gachWN~V-r_1?HW|g~rmIDGp<6Ee? zqnZ!Vcz}@2CEaoP<5Srk6W`Xh-)rGK#d(#Yh%{+uxj&^aiq&}RO*lLR>nZCW5m80Q zYAccHDa*blg#&ZI!US4!@>W@YG0m2DmhVdEtkq_($9T6#hyU=rat}U+ip`&Gi7$b= z)(w)@jiaxt(_WqG)`xcZ3IMN8PfsuG@V8*bP_c4)P(%dcqH}z5VEP8B@-)*=fPWg3 z#40J3^F`G9*={)3#la^Bb;>#_(-Xxr7v=tr{){#6T=#tgVDrk~V*lTBCI3b5Zx(ye zl=lAtJX^^A|4+a)tx&pke4tDSzNwIXl41I*a8^t45Iv;EBcDT6v7d0nw(j0<*)rwc zkqB@04-Sq4TGZfH(=NxF>lLGDOE8>quE&y`=yCRXJj{>wP5qoHN~?<6P=-tPa#gRc z=M>g30U;tkW7LGUskE}Gy3CegCN0uUuL!`a0b29lU~hP0$3?=bc-gW_Bgv%j7QHFK_1RcuzTK%{@n>6F zqxpWIJA7{ z&0t%1_rT$y61V!3GJw!~Z?}NK8~6`NtXW^&)5Si7cclOat45yKyg_nptdII$R5?dQ z|DpT&-&f#(#ks!)5XFC5()h12{9lHz=qRGvin#=E{M!*=brYnoV+^Uj>HPFx0J9zn A$^ZZW literal 3237 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 F{{kQDHT(bo diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/plug-ins.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/plug-ins.md index 780e32e49a63b2..b9bb37c4b26ff8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/plug-ins.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Concepts/plug-ins.md @@ -7,7 +7,7 @@ A medida que desarrolle una aplicación 4D, descubrirá muchas funcionalidades d ## ¿Qué es un plug-in y qué puede hacer? -Un plug-in es una pieza de código, escrita en cualquier lenguaje como C o C++, que 4D lanza al inicio. Añade funcionalidad a 4D y aumenta así su capacidad. A plug-in usually contains a set of routines given to the 4D developer. Puede manejar las áreas externas y ejecutar los procesos externos. +Un plug-in es una pieza de código, escrita en cualquier lenguaje como C o C++, que 4D lanza al inicio. Añade funcionalidad a 4D y aumenta así su capacidad. Un plug-in contiene generalmente un conjunto de rutinas dadas al desarrollador 4D. Puede manejar las áreas externas y ejecutar los procesos externos. ## ¿Dónde encontrar los plug-ins? 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 41bcd520bd877e..2a13873f72e6d4 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. 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: +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/assets/en/Users/plugins.png b/i18n/es/docusaurus-plugin-content-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 zcmd5V#y_{ZI;=@$;@Ro#N_zJkqL=eLK^C% z$R%=DiZOSQ+feS-Ol8f+_{}>1oY(Jney{WU@At>|`~5u6_xU`}=lQ%p&-?v);?AFg z%E~Cp00014+cVZq0D#nMu^qovTKtZUuwgOJ`dvq4F2HXD@8p%njekRa_*yj&@ilS%81dy?dzIj>lNH z%CXm{wS6jIrLUf!OEg~>X6!Iq9*<5$t#wh>b~G?oK2O9Z_)lI~L$%nfUpEKKn8*R! zRp^NzPTAMX9jo_w4tlHI?M+n#U9{`c z+;x$!GglU9Gs>a(CHCtf*xAx1m7Cp1EL;bL?M^0b^qwx^2~wFUz6sB#(n8T;H4BSQ z;z=O;dB9&9_gSn2kE@Gzn;*pYZYCP3MO*ZHh+W<|uC!(lqVYY?z*zZ8ei(@jv z8LMbGOa(N(0FRDH6-^%UNy?tG^_eoe2Q{#Xn>qfoY4{=WtixqITYgPH3RFumx|G#5 z4E_dMT_aQ67JoBrGj9=T=0-2~)_2T0Ut8IooJS^yEz65HQ0^0yB7CE(OAQ9ExY?IC zBz~4rPKx2pyd)7!@J;XUFe!z8m|srT`7NRu8p>})@~?*ZT0S9<#0~5EgEmULGr^ViBbO70XqMYS+eVLM-o8-NB@){<$Trrb}C5(_`-tLwsB0vee;0f#Y5 zNqzdlZ=8&TJ;Ri=2K!@Wp9@c@=6DKMdQ)yEY7zSutZD4M8dUbt$?jC)UGPC%9COj9Q+fF z>WL|>w?UsCG*4NGd=v47TSnEuVT}3oJ#~s8h)%d7rY1i5T(v-epBG(ewKtz^CinFE zRmu{KNrRkeoEL2Lt24ZyxwV8N=V!T|jnLJZXl6$l$5E6^PUd65LrA+ORks|}inEd!?A(Qb3#dasI5!M1FpT>~~Q=0x^4>l5Jwn+oNScu78oQYq5Q4oi}^Wim5TRxpz%ld{)Gj<+8E^}y{H}QI@RzYcj@Je-=i_2tExN8;%bhzE$N(c z|5%&8B+ro%Jxf_43S0B~!8v2JH=PNY#<(%Di~n~QHF{5qG2h)jqjIV$z*4yd$SZ~2 zM5civ1>`8wO-X`ufT@dT;vwYxsyD82*oSlKRUksZ1qaPoC+^$auWM$+_aI}_CUVD^ z?LIfA>YIg_P?B2BHOW!Iwa#A7)-)c9OZsPVV2=Z0%Smk&TEMG-xj~M1TuA}GkiCH0 z&to@rR1t!9Whzq_Nw2F7KF|-+W5sDZM6X_cX{dq9vt;%L$}cGlHz@Ya+LFIwMXrO^ z4lD#|WO(1rn!TeEYZz=RvM9RH(mu?5&=yuC` zLCM;!^7ax|dJ;%2Vy(X;lSA-t3_~ct>-@Gn9X77>ec=xU-5zDHVo!fH47Qvr%ZQBQ zqlapOomfSvew-P;>udRN4TH<@z@jB}(#&Y|*%}Nd}e+@BYnl`BNp0 zBR-AYR4(p&gxMgzhDwaQEreUr`MA!|q^_a%GU|YCEbCh9gdJl-f9hNNXE&~T3|z*| zAG%Pr-Cy}TP8r=!D(obRXMH}n6_KqumQF89gT9APSJZlF$7As`^Pm?@_DgOk>3LMj z%Vb96nqcPZOed0frMv?gKGZIdc^yKGV~#QfCfN zRdD2CwpTN0idu|Wq$LCz-^Adb^9{_iJL1L*f`8~2fP@3ER;PIMu2yws75PDCfqJ>E zxzWNNfZ?4pEqT_ZX$0KkgLKkoAg^7k%(9S#c0S7PD_ys8Ste= zMme+No~k01Ho^k~IfX>qQ}c2$4+K4x#T+=bPtGl;cWp%1KE`f1U(0vXgO($AD5Fzn zAyVPzC17pn*x|Ug=YQb+ABFDpmA}?N^t$fSZ_mtBC6v^mnsNplMvZ{5w)L@???`%2 zvQbOAiF#AjX88VTLHvUI&-Ha*>I9hu(pOJ!(0*?@Q0G#~!ItAOzQU{n;2E!vbd-^< zV)W>OH9i*!Z5GKzR*W^oLM3CxVz-+mW*1M$o^_?4WcP9=IFo@^Y>@OH>~qI4VYZh0 z_MI1ov+qUeQb=BN(;Xk!z&lh~;zl7<(49pHfPv&Z8)3_id6zNv!baxPw2|__p-1$( zGs?FDeKp69+ZA24qWKCz+E@L!J5PUKT8#VMCPwgiTvgxnY7Q~2?UF#I1rE=1jBs~& ziqMD3i?VP%iS1QNH=-m*P(Tre{B)0=-VH0a)}$UQ9#ZXm*Vd;8!-j_zDiF(V?LFq% zlUagd*N%l%qr31_~ zBqjtB6_jl4H8Afima6|jPyR#@e_MtAZ@nVdc>Hy#$BPeJ_`Uot@ht*iYje)J(DKT! F{{kQDHT(bo diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/tls.md b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/tls.md index 61de113f8285f9..c40ed5c120d2f9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/tls.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/tls.md @@ -108,7 +108,7 @@ Si vous utilisez une [liste de chiffrement personnalisée](WebServer/webServerCo Pour utiliser TLS avec le serveur d'application 4D (applications desktop client-serveur) ou le serveur SQL, il suffit d'activer les communications TLS et le serveur configure automatiquement les connexions au démarrage. -- With the application server when [QUIC network layer](../settings/client-server.md#network-layer) is enabled, you don't have anything to do: QUIC communications are always in TLS. When ServerNet network layer is enabled select the **Encrypt Client-Server Communications** option in the ["Client-server/Network options" page of the Settings dialog box](../settings/client-server#encrypt-client-server-communications). +- Avec le serveur d'application quand la [couche réseau QUIC](../settings/client-server.md#network-layer) est activée, vous n'avez rien à faire : les communications QUIC sont toujours en TLS. Lorsque la couche réseau ServerNet est activée, sélectionnez l'option **Encrypter les communications Client-Serveur** dans la page ["Options client/réseau" de la boîte de dialogue des propriétés](../settings/client-server#encrypt-client-server-communications). - Avec le serveur SQL, sélectionnez l'option **Activer TLS** dans la page ["SQL" de la boîte de dialogue Paramètres](../settings/sql#sql-server-publishing). ## Comment obtenir un certificat RSA ? (tutoriel) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Text.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Text.md index 4cbe52d337d3d0..7e72a9aa097ab7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Text.md @@ -336,8 +336,8 @@ Indique une expression ou une variable qui sera évaluée pour chaque ligne affi | Nom de propriété | Type | Description | | ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| stroke | string | Couleur de fond. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | -| fill | string | Couleur de la police. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | +| stroke | string | Couleur de la police. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | +| fill | string | Couleur de fond. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | | fontStyle | string | "normal","italic" | | fontWeight | string | "normal","bold" | | textDecoration | string | "normal","underline" | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/maintenance.md b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/maintenance.md index 167e0f5492316a..4351348f34ee95 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/maintenance.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ServerWindow/maintenance.md @@ -1,6 +1,6 @@ --- id: maintenance -title: Page maintenance +title: Page Maintenance --- La page **Maintenance** fournit diverses informations relatives au fonctionnement courant de la base. Elle donne également accès aux fonctions de maintenance élémentaires : 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 0e442205dfead5..3895c06f9aeedf 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. 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 : +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/current/aikit/Classes/OpenAIProviders.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIProviders.md index 6359a3282290e6..1927f3afd590d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIProviders.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIProviders.md @@ -28,7 +28,7 @@ La classe `OpenAI` charge automatiquement les configurations des fournisseurs lo var $providers := cs.AIKit.OpenAIProviders.new() ``` -Creates a new instance that loads provider configuration from the `AIProviders.json` file. See [Configuration Files](../provider-model-aliases.md#configuration-files) in the Provider Model Aliases documentation for details on file locations and format. +Crée une nouvelle instance qui charge la configuration du fournisseur à partir du fichier `AIProviders.json`. Voir [Fichiers de configuration](../provider-model-aliases.md#configuration-files) dans la documentation des Alias de Modèles de Fournisseurs pour plus de détails sur l'emplacement et le format des fichiers. **Important:** diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/provider-model-aliases.md b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/provider-model-aliases.md index b3cbc7a2c131a4..69b7222de3e266 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/aikit/provider-model-aliases.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/aikit/provider-model-aliases.md @@ -140,11 +140,11 @@ Utilisez un nom de modèle simple pour référencer un modèle nommé défini da ```4d var $client := cs.AIKit.OpenAI.new() -// Use a named model alias +// Utiliser un alias de modèle nommé var $result := $client.chat.completions.create($messages; {model: "my-gpt"}) var $result := $client.chat.completions.create($messages; {model: "my-claude"}) -// Embeddings with a named model alias +// Embeddings avec un alias de modèle nommé var $result := $client.embeddings.create("text"; "my-embedding") ``` @@ -168,7 +168,7 @@ Lorsque vous utilisez la syntaxe `provider:model`, le client automatiquement : Lorsque vous utilisez un nom de modèle simple qui correspond à un alias configuré, le client automatiquement : 1. **recherche** l'alias du modèle dans la section `models` de la configuration - - Example: `"my-gpt"` → finds entry with `provider: "openai"`, `model: "gpt-5.1"` + - Exemple : `"my-gpt"` → trouve une entrée avec `provider: "openai"`, `model: "gpt-5.1"` 2. **résoud** le fournisseur associé pour obtenir `baseURL` et `apiKey` @@ -176,18 +176,18 @@ Lorsque vous utilisez un nom de modèle simple qui correspond à un alias config ### Utiliser des noms de modèles seuls -If you specify a model name **without** a provider prefix, the client uses the configuration from its constructor: +Si vous spécifiez un nom de modèle **sans** préfixe de fournisseur, le client utilise la configuration de son constructeur : ```4d -// Use constructor configuration -var $client := cs.AIKit.OpenAI.new({apiKey: "sk-..."; baseURL: "https://api.openai.com/v1"}) -var $result := $client.chat.completions.create($messages; {model: "gpt-5.1"}) +// Utiliser la configuration du constructeur +var $client := cs.AIKit.OpenAI.new({apiKey : "sk-..." ; baseURL : "https://api.openai.com/v1"}) +var $result := $client.chat.completions.create($messages; {model : "gpt-5.1"}) -// Override with provider alias -var $result := $client.chat.completions.create($messages; {model: "anthropic:claude-3-opus"}) +// Surcharge avec l'alias du fournisseur +var $result := $client.chat.completions.create($messages; {model : "anthropic:claude-3-opus"}) -// Override with model alias (bare name) -var $result := $client.chat.completions.create($messages; {model: "my-gpt"}) +// Surcharge avec l'alias du modèle (nom simple) +var $result := $client.chat.completions.create($messages; {model : "my-gpt"}) ``` ## Exemples @@ -305,7 +305,7 @@ Définir les modèles une fois, les utiliser partout par leur nom : ```4d var $client := cs.AIKit.OpenAI.new() -// Use named model aliases — no need to remember provider or model ID +// Utiliser des alias de modèles nommés — pas besoin de se souvenir du fournisseur ou de l'ID du modèle var $result := $client.chat.completions.create($messages; {model: "chat"}) var $result := $client.chat.completions.create($messages; {model: "fast"}) var $embedding := $client.embeddings.create("text"; "embedding") diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Users/plugins.png b/i18n/fr/docusaurus-plugin-content-docs/current/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/i18n/fr/docusaurus-plugin-content-docs/version-20/ServerWindow/maintenance.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/ServerWindow/maintenance.md index bf8903ac89021c..cf1ec10522ec4d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/ServerWindow/maintenance.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/ServerWindow/maintenance.md @@ -1,6 +1,6 @@ --- id: maintenance -title: Page maintenance +title: Page Maintenance --- 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 2b29a2f850056a..0241832ea5a43b 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. 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 : +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/FormObjects/properties_Text.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormObjects/properties_Text.md index d0c6026f2ebabb..1c76ffd470b158 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormObjects/properties_Text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/FormObjects/properties_Text.md @@ -336,8 +336,8 @@ Indique une expression ou une variable qui sera évaluée pour chaque ligne affi | Nom de propriété | Type | Description | | ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| stroke | string | Couleur de fond. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | -| fill | string | Couleur de la police. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | +| stroke | string | Couleur de la police. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | +| fill | string | Couleur de fond. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | | fontStyle | string | "normal","italic" | | fontWeight | string | "normal","bold" | | textDecoration | string | "normal","underline" | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/REST/$timeout.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/REST/$timeout.md index 974036700a6739..d1fa6508468e31 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/REST/$timeout.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/REST/$timeout.md @@ -3,15 +3,15 @@ id: timeout title: $timeout --- -Définit le nombre de secondes pour enregistrer un ensemble d'entités dans le cache de 4D Server (par exemple, `$timeout=1800`) +Définit le nombre de secondes durant lequel conserver un entity set dans le cache de 4D Server (par exemple, `$timeout=1800`) ## Description -Pour définir un délai d'attente pour un ensemble d'entités que vous créez en utilisant [`$method=entityset`]($method.md#methodentityset), indiquez le nombre de secondes dans `$timeout`. Par exemple, si vous souhaitez définir le timeout sur 20 minutes, passez 1200. Par défaut, le timeout est de deux (2) heures. +Pour définir une durée de validité pour un ensemble d'entités que vous créez en utilisant [`$method=entityset`]($method.md#methodentityset), indiquez le nombre de secondes dans `$timeout`. Par exemple, si vous souhaitez définir le timeout sur 20 minutes, passez 1200. Par défaut, le timeout est de deux (2) heures. Une fois le timeout défini, chaque fois qu'un ensemble d'entités est appelé (via `$method=entityset`), le timeout est recalculé en fonction de l'heure courante et du timeout. -Si un ensemble d'entités est supprimé puis recréé en utilisant `$method=entityset` avec [`$savedfilter`]($savedfilter.md), le nouveau délai d'attente par défaut est de 10 minutes, quel que soit le délai d'attente défini lors de l'appel à `$timeout`. +Si un ensemble d'entités est supprimé puis recréé en utilisant `$method=entityset` avec [`$savedfilter`]($savedfilter.md), la nouvelle durée de validité par défaut est de 10 minutes, quelle que soit la durée définie lors de l'appel à `$timeout`. ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/ServerWindow/maintenance.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/ServerWindow/maintenance.md index abad3853407c9a..1ddbab14096bbf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/ServerWindow/maintenance.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/ServerWindow/maintenance.md @@ -1,6 +1,6 @@ --- id: maintenance -title: Page maintenance +title: Page Maintenance --- La page **Maintenance** fournit diverses informations relatives au fonctionnement courant de la base. Elle donne également accès aux fonctions de maintenance élémentaires : 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 ec0e0e3a72b5de..f61319b001189f 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 @@ -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/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 0e442205dfead5..3895c06f9aeedf 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. 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 : +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/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsParameters.md index a71ead12722135..24ae3fdb575790 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsParameters # OpenAIChatCompletionsParameters -The `OpenAIChatCompletionsParameters` class is designed to handle the parameters required for chat completions using the OpenAI API. +La classe `OpenAIChatCompletionsParameters` permet de gérer les paramètres requis pour les générations de réponses conversationnelles en utilisant l'API OpenAI. ## Hérite de @@ -13,30 +13,30 @@ The `OpenAIChatCompletionsParameters` class is designed to handle the parameters ## Propriétés -| Propriété | Type | Valeur par défaut | Description | -| ----------------------- | ---------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | `"gpt-4o-mini"` | ID du modèle à utiliser. Prend en charge [provider:model aliases](../provider-model-aliases.md) pour une utilisation multi-fournisseurs (par exemple, `"openai:gpt-4o"`, `"anthropic:claude-3-opus"`). | -| `stream` | Boolean | `False` | Indique si la progression partielle doit être retransmise en continu. Si cette option est activée, les tokens seront envoyés sous forme de données uniquement. Une formule de rappel est requise. | -| `stream_options` | Object | `Null` | Propriété pour stream=True. Par exemple : `{include_usage: True}` | -| `max_completion_tokens` | Integer | `0` | Le nombre maximum de tokens qui peuvent être générés dans la réponse. | -| `n` | Integer | `1` | Nombre de réponses à générer pour chaque invite (prompt). | -| `temperature` | Real | `-1` | Température d'échantillonnage à utiliser, entre 0 et 2. Les valeurs élevées rendent la sortie plus aléatoire, tandis que des valeurs faibles la rendent plus ciblée et déterministe. | -| `top_p` | Real | `-1` | An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. Only sent when the value is greater than 0 (omitted when `<= 0`, with default `-1`). | -| `store` | Boolean | `False` | Stocker ou non le résultat de cette requête de génération de réponse conversationnelle. | -| `reasoning_effort` | Text | `Null` | Contraintes sur l'effort de raisonnement pour les modèles de raisonnement. Les valeurs actuellement prises en charge sont "low", "medium" et "high". | -| `response_format` | Object | `Null` | Un objet spécifiant le format que le modèle doit produire. Compatible avec les sorties structurées. | -| `tools` | Collection | `Null` | Une liste d'outils ([OpenAITool](OpenAITool.md)) que le modèle peut appeler. Seul le type "function" est pris en charge. | -| `tool_choice` | Variant | `Null` | Contrôle l'outil (le cas échéant) qui est appelé par le modèle. Peut être `"none"`, `"auto"`, `"required"`, ou spécifier un outil particulier. | -| `prediction` | Object | `Null` | Contenu de sortie statique, tel que le contenu d'un fichier texte en cours de régénération. | -| `service_tier` | Text | `Null` | Specifies the processing type used for serving the request. `"auto"`, `"auto"`, `"default"`, and `"priority"`. | - -### Propriétés du callback asynchrone +| Propriété | Type | Valeur par défaut | Description | +| ----------------------- | ---------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `model` | Text | `"gpt-4o-mini"` | ID du modèle à utiliser. Prend en charge [provider:model aliases](../provider-model-aliases.md) pour une utilisation multi-fournisseurs (par exemple, `"openai:gpt-4o"`, `"anthropic:claude-3-opus"`). | +| `stream` | Boolean | `False` | Indique si la progression partielle doit être retransmise en continu. Si cette option est activée, les tokens seront envoyés sous forme de données uniquement. Une formule de rappel est requise. | +| `stream_options` | Object | `Null` | Propriété pour stream=True. Par exemple : `{include_usage: True}` | +| `max_completion_tokens` | Integer | `0` | Le nombre maximum de tokens qui peuvent être générés dans la réponse. | +| `n` | Integer | `1` | Nombre de réponses à générer pour chaque invite (prompt). | +| `temperature` | Real | `-1` | Température d'échantillonnage à utiliser, entre 0 et 2. Les valeurs élevées rendent la sortie plus aléatoire, tandis que des valeurs faibles la rendent plus ciblée et déterministe. | +| `top_p` | Real | `-1` | Une alternative à l'échantillonnage en fonction de la température, appelée « échantillonnage par noyau », dans laquelle le modèle prend en compte les résultats des tokens présentant la masse de probabilité top_p. Ainsi, 0,1 signifie que seuls les tokens constituant la masse de probabilité la plus élevée de 10% sont pris en compte. Envoyé uniquement lorsque la valeur est supérieure à 0 (omis lorsque `<= 0`, avec la valeur par défaut `-1`). | +| `store` | Boolean | `False` | Stocker ou non le résultat de cette requête de génération de réponse conversationnelle. | +| `reasoning_effort` | Text | `Null` | Contraintes sur l'effort de raisonnement pour les modèles de raisonnement. Les valeurs actuellement prises en charge sont "low", "medium" et "high". | +| `response_format` | Object | `Null` | Un objet spécifiant le format que le modèle doit produire. Compatible avec les sorties structurées. | +| `tools` | Collection | `Null` | Une liste d'outils ([OpenAITool](OpenAITool.md)) que le modèle peut appeler. Seul le type "function" est pris en charge. | +| `tool_choice` | Variant | `Null` | Contrôle l'outil (le cas échéant) qui est appelé par le modèle. Peut être `"none"`, `"auto"`, `"required"`, ou spécifier un outil particulier. | +| `prediction` | Object | `Null` | Contenu de sortie statique, tel que le contenu d'un fichier texte en cours de régénération. | +| `service_tier` | Text | `Null` | Spécifie le type de traitement utilisé pour répondre à la requête. `"auto"`, `"auto"`, `"default"`, et `"priority"`. | + +### Propriétés de la callback asynchrone \| Property | Type | Description | \|---------------------------|---------|-------------------------|---------------------------------------------------------------------------------------------------| \| `onData`
    (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk.
    *Assurez-vous que le process courant ne se termine pas.* | -`onData` will receive as argument a [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) +`onData` recevra comme argument un [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) Voir [OpenAIParameters](OpenAIParameters.md) pour les autres propriétés de callback (rappel). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsResult.md index ca24782284f037..3235264cefca03 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsResult.md @@ -11,41 +11,41 @@ title: OpenAIChatCompletionsResult ## Propriétés calculées -| Propriété | Type | Description | -| --------- | ------------ | -------------------------------------------------------------------------------------------------------------------- | -| `choices` | Collection | Renvoie une collection de [OpenAIChoice](OpenAIChoice.md) de la réponse OpenAI. | -| `choice` | OpenAIChoice | Renvoie le premier [OpenAIChoice](OpenAIChoice.md) de la collection `choices`. | -| `usage` | Object | Returns token usage information (inherited from [OpenAIResult](OpenAIResult.md)). | +| Propriété | Type | Description | +| --------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------- | +| `choices` | Collection | Renvoie une collection de [OpenAIChoice](OpenAIChoice.md) de la réponse OpenAI. | +| `choice` | OpenAIChoice | Renvoie le premier [OpenAIChoice](OpenAIChoice.md) de la collection `choices`. | +| `usage` | Object | Renvoie les informations d'utilisation des tokens (hérité de [OpenAIResult](OpenAIResult.md)). | ### usage -The `usage` property returns an object containing token usage information for chat completions. +La propriété `usage` renvoie un objet contenant des informations sur l'utilisation des tokens pour les suggestions de conversations. -| Champ | Type | Description | -| --------------------------- | ------- | ----------------------------------------------------------------------------- | -| `prompt_tokens` | Integer | Number of tokens in the prompt. | -| `completion_tokens` | Integer | Number of tokens in the completion. | -| `total_tokens` | Integer | Total tokens used (prompt + completion). | -| `prompt_tokens_details` | Object | Breakdown of prompt tokens (optional). | -| `completion_tokens_details` | Object | Breakdown of completion tokens (optional). | +| Champ | Type | Description | +| --------------------------- | ------- | ---------------------------------------------------------------------------------- | +| `prompt_tokens` | Integer | Nombre de tokens dans l'invite. | +| `completion_tokens` | Integer | Nombre de tokens dans la réponse. | +| `total_tokens` | Integer | Total des tokens utilisés (invite + réponse). | +| `prompt_tokens_details` | Object | Répartition des tokens d'invite (facultatif). | +| `completion_tokens_details` | Object | Répartition des tokens de réponse (facultatif). | #### prompt_tokens_details -| Champ | Type | Description | -| --------------- | ------- | -------------------------------------------------------------------------- | -| `cached_tokens` | Integer | Number of tokens served from cache. | -| `audio_tokens` | Integer | Number of audio tokens (if applicable). | +| Champ | Type | Description | +| --------------- | ------- | --------------------------------------------------------------------------- | +| `cached_tokens` | Integer | Nombre de tokens servis depuis le cache. | +| `audio_tokens` | Integer | Nombre de tokens audio (le cas échéant). | #### completion_tokens_details -| Champ | Type | Description | -| ---------------------------- | ------- | --------------------------------------------------------------------------------------------------------------- | -| `reasoning_tokens` | Integer | Tokens used for reasoning (e.g., o1 models). | -| `audio_tokens` | Integer | Number of audio tokens (if applicable). | -| `accepted_prediction_tokens` | Integer | Tokens from accepted predictions. | -| `rejected_prediction_tokens` | Integer | Tokens from rejected predictions. | +| Champ | Type | Description | +| ---------------------------- | ------- | -------------------------------------------------------------------------------------------------- | +| `reasoning_tokens` | Integer | Tokens utilisés pour le raisonnement (par exemple, modèles o1). | +| `audio_tokens` | Integer | Nombre de tokens audio (le cas échéant). | +| `accepted_prediction_tokens` | Integer | Tokens de prédictions acceptées. | +| `rejected_prediction_tokens` | Integer | Tokens de prédictions rejetées. | -**Example response:** +**Exemple de réponse :** ```json { @@ -65,7 +65,7 @@ The `usage` property returns an object containing token usage information for ch } ``` -> **Note:** The `*_tokens_details` objects may not be present in all responses or from all providers. +> **Note :** Les objets `*_tokens_details` peuvent ne pas être présents dans toutes les réponses ou les réponses de tous les fournisseurs. ## Voir également diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsStreamResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsStreamResult.md index 085379ce6fb512..e7b7a163d77326 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsStreamResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatCompletionsStreamResult.md @@ -22,26 +22,26 @@ title: OpenAIChatCompletionsStreamResult | `choice` | [OpenAIChoice](OpenAIChoice.md) | Renvoie une donnée `choice`, avec un message `delta`. | | `choices` | Collection | Renvoie une collection de données [OpenAIChoice](OpenAIChoice.md), avec des messages `delta`. | -### Overridden properties +### Propriétés surchargées -| Propriété | Type | Description | -| ------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `success` | Boolean | Retourne `True` si le flux de données a été décodé avec succès en tant qu'objet. | -| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, c'est-à-dire si `onTerminate` a été appelé. c'est-à-dire si `onTerminate` a été appelé. | -| `usage` | Object | Returns token usage information from the stream data (only available in the final chunk when `stream_options.include_usage` is set to `True`). | +| Propriété | Type | Description | +| ------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `success` | Boolean | Retourne `True` si le flux de données a été décodé avec succès en tant qu'objet. | +| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, c'est-à-dire si `onTerminate` a été appelé. | +| `usage` | Object | Retourne les informations d'utilisation des tokens depuis les données du flux (uniquement disponibles dans le bloc final lorsque `stream_options.include_usage` est à `True`). | ### usage -The `usage` property returns an object containing token usage information, available only in the final streaming chunk when enabled via `stream_options.include_usage: True` in the request parameters. +La propriété `usage` retourne un objet contenant des informations d'utilisation de tokens, disponible uniquement dans le bloc final de streaming lorsque activé via `stream_options. nclude_usage: True` dans les paramètres de la requête. -The structure is the same as [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage): +La structure est la même que [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage) : -| Champ | Type | Description | -| --------------------------- | ------- | ----------------------------------------------------------------------------- | -| `prompt_tokens` | Integer | Number of tokens in the prompt. | -| `completion_tokens` | Integer | Number of tokens in the completion. | -| `total_tokens` | Integer | Total tokens used (prompt + completion). | -| `prompt_tokens_details` | Object | Breakdown of prompt tokens (optional). | -| `completion_tokens_details` | Object | Breakdown of completion tokens (optional). | +| Champ | Type | Description | +| --------------------------- | ------- | ---------------------------------------------------------------------------------- | +| `prompt_tokens` | Integer | Nombre de tokens dans l'invite. | +| `completion_tokens` | Integer | Nombre de tokens dans la réponse. | +| `total_tokens` | Integer | Total des tokens utilisés (invite + réponse). | +| `prompt_tokens_details` | Object | Répartition des tokens d'invite (facultatif). | +| `completion_tokens_details` | Object | Répartition des tokens de réponse (facultatif). | -> **Note:** To receive usage information in streaming responses, you must set `stream_options: {include_usage: True}` in your request parameters. See [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) for details. +> **Note :** Pour recevoir des informations d'utilisation dans les réponses de streaming, vous devez définir `stream_options: {include_usage: True}` dans vos paramètres de votre requête. Voir [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) pour plus de détails. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatHelper.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatHelper.md index 7c5a7930ce231e..7c7ddbe99dda2c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIChatHelper.md @@ -36,26 +36,26 @@ Cette méthode crée un nouvel assistant de conversation avec l'invite système **prompt**(*prompt* : Variant) : OpenAIChatCompletionsResult -| Paramètres | Type | Description | -| ----------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| *prompt* | Text or [OpenAIMessage](OpenAIMessage.md) | The text prompt to send to OpenAI chat, or an OpenAIMessage object for more complex messages (e.g., with images or files). | -| Résultat de la fonction | [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) | La réponse conversationnelle générée. | +| Paramètres | Type | Description | +| ----------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| *prompt* | Text ou [OpenAIMessage](OpenAIMessage.md) | L'invite de texte à envoyer à la conversation OpenAI ou un objet OpenAIMessage pour des messages plus complexes (par exemple, avec des images ou des fichiers). | +| Résultat de la fonction | [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) | La réponse conversationnelle générée. | -Envoie une invite utilisateur au modèle de conversation et retourne la réponse générée. You can pass either a simple text string or an [OpenAIMessage](OpenAIMessage.md) object for more advanced scenarios like including images or files. +Envoie une invite utilisateur au modèle de conversation et retourne la réponse générée. Vous pouvez passer soit une simple chaîne de texte ou un objet [OpenAIMessage](OpenAIMessage.md) pour des scénarios plus avancés comme des images ou des fichiers. #### Exemple d'utilisation ```4D -// Simple text prompt +// Invite de texte simple var $result:=$chatHelper.prompt("Hello, how can I help you today?") $result:=$chatHelper.prompt("Why 42?") -// Using OpenAIMessage for advanced scenarios (e.g., with images) +// Utilisation d'OpenAIMessage pour scénarios avancés (ex : avec images) var $message:=cs.AIKit.OpenAIMessage.new({role: "user"; content: "What's in this image?"}) $message.addImageURL("https://example.com/photo.jpg"; "high") $result:=$chatHelper.prompt($message) -// Using OpenAIMessage with files +// Utilisation d'OpenAIMessage avec des fichiers var $fileMessage:=cs.AIKit.OpenAIMessage.new({role: "user"; content: "Analyze this document"}) $fileMessage.addFileId($uploadedFile.id) $result:=$chatHelper.prompt($fileMessage) @@ -78,21 +78,21 @@ $chatHelper.reset() // Efface tous les messages et outils précédents **registerTool**(*tool* : Object; *handler* : Variant) -| Paramètres | Type | Description | -| ---------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| *tool* | Object | Objet de définition d'outil (ou instance [OpenAITool](OpenAITool.md)) | -| *handler* | Object | The function to handle tool calls (4D.Function or Object), optional if defined inside *tool* as *handler* property | +| Paramètres | Type | Description | +| ---------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| *tool* | Object | Objet de définition d'outil (ou instance [OpenAITool](OpenAITool.md)) | +| *handler* | Object | Fonction pour gérer les appels d'outils (4D.Function ou Objet), facultative si elle est définie dans *tool* comme propriété *handler* | Enregistre un outil avec sa fonction de gestion automatique des appels d'outils. Le paramètre *handler* peut être : - Un objet **4D.Function** : Fonction de gestion directe -- An **Object**: An object containing a formula property matching the tool function name +- Un **Objet** : un objet contenant une propriété formula correspondant au nom de la fonction outil La fonction de gestion reçoit un objet contenant les paramètres transmis par l'appel à l'outil OpenAI. Cet objet contient des paires clé-valeur dont les clés correspondent aux noms des paramètres définis dans le schéma de l'outil et dont les valeurs sont les arguments réels fournis par le modèle d'IA. -#### Register Tool Examples +#### Exemples de Register Tool ```4D // Exemple 1: Enregistrement simple avec gestionnaire direct @@ -128,7 +128,7 @@ Enregistre plusieurs outils à la fois. Le paramètre peut être : - **Objet** : Objet dont les propriétés sont des noms de fonctions correspondant à des définitions d'outils - **Objet avec attribut `tools`** : Objet contenant une collection `tools` et des propriétés formula correspondant à des noms d'outils -#### Register Multiple Tools Examples +#### Exemples de Register Tools multiples ##### Exemple 1 : Format collection avec des gestionnaires dans les outils diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIEmbeddingsResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIEmbeddingsResult.md index 8307cdcf0a3c76..bd6af90ac0af08 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIEmbeddingsResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIEmbeddingsResult.md @@ -11,25 +11,25 @@ title: OpenAIEmbeddingsResult ## Propriétés calculées -| Propriété | Type | Description | -| ------------ | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | Retourne le modèle utilisé pour calculer la représentation vectorielle | -| `vector` | `4D.Vector` | Retourne le premier `4D.Vector` de la collection `vectors`. | -| `vectors` | Collection | Retourne une collection de `4D.Vector`. | -| `embedding` | [OpenAIEmbedding](OpenAIEmbedding.md) | Retourne le premier [OpenAIEmbedding](OpenAIEmbedding.md) de la collection `embeddings`. | -| `embeddings` | Collection | Retourne une collection de [OpenAIEmbedding](OpenAIEmbedding.md). | -| `usage` | Object | Returns token usage information (inherited from [OpenAIResult](OpenAIResult.md)). | +| Propriété | Type | Description | +| ------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `model` | Text | Retourne le modèle utilisé pour calculer la représentation vectorielle | +| `vector` | `4D.Vector` | Retourne le premier `4D.Vector` de la collection `vectors`. | +| `vectors` | Collection | Retourne une collection de `4D.Vector`. | +| `embedding` | [OpenAIEmbedding](OpenAIEmbedding.md) | Retourne le premier [OpenAIEmbedding](OpenAIEmbedding.md) de la collection `embeddings`. | +| `embeddings` | Collection | Retourne une collection de [OpenAIEmbedding](OpenAIEmbedding.md). | +| `usage` | Object | Renvoie les informations d'utilisation des tokens (hérité de [OpenAIResult](OpenAIResult.md)). | ### usage -The `usage` property returns an object containing token usage information for embeddings. +La propriété `usage` retourne un objet contenant des informations d'utilisation des tokens pour les embeddings. -| Champ | Type | Description | -| --------------- | ------- | ----------------------------------------------------------------------------------------------------------------- | -| `prompt_tokens` | Integer | Number of tokens in the input text(s). | -| `total_tokens` | Integer | Total tokens used (same as prompt_tokens for embeddings). | +| Champ | Type | Description | +| --------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `prompt_tokens` | Integer | Nombre de tokens dans le(s) texte(s) d'entrée. | +| `total_tokens` | Integer | Total des tokens utilisés (identique à prompt_tokens pour les embeddings). | -**Example response:** +**Exemple de réponse :** ```json { @@ -38,7 +38,7 @@ The `usage` property returns an object containing token usage information for em } ``` -> **Note:** Embeddings only consume prompt tokens (there is no completion), so `total_tokens` equals `prompt_tokens`. +> **Note :** Les emneddings ne consomment que des tokens d'invite (il n'y a pas de réponse), donc `total_tokens` équivaut à `prompt_tokens`. ## Voir également diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIImagesResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIImagesResult.md index 151f662c752253..9fc762df6cb4fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIImagesResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIImagesResult.md @@ -11,31 +11,31 @@ title: OpenAIImagesResult ## Propriétés calculées -| Propriété | Type | Description | -| --------- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `images` | Collection de [OpenAIImage](OpenAIImage.md) | Renvoie une collection d'objets OpenAIImage. | -| `image` | [OpenAIImage](OpenAIImage.md) | Renvoie la première image OpenAIImage de la collection. | -| `usage` | Object | Returns token usage information (inherited from [OpenAIResult](OpenAIResult.md)). | +| Propriété | Type | Description | +| --------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `images` | Collection de [OpenAIImage](OpenAIImage.md) | Renvoie une collection d'objets OpenAIImage. | +| `image` | [OpenAIImage](OpenAIImage.md) | Renvoie la première image OpenAIImage de la collection. | +| `usage` | Object | Renvoie les informations d'utilisation des tokens (hérité de [OpenAIResult](OpenAIResult.md)). | ### usage -The `usage` property returns an object containing token usage information for image generation (when supported by the provider). +La propriété `usage` retourne un objet contenant des informations sur l'utilisation de tokens pour la génération d'images (lorsque pris en charge par le fournisseur). -| Champ | Type | Description | -| ---------------------- | ------- | --------------------------------------------------------------------------- | -| `total_tokens` | Integer | Total tokens used. | -| `input_tokens` | Integer | Number of tokens in the input (prompt). | -| `output_tokens` | Integer | Number of tokens for the output (image). | -| `input_tokens_details` | Object | Breakdown of input tokens (optional). | +| Champ | Type | Description | +| ---------------------- | ------- | -------------------------------------------------------------------------------- | +| `total_tokens` | Integer | Total des tokens utilisés. | +| `input_tokens` | Integer | Nombre de tokens dans l'entrée (prompt). | +| `output_tokens` | Integer | Nombre de tokens pour la sortie (image). | +| `input_tokens_details` | Object | Répartition des tokens d'entrée (facultatif). | #### input_tokens_details -| Champ | Type | Description | -| -------------- | ------- | ----------------------------------------------------------------------------------------- | -| `text_tokens` | Integer | Number of text tokens in the prompt. | -| `image_tokens` | Integer | Number of image tokens (for image editing/variations). | +| Champ | Type | Description | +| -------------- | ------- | ------------------------------------------------------------------------------------------------------- | +| `text_tokens` | Integer | Nombre de tokens de texte dans l'invite. | +| `image_tokens` | Integer | Nombre de tokens d'image (pour l'édition et les variations d'image). | -**Example response:** +**Exemple de réponse :** ```json { @@ -49,7 +49,7 @@ The `usage` property returns an object containing token usage information for im } ``` -> **Note:** Image generation usage may not be available from all providers. The structure may vary depending on the specific image API endpoint used. +> **Note:** L'usage de génération d'images peut ne pas être disponible auprès de tous les fournisseurs. La structure peut varier selon le point de terminaison de l'API image utilisé. ## Fonctions diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIMessage.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIMessage.md index d0e70b7adf7fa6..4cc1636aef3372 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIMessage.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIMessage.md @@ -29,10 +29,10 @@ La classe `OpenAIMessage` représente un message structuré contenant un rôle, **addImageURL**(*imageURL* : Text; *detail* : Text) -| Paramètres | Type | Description | -| ---------- | ---- | ---------------------------------------------------------------------------------------- | -| *imageURL* | Text | L'URL de l'image à ajouter au message. | -| *detail* | Text | The detail level of the image: "auto", "low", or "high". | +| Paramètres | Type | Description | +| ---------- | ---- | ----------------------------------------------------------------------------------------- | +| *imageURL* | Text | L'URL de l'image à ajouter au message. | +| *detail* | Text | Le niveau de détail de l'image: "auto", "low", ou "high". | Ajoute une URL d'image au contenu du message. Si le contenu est actuellement du texte, il sera converti en un format de collection. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIParameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIParameters.md index 97fa5d75d973c9..11997e0b934aad 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIParameters.md @@ -9,20 +9,20 @@ La classe `OpenAIParameters` permet de gérer les paramètres d'exécution et de ## Propriétés -### Propriétés du callback asynchrone +### Propriétés de la callback asynchrone Utilisez cette propriété de callback (*rappel*) pour recevoir le résultat, qu'il s'agisse d'un succès ou d'une erreur : -| Propriété | Type | Description | -| -------------------------------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onTerminate`
    (ou `formula`) | 4D.Function | Une fonction à appeler de manière asynchrone lorsqu'elle est terminée.
    *Ensure that the current process does not terminate.* | +| Propriété | Type | Description | +| -------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onTerminate`
    (ou `formula`) | 4D.Function | Une fonction à appeler de manière asynchrone lorsqu'elle est terminée.
    *Assurez-vous que le process courant ne se termine pas.* | Utilisez ces propriétés de callback pour un contrôle plus granulaire de la gestion des succès et des erreurs : -| Propriété | Type | Description | -| ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `onResponse` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec succès**.
    *Ensure that the current process does not terminate.* | -| `onError` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec des erreurs**.
    *Ensure that the current process does not terminate.* | +| Propriété | Type | Description | +| ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec succès**.
    *Assurez-vous que le process courant ne se termine pas.* | +| `onError` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec des erreurs**.
    *Assurez-vous que le process courant ne se termine pas.* | > La fonction de callback recevra le même type d'objet de résultat (l'une des classes enfant de [OpenAIResult](OpenAIResult.md)) que celui qui serait renvoyé par la fonction dans un code synchrone. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIProviders.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIProviders.md index 6359a3282290e6..1927f3afd590d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIProviders.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIProviders.md @@ -28,7 +28,7 @@ La classe `OpenAI` charge automatiquement les configurations des fournisseurs lo var $providers := cs.AIKit.OpenAIProviders.new() ``` -Creates a new instance that loads provider configuration from the `AIProviders.json` file. See [Configuration Files](../provider-model-aliases.md#configuration-files) in the Provider Model Aliases documentation for details on file locations and format. +Crée une nouvelle instance qui charge la configuration du fournisseur à partir du fichier `AIProviders.json`. Voir [Fichiers de configuration](../provider-model-aliases.md#configuration-files) dans la documentation des Alias de Modèles de Fournisseurs pour plus de détails sur l'emplacement et le format des fichiers. **Important:** diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIResult.md index ebb0021aa2af36..740db7ec4069bf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/Classes/OpenAIResult.md @@ -15,27 +15,27 @@ La classe `OpenAIResult` permet de gérer la réponse des requêtes HTTP et four ## Propriétés calculées -| Propriété | Type | Description | -| ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `success` | Boolean | Un booléen indiquant si la requête HTTP a réussi. | -| `errors` | Collection | Renvoie une collection d'erreurs. Il peut s'agir d'erreurs réseau ou d'erreurs renvoyées par OpenAI. | -| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, c'est-à-dire si `onTerminate` a été appelé. | -| `headers` | Object | Renvoie les en-têtes de la réponse sous forme d'objet. | -| `rateLimit` | Object | Renvoie les informations relatives à la limite de débit contenues dans les en-têtes de la réponse. | -| `usage` | Object | Returns usage information (token counts) from the response body if any. | +| Propriété | Type | Description | +| ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `success` | Boolean | Un booléen indiquant si la requête HTTP a réussi. | +| `errors` | Collection | Renvoie une collection d'erreurs. Il peut s'agir d'erreurs réseau ou d'erreurs renvoyées par OpenAI. | +| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, | +| `headers` | Object | Renvoie les en-têtes de la réponse sous forme d'objet. | +| `rateLimit` | Object | Renvoie les informations relatives à la limite de débit contenues dans les en-têtes de la réponse. | +| `usage` | Object | Renvoie les informations d'utilisation (nombre de tokens) depuis le body de la réponse, le cas échéant. | ### usage -The `usage` property returns an object containing token usage information from the API response. The structure varies depending on the API endpoint used. +La propriété `usage` renvoie un objet contenant des informations sur l'utilisation des tokens depuis la réponse de l'API. La structure varie en fonction du point de terminaison de l'API utilisé. -> **Note:** Different OpenAI-compatible services may return different fields in the usage object. The structure documented here is based on OpenAI's API. Not all fields may be present in responses from other providers. +> **Note :** Différents services compatibles OpenAI peuvent retourner différents champs dans l'objet usage. La structure documentée ici est basée sur l'API d'OpenAI. Tous les champs peuvent ne pas être présents dans les réponses d'autres fournisseurs. -See the specific result class documentation for endpoint-specific usage structures: +Consultez la documentation relative à la classe de résultats correspondante pour connaître les structures d'usage spécifiques à chaque point de terminaison : -- [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage) - Chat completions usage -- [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md#usage) - Streaming chat usage -- [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md#usage) - Embeddings usage -- [OpenAIImagesResult](OpenAIImagesResult.md#usage) - Image generation usage +- [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage) - usage en réponses conversationnelles +- [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md#usage) - usage en conversation continue +- [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md#usage) - usage en embedding +- [OpenAIImagesResult](OpenAIImagesResult.md#usage) - usage en génération d'images ### rateLimit diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/asynchronous-call.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/asynchronous-call.md index 01022f555f879e..bbcd794d73bf69 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/asynchronous-call.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/asynchronous-call.md @@ -7,7 +7,7 @@ title: Appel asynchrone Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. -Pour effectuer des appels asynchrones, vous devez fournir une `4D.Function`(`Formula`) de rappel (*callback*) dans le paramètre objet [OpenAIParameters](Classes/OpenAIParameters.md) pour recevoir le résultat. For streaming chat completion see [OpenAIChatCompletionsParameters](Classes/OpenAIChatCompletionsParameters.md). +Pour effectuer des appels asynchrones, vous devez fournir une `4D.Function`(`Formula`) de rappel (*callback*) dans le paramètre objet [OpenAIParameters](Classes/OpenAIParameters.md) pour recevoir le résultat. Pour la complétion du chat en streaming, voir [OpenAIChatCompletionsParameters](Classes/OpenAIChatCompletionsParameters.md). La fonction de callback recevra le même type d'objet de résultat (l'une des classes enfant de [OpenAIResult](Classes/OpenAIResult.md)) que celui qui serait renvoyé par la fonction dans un code synchrone. Voir les exemples ci-dessous. @@ -59,15 +59,15 @@ ASSERT($result.success) // Nous utilisons ici onResponse, le callback n'est reç Form.assistantMessage:=$result.choices[0].text ``` -### chat completions with streaming +### Réponses conversationnelles avec streaming -When you want to receive the response progressively as it's being generated (streaming), you can use the `stream` parameter along with an `onData` callback: +Lorsque vous voulez recevoir la réponse progressivement car elle est générée en continu (streaming), vous pouvez utiliser le paramètre `stream` avec un callback `onData` : ```4d var $messages:=[{role: "system"; content: "You are a helpful assistant."}] $messages.push({role: "user"; content: "Could you explain me why 42 is a special number"}) -// Enable streaming and provide onData callback +// Activer le streaming et fournir la callback onData $client.chat.completions.create($messages; { \ stream: True; \ onData: Formula(MyStreamDataReceiveMethod($1)); \ @@ -75,39 +75,39 @@ $client.chat.completions.create($messages; { \ }) ``` -The `onData` callback will be called multiple times as data chunks arrive. `$1` will be an instance of [OpenAIChatCompletionsStreamResult](Classes/OpenAIChatCompletionsStreamResult.md): +La fonction callback `onData` sera appelée plusieurs fois à mesure que les blocs de données arrivent. `$1` sera une instance de [OpenAIChatCompletionsStreamResult](Classes/OpenAIChatCompletionsStreamResult.md) : ```4d // MyStreamDataReceiveMethod #DECLARE($streamResult: cs.AIKit.OpenAIChatCompletionsStreamResult) If ($streamResult.success) - // Check if we have content in the delta + // Vérifier si on a du contenu dans le delta If ($streamResult.choices.length>0) var $choice: Object $choice:=$streamResult.choices[0] If ($choice.delta#Null) && ($choice.delta.content#Null) - // Append the new content chunk to the existing message + // Ajouter le nouveau bloc de contenu au message existant Form.assistantMessage:=Form.assistantMessage+$choice.delta.content End if End if Else - // Handle streaming error + // Gérer une erreur de streaming ALERT("Streaming error: "+$streamResult.error.message) End if ``` -The `onTerminate` callback will be called once when the stream is complete: +La callback `onTerminate` sera appelée une fois que le flux sera terminé : ```4d // MyStreamTerminateMethod #DECLARE($result: cs.AIKit.OpenAIChatCompletionsResult) If ($result.success) - // Stream completed successfully + // Flux terminé avec succès Else - // Handle final error + // Gérer erreur finale ALERT("Stream terminated with error: "+$result.errors.formula(Formula(JSON Stringify($1))).join("\n")) End if ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/provider-model-aliases.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/provider-model-aliases.md index b3cbc7a2c131a4..69b7222de3e266 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/provider-model-aliases.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/aikit/provider-model-aliases.md @@ -140,11 +140,11 @@ Utilisez un nom de modèle simple pour référencer un modèle nommé défini da ```4d var $client := cs.AIKit.OpenAI.new() -// Use a named model alias +// Utiliser un alias de modèle nommé var $result := $client.chat.completions.create($messages; {model: "my-gpt"}) var $result := $client.chat.completions.create($messages; {model: "my-claude"}) -// Embeddings with a named model alias +// Embeddings avec un alias de modèle nommé var $result := $client.embeddings.create("text"; "my-embedding") ``` @@ -168,7 +168,7 @@ Lorsque vous utilisez la syntaxe `provider:model`, le client automatiquement : Lorsque vous utilisez un nom de modèle simple qui correspond à un alias configuré, le client automatiquement : 1. **recherche** l'alias du modèle dans la section `models` de la configuration - - Example: `"my-gpt"` → finds entry with `provider: "openai"`, `model: "gpt-5.1"` + - Exemple : `"my-gpt"` → trouve une entrée avec `provider: "openai"`, `model: "gpt-5.1"` 2. **résoud** le fournisseur associé pour obtenir `baseURL` et `apiKey` @@ -176,18 +176,18 @@ Lorsque vous utilisez un nom de modèle simple qui correspond à un alias config ### Utiliser des noms de modèles seuls -If you specify a model name **without** a provider prefix, the client uses the configuration from its constructor: +Si vous spécifiez un nom de modèle **sans** préfixe de fournisseur, le client utilise la configuration de son constructeur : ```4d -// Use constructor configuration -var $client := cs.AIKit.OpenAI.new({apiKey: "sk-..."; baseURL: "https://api.openai.com/v1"}) -var $result := $client.chat.completions.create($messages; {model: "gpt-5.1"}) +// Utiliser la configuration du constructeur +var $client := cs.AIKit.OpenAI.new({apiKey : "sk-..." ; baseURL : "https://api.openai.com/v1"}) +var $result := $client.chat.completions.create($messages; {model : "gpt-5.1"}) -// Override with provider alias -var $result := $client.chat.completions.create($messages; {model: "anthropic:claude-3-opus"}) +// Surcharge avec l'alias du fournisseur +var $result := $client.chat.completions.create($messages; {model : "anthropic:claude-3-opus"}) -// Override with model alias (bare name) -var $result := $client.chat.completions.create($messages; {model: "my-gpt"}) +// Surcharge avec l'alias du modèle (nom simple) +var $result := $client.chat.completions.create($messages; {model : "my-gpt"}) ``` ## Exemples @@ -305,7 +305,7 @@ Définir les modèles une fois, les utiliser partout par leur nom : ```4d var $client := cs.AIKit.OpenAI.new() -// Use named model aliases — no need to remember provider or model ID +// Utiliser des alias de modèles nommés — pas besoin de se souvenir du fournisseur ou de l'ID du modèle var $result := $client.chat.completions.create($messages; {model: "chat"}) var $result := $client.chat.completions.create($messages; {model: "fast"}) var $embedding := $client.embeddings.create("text"; "embedding") diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R3/assets/en/Users/plugins.png b/i18n/fr/docusaurus-plugin-content-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/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/classes.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/classes.md index 7150e78aac15b1..07aee4c552b3f7 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/classes.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/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/version-21-R4/Concepts/dt_collection.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/dt_collection.md index 1c0ee06075bb52..4acb6a4c871c50 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/dt_collection.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/Concepts/dt_collection.md @@ -244,7 +244,7 @@ Les conversions suivantes sont appliquées aux valeurs traitées par ces command - [`ARRAY TO COLLECTION`](../commands/array-to-collection) - [`OB SET ARRAY`](../commands/ob-set-array) -| | | | | | | | | | | | | -| ------------------------------ | -------------------------------------- | -------------------------------------------- | -------------------------------------- | -------------------------------------------- | -------------------------------------------- | ------------------------------------------ | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | -------------------------------------- | - | -| | [`ARRAY TEXT`](../commands/array-text) | [`ARRAY LONGINT`](../commands/array-longint) | [`ARRAY REAL`](../commands/array-real) | [`ARRAY INTEGER`](../commands/array-integer) | [`ARRAY BOOLEAN`](../commands/array-boolean) | [`ARRAY OBJECT`](../commands/array-object) | [`ARRAY PICTURE`](../commands/array-picture) | [`ARRAY DATE`](../commands/array-date) | [`ARRAY TIME`](../commands/array-time) | [`ARRAY BLOB`](../commands/array-blob) | | -| Types d'éléments de collection | string | number | number | number | boolean | object ou null | picture | string or date according to the [Dates inside objects](../commands/set-database-parameter#dates-inside-objects-85) parameter | nombre de secondes | 4D.Blob | | \ No newline at end of file +| | | | | | | | | | | | | +| ------------------------------ | -------------------------------------- | -------------------------------------------- | -------------------------------------- | -------------------------------------------- | -------------------------------------------- | ------------------------------------------ | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | -------------------------------------- | - | +| | [`ARRAY TEXT`](../commands/array-text) | [`ARRAY LONGINT`](../commands/array-longint) | [`ARRAY REAL`](../commands/array-real) | [`ARRAY INTEGER`](../commands/array-integer) | [`ARRAY BOOLEAN`](../commands/array-boolean) | [`ARRAY OBJECT`](../commands/array-object) | [`ARRAY PICTURE`](../commands/array-picture) | [`ARRAY DATE`](../commands/array-date) | [`ARRAY TIME`](../commands/array-time) | [`ARRAY BLOB`](../commands/array-blob) | | +| Types d'éléments de collection | string | number | number | number | boolean | object ou null | picture | chaîne ou date en fonction du paramètre [Dates inside objects](../commands/set-database-parameter#dates-inside-objects-85) | nombre de secondes | 4D.Blob | | \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormObjects/properties_Text.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormObjects/properties_Text.md index b64232b1868a20..ad02555633faaa 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormObjects/properties_Text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/FormObjects/properties_Text.md @@ -336,8 +336,8 @@ Indique une expression ou une variable qui sera évaluée pour chaque ligne affi | Nom de propriété | Type | Description | | ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| stroke | string | Couleur de fond. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | -| fill | string | Couleur de la police. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | +| stroke | string | Couleur de la police. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | +| fill | string | Couleur de fond. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | | fontStyle | string | "normal","italic" | | fontWeight | string | "normal","bold" | | textDecoration | string | "normal","underline" | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/maintenance.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/maintenance.md index 167e0f5492316a..4351348f34ee95 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/maintenance.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/ServerWindow/maintenance.md @@ -1,6 +1,6 @@ --- id: maintenance -title: Page maintenance +title: Page Maintenance --- La page **Maintenance** fournit diverses informations relatives au fonctionnement courant de la base. Elle donne également accès aux fonctions de maintenance élémentaires : 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 0e442205dfead5..3895c06f9aeedf 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. 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 : +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/aikit/Classes/OpenAI.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAI.md index 2fa8ecd9d8a511..98dfea12bc6bab 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAI.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAI.md @@ -82,7 +82,7 @@ $client.model.lists(...) Le client OpenAI prend en charge les alias de modèles de fournisseurs pour faciliter l'utilisation de plusieurs fournisseurs. Voir [Alias de modèles de fournisseurs](../provider-model-aliases.md) pour une documentation complète. -You can construct an OpenAI client using a pre-configured provider name. This allows you to easily switch between different AI providers (OpenAI, Anthropic, etc.) without specifying the full configuration each time. +Vous pouvez construire un client OpenAI en utilisant un nom de fournisseur préconfiguré. Cela vous permet de basculer facilement entre différents fournisseurs IA (OpenAI, Anthropic, etc.) sans spécifier la configuration complète à chaque fois. ```4d var $client:=cs.AIKit.OpenAI.new({provider: "anthropic"}) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsParameters.md index a71ead12722135..24ae3fdb575790 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsParameters # OpenAIChatCompletionsParameters -The `OpenAIChatCompletionsParameters` class is designed to handle the parameters required for chat completions using the OpenAI API. +La classe `OpenAIChatCompletionsParameters` permet de gérer les paramètres requis pour les générations de réponses conversationnelles en utilisant l'API OpenAI. ## Hérite de @@ -13,30 +13,30 @@ The `OpenAIChatCompletionsParameters` class is designed to handle the parameters ## Propriétés -| Propriété | Type | Valeur par défaut | Description | -| ----------------------- | ---------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | `"gpt-4o-mini"` | ID du modèle à utiliser. Prend en charge [provider:model aliases](../provider-model-aliases.md) pour une utilisation multi-fournisseurs (par exemple, `"openai:gpt-4o"`, `"anthropic:claude-3-opus"`). | -| `stream` | Boolean | `False` | Indique si la progression partielle doit être retransmise en continu. Si cette option est activée, les tokens seront envoyés sous forme de données uniquement. Une formule de rappel est requise. | -| `stream_options` | Object | `Null` | Propriété pour stream=True. Par exemple : `{include_usage: True}` | -| `max_completion_tokens` | Integer | `0` | Le nombre maximum de tokens qui peuvent être générés dans la réponse. | -| `n` | Integer | `1` | Nombre de réponses à générer pour chaque invite (prompt). | -| `temperature` | Real | `-1` | Température d'échantillonnage à utiliser, entre 0 et 2. Les valeurs élevées rendent la sortie plus aléatoire, tandis que des valeurs faibles la rendent plus ciblée et déterministe. | -| `top_p` | Real | `-1` | An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. Only sent when the value is greater than 0 (omitted when `<= 0`, with default `-1`). | -| `store` | Boolean | `False` | Stocker ou non le résultat de cette requête de génération de réponse conversationnelle. | -| `reasoning_effort` | Text | `Null` | Contraintes sur l'effort de raisonnement pour les modèles de raisonnement. Les valeurs actuellement prises en charge sont "low", "medium" et "high". | -| `response_format` | Object | `Null` | Un objet spécifiant le format que le modèle doit produire. Compatible avec les sorties structurées. | -| `tools` | Collection | `Null` | Une liste d'outils ([OpenAITool](OpenAITool.md)) que le modèle peut appeler. Seul le type "function" est pris en charge. | -| `tool_choice` | Variant | `Null` | Contrôle l'outil (le cas échéant) qui est appelé par le modèle. Peut être `"none"`, `"auto"`, `"required"`, ou spécifier un outil particulier. | -| `prediction` | Object | `Null` | Contenu de sortie statique, tel que le contenu d'un fichier texte en cours de régénération. | -| `service_tier` | Text | `Null` | Specifies the processing type used for serving the request. `"auto"`, `"auto"`, `"default"`, and `"priority"`. | - -### Propriétés du callback asynchrone +| Propriété | Type | Valeur par défaut | Description | +| ----------------------- | ---------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `model` | Text | `"gpt-4o-mini"` | ID du modèle à utiliser. Prend en charge [provider:model aliases](../provider-model-aliases.md) pour une utilisation multi-fournisseurs (par exemple, `"openai:gpt-4o"`, `"anthropic:claude-3-opus"`). | +| `stream` | Boolean | `False` | Indique si la progression partielle doit être retransmise en continu. Si cette option est activée, les tokens seront envoyés sous forme de données uniquement. Une formule de rappel est requise. | +| `stream_options` | Object | `Null` | Propriété pour stream=True. Par exemple : `{include_usage: True}` | +| `max_completion_tokens` | Integer | `0` | Le nombre maximum de tokens qui peuvent être générés dans la réponse. | +| `n` | Integer | `1` | Nombre de réponses à générer pour chaque invite (prompt). | +| `temperature` | Real | `-1` | Température d'échantillonnage à utiliser, entre 0 et 2. Les valeurs élevées rendent la sortie plus aléatoire, tandis que des valeurs faibles la rendent plus ciblée et déterministe. | +| `top_p` | Real | `-1` | Une alternative à l'échantillonnage en fonction de la température, appelée « échantillonnage par noyau », dans laquelle le modèle prend en compte les résultats des tokens présentant la masse de probabilité top_p. Ainsi, 0,1 signifie que seuls les tokens constituant la masse de probabilité la plus élevée de 10% sont pris en compte. Envoyé uniquement lorsque la valeur est supérieure à 0 (omis lorsque `<= 0`, avec la valeur par défaut `-1`). | +| `store` | Boolean | `False` | Stocker ou non le résultat de cette requête de génération de réponse conversationnelle. | +| `reasoning_effort` | Text | `Null` | Contraintes sur l'effort de raisonnement pour les modèles de raisonnement. Les valeurs actuellement prises en charge sont "low", "medium" et "high". | +| `response_format` | Object | `Null` | Un objet spécifiant le format que le modèle doit produire. Compatible avec les sorties structurées. | +| `tools` | Collection | `Null` | Une liste d'outils ([OpenAITool](OpenAITool.md)) que le modèle peut appeler. Seul le type "function" est pris en charge. | +| `tool_choice` | Variant | `Null` | Contrôle l'outil (le cas échéant) qui est appelé par le modèle. Peut être `"none"`, `"auto"`, `"required"`, ou spécifier un outil particulier. | +| `prediction` | Object | `Null` | Contenu de sortie statique, tel que le contenu d'un fichier texte en cours de régénération. | +| `service_tier` | Text | `Null` | Spécifie le type de traitement utilisé pour répondre à la requête. `"auto"`, `"auto"`, `"default"`, et `"priority"`. | + +### Propriétés de la callback asynchrone \| Property | Type | Description | \|---------------------------|---------|-------------------------|---------------------------------------------------------------------------------------------------| \| `onData`
    (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk.
    *Assurez-vous que le process courant ne se termine pas.* | -`onData` will receive as argument a [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) +`onData` recevra comme argument un [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) Voir [OpenAIParameters](OpenAIParameters.md) pour les autres propriétés de callback (rappel). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsResult.md index ca24782284f037..3235264cefca03 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsResult.md @@ -11,41 +11,41 @@ title: OpenAIChatCompletionsResult ## Propriétés calculées -| Propriété | Type | Description | -| --------- | ------------ | -------------------------------------------------------------------------------------------------------------------- | -| `choices` | Collection | Renvoie une collection de [OpenAIChoice](OpenAIChoice.md) de la réponse OpenAI. | -| `choice` | OpenAIChoice | Renvoie le premier [OpenAIChoice](OpenAIChoice.md) de la collection `choices`. | -| `usage` | Object | Returns token usage information (inherited from [OpenAIResult](OpenAIResult.md)). | +| Propriété | Type | Description | +| --------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------- | +| `choices` | Collection | Renvoie une collection de [OpenAIChoice](OpenAIChoice.md) de la réponse OpenAI. | +| `choice` | OpenAIChoice | Renvoie le premier [OpenAIChoice](OpenAIChoice.md) de la collection `choices`. | +| `usage` | Object | Renvoie les informations d'utilisation des tokens (hérité de [OpenAIResult](OpenAIResult.md)). | ### usage -The `usage` property returns an object containing token usage information for chat completions. +La propriété `usage` renvoie un objet contenant des informations sur l'utilisation des tokens pour les suggestions de conversations. -| Champ | Type | Description | -| --------------------------- | ------- | ----------------------------------------------------------------------------- | -| `prompt_tokens` | Integer | Number of tokens in the prompt. | -| `completion_tokens` | Integer | Number of tokens in the completion. | -| `total_tokens` | Integer | Total tokens used (prompt + completion). | -| `prompt_tokens_details` | Object | Breakdown of prompt tokens (optional). | -| `completion_tokens_details` | Object | Breakdown of completion tokens (optional). | +| Champ | Type | Description | +| --------------------------- | ------- | ---------------------------------------------------------------------------------- | +| `prompt_tokens` | Integer | Nombre de tokens dans l'invite. | +| `completion_tokens` | Integer | Nombre de tokens dans la réponse. | +| `total_tokens` | Integer | Total des tokens utilisés (invite + réponse). | +| `prompt_tokens_details` | Object | Répartition des tokens d'invite (facultatif). | +| `completion_tokens_details` | Object | Répartition des tokens de réponse (facultatif). | #### prompt_tokens_details -| Champ | Type | Description | -| --------------- | ------- | -------------------------------------------------------------------------- | -| `cached_tokens` | Integer | Number of tokens served from cache. | -| `audio_tokens` | Integer | Number of audio tokens (if applicable). | +| Champ | Type | Description | +| --------------- | ------- | --------------------------------------------------------------------------- | +| `cached_tokens` | Integer | Nombre de tokens servis depuis le cache. | +| `audio_tokens` | Integer | Nombre de tokens audio (le cas échéant). | #### completion_tokens_details -| Champ | Type | Description | -| ---------------------------- | ------- | --------------------------------------------------------------------------------------------------------------- | -| `reasoning_tokens` | Integer | Tokens used for reasoning (e.g., o1 models). | -| `audio_tokens` | Integer | Number of audio tokens (if applicable). | -| `accepted_prediction_tokens` | Integer | Tokens from accepted predictions. | -| `rejected_prediction_tokens` | Integer | Tokens from rejected predictions. | +| Champ | Type | Description | +| ---------------------------- | ------- | -------------------------------------------------------------------------------------------------- | +| `reasoning_tokens` | Integer | Tokens utilisés pour le raisonnement (par exemple, modèles o1). | +| `audio_tokens` | Integer | Nombre de tokens audio (le cas échéant). | +| `accepted_prediction_tokens` | Integer | Tokens de prédictions acceptées. | +| `rejected_prediction_tokens` | Integer | Tokens de prédictions rejetées. | -**Example response:** +**Exemple de réponse :** ```json { @@ -65,7 +65,7 @@ The `usage` property returns an object containing token usage information for ch } ``` -> **Note:** The `*_tokens_details` objects may not be present in all responses or from all providers. +> **Note :** Les objets `*_tokens_details` peuvent ne pas être présents dans toutes les réponses ou les réponses de tous les fournisseurs. ## Voir également diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsStreamResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsStreamResult.md index 085379ce6fb512..e7b7a163d77326 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsStreamResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatCompletionsStreamResult.md @@ -22,26 +22,26 @@ title: OpenAIChatCompletionsStreamResult | `choice` | [OpenAIChoice](OpenAIChoice.md) | Renvoie une donnée `choice`, avec un message `delta`. | | `choices` | Collection | Renvoie une collection de données [OpenAIChoice](OpenAIChoice.md), avec des messages `delta`. | -### Overridden properties +### Propriétés surchargées -| Propriété | Type | Description | -| ------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `success` | Boolean | Retourne `True` si le flux de données a été décodé avec succès en tant qu'objet. | -| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, c'est-à-dire si `onTerminate` a été appelé. c'est-à-dire si `onTerminate` a été appelé. | -| `usage` | Object | Returns token usage information from the stream data (only available in the final chunk when `stream_options.include_usage` is set to `True`). | +| Propriété | Type | Description | +| ------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `success` | Boolean | Retourne `True` si le flux de données a été décodé avec succès en tant qu'objet. | +| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, c'est-à-dire si `onTerminate` a été appelé. | +| `usage` | Object | Retourne les informations d'utilisation des tokens depuis les données du flux (uniquement disponibles dans le bloc final lorsque `stream_options.include_usage` est à `True`). | ### usage -The `usage` property returns an object containing token usage information, available only in the final streaming chunk when enabled via `stream_options.include_usage: True` in the request parameters. +La propriété `usage` retourne un objet contenant des informations d'utilisation de tokens, disponible uniquement dans le bloc final de streaming lorsque activé via `stream_options. nclude_usage: True` dans les paramètres de la requête. -The structure is the same as [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage): +La structure est la même que [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage) : -| Champ | Type | Description | -| --------------------------- | ------- | ----------------------------------------------------------------------------- | -| `prompt_tokens` | Integer | Number of tokens in the prompt. | -| `completion_tokens` | Integer | Number of tokens in the completion. | -| `total_tokens` | Integer | Total tokens used (prompt + completion). | -| `prompt_tokens_details` | Object | Breakdown of prompt tokens (optional). | -| `completion_tokens_details` | Object | Breakdown of completion tokens (optional). | +| Champ | Type | Description | +| --------------------------- | ------- | ---------------------------------------------------------------------------------- | +| `prompt_tokens` | Integer | Nombre de tokens dans l'invite. | +| `completion_tokens` | Integer | Nombre de tokens dans la réponse. | +| `total_tokens` | Integer | Total des tokens utilisés (invite + réponse). | +| `prompt_tokens_details` | Object | Répartition des tokens d'invite (facultatif). | +| `completion_tokens_details` | Object | Répartition des tokens de réponse (facultatif). | -> **Note:** To receive usage information in streaming responses, you must set `stream_options: {include_usage: True}` in your request parameters. See [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) for details. +> **Note :** Pour recevoir des informations d'utilisation dans les réponses de streaming, vous devez définir `stream_options: {include_usage: True}` dans vos paramètres de votre requête. Voir [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) pour plus de détails. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatHelper.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatHelper.md index 7c5a7930ce231e..7c7ddbe99dda2c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIChatHelper.md @@ -36,26 +36,26 @@ Cette méthode crée un nouvel assistant de conversation avec l'invite système **prompt**(*prompt* : Variant) : OpenAIChatCompletionsResult -| Paramètres | Type | Description | -| ----------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| *prompt* | Text or [OpenAIMessage](OpenAIMessage.md) | The text prompt to send to OpenAI chat, or an OpenAIMessage object for more complex messages (e.g., with images or files). | -| Résultat de la fonction | [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) | La réponse conversationnelle générée. | +| Paramètres | Type | Description | +| ----------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| *prompt* | Text ou [OpenAIMessage](OpenAIMessage.md) | L'invite de texte à envoyer à la conversation OpenAI ou un objet OpenAIMessage pour des messages plus complexes (par exemple, avec des images ou des fichiers). | +| Résultat de la fonction | [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) | La réponse conversationnelle générée. | -Envoie une invite utilisateur au modèle de conversation et retourne la réponse générée. You can pass either a simple text string or an [OpenAIMessage](OpenAIMessage.md) object for more advanced scenarios like including images or files. +Envoie une invite utilisateur au modèle de conversation et retourne la réponse générée. Vous pouvez passer soit une simple chaîne de texte ou un objet [OpenAIMessage](OpenAIMessage.md) pour des scénarios plus avancés comme des images ou des fichiers. #### Exemple d'utilisation ```4D -// Simple text prompt +// Invite de texte simple var $result:=$chatHelper.prompt("Hello, how can I help you today?") $result:=$chatHelper.prompt("Why 42?") -// Using OpenAIMessage for advanced scenarios (e.g., with images) +// Utilisation d'OpenAIMessage pour scénarios avancés (ex : avec images) var $message:=cs.AIKit.OpenAIMessage.new({role: "user"; content: "What's in this image?"}) $message.addImageURL("https://example.com/photo.jpg"; "high") $result:=$chatHelper.prompt($message) -// Using OpenAIMessage with files +// Utilisation d'OpenAIMessage avec des fichiers var $fileMessage:=cs.AIKit.OpenAIMessage.new({role: "user"; content: "Analyze this document"}) $fileMessage.addFileId($uploadedFile.id) $result:=$chatHelper.prompt($fileMessage) @@ -78,21 +78,21 @@ $chatHelper.reset() // Efface tous les messages et outils précédents **registerTool**(*tool* : Object; *handler* : Variant) -| Paramètres | Type | Description | -| ---------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| *tool* | Object | Objet de définition d'outil (ou instance [OpenAITool](OpenAITool.md)) | -| *handler* | Object | The function to handle tool calls (4D.Function or Object), optional if defined inside *tool* as *handler* property | +| Paramètres | Type | Description | +| ---------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| *tool* | Object | Objet de définition d'outil (ou instance [OpenAITool](OpenAITool.md)) | +| *handler* | Object | Fonction pour gérer les appels d'outils (4D.Function ou Objet), facultative si elle est définie dans *tool* comme propriété *handler* | Enregistre un outil avec sa fonction de gestion automatique des appels d'outils. Le paramètre *handler* peut être : - Un objet **4D.Function** : Fonction de gestion directe -- An **Object**: An object containing a formula property matching the tool function name +- Un **Objet** : un objet contenant une propriété formula correspondant au nom de la fonction outil La fonction de gestion reçoit un objet contenant les paramètres transmis par l'appel à l'outil OpenAI. Cet objet contient des paires clé-valeur dont les clés correspondent aux noms des paramètres définis dans le schéma de l'outil et dont les valeurs sont les arguments réels fournis par le modèle d'IA. -#### Register Tool Examples +#### Exemples de Register Tool ```4D // Exemple 1: Enregistrement simple avec gestionnaire direct @@ -128,7 +128,7 @@ Enregistre plusieurs outils à la fois. Le paramètre peut être : - **Objet** : Objet dont les propriétés sont des noms de fonctions correspondant à des définitions d'outils - **Objet avec attribut `tools`** : Objet contenant une collection `tools` et des propriétés formula correspondant à des noms d'outils -#### Register Multiple Tools Examples +#### Exemples de Register Tools multiples ##### Exemple 1 : Format collection avec des gestionnaires dans les outils diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIImagesResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIImagesResult.md index 151f662c752253..9fc762df6cb4fd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIImagesResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIImagesResult.md @@ -11,31 +11,31 @@ title: OpenAIImagesResult ## Propriétés calculées -| Propriété | Type | Description | -| --------- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `images` | Collection de [OpenAIImage](OpenAIImage.md) | Renvoie une collection d'objets OpenAIImage. | -| `image` | [OpenAIImage](OpenAIImage.md) | Renvoie la première image OpenAIImage de la collection. | -| `usage` | Object | Returns token usage information (inherited from [OpenAIResult](OpenAIResult.md)). | +| Propriété | Type | Description | +| --------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `images` | Collection de [OpenAIImage](OpenAIImage.md) | Renvoie une collection d'objets OpenAIImage. | +| `image` | [OpenAIImage](OpenAIImage.md) | Renvoie la première image OpenAIImage de la collection. | +| `usage` | Object | Renvoie les informations d'utilisation des tokens (hérité de [OpenAIResult](OpenAIResult.md)). | ### usage -The `usage` property returns an object containing token usage information for image generation (when supported by the provider). +La propriété `usage` retourne un objet contenant des informations sur l'utilisation de tokens pour la génération d'images (lorsque pris en charge par le fournisseur). -| Champ | Type | Description | -| ---------------------- | ------- | --------------------------------------------------------------------------- | -| `total_tokens` | Integer | Total tokens used. | -| `input_tokens` | Integer | Number of tokens in the input (prompt). | -| `output_tokens` | Integer | Number of tokens for the output (image). | -| `input_tokens_details` | Object | Breakdown of input tokens (optional). | +| Champ | Type | Description | +| ---------------------- | ------- | -------------------------------------------------------------------------------- | +| `total_tokens` | Integer | Total des tokens utilisés. | +| `input_tokens` | Integer | Nombre de tokens dans l'entrée (prompt). | +| `output_tokens` | Integer | Nombre de tokens pour la sortie (image). | +| `input_tokens_details` | Object | Répartition des tokens d'entrée (facultatif). | #### input_tokens_details -| Champ | Type | Description | -| -------------- | ------- | ----------------------------------------------------------------------------------------- | -| `text_tokens` | Integer | Number of text tokens in the prompt. | -| `image_tokens` | Integer | Number of image tokens (for image editing/variations). | +| Champ | Type | Description | +| -------------- | ------- | ------------------------------------------------------------------------------------------------------- | +| `text_tokens` | Integer | Nombre de tokens de texte dans l'invite. | +| `image_tokens` | Integer | Nombre de tokens d'image (pour l'édition et les variations d'image). | -**Example response:** +**Exemple de réponse :** ```json { @@ -49,7 +49,7 @@ The `usage` property returns an object containing token usage information for im } ``` -> **Note:** Image generation usage may not be available from all providers. The structure may vary depending on the specific image API endpoint used. +> **Note:** L'usage de génération d'images peut ne pas être disponible auprès de tous les fournisseurs. La structure peut varier selon le point de terminaison de l'API image utilisé. ## Fonctions diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIMessage.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIMessage.md index d0e70b7adf7fa6..4cc1636aef3372 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIMessage.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIMessage.md @@ -29,10 +29,10 @@ La classe `OpenAIMessage` représente un message structuré contenant un rôle, **addImageURL**(*imageURL* : Text; *detail* : Text) -| Paramètres | Type | Description | -| ---------- | ---- | ---------------------------------------------------------------------------------------- | -| *imageURL* | Text | L'URL de l'image à ajouter au message. | -| *detail* | Text | The detail level of the image: "auto", "low", or "high". | +| Paramètres | Type | Description | +| ---------- | ---- | ----------------------------------------------------------------------------------------- | +| *imageURL* | Text | L'URL de l'image à ajouter au message. | +| *detail* | Text | Le niveau de détail de l'image: "auto", "low", ou "high". | Ajoute une URL d'image au contenu du message. Si le contenu est actuellement du texte, il sera converti en un format de collection. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIParameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIParameters.md index 97fa5d75d973c9..11997e0b934aad 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIParameters.md @@ -9,20 +9,20 @@ La classe `OpenAIParameters` permet de gérer les paramètres d'exécution et de ## Propriétés -### Propriétés du callback asynchrone +### Propriétés de la callback asynchrone Utilisez cette propriété de callback (*rappel*) pour recevoir le résultat, qu'il s'agisse d'un succès ou d'une erreur : -| Propriété | Type | Description | -| -------------------------------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onTerminate`
    (ou `formula`) | 4D.Function | Une fonction à appeler de manière asynchrone lorsqu'elle est terminée.
    *Ensure that the current process does not terminate.* | +| Propriété | Type | Description | +| -------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onTerminate`
    (ou `formula`) | 4D.Function | Une fonction à appeler de manière asynchrone lorsqu'elle est terminée.
    *Assurez-vous que le process courant ne se termine pas.* | Utilisez ces propriétés de callback pour un contrôle plus granulaire de la gestion des succès et des erreurs : -| Propriété | Type | Description | -| ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `onResponse` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec succès**.
    *Ensure that the current process does not terminate.* | -| `onError` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec des erreurs**.
    *Ensure that the current process does not terminate.* | +| Propriété | Type | Description | +| ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec succès**.
    *Assurez-vous que le process courant ne se termine pas.* | +| `onError` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec des erreurs**.
    *Assurez-vous que le process courant ne se termine pas.* | > La fonction de callback recevra le même type d'objet de résultat (l'une des classes enfant de [OpenAIResult](OpenAIResult.md)) que celui qui serait renvoyé par la fonction dans un code synchrone. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIProviders.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIProviders.md index 6359a3282290e6..1927f3afd590d0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIProviders.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIProviders.md @@ -28,7 +28,7 @@ La classe `OpenAI` charge automatiquement les configurations des fournisseurs lo var $providers := cs.AIKit.OpenAIProviders.new() ``` -Creates a new instance that loads provider configuration from the `AIProviders.json` file. See [Configuration Files](../provider-model-aliases.md#configuration-files) in the Provider Model Aliases documentation for details on file locations and format. +Crée une nouvelle instance qui charge la configuration du fournisseur à partir du fichier `AIProviders.json`. Voir [Fichiers de configuration](../provider-model-aliases.md#configuration-files) dans la documentation des Alias de Modèles de Fournisseurs pour plus de détails sur l'emplacement et le format des fichiers. **Important:** diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIResult.md index ebb0021aa2af36..740db7ec4069bf 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/Classes/OpenAIResult.md @@ -15,27 +15,27 @@ La classe `OpenAIResult` permet de gérer la réponse des requêtes HTTP et four ## Propriétés calculées -| Propriété | Type | Description | -| ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `success` | Boolean | Un booléen indiquant si la requête HTTP a réussi. | -| `errors` | Collection | Renvoie une collection d'erreurs. Il peut s'agir d'erreurs réseau ou d'erreurs renvoyées par OpenAI. | -| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, c'est-à-dire si `onTerminate` a été appelé. | -| `headers` | Object | Renvoie les en-têtes de la réponse sous forme d'objet. | -| `rateLimit` | Object | Renvoie les informations relatives à la limite de débit contenues dans les en-têtes de la réponse. | -| `usage` | Object | Returns usage information (token counts) from the response body if any. | +| Propriété | Type | Description | +| ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `success` | Boolean | Un booléen indiquant si la requête HTTP a réussi. | +| `errors` | Collection | Renvoie une collection d'erreurs. Il peut s'agir d'erreurs réseau ou d'erreurs renvoyées par OpenAI. | +| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, | +| `headers` | Object | Renvoie les en-têtes de la réponse sous forme d'objet. | +| `rateLimit` | Object | Renvoie les informations relatives à la limite de débit contenues dans les en-têtes de la réponse. | +| `usage` | Object | Renvoie les informations d'utilisation (nombre de tokens) depuis le body de la réponse, le cas échéant. | ### usage -The `usage` property returns an object containing token usage information from the API response. The structure varies depending on the API endpoint used. +La propriété `usage` renvoie un objet contenant des informations sur l'utilisation des tokens depuis la réponse de l'API. La structure varie en fonction du point de terminaison de l'API utilisé. -> **Note:** Different OpenAI-compatible services may return different fields in the usage object. The structure documented here is based on OpenAI's API. Not all fields may be present in responses from other providers. +> **Note :** Différents services compatibles OpenAI peuvent retourner différents champs dans l'objet usage. La structure documentée ici est basée sur l'API d'OpenAI. Tous les champs peuvent ne pas être présents dans les réponses d'autres fournisseurs. -See the specific result class documentation for endpoint-specific usage structures: +Consultez la documentation relative à la classe de résultats correspondante pour connaître les structures d'usage spécifiques à chaque point de terminaison : -- [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage) - Chat completions usage -- [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md#usage) - Streaming chat usage -- [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md#usage) - Embeddings usage -- [OpenAIImagesResult](OpenAIImagesResult.md#usage) - Image generation usage +- [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage) - usage en réponses conversationnelles +- [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md#usage) - usage en conversation continue +- [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md#usage) - usage en embedding +- [OpenAIImagesResult](OpenAIImagesResult.md#usage) - usage en génération d'images ### rateLimit diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/asynchronous-call.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/asynchronous-call.md index 01022f555f879e..bbcd794d73bf69 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/asynchronous-call.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/asynchronous-call.md @@ -7,7 +7,7 @@ title: Appel asynchrone Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. -Pour effectuer des appels asynchrones, vous devez fournir une `4D.Function`(`Formula`) de rappel (*callback*) dans le paramètre objet [OpenAIParameters](Classes/OpenAIParameters.md) pour recevoir le résultat. For streaming chat completion see [OpenAIChatCompletionsParameters](Classes/OpenAIChatCompletionsParameters.md). +Pour effectuer des appels asynchrones, vous devez fournir une `4D.Function`(`Formula`) de rappel (*callback*) dans le paramètre objet [OpenAIParameters](Classes/OpenAIParameters.md) pour recevoir le résultat. Pour la complétion du chat en streaming, voir [OpenAIChatCompletionsParameters](Classes/OpenAIChatCompletionsParameters.md). La fonction de callback recevra le même type d'objet de résultat (l'une des classes enfant de [OpenAIResult](Classes/OpenAIResult.md)) que celui qui serait renvoyé par la fonction dans un code synchrone. Voir les exemples ci-dessous. @@ -59,15 +59,15 @@ ASSERT($result.success) // Nous utilisons ici onResponse, le callback n'est reç Form.assistantMessage:=$result.choices[0].text ``` -### chat completions with streaming +### Réponses conversationnelles avec streaming -When you want to receive the response progressively as it's being generated (streaming), you can use the `stream` parameter along with an `onData` callback: +Lorsque vous voulez recevoir la réponse progressivement car elle est générée en continu (streaming), vous pouvez utiliser le paramètre `stream` avec un callback `onData` : ```4d var $messages:=[{role: "system"; content: "You are a helpful assistant."}] $messages.push({role: "user"; content: "Could you explain me why 42 is a special number"}) -// Enable streaming and provide onData callback +// Activer le streaming et fournir la callback onData $client.chat.completions.create($messages; { \ stream: True; \ onData: Formula(MyStreamDataReceiveMethod($1)); \ @@ -75,39 +75,39 @@ $client.chat.completions.create($messages; { \ }) ``` -The `onData` callback will be called multiple times as data chunks arrive. `$1` will be an instance of [OpenAIChatCompletionsStreamResult](Classes/OpenAIChatCompletionsStreamResult.md): +La fonction callback `onData` sera appelée plusieurs fois à mesure que les blocs de données arrivent. `$1` sera une instance de [OpenAIChatCompletionsStreamResult](Classes/OpenAIChatCompletionsStreamResult.md) : ```4d // MyStreamDataReceiveMethod #DECLARE($streamResult: cs.AIKit.OpenAIChatCompletionsStreamResult) If ($streamResult.success) - // Check if we have content in the delta + // Vérifier si on a du contenu dans le delta If ($streamResult.choices.length>0) var $choice: Object $choice:=$streamResult.choices[0] If ($choice.delta#Null) && ($choice.delta.content#Null) - // Append the new content chunk to the existing message + // Ajouter le nouveau bloc de contenu au message existant Form.assistantMessage:=Form.assistantMessage+$choice.delta.content End if End if Else - // Handle streaming error + // Gérer une erreur de streaming ALERT("Streaming error: "+$streamResult.error.message) End if ``` -The `onTerminate` callback will be called once when the stream is complete: +La callback `onTerminate` sera appelée une fois que le flux sera terminé : ```4d // MyStreamTerminateMethod #DECLARE($result: cs.AIKit.OpenAIChatCompletionsResult) If ($result.success) - // Stream completed successfully + // Flux terminé avec succès Else - // Handle final error + // Gérer erreur finale ALERT("Stream terminated with error: "+$result.errors.formula(Formula(JSON Stringify($1))).join("\n")) End if ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/provider-model-aliases.md b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/provider-model-aliases.md index b3cbc7a2c131a4..69b7222de3e266 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/provider-model-aliases.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/aikit/provider-model-aliases.md @@ -140,11 +140,11 @@ Utilisez un nom de modèle simple pour référencer un modèle nommé défini da ```4d var $client := cs.AIKit.OpenAI.new() -// Use a named model alias +// Utiliser un alias de modèle nommé var $result := $client.chat.completions.create($messages; {model: "my-gpt"}) var $result := $client.chat.completions.create($messages; {model: "my-claude"}) -// Embeddings with a named model alias +// Embeddings avec un alias de modèle nommé var $result := $client.embeddings.create("text"; "my-embedding") ``` @@ -168,7 +168,7 @@ Lorsque vous utilisez la syntaxe `provider:model`, le client automatiquement : Lorsque vous utilisez un nom de modèle simple qui correspond à un alias configuré, le client automatiquement : 1. **recherche** l'alias du modèle dans la section `models` de la configuration - - Example: `"my-gpt"` → finds entry with `provider: "openai"`, `model: "gpt-5.1"` + - Exemple : `"my-gpt"` → trouve une entrée avec `provider: "openai"`, `model: "gpt-5.1"` 2. **résoud** le fournisseur associé pour obtenir `baseURL` et `apiKey` @@ -176,18 +176,18 @@ Lorsque vous utilisez un nom de modèle simple qui correspond à un alias config ### Utiliser des noms de modèles seuls -If you specify a model name **without** a provider prefix, the client uses the configuration from its constructor: +Si vous spécifiez un nom de modèle **sans** préfixe de fournisseur, le client utilise la configuration de son constructeur : ```4d -// Use constructor configuration -var $client := cs.AIKit.OpenAI.new({apiKey: "sk-..."; baseURL: "https://api.openai.com/v1"}) -var $result := $client.chat.completions.create($messages; {model: "gpt-5.1"}) +// Utiliser la configuration du constructeur +var $client := cs.AIKit.OpenAI.new({apiKey : "sk-..." ; baseURL : "https://api.openai.com/v1"}) +var $result := $client.chat.completions.create($messages; {model : "gpt-5.1"}) -// Override with provider alias -var $result := $client.chat.completions.create($messages; {model: "anthropic:claude-3-opus"}) +// Surcharge avec l'alias du fournisseur +var $result := $client.chat.completions.create($messages; {model : "anthropic:claude-3-opus"}) -// Override with model alias (bare name) -var $result := $client.chat.completions.create($messages; {model: "my-gpt"}) +// Surcharge avec l'alias du modèle (nom simple) +var $result := $client.chat.completions.create($messages; {model : "my-gpt"}) ``` ## Exemples @@ -305,7 +305,7 @@ Définir les modèles une fois, les utiliser partout par leur nom : ```4d var $client := cs.AIKit.OpenAI.new() -// Use named model aliases — no need to remember provider or model ID +// Utiliser des alias de modèles nommés — pas besoin de se souvenir du fournisseur ou de l'ID du modèle var $result := $client.chat.completions.create($messages; {model: "chat"}) var $result := $client.chat.completions.create($messages; {model: "fast"}) var $embedding := $client.embeddings.create("text"; "embedding") diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21-R4/assets/en/Users/plugins.png b/i18n/fr/docusaurus-plugin-content-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 diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md index dc051afd79027a..cf73643f905333 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Text.md @@ -336,8 +336,8 @@ Indique une expression ou une variable qui sera évaluée pour chaque ligne affi | Nom de propriété | Type | Description | | ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| stroke | string | Couleur de fond. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | -| fill | string | Couleur de la police. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | +| stroke | string | Couleur de la police. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | +| fill | string | Couleur de fond. Toute couleur CSS (ex : "#FF00FF"), "automatic", "transparent" | | fontStyle | string | "normal","italic" | | fontWeight | string | "normal","bold" | | textDecoration | string | "normal","underline" | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/code-overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/code-overview.md index fbec99036769c0..d008072dd988b0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/code-overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/code-overview.md @@ -5,7 +5,7 @@ title: Création de méthodes et de classes Le code 4D utilisé dans votre projet est écrit dans des [méthodes](../Concepts/methods.md) et des [classes](../Concepts/classes.md). -L'IDE de 4D vous offre diverses fonctionnalités pour créer, modifier, exporter ou supprimer votre code. Vous utiliserez généralement l'[éditeur intégré de code 4D](../code-editor/write-class-method.md) pour travailler avec votre code. Vous pouvez également utiliser d'autres éditeurs tels que **VS Code**, pour lesquels l'extension [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) est disponible. +L'IDE de 4D vous offre diverses fonctionnalités pour créer, modifier, exporter ou supprimer votre code. Vous utiliserez généralement l'[éditeur intégré de code 4D](../code-editor/write-class-method.md) pour travailler avec votre code. Vous pouvez également utiliser d'autres éditeurs tels que **VS Code**, pour lequel l'extension [4D-Analyzer](https://github.com/4d/4D-Analyzer-VSCode) est disponible. ## Créer des méthodes diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$timeout.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$timeout.md index 974036700a6739..d1fa6508468e31 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$timeout.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/$timeout.md @@ -3,15 +3,15 @@ id: timeout title: $timeout --- -Définit le nombre de secondes pour enregistrer un ensemble d'entités dans le cache de 4D Server (par exemple, `$timeout=1800`) +Définit le nombre de secondes durant lequel conserver un entity set dans le cache de 4D Server (par exemple, `$timeout=1800`) ## Description -Pour définir un délai d'attente pour un ensemble d'entités que vous créez en utilisant [`$method=entityset`]($method.md#methodentityset), indiquez le nombre de secondes dans `$timeout`. Par exemple, si vous souhaitez définir le timeout sur 20 minutes, passez 1200. Par défaut, le timeout est de deux (2) heures. +Pour définir une durée de validité pour un ensemble d'entités que vous créez en utilisant [`$method=entityset`]($method.md#methodentityset), indiquez le nombre de secondes dans `$timeout`. Par exemple, si vous souhaitez définir le timeout sur 20 minutes, passez 1200. Par défaut, le timeout est de deux (2) heures. Une fois le timeout défini, chaque fois qu'un ensemble d'entités est appelé (via `$method=entityset`), le timeout est recalculé en fonction de l'heure courante et du timeout. -Si un ensemble d'entités est supprimé puis recréé en utilisant `$method=entityset` avec [`$savedfilter`]($savedfilter.md), le nouveau délai d'attente par défaut est de 10 minutes, quel que soit le délai d'attente défini lors de l'appel à `$timeout`. +Si un ensemble d'entités est supprimé puis recréé en utilisant `$method=entityset` avec [`$savedfilter`]($savedfilter.md), la nouvelle durée de validité par défaut est de 10 minutes, quelle que soit la durée définie lors de l'appel à `$timeout`. ## Exemple diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/maintenance.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/maintenance.md index 523d431bddfcba..01eb3838f97399 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/maintenance.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ServerWindow/maintenance.md @@ -1,6 +1,6 @@ --- id: maintenance -title: Page maintenance +title: Page Maintenance --- La page **Maintenance** fournit diverses informations relatives au fonctionnement courant de la base. Elle donne également accès aux fonctions de maintenance élémentaires : 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 c885d7b0ab60cb..f61319b001189f 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 @@ -58,7 +58,7 @@ L'éditeur des utilisateurs se trouve dans la boîte à outils de 4D. ![](../assets/en/Users/editor.png) -> L'éditeur des utilisateurs et des groupes peut être affiché au moment de l'exécution à l'aide de la commande [EDIT ACCESS](../commands-legacy/edit-access.md). +> L'éditeur des utilisateurs et des groupes peut être affiché au moment de l'exécution à l'aide de la commande [EDIT ACCESS](../commands/edit-access). > Toute la configuration des utilisateurs et des groupes peut également être modifiée pendant l'exécution de l'application à l'aide des commandes du langage 4D du thème `Utilisateurs et groupes`. ### Ajouter et modifier des utilisateurs @@ -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. @@ -212,3 +210,4 @@ Ce fichier peut être stocké aux emplacements suivants, en fonction de vos beso > Pour permettre des changements sûrs de mots de passe et d'appartenance à des groupes dans un environnement déployé, vous pouvez inclure votre fichier **directory.json** dans l'application serveur pendant le build, en utilisant l'[option correspondante du build application](../Desktop/building.md#incorporer-les-utilisateurs-et-les-groupes-du-projet-dans-l'application-serveur-construite). + 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 7d0ba1492c3c54..614fefb9c6d24b 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. 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 : +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/WritePro/managing-formulas.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md index 4571f1a1a310ab..222f0b270880ee 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md @@ -141,7 +141,7 @@ Lorsque la commande [**Current time**](../commands-legacy/current-time.md), une ## Prise en charge de la structure virtuelle -Les expressions de tables et de champs insérées dans les documents de 4D Write Pro prennent en charge la définition de structure virtuelle de la base de données. Les expressions de tables et de champs insérées dans les documents de 4D Write Pro prennent en charge la définition de structure virtuelle de la base de données. +Les expressions de tables et de champs insérées dans les documents de 4D Write Pro prennent en charge la définition de structure virtuelle de la base de données. La structure virtuelle exposée aux formules est définie par les commandes [**SET FIELD TITLES**](../commands-legacy/set-field-titles.md)(...;\*) et [**SET TABLE TITLES**](../commands-legacy/set-table-titles.md)(...;\*). Quand une structure virtuelle est définie : diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md index 73e6c11cef9444..882356e0340f7a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsParameters # OpenAIChatCompletionsParameters -The `OpenAIChatCompletionsParameters` class is designed to handle the parameters required for chat completions using the OpenAI API. +La classe `OpenAIChatCompletionsParameters` permet de gérer les paramètres requis pour les générations de réponses conversationnelles en utilisant l'API OpenAI. ## Hérite de @@ -13,30 +13,30 @@ The `OpenAIChatCompletionsParameters` class is designed to handle the parameters ## Propriétés -| Propriété | Type | Valeur par défaut | Description | -| ----------------------- | ---------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | `"gpt-4o-mini"` | ID du modèle à utiliser. | -| `stream` | Boolean | `False` | Indique si la progression partielle doit être retransmise en continu. Si cette option est activée, les tokens seront envoyés sous forme de données uniquement. Une formule de rappel est requise. | -| `stream_options` | Object | `Null` | Propriété pour stream=True. Par exemple : `{include_usage: True}` | -| `max_completion_tokens` | Integer | `0` | Le nombre maximum de tokens qui peuvent être générés dans la réponse. | -| `n` | Integer | `1` | Nombre de réponses à générer pour chaque invite (prompt). | -| `temperature` | Real | `-1` | Température d'échantillonnage à utiliser, entre 0 et 2. Les valeurs élevées rendent la sortie plus aléatoire, tandis que des valeurs faibles la rendent plus ciblée et déterministe. | -| `top_p` | Real | `-1` | An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. Only sent when the value is greater than 0 (omitted when `<= 0`, with default `-1`). | -| `store` | Boolean | `False` | Stocker ou non le résultat de cette requête de génération de réponse conversationnelle. | -| `reasoning_effort` | Text | `Null` | Contraintes sur l'effort de raisonnement pour les modèles de raisonnement. Les valeurs actuellement prises en charge sont "low", "medium" et "high". | -| `response_format` | Object | `Null` | Un objet spécifiant le format que le modèle doit produire. Compatible avec les sorties structurées. | -| `tools` | Collection | `Null` | Une liste d'outils ([OpenAITool](OpenAITool.md)) que le modèle peut appeler. Seul le type "function" est pris en charge. | -| `tool_choice` | Variant | `Null` | Contrôle l'outil (le cas échéant) qui est appelé par le modèle. Peut être `"none"`, `"auto"`, `"required"`, ou spécifier un outil particulier. | -| `prediction` | Object | `Null` | Contenu de sortie statique, tel que le contenu d'un fichier texte en cours de régénération. | -| `service_tier` | Text | `Null` | Specifies the processing type used for serving the request. `"auto"`, `"auto"`, `"default"`, and `"priority"`. | - -### Propriétés du callback asynchrone +| Propriété | Type | Valeur par défaut | Description | +| ----------------------- | ---------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `model` | Text | `"gpt-4o-mini"` | ID du modèle à utiliser. | +| `stream` | Boolean | `False` | Indique si la progression partielle doit être retransmise en continu. Si cette option est activée, les tokens seront envoyés sous forme de données uniquement. Une formule de rappel est requise. | +| `stream_options` | Object | `Null` | Propriété pour stream=True. Par exemple : `{include_usage: True}` | +| `max_completion_tokens` | Integer | `0` | Le nombre maximum de tokens qui peuvent être générés dans la réponse. | +| `n` | Integer | `1` | Nombre de réponses à générer pour chaque invite (prompt). | +| `temperature` | Real | `-1` | Température d'échantillonnage à utiliser, entre 0 et 2. Les valeurs élevées rendent la sortie plus aléatoire, tandis que des valeurs faibles la rendent plus ciblée et déterministe. | +| `top_p` | Real | `-1` | Une alternative à l'échantillonnage en fonction de la température, appelée « échantillonnage par noyau », dans laquelle le modèle prend en compte les résultats des tokens présentant la masse de probabilité top_p. Ainsi, 0,1 signifie que seuls les tokens constituant la masse de probabilité la plus élevée de 10% sont pris en compte. Envoyé uniquement lorsque la valeur est supérieure à 0 (omis lorsque `<= 0`, avec la valeur par défaut `-1`). | +| `store` | Boolean | `False` | Stocker ou non le résultat de cette requête de génération de réponse conversationnelle. | +| `reasoning_effort` | Text | `Null` | Contraintes sur l'effort de raisonnement pour les modèles de raisonnement. Les valeurs actuellement prises en charge sont "low", "medium" et "high". | +| `response_format` | Object | `Null` | Un objet spécifiant le format que le modèle doit produire. Compatible avec les sorties structurées. | +| `tools` | Collection | `Null` | Une liste d'outils ([OpenAITool](OpenAITool.md)) que le modèle peut appeler. Seul le type "function" est pris en charge. | +| `tool_choice` | Variant | `Null` | Contrôle l'outil (le cas échéant) qui est appelé par le modèle. Peut être `"none"`, `"auto"`, `"required"`, ou spécifier un outil particulier. | +| `prediction` | Object | `Null` | Contenu de sortie statique, tel que le contenu d'un fichier texte en cours de régénération. | +| `service_tier` | Text | `Null` | Spécifie le type de traitement utilisé pour répondre à la requête. `"auto"`, `"auto"`, `"default"`, et `"priority"`. | + +### Propriétés de la callback asynchrone \| Property | Type | Description | \|---------------------------|---------|-------------------------|---------------------------------------------------------------------------------------------------| \| `onData`
    (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk.
    *Assurez-vous que le process courant ne se termine pas.* | -`onData` will receive as argument a [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) +`onData` recevra comme argument un [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) Voir [OpenAIParameters](OpenAIParameters.md) pour les autres propriétés de callback (rappel). diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md index 311d1ac50d467d..a5b2b6b540aaf1 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md @@ -9,20 +9,20 @@ La classe `OpenAIParameters` permet de gérer les paramètres d'exécution et de ## Propriétés -### Propriétés du callback asynchrone +### Propriétés de la callback asynchrone Utilisez cette propriété de callback (*rappel*) pour recevoir le résultat, qu'il s'agisse d'un succès ou d'une erreur : -| Propriété | Type | Description | -| -------------------------------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onTerminate`
    (ou `formula`) | 4D.Function | Une fonction à appeler de manière asynchrone lorsqu'elle est terminée.
    *Ensure that the current process does not terminate.* | +| Propriété | Type | Description | +| -------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onTerminate`
    (ou `formula`) | 4D.Function | Une fonction à appeler de manière asynchrone lorsqu'elle est terminée.
    *Assurez-vous que le process courant ne se termine pas.* | Utilisez ces propriétés de callback pour un contrôle plus granulaire de la gestion des succès et des erreurs : -| Propriété | Type | Description | -| ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `onResponse` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec succès**.
    *Ensure that the current process does not terminate.* | -| `onError` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec des erreurs**.
    *Ensure that the current process does not terminate.* | +| Propriété | Type | Description | +| ------------ | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec succès**.
    *Assurez-vous que le process courant ne se termine pas.* | +| `onError` | 4D.Function | Une fonction à appeler de manière asynchrone lorsque la requête se termine **avec des erreurs**.
    *Assurez-vous que le process courant ne se termine pas.* | > La fonction de callback recevra le même type d'objet de résultat (l'une des classes enfant de [OpenAIResult](./OpenAIResult.md)) que celui qui serait renvoyé par la fonction dans un code synchrone. diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md index 1242da0d017876..87299f23aebbfc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md @@ -19,7 +19,7 @@ La classe `OpenAIResult` permet de gérer la réponse des requêtes HTTP et four | ------------ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ | | `success` | Boolean | Un booléen indiquant si la requête HTTP a réussi. | | `errors` | Collection | Renvoie une collection d'erreurs. Il peut s'agir d'erreurs réseau ou d'erreurs renvoyées par OpenAI. | -| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, c'est-à-dire si `onTerminate` a été appelé. | +| `terminated` | Boolean | Un booléen indiquant si la requête HTTP a été close, | | `headers` | Object | Renvoie les en-têtes de la réponse sous forme d'objet. | | `rateLimit` | Object | Renvoie les informations relatives à la limite de débit contenues dans les en-têtes de la réponse. | | `usage` | Object | Renvoie les informations d'utilisation depuis le body de la réponse, le cas échéant. | diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md index 01022f555f879e..bbcd794d73bf69 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/aikit/asynchronous-call.md @@ -7,7 +7,7 @@ title: Appel asynchrone Si vous ne souhaitez pas attendre la réponse de l'OpenAPI lorsque vous envoyez une requête à son API, vous devez utiliser un code asynchrone. -Pour effectuer des appels asynchrones, vous devez fournir une `4D.Function`(`Formula`) de rappel (*callback*) dans le paramètre objet [OpenAIParameters](Classes/OpenAIParameters.md) pour recevoir le résultat. For streaming chat completion see [OpenAIChatCompletionsParameters](Classes/OpenAIChatCompletionsParameters.md). +Pour effectuer des appels asynchrones, vous devez fournir une `4D.Function`(`Formula`) de rappel (*callback*) dans le paramètre objet [OpenAIParameters](Classes/OpenAIParameters.md) pour recevoir le résultat. Pour la complétion du chat en streaming, voir [OpenAIChatCompletionsParameters](Classes/OpenAIChatCompletionsParameters.md). La fonction de callback recevra le même type d'objet de résultat (l'une des classes enfant de [OpenAIResult](Classes/OpenAIResult.md)) que celui qui serait renvoyé par la fonction dans un code synchrone. Voir les exemples ci-dessous. @@ -59,15 +59,15 @@ ASSERT($result.success) // Nous utilisons ici onResponse, le callback n'est reç Form.assistantMessage:=$result.choices[0].text ``` -### chat completions with streaming +### Réponses conversationnelles avec streaming -When you want to receive the response progressively as it's being generated (streaming), you can use the `stream` parameter along with an `onData` callback: +Lorsque vous voulez recevoir la réponse progressivement car elle est générée en continu (streaming), vous pouvez utiliser le paramètre `stream` avec un callback `onData` : ```4d var $messages:=[{role: "system"; content: "You are a helpful assistant."}] $messages.push({role: "user"; content: "Could you explain me why 42 is a special number"}) -// Enable streaming and provide onData callback +// Activer le streaming et fournir la callback onData $client.chat.completions.create($messages; { \ stream: True; \ onData: Formula(MyStreamDataReceiveMethod($1)); \ @@ -75,39 +75,39 @@ $client.chat.completions.create($messages; { \ }) ``` -The `onData` callback will be called multiple times as data chunks arrive. `$1` will be an instance of [OpenAIChatCompletionsStreamResult](Classes/OpenAIChatCompletionsStreamResult.md): +La fonction callback `onData` sera appelée plusieurs fois à mesure que les blocs de données arrivent. `$1` sera une instance de [OpenAIChatCompletionsStreamResult](Classes/OpenAIChatCompletionsStreamResult.md) : ```4d // MyStreamDataReceiveMethod #DECLARE($streamResult: cs.AIKit.OpenAIChatCompletionsStreamResult) If ($streamResult.success) - // Check if we have content in the delta + // Vérifier si on a du contenu dans le delta If ($streamResult.choices.length>0) var $choice: Object $choice:=$streamResult.choices[0] If ($choice.delta#Null) && ($choice.delta.content#Null) - // Append the new content chunk to the existing message + // Ajouter le nouveau bloc de contenu au message existant Form.assistantMessage:=Form.assistantMessage+$choice.delta.content End if End if Else - // Handle streaming error + // Gérer une erreur de streaming ALERT("Streaming error: "+$streamResult.error.message) End if ``` -The `onTerminate` callback will be called once when the stream is complete: +La callback `onTerminate` sera appelée une fois que le flux sera terminé : ```4d // MyStreamTerminateMethod #DECLARE($result: cs.AIKit.OpenAIChatCompletionsResult) If ($result.success) - // Stream completed successfully + // Flux terminé avec succès Else - // Handle final error + // Gérer erreur finale ALERT("Stream terminated with error: "+$result.errors.formula(Formula(JSON Stringify($1))).join("\n")) End if ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/assets/en/Users/plugins.png b/i18n/fr/docusaurus-plugin-content-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 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/BlobClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/BlobClass.md index b13c244706c738..d135bacdece422 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/BlobClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/BlobClass.md @@ -85,11 +85,11 @@ Blobクラスを使って、[BLOB オブジェクト](../Concepts/dt_blob.md#BLO #### 説明 -`.slice()` 関数は、 呼び出し対象である BLOB のデータの一部を参照する新規の `4D.Blob` を作成して返します。 元の BLOB は変更されません。 +`.slice()` 関数は、 呼び出し対象である BLOB のデータの一部を参照する新規の `4D.Blob` を作成して返します。元の BLOB は変更されません。 -`start` 引数は、新しい `4D.Blob` に含める最初のバイトを示す BLOB のインデックスです。 負の値を指定した場合、4D は BLOB の末尾から先頭に向かってオフセットしたものとして扱います。 たとえば、-10 は BLOB の最後から 10番目のバイトを表します。 デフォルト値は 0 です。 start にソースBLOB のサイズより大きな値を指定すると、返される `4D.Blob` のサイズは 0 になり、データは含まれません。 +`start` 引数は、新しい `4D.Blob` に含める最初のバイトを示す BLOB のインデックスです。負の値を指定した場合、4D は BLOB の末尾から先頭に向かってオフセットしたものとして扱います。たとえば、-10 は BLOB の最後から 10番目のバイトを表します。デフォルト値は 0 です。 start にソースBLOB のサイズより大きな値を指定すると、返される `4D.Blob` のサイズは 0 になり、データは含まれません。 -`end` 引数は、新しい `4D.Blob` に含めない最初のバイトを示す BLOB のインデックスです。つまり、指定インデックスのバイトは新しい `4D.Blob` から除外されます。 負の値を指定した場合、4D は BLOB の末尾から先頭に向かってオフセットしたものとして扱います。 たとえば、-10 は BLOB の最後から 10番目のバイトを表します。 デフォルト値は BLOB のサイズです。 +`end` 引数は、新しい `4D.Blob` に含めない最初のバイトを示す BLOB のインデックスです。つまり、指定インデックスのバイトは新しい `4D.Blob` から除外されます。負の値を指定した場合、4D は BLOB の末尾から先頭に向かってオフセットしたものとして扱います。たとえば、-10 は BLOB の最後から 10番目のバイトを表します。デフォルト値は BLOB のサイズです。 #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md index 2acd19fe9606d4..e13ce88c591dac 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/ClassClass.md @@ -3,7 +3,7 @@ id: ClassClass title: Class --- -ユーザークラスがプロジェクト内で[定義されて](../Project/code-overview.md#creating-classes) いれば、それは4D ランゲージ環境に読み込まれます。 クラスとは、それ自身が "Class" クラスのオブジェクトであり、プロパティと関数を持ちます。 +ユーザークラスがプロジェクト内で[定義されて](../Project/code-overview.md#creating-classes) いれば、それは4D ランゲージ環境に読み込まれます。クラスとは、それ自身が "Class" クラスのオブジェクトであり、プロパティと関数を持ちます。 ### 概要 @@ -99,7 +99,7 @@ title: Class #### 説明 -`.me` プロパティは、`cs.className` シングルトンクラスのシングルトンインスタンスを返します。 シングルトンクラスが前もってインスタンス化されていない場合、このプロパティは引数なしでクラスコンストラクターを呼び出し、インスタンスを作成します。 そうでない場合は、既存のシングルトンインスタンスを返します。 +`.me` プロパティは、`cs.className` シングルトンクラスのシングルトンインスタンスを返します。シングルトンクラスが前もってインスタンス化されていない場合、このプロパティは引数なしでクラスコンストラクターを呼び出し、インスタンスを作成します。そうでない場合は、既存のシングルトンインスタンスを返します。 `cs.className` が [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) でない場合、`.me` はデフォルトで **未定義** です。 @@ -123,7 +123,7 @@ title: Class #### 説明 -`.name` プロパティは、`4D.Class` オブジェクトの名称を格納します。 クラス名の大文字・小文字は区別されます。 +`.name` プロパティは、`4D.Class` オブジェクトの名称を格納します。クラス名の大文字・小文字は区別されます。 このプロパティは **読み取り専用** です。 @@ -157,9 +157,9 @@ title: Class #### 説明 -`.new()` 関数は、対象クラスの新規インスタンスである `cs.className` オブジェクトを作成して返します。 この関数は、[`cs` クラスストア](Concepts/classes.md#cs) に属する全クラスで自動的に利用可能です。 +`.new()` 関数は、対象クラスの新規インスタンスである `cs.className` オブジェクトを作成して返します。この関数は、[`cs` クラスストア](Concepts/classes.md#cs) に属する全クラスで自動的に利用可能です。 -任意の *param* パラメーターに渡した引数は、当該 *className*クラス定義内の [Class Constructor](Concepts/classes.md#class-constructor) 関数 (あれば) が受け取ります。 コンストラクター関数においては、[`This`](Concepts/classes.md#this) は新規に作成されるオブジェクトを指します。 +任意の *param* パラメーターに渡した引数は、当該 *className*クラス定義内の [Class Constructor](Concepts/classes.md#class-constructor) 関数 (あれば) が受け取ります。コンストラクター関数においては、[`This`](Concepts/classes.md#this) は新規に作成されるオブジェクトを指します。 :::note 注記 @@ -215,7 +215,7 @@ $person:=cs.Person.new("John";"Doe";40) #### 説明 -`.superclass` プロパティは、対象クラスの親クラスを返します。 スーパークラスは、`4D.Class` オブジェクト、あるいは `cs.className` オブジェクトのいずれかです。 親クラスが存在しない場合は、このプロパティは **null** を返します。 +`.superclass` プロパティは、対象クラスの親クラスを返します。スーパークラスは、`4D.Class` オブジェクト、あるいは `cs.className` オブジェクトのいずれかです。親クラスが存在しない場合は、このプロパティは **null** を返します。 ユーザークラスのスーパークラスを定義するためには、[`extends`](Concepts/classes.md#class-extends-classname) キーワードを次のように使用してください: `Class extends ` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/CollectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/CollectionClass.md index f3bd7fd2feed77..de2aba847d70bd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/CollectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/CollectionClass.md @@ -361,22 +361,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 @@ -398,7 +398,7 @@ End use #### 例題 2 -どちらも共有コレクションである *$sharedColl1* と\*$sharedColl2\* を結合します。 これらは異なる共有グループに所属しているため、直接結合した場合にはエラーが生成されます。 そこで、 *$sharedColl1* のコピーを作成し、*$sharedColl2* をそのコピーの共有グループ先に指定します。 +どちらも共有コレクションである *$sharedColl1* と\*$sharedColl2\* を結合します。これらは異なる共有グループに所属しているため、直接結合した場合にはエラーが生成されます。そこで、 *$sharedColl1* のコピーを作成し、*$sharedColl2* をそのコピーの共有グループ先に指定します。 ```4d var $sharedColl1;$sharedColl2;$copyColl : Collection @@ -415,7 +415,7 @@ $sharedColl2:=New shared collection(New shared object("lastname";"Brown")) #### 例題 3 -通常のコレクション (*$lastnames*) があり、それをアプリケーションの **Storage** に入れます。 これには、先に共有コレクション (*$sharedLastnames*) を作成しておく必要があります。 +通常のコレクション (*$lastnames*) があり、それをアプリケーションの **Storage** に入れます。これには、先に共有コレクション (*$sharedLastnames*) を作成しておく必要があります。 ```4d var $lastnames;$sharedLastnames : Collection @@ -485,7 +485,7 @@ End use `.count()` 関数は、コレクション内の、null ではない要素の個数を返します。 -コレクションがオブジェクトを含んでいる場合、*propertyPath* 引数を渡すことができます。 この場合、*propertyPath* で指定したパスを含む要素のみがカウントされます。 +コレクションがオブジェクトを含んでいる場合、*propertyPath* 引数を渡すことができます。この場合、*propertyPath* で指定したパスを含む要素のみがカウントされます。 #### 例題 @@ -625,10 +625,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*}` のプロパティを含むオブジェクトのコレクションを返します。 | #### 例題 @@ -681,12 +681,12 @@ End use :::note 注記 -- `.equal()` 関数は、コレクション内の文字列、ブール値、数値、および null型要素の等価性をチェックするだけです。 ネイティブオブジェクトの等価性はチェックされません。 +- `.equal()` 関数は、コレクション内の文字列、ブール値、数値、および null型要素の等価性をチェックするだけです。ネイティブオブジェクトの等価性はチェックされません。 - **null**値の要素は undefined要素と同じとはみなされません。 ::: -デフォルトでは、アクセント等の発音区別符号を無視した評価が実行されます。 評価の際に文字の大小を区別したり、アクセント記号を区別したい場合には、option に `ck diacritical` 定数を渡します。 +デフォルトでは、アクセント等の発音区別符号を無視した評価が実行されます。評価の際に文字の大小を区別したり、アクセント記号を区別したい場合には、option に `ck diacritical` 定数を渡します。 :::tip @@ -758,7 +758,7 @@ End use - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 引数の有無にかかわらず、コールバックは任意のテストを実行でき、テストを満たす要素に対しては **true** を返さなくてはなりません。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。引数の有無にかかわらず、コールバックは任意のテストを実行でき、テストを満たす要素に対しては **true** を返さなくてはなりません。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -769,11 +769,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*)。 @@ -852,7 +852,7 @@ $b:=$c.every($f;Is real) //$b=false - *targetPath* が省略された場合、`.extract()` は元のコレクションの *propertyPath* と同じパスを使って、新しいコレクションに値を格納します。 - デフォルトでは、*propertyPath* のパスの要素が null あるいは undefined であった場合には、その要素は無視され、返されるコレクションに格納されません。 デフォルトで、コレクションの null あるいは空の要素も戻り値の文字列に含めます。 これらを戻り値の文字列に含めたくない場合は、*option* パラメーターに `ck ignore null or empty` 定数を渡します。 + デフォルトでは、*propertyPath* のパスの要素が null あるいは undefined であった場合には、その要素は無視され、返されるコレクションに格納されません。デフォルトで、コレクションの null あるいは空の要素も戻り値の文字列に含めます。 これらを戻り値の文字列に含めたくない場合は、*option* パラメーターに `ck ignore null or empty` 定数を渡します。 - 一つ以上の *propertyPath* 引数に相当する、一つ以上の *targetPath* 引数が渡された場合、`.extract()` は元のコレクションの *propertyPath* から値を抽出し、合致する *targetPath* に値を保存したオブジェクトを新しいコレクションの各要素として格納します。 Null値はそのまま保持されます (このシンタックスでは *option* に引数を渡しても無視されます)。 @@ -927,7 +927,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* の場合、関数はなにもしません。 @@ -975,7 +975,7 @@ $c2:=$c.extract("name";"City";"zc";"Zip") //$c2=[{Zip:35060},{City:null,Zip:3504 #### 説明 -`.filter()` 関数は、元のコレクション要素のうち、*formula* または *methodName* の結果が **true** になる要素をすべて格納した新しいコレクションを返します。 この関数は ***シャロウ・コピー*** を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +`.filter()` 関数は、元のコレクション要素のうち、*formula* または *methodName* の結果が **true** になる要素をすべて格納した新しいコレクションを返します。この関数は ***シャロウ・コピー*** を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 @@ -984,7 +984,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** を返すことで、新規コレクションにプッシュします。 コールバックは以下の引数を受け取ります: @@ -995,7 +995,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 @@ -1085,7 +1085,7 @@ var $diff:=$c1.filter(Formula(Not($c2.includes($1.value)))) - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 引数の有無にかかわらず、コールバックは任意のテストを実行でき、条件を満たす最初の要素に対して **true** を返さなくてはなりません。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。引数の有無にかかわらず、コールバックは任意のテストを実行でき、条件を満たす最初の要素に対して **true** を返さなくてはなりません。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -1096,13 +1096,12 @@ 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 の場合、コレクション全体がテストされます (デフォルト)。 #### 例題 1 @@ -1176,7 +1175,7 @@ $c2:=$c.find(Formula($1.value.name=$2); "Clanton") //$c2={name:Clanton,zc:35046 - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 引数の有無にかかわらず、コールバックは任意のテストを実行でき、条件を満たす最初の要素に対して **true** を返さなくてはなりません。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。引数の有無にかかわらず、コールバックは任意のテストを実行でき、条件を満たす最初の要素に対して **true** を返さなくてはなりません。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -1187,13 +1186,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 の場合、コレクション全体がテストされます (デフォルト)。 #### 例題 @@ -1281,10 +1279,10 @@ $first:=$emptyCol.first() // このコードは undefined を返します
    -| 引数 | 型 | | 説明 | -| ----- | ---------- | :-------------------------: | --------------------------------------- | -| depth | Integer | -> | ネストされたコレクションの階層をどの範囲まで平坦化するか。 デフォルト = 1 | -| 戻り値 | Collection | <- | 平坦化されたコレクション | +| 引数 | 型 | | 説明 | +| ----- | ---------- | :-------------------------: | -------------------------------------- | +| depth | Integer | -> | ネストされたコレクションの階層をどの範囲まで平坦化するか。デフォルト = 1 | +| 戻り値 | Collection | <- | 平坦化されたコレクション |
    @@ -1349,7 +1347,7 @@ $col.flat(MAXLONG) #### 説明 -`.flatMap()` 関数は、元のコレクションの各要素に対して *formula* または *methodName* を呼び出した結果に基づき、1レベルのネストが解除された新しいコレクションを作成します。 オプションで、*param* パラメーターに、*formula* または *methodName* に渡す引数を指定することができます。 +`.flatMap()` 関数は、元のコレクションの各要素に対して *formula* または *methodName* を呼び出した結果に基づき、1レベルのネストが解除された新しいコレクションを作成します。オプションで、*param* パラメーターに、*formula* または *methodName* に渡す引数を指定することができます。 この機能は、[`map()`](#map) の呼び出し後に、depth = 1 で [`flat()`](#flat) を呼び出すのと同じです。 @@ -1360,7 +1358,7 @@ $col.flat(MAXLONG) - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックには、param (任意) に指定した引数が渡されます。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。コールバックには、param (任意) に指定した引数が渡されます。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -1371,7 +1369,7 @@ $col.flat(MAXLONG) また、コールバックは以下のパラメーターを設定できます: - (メソッドを使用した場合は必須) *$1.result* (任意の型): 結果のコレクションに追加する、変換された値 -- *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +- *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 #### 例題 1 @@ -1447,7 +1445,7 @@ $c2:=$c.flatMap($f; $c.sum()) > この関数は、元のコレクションを変更しません。 -*toSearch* パラメーターには、コレクション内で検索する式を渡します。 以下のものを渡すことができます: +*toSearch* パラメーターには、コレクション内で検索する式を渡します。以下のものを渡すことができます: - スカラー値 (テキスト、数値、ブール、日付) - null 値 @@ -1458,7 +1456,7 @@ $c2:=$c.flatMap($f; $c.sum()) オプションとして、*startFrom* 引数を渡すことで、検索を開始するコレクション要素のインデックスを指定することができます。 - *startFrom* がコレクションの length 以上だった場合、false が返されます。これはコレクションが検索されていないことを意味します。 -- *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます (*startFrom:=startFrom+length*)。 なお、*startFrom* が負の値であっても、コレクションは左から右へと検索されます。 +- *startFrom* < 0 の場合には、コレクションの終わりからのオフセットであるとみなされます (*startFrom:=startFrom+length*)。なお、*startFrom* が負の値であっても、コレクションは左から右へと検索されます。 - *startFrom* = 0 の場合、コレクション全体がテストされます (デフォルト)。 #### 例題 @@ -1512,7 +1510,7 @@ $c2:=$c.flatMap($f; $c.sum()) > この関数は、元のコレクションを変更しません。 -*toSearch* パラメーターには、コレクション内で検索する式を渡します。 以下のものを渡すことができます: +*toSearch* パラメーターには、コレクション内で検索する式を渡します。以下のものを渡すことができます: - スカラー値 (テキスト、数値、ブール、日付) - null 値 @@ -1523,8 +1521,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 の場合、コレクション全体がテストされます (デフォルト)。 #### 例題 @@ -1570,7 +1567,7 @@ $c2:=$c.flatMap($f; $c.sum()) #### 説明 -`.indices()` 関数は [`.query()`](#query) 関数と同様に機能しますが、*queryString* 引数の検索条件に合致する、元のコレクション要素のインデックスを返します(コレクション要素自体は返しません)。 インデックスは、昇順に返されます。 +`.indices()` 関数は [`.query()`](#query) 関数と同様に機能しますが、*queryString* 引数の検索条件に合致する、元のコレクション要素のインデックスを返します(コレクション要素自体は返しません)。インデックスは、昇順に返されます。 > この関数は、元のコレクションを変更しません。 @@ -1687,7 +1684,7 @@ propertyPath 比較演算子 値 {logicalOperator propertyPath 比較演算子 > この関数は、元のコレクションを変更しません。 -デフォルトで、コレクションの null あるいは空の要素も戻り値の文字列に含めます。 これらを戻り値の文字列に含めたくない場合は、*option* パラメーターに `ck ignore null or empty` 定数を渡します。 +デフォルトで、コレクションの null あるいは空の要素も戻り値の文字列に含めます。これらを戻り値の文字列に含めたくない場合は、*option* パラメーターに `ck ignore null or empty` 定数を渡します。 #### 例題 @@ -1783,7 +1780,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します > この関数は、元のコレクションを変更しません。 -*toSearch* パラメーターには、コレクション内で検索する式を渡します。 以下のものを渡すことができます: +*toSearch* パラメーターには、コレクション内で検索する式を渡します。以下のものを渡すことができます: - スカラー値 (テキスト、数値、ブール、日付) - null 値 @@ -1794,8 +1791,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 が返されます。これはコレクションが検索されていないことを意味します。 #### 例題 @@ -1831,7 +1827,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します `.length` プロパティは、コレクション内の要素数を返します。 -`.length` プロパティは、コレクション作成時に初期化されます。 要素を追加・削除すると、必要に応じて length は更新されます。 このプロパティは **読み取り専用** です (これを使用してコレクションのサイズを設定することはできません)。 +`.length` プロパティは、コレクション作成時に初期化されます。要素を追加・削除すると、必要に応じて length は更新されます。このプロパティは **読み取り専用** です (これを使用してコレクションのサイズを設定することはできません)。 #### 例題 @@ -1875,7 +1871,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します #### 説明 -`.map()` 関数は、 元のコレクションの各要素に対して *formula* または *methodName* を呼び出した結果に基づいた、新しいコレクションを作成します。 オプションで、*param* パラメーターに、*formula* または *methodName* に渡す引数を指定することができます。 `.map()` は常に、元のコレクションと同じサイズのコレクションを返します (*$1.stop* が使用された場合を除く (後述参照))。 +`.map()` 関数は、 元のコレクションの各要素に対して *formula* または *methodName* を呼び出した結果に基づいた、新しいコレクションを作成します。オプションで、*param* パラメーターに、*formula* または *methodName* に渡す引数を指定することができます。 `.map()` は常に、元のコレクションと同じサイズのコレクションを返します (*$1.stop* が使用された場合を除く (後述参照))。 > この関数は、元のコレクションを変更しません。 @@ -1884,7 +1880,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 コールバックには、param (任意) に指定した引数が渡されます。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。コールバックには、param (任意) に指定した引数が渡されます。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -1895,7 +1891,7 @@ $last:=$emptyCol.last() // このコードは undefined を返します また、コールバックは以下のパラメーターを設定できます: - (メソッドを使用した場合は必須) *$1.result* (任意の型): 結果のコレクションに追加する、変換された値 -- *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +- *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 #### 例題 @@ -2053,7 +2049,7 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum()) **単一レベルの同期ソート** -複数のコレクションを同期的にソートするには、*colsToSort* にソートするコレクションのコレクションを渡します。 渡せるコレクションの数に制限はありません。 呼び出し元のコレクションは昇順にソートされ、すべての *colsToSort* コレクションが同期ソートされます。 +複数のコレクションを同期的にソートするには、*colsToSort* にソートするコレクションのコレクションを渡します。渡せるコレクションの数に制限はありません。呼び出し元のコレクションは昇順にソートされ、すべての *colsToSort* コレクションが同期ソートされます。 :::note @@ -2061,7 +2057,7 @@ $c2:=$c.map(Formula(Round(($1.value/$2)*100; 2)); $c.sum()) ::: -昇順以外の方法でコレクションをソートしたい場合には、ソート順を定義する *formula* ([Formula オブジェクト](../commands/formula)) を指定する必要があります。 戻り値は、二つの要素の相対的な順番を示すブール値です。*$1.value* が *$1.value2* より小さい場合に **true** を、*$1.value* が *$1.value2* より大きい場合に **false** を返します。 必要に応じて、 追加の引数をフォーミュラに渡せます。 +昇順以外の方法でコレクションをソートしたい場合には、ソート順を定義する *formula* ([Formula オブジェクト](../commands/formula)) を指定する必要があります。戻り値は、二つの要素の相対的な順番を示すブール値です。*$1.value* が *$1.value2* より小さい場合に **true** を、*$1.value* が *$1.value2* より大きい場合に **false** を返します。必要に応じて、 追加の引数をフォーミュラに渡せます。 フォーミュラは以下の引数を受け取ります: @@ -2180,17 +2176,17 @@ $name.multiSort(Formula($1.value.firstname<$1.value2.firstname); [$address]) `.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 { @@ -2316,7 +2312,7 @@ $name.multiSort(Formula($1.value.firstname<$1.value2.firstname); [$address]) `.orderByMethod()` 関数は、 *formula* または *methodName* によって定義された順番でコレクション要素を並べ替えた新しいコレクションを返します。 -この関数は *シャロウ・コピー* を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +この関数は *シャロウ・コピー* を返します。つまり、元のコレクションにオブジェクト要素やコレクション要素が含まれていた場合、それらの参照は戻り値のコレクションで共有されます。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 @@ -2326,7 +2322,7 @@ $name.multiSort(Formula($1.value.firstname<$1.value2.firstname); [$address]) - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、二つの値を比較して、最初の値が二つ目の値より低い場合に **true** を返すコードの名称を渡します。 必要に応じて、 *extraParam* に指定した引数をコールバックに渡せます。 +コールバックには、二つの値を比較して、最初の値が二つ目の値より低い場合に **true** を返すコードの名称を渡します。必要に応じて、 *extraParam* に指定した引数をコールバックに渡せます。 コールバックは以下の引数を受け取ります: @@ -2526,7 +2522,7 @@ $toSort.result:=(Compare strings($toSort.value;$toSort.value2;$option2)<0) #### 説明 -`.query()` 関数は、*queryString* および、任意の *value* や *querySettings* パラメーターによって定義された検索条件に合致するオブジェクトコレクションの要素をすべて返します。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +`.query()` 関数は、*queryString* および、任意の *value* や *querySettings* パラメーターによって定義された検索条件に合致するオブジェクトコレクションの要素をすべて返します。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 クエリの実行対象であるコレクションが検索値 *value* を含まない場合、空のコレクションが返されます。 @@ -2542,7 +2538,7 @@ propertyPath 比較演算子 値 {logicalOperator propertyPath 比較演算子 詳細は以下の通りです: -- **propertyPath**: クエリの実行対象となるプロパティのパス。 この引数は、単純な名前 ("country" など) のほか、あらゆる有効な属性パス ("country.name" など) の形をとることができます。 属性パスが `Collection` 型である場合、すべてのオカレンスを管理するには `[]` 記法を使用してください (例: `children[].age` など)。 +- **propertyPath**: クエリの実行対象となるプロパティのパス。この引数は、単純な名前 ("country" など) のほか、あらゆる有効な属性パス ("country.name" など) の形をとることができます。属性パスが `Collection` 型である場合、すべてのオカレンスを管理するには `[]` 記法を使用してください (例: `children[].age` など)。 - **比較演算子**: *propertyPath* 引数と *value* 引数の比較に使用する記号 以下の記号がサポートされます: 以下のプロパティがサポートされています: @@ -2550,25 +2546,24 @@ propertyPath 比較演算子 値 {logicalOperator propertyPath 比較演算子 | ------------- | --------------------------- | ------------------------------------------------------------------------------------------------- | | 等しい | =, == | 一致するデータを取得します。 ワイルドカード (@) をサポートし、文字の大小/アクセントの有無は区別しません。 | | | ===, IS | 一致するデータを取得します。 ワイルドカード (@) は標準の文字として認識され、文字の大小/アクセント記号の有無は区別しません。 | -| 等しくない | #, != | ワイルドカード (@) をサポートします。 "宣言に Not 条件を適用" するのと同等です。 | +| 等しくない | #, != | ワイルドカード (@) をサポートします。"宣言に Not 条件を適用" するのと同等です。 | | | !==, IS NOT | ワイルドカード (@) は標準の文字として認識されます | -| 宣言に Not 条件を適用 | NOT | 複数の演算子が含まれる宣言の前に NOT を使用する場合にはカッコをつける必要があります。 "等しくない" と同等です。 | +| 宣言に Not 条件を適用 | NOT | 複数の演算子が含まれる宣言の前に NOT を使用する場合にはカッコをつける必要があります。"等しくない" と同等です。 | | 小さい | < | | | 大きい | > | | | 以下 | <= | | | 以上 | > = | | | 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。 ワイルドカード (@) をサポートします。 | -- **値** (value): コレクションの各要素のプロパティのカレント値に対して比較する値。 要素のデータ型に合致する任意の定数値の式または[**プレースホルダー**](#プレースホルダーを仕様する)であることができます。 - 定数値を使用する場合、以下の原則に従う必要があります: - - **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。 文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。 また以下のキーワードはテキスト定数においては使用できません: true, false。 +- **値** (value): コレクションの各要素のプロパティのカレント値に対して比較する値。要素のデータ型に合致する任意の定数値の式または[**プレースホルダー**](#プレースホルダーを仕様する)であることができます。定数値を使用する場合、以下の原則に従う必要があります: + - **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。また以下のキーワードはテキスト定数においては使用できません: true, false。 - **ブール** 型の定数値: **true** または **false** (文字の大小を区別します) - **数値** 型の定数値: 浮動小数点は '.' (ピリオド) で区切られます。 - **日付** 型の定数値: "YYYY-MM-DD" フォーマット。 - **null** 定数値: "null" キーワードを使用した場合、**null** と **undefined** プロパティの両方が検索されます。 - IN 記号を使用したクエリの場合、*値* はコレクションか、attributePath の型に合致する、\[ ] でくくられたカンマ区切りの値である必要があります (文字列においては、`"` の記号は `\` でエスケープする必要があります)。 -- **論理演算子**: 複数の条件をクエリ内で結合させるのに使用します(任意)。 以下の論理演算子のいずれか一つを使用できます (名前あるいは記号のどちらかを渡します): +- **論理演算子**: 複数の条件をクエリ内で結合させるのに使用します(任意)。以下の論理演算子のいずれか一つを使用できます (名前あるいは記号のどちらかを渡します): | 結合 | 記号 | | --- | ----------------------------------------------------------------------------------- | @@ -2577,17 +2572,17 @@ propertyPath 比較演算子 値 {logicalOperator propertyPath 比較演算子 #### 引用符を使用する -クエリに変数や式を使用することができます。 例: +クエリに変数や式を使用することができます。例: ```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')" @@ -2595,11 +2590,11 @@ propertyPath 比較演算子 値 {logicalOperator propertyPath 比較演算子 #### プレースホルダーを使用する -4D では、*queryString* 引数内の *propertyPath* および *値 (value)* にプレースホルダーを使用することができます。 プレースホルダーとは、クエリ文字列に挿入するパラメーターで、クエリ文字列が評価される際に他の値で置き換えられるものです。 プレースホルダーの値はクエリ開始時に一度だけ評価されます。 各要素に対して毎回評価されるわけではありません。 +4D では、*queryString* 引数内の *propertyPath* および *値 (value)* にプレースホルダーを使用することができます。プレースホルダーとは、クエリ文字列に挿入するパラメーターで、クエリ文字列が評価される際に他の値で置き換えられるものです。プレースホルダーの値はクエリ開始時に一度だけ評価されます。 各要素に対して毎回評価されるわけではありません。 プレースホルダーには二つの種類があります。**インデックスプレースホルダー** および **命名プレースホルダー** です。 -- **インデックスプレースホルダー**: *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。 という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。 最大で 128個の *value* 引数を渡すことができます。 +- **インデックスプレースホルダー**: *queryString* に `:paramIndex` (例 :1, :2...) という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。という形式でパラメーターが挿入され、それに対応する値は後に続く *value* 引数が提供します。 最大で 128個の *value* 引数を渡すことができます。 例: @@ -2624,14 +2619,14 @@ $c:=$myCol.query(":att=:name";$o) 以下の理由から、クエリでのプレースホルダーの使用が **推奨されます**: -1. 悪意あるコードの挿入を防ぎます: ユーザーによって値が代入された変数をクエリ文字列として直接使用した場合、余計なクエリ引数を入力することでユーザーがクエリ条件を変更する可能性があります。 たとえば、以下のようなクエリ文字列を考えます: +1. 悪意あるコードの挿入を防ぎます: ユーザーによって値が代入された変数をクエリ文字列として直接使用した場合、余計なクエリ引数を入力することでユーザーがクエリ条件を変更する可能性があります。たとえば、以下のようなクエリ文字列を考えます: ```4d $vquery:="status = 'public' & name = "+myname // ユーザーが自分の名前を入力します $result:=$col.query($vquery) ``` -非公開のデータがフィルタリングされているため、このクエリは一見安全なように見えます。 しかしながら、もしユーザーが *myname* に *smith OR status='private'* のような入力をした場合、クエリ文字列は解釈時に変更され、非公開データも返してしまう可能性があります。 +非公開のデータがフィルタリングされているため、このクエリは一見安全なように見えます。しかしながら、もしユーザーが *myname* に *smith OR status='private'* のような入力をした場合、クエリ文字列は解釈時に変更され、非公開データも返してしまう可能性があります。 プレースホルダーを使用した場合、セキュリティ条件を上書きすることは不可能です: @@ -2643,7 +2638,7 @@ $c:=$myCol.query(":att=:name";$o) 2. フォーマットや文字の問題を心配する必要がありません。これは、*propertyPath* や *値* がたとえば "."、"[' ...などの英数字でない文字を格納している可能性がある場合にとくに有用です。 -3. クエリに変数や式を使用することができます。 例: +3. クエリに変数や式を使用することができます。例: ```4d $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") @@ -2654,13 +2649,13 @@ $result2:=$col.query("company.name = :1";"John's Pizzas") #### null値を検索する -null値を検索する場合、プレースホルダーシンタックスは使用できません。 なぜならクエリエンジンは null を予期せぬ比較値としてみなすからです。 たとえば、以下のクエリを実行した場合: +null値を検索する場合、プレースホルダーシンタックスは使用できません。 なぜならクエリエンジンは null を予期せぬ比較値としてみなすからです。たとえば、以下のクエリを実行した場合: ```4d $vSingles:=$colPersons.query("spouse = :1";Null) // 機能しません ``` -この場合 4D は null値を、引数の評価 (別のクエリから渡された属性など) に起因するエラーと解釈するため、期待した結果は得られません。 このようなクエリをおこなうには、直接的なシンタックスを使用する必要があります: +この場合 4D は null値を、引数の評価 (別のクエリから渡された属性など) に起因するエラーと解釈するため、期待した結果は得られません。このようなクエリをおこなうには、直接的なシンタックスを使用する必要があります: ```4d $vSingles:=$colPersons.query("spouse = null") // 正しいシンタックス @@ -2668,7 +2663,7 @@ $vSingles:=$colPersons.query("spouse = null") // 正しいシンタックス #### オブジェクト参照やコレクション参照で検索する -*値 (value)* 引数にオブジェクト参照またはコレクション参照を渡して、コレクションをクエリすることができます。 クエリは、そのオブジェクトまたはコレクションの **インスタンス** と同じ参照先を持つオブジェクト要素を検索対象のコレクションにおいて探します。 +*値 (value)* 引数にオブジェクト参照またはコレクション参照を渡して、コレクションをクエリすることができます。クエリは、そのオブジェクトまたはコレクションの **インスタンス** と同じ参照先を持つオブジェクト要素を検索対象のコレクションにおいて探します。 次の比較演算子がサポートされています: @@ -2677,7 +2672,7 @@ $vSingles:=$colPersons.query("spouse = null") // 正しいシンタックス | 等しい | =, == | | 等しくない | #, != | -オブジェクトまたはコレクション参照を使用してクエリをビルドするには、*querySettings* 引数のシンタックスを使用する必要があります。 オブジェクト参照と比較する例: +オブジェクトまたはコレクション参照を使用してクエリをビルドするには、*querySettings* 引数のシンタックスを使用する必要があります。オブジェクト参照と比較する例: ```4d var $o1:={a: 1} @@ -2712,12 +2707,12 @@ $col2:=$col.query("c = :v"; {parameters: {v: $c3}}) #### querySettings 引数 -*querySettings* 引数には、クエリのプレースホルダーをオブジェクトとして格納するオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +*querySettings* 引数には、クエリのプレースホルダーをオブジェクトとして格納するオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ---------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| parameters | Object | *queryString* に **値の命名プレースホルダー** を使用した場合に渡すオブジェクト。 値は、プロパティ/値のペアで表現されます。プロパティは、*queryString* に値の代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、実際に比較される値です。 インデックスプレースホルダー (value引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | -| attributes | Object | *queryString* に **属性パスの命名プレースホルダー** を使用した場合に渡すオブジェクト。 属性パスは、プロパティ/値のペアで表現されます。プロパティは、*queryString* に属性パスの代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、属性パスを表す文字列または文字列のコレクションです。 値には、コレクションのオブジェクト要素のプロパティへの属性パスを指定することができます。
    タイプ説明
    Stringドット記法を使用して表現された attributePath (例: "name" または "user.address.zipCode")
    String の Collectionコレクションの各要素が attributePath の階層を表します (例: ["name"] または ["user","address","zipCode"])。 コレクションを使用することで、ドット記法に準じていない名前の属性に対してもクエリすることができます (例: ["4Dv17.1","en\/fr"])。
    インデックスプレースホルダー (*value* 引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | +| プロパティ | 型 | 説明 | +| ---------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| parameters | Object | *queryString* に **値の命名プレースホルダー** を使用した場合に渡すオブジェクト。値は、プロパティ/値のペアで表現されます。プロパティは、*queryString* に値の代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、実際に比較される値です。インデックスプレースホルダー (value引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | +| attributes | Object | *queryString* に **属性パスの命名プレースホルダー** を使用した場合に渡すオブジェクト。属性パスは、プロパティ/値のペアで表現されます。プロパティは、*queryString* に属性パスの代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、属性パスを表す文字列または文字列のコレクションです。値には、コレクションのオブジェクト要素のプロパティへの属性パスを指定することができます。
    タイプ説明
    Stringドット記法を使用して表現された attributePath (例: "name" または "user.address.zipCode")
    String の Collectionコレクションの各要素が attributePath の階層を表します (例: ["name"] または ["user","address","zipCode"])。コレクションを使用することで、ドット記法に準じていない名前の属性に対してもクエリすることができます (例: ["4Dv17.1","en\/fr"])。
    インデックスプレースホルダー (*value* 引数として値を直接渡す方法) と命名プレースホルダーは、同じクエリ内で同時に使用することができます。 | :::note @@ -2842,7 +2837,7 @@ $entitySelection:=ds.Employee.query("birthDate <= :1";Current date-10950) コールバックはコレクションの各要素を受け取り、任意の処理を実行して、結果を *$1.accumulator* に蓄積します。この値は最終的に *$1.value* に返されます。 -*initValue* に引数を渡すことで、アキュムレーターを初期化することができます。 省略された場合は、*$1.accumulator* は *Undefined* から開始されます。 +*initValue* に引数を渡すことで、アキュムレーターを初期化することができます。省略された場合は、*$1.accumulator* は *Undefined* から開始されます。 コールバックは以下の引数を受け取ります: @@ -2853,7 +2848,7 @@ $entitySelection:=ds.Employee.query("birthDate <= :1";Current date-10950) コールバックは以下の引数を受け取ります: - *$1.accumulator*: メソッドで変更する値。*initValue* によって初期化します。 -- *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +- *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 #### 例題 1 @@ -2930,7 +2925,7 @@ $r:=$c.reduce(Formula($1.accumulator=$1.value); 1) // 86400 を返す コールバックはコレクションの各要素を受け取り、任意の処理を実行して、結果を *$1.accumulator* に蓄積します。この値は最終的に *$1.value* に返されます。 -*initValue* に引数を渡すことで、アキュムレーターを初期化することができます。 省略された場合は、*$1.accumulator* は *Undefined* から開始されます。 +*initValue* に引数を渡すことで、アキュムレーターを初期化することができます。省略された場合は、*$1.accumulator* は *Undefined* から開始されます。 コールバックは以下の引数を受け取ります: @@ -2941,7 +2936,7 @@ $r:=$c.reduce(Formula($1.accumulator=$1.value); 1) // 86400 を返す コールバックは以下の引数を受け取ります: - *$1.accumulator*: メソッドで変更する値。*initValue* によって初期化します。 -- *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。 返された値は最後に計算されたものです。 +- *$1.stop* (ブール、任意): メソッドコールバックを止める場合には **true**。返された値は最後に計算されたものです。 #### 例題 1 @@ -3012,7 +3007,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 に設定されます。 @@ -3120,7 +3115,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す #### 説明 -`.reverse()` 関数は元のコレクションの要素を全て逆順にした新しいコレクション返します。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +`.reverse()` 関数は元のコレクションの要素を全て逆順にした新しいコレクション返します。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 @@ -3209,7 +3204,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す #### 説明 -`.slice()` 関数は、*startFrom* の位置 (含まれる) から *end* の位置 (含まれない) までのコレクションの一部を、新しいコレクションの中に返します。 この関数はコレクションの *シャロウ・コピー* を返します。 また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 +`.slice()` 関数は、*startFrom* の位置 (含まれる) から *end* の位置 (含まれない) までのコレクションの一部を、新しいコレクションの中に返します。この関数はコレクションの *シャロウ・コピー* を返します。また、元のコレクションが共有コレクションであった場合、返されるコレクションもまた共有コレクションになります。 > この関数は、元のコレクションを変更しません。 @@ -3272,7 +3267,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す - *formula* (推奨シンタックス)、関数やプロジェクトメソッドを含むあらゆる実行可能な式を格納できる [Formula オブジェクト](FunctionClass.md)。 - または *methodName*、プロジェクトメソッドの名前 (テキスト)。 -コールバックには、*param* (任意) に指定した引数が渡されます。 引数の有無にかかわらず、コールバックは任意のテストを実行でき、テストを満たす要素に対しては **true** を返さなくてはなりません。 コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 +コールバックには、*param* (任意) に指定した引数が渡されます。引数の有無にかかわらず、コールバックは任意のテストを実行でき、テストを満たす要素に対しては **true** を返さなくてはなりません。コールバックは最初のパラメーター ($1) に `Object` を受け取ります。 コールバックは以下の引数を受け取ります: @@ -3283,11 +3278,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** が返されます。これはコレクションがテストされていないことを意味します。 @@ -3352,7 +3347,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す > このコマンドは、元のコレクションを変更します。 -引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。 デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 +引数もなしに呼び出された場合、`.sort()` はスカラー値 (数値、テキスト、日付、ブール) のみを並べ替えます。デフォルトでは、要素はそれぞれの型に応じて昇順で並べ替えられます。 *ascOrDesc* 引数には、以下の定数のいずれか一つを渡すことができます: | 定数 | 型 | 値 | 説明 | @@ -3364,7 +3359,7 @@ $r:=$c.reduceRight(Formula($1.accumulator=$1.value); 1) // 86400 を返す コレクションに異なる[型](../Concepts/data-types.md) の要素が格納されている場合、それらは[4D の並べ替え原則](../Concepts/ordering.md) に準じて並べ替えられます。 -カスタマイズされた順番や、型に関係なくコレクション要素を並べ替えたい場合には、並べ替え順を定義するコールバックを *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/current/API/CryptoKeyClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md index f237aee1370d4e..36e77960195253 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/CryptoKeyClass.md @@ -53,7 +53,7 @@ title: CryptoKey
    -`4D.CryptoKey.new()` 関数は、*settings* オブジェクト引数に基づいて暗号化キーペアをカプセル化する `4D.CryptoKey` オブジェクトを新規作成します。 これを使用することで新規のRSA またはECDSA キーを生成できるほか、PEM 定義から既存のキーペアをロードすることができます。 +`4D.CryptoKey.new()` 関数は、*settings* オブジェクト引数に基づいて暗号化キーペアをカプセル化する `4D.CryptoKey` オブジェクトを新規作成します。これを使用することで新規のRSA またはECDSA キーを生成できるほか、PEM 定義から既存のキーペアをロードすることができます。 #### *設定* @@ -66,11 +66,11 @@ title: CryptoKey #### *CryptoKey* -戻り値の `CryptoKey` オブジェクトは、暗号化キーペアをカプセル化します。 これは共有オブジェクトのため、複数の 4D プロセスによって同時使用できます。 +戻り値の `CryptoKey` オブジェクトは、暗号化キーペアをカプセル化します。これは共有オブジェクトのため、複数の 4D プロセスによって同時使用できます。 #### 例題 1 -メッセージが秘密鍵で署名され、その署名は対応する公開鍵で検証されます。 以下のコードは、簡単なメッセージの署名を作成し、検証するものです。 +メッセージが秘密鍵で署名され、その署名は対応する公開鍵で検証されます。以下のコードは、簡単なメッセージの署名を作成し、検証するものです。 - Bob側: @@ -142,7 +142,7 @@ ASSERT($status.success) **.curve** : Text -ECDSA キーのみ: キーの楕円曲線名。 通常、ES256 (デフォルト) の場合は "prime256v1"、ES384 の場合は "secp384r1"、ES512 の場合は "secp521r1"。 +ECDSA キーのみ: キーの楕円曲線名。通常、ES256 (デフォルト) の場合は "prime256v1"、ES384 の場合は "secp384r1"、ES512 の場合は "secp521r1"。 @@ -173,17 +173,17 @@ ECDSA キーのみ: キーの楕円曲線
    -`.decrypt()` 関数は、**秘密** 鍵を使って *message* を復号します。 使用されるアルゴリズムはキーの種類に依存します。 +`.decrypt()` 関数は、**秘密** 鍵を使って *message* を復号します。使用されるアルゴリズムはキーの種類に依存します。 キーは RSA キーでなければならず、アルゴリズムは RSA-OAEP です ([RFC 3447](https://tools.ietf.org/html/rfc3447) 参照)。 #### *options* -| プロパティ | 型 | 説明 | -| ----------------- | ---- | --------------------------------------------------------------------------------------------------------------------------- | -| hash | text | 使用する Digest アルゴリズム。 例: "SHA256", "SHA384", "SHA512"。 | -| encodingEncrypted | text | 復号するバイナリー形式に `message` を変換するためのエンコーディング。 可能な値: "Base64" または "Base64URL"。 デフォルト値: "Base64" | -| encodingDecrypted | text | バイナリーの復号メッセージを文字列に変換するためのエンコーディング。 可能な値: "UTF-8", "Base64" または "Base64URL"。 デフォルト値: "UTF-8" | +| プロパティ | 型 | 説明 | +| ----------------- | ---- | ------------------------------------------------------------------------------------------------------------------------- | +| hash | text | 使用する Digest アルゴリズム。例: "SHA256", "SHA384", "SHA512"。 | +| encodingEncrypted | text | 復号するバイナリー形式に `message` を変換するためのエンコーディング。可能な値: "Base64" または "Base64URL"。デフォルト値: "Base64" | +| encodingDecrypted | text | バイナリーの復号メッセージを文字列に変換するためのエンコーディング。可能な値: "UTF-8", "Base64" または "Base64URL"。デフォルト値: "UTF-8" | #### *戻り値* @@ -226,17 +226,17 @@ ECDSA キーのみ: キーの楕円曲線
    -`.encrypt()` 関数は、**公開** 鍵を使って *message* を暗号化します。 使用されるアルゴリズムはキーの種類に依存します。 +`.encrypt()` 関数は、**公開** 鍵を使って *message* を暗号化します。使用されるアルゴリズムはキーの種類に依存します。 キーは RSA キーでなければならず、アルゴリズムは RSA-OAEP です ([RFC 3447](https://tools.ietf.org/html/rfc3447) 参照)。 ##### *options* -| プロパティ | 型 | 説明 | -| ----------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------- | -| hash | text | 使用する Digest アルゴリズム。 例: "SHA256", "SHA384", "SHA512"。 | -| encodingEncrypted | text | バイナリーの暗号化メッセージを文字列に変換するためのエンコーディング。 可能な値: "Base64" または "Base64URL"。 デフォルト値: "Base64" | -| encodingDecrypted | text | 暗号化するバイナリー形式に `message` を変換するためのエンコーディング。 可能な値: "UTF-8", "Base64" または "Base64URL"。 デフォルト値: "UTF-8" | +| プロパティ | 型 | 説明 | +| ----------------- | ---- | -------------------------------------------------------------------------------------------------------------------------------- | +| hash | text | 使用する Digest アルゴリズム。例: "SHA256", "SHA384", "SHA512"。 | +| encodingEncrypted | text | バイナリーの暗号化メッセージを文字列に変換するためのエンコーディング。可能な値: "Base64" または "Base64URL"。デフォルト値: "Base64" | +| encodingDecrypted | text | 暗号化するバイナリー形式に `message` を変換するためのエンコーディング。可能な値: "UTF-8", "Base64" または "Base64URL"。デフォルト値: "UTF-8" | #### *戻り値* @@ -327,7 +327,7 @@ ECDSA キーのみ: キーの楕円曲線 **.pem** : Text -読み込む暗号化キーのPEM 定義。 秘密鍵を渡した場合、RSA または ECDSA の公開鍵は秘密鍵から推定されます。 +読み込む暗号化キーのPEM 定義。秘密鍵を渡した場合、RSA または ECDSA の公開鍵は秘密鍵から推定されます。 @@ -365,12 +365,12 @@ ECDSA キーのみ: キーの楕円曲線 #### *options* -| プロパティ | 型 | 説明 | -| ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| hash | text | 使用する Digest アルゴリズム。 例: "SHA256", "SHA384", "SHA512"。 JWT の生成に使われた場合、ハッシュサイズは ES@, RS@, または PS@ のアルゴリズムサイズと同じでなくてはなりません。 | -| encodingEncrypted | text | バイナリーの暗号化メッセージを文字列に変換するためのエンコーディング。 可能な値: "Base64" または "Base64URL"。 デフォルト値: "Base64" | -| pss | boolean | 確率的署名スキーム (PSS) を使用する。 RSA キーでない場合は無視されます。 PS@ アルゴリズム用の JWT を生成する場合は `true` を渡します。 | -| encoding | text | 戻り値の署名のエンコード方式。 可能な値: "Base64" または "Base64URL"。 デフォルト値: "Base64" | +| プロパティ | 型 | 説明 | +| ----------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| hash | text | 使用する Digest アルゴリズム。例: "SHA256", "SHA384", "SHA512"。 JWT の生成に使われた場合、ハッシュサイズは ES@, RS@, または PS@ のアルゴリズムサイズと同じでなくてはなりません。 | +| encodingEncrypted | text | バイナリーの暗号化メッセージを文字列に変換するためのエンコーディング。可能な値: "Base64" または "Base64URL"。デフォルト値: "Base64" | +| pss | boolean | 確率的署名スキーム (PSS) を使用する。 RSA キーでない場合は無視されます。 PS@ アルゴリズム用の JWT を生成する場合は `true` を渡します。 | +| encoding | text | 戻り値の署名のエンコード方式。可能な値: "Base64" または "Base64URL"。デフォルト値: "Base64" | #### *戻り値* @@ -394,7 +394,7 @@ utf8 形式の *message* 。 **.size** : Integer -RSA キーのみ: キーのサイズ (ビット単位)。 通常は 2048 (デフォルト)。 +RSA キーのみ: キーのサイズ (ビット単位)。通常は 2048 (デフォルト)。 @@ -453,11 +453,11 @@ RSA キーのみ: キーのサイズ (ビッ #### *options* -| プロパティ | 型 | 説明 | -| -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| hash | text | 使用する Digest アルゴリズム。 例: "SHA256", "SHA384", "SHA512"。 JWT の生成に使われた場合、ハッシュサイズは ES@, RS@, または PS@ のアルゴリズムサイズと同じでなくてはなりません。 | -| pss | boolean | 確率的署名スキーム (PSS) を使用する。 RSA キーでない場合は無視されます。 PS@ アルゴリズム用の JWT を検証する場合は `true` を渡します。 | -| encoding | text | 署名のエンコード方式。 可能な値: "Base64" または "Base64URL"。 デフォルト値: "Base64" | +| プロパティ | 型 | 説明 | +| -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| hash | text | 使用する Digest アルゴリズム。例: "SHA256", "SHA384", "SHA512"。 JWT の生成に使われた場合、ハッシュサイズは ES@, RS@, または PS@ のアルゴリズムサイズと同じでなくてはなりません。 | +| pss | boolean | 確率的署名スキーム (PSS) を使用する。 RSA キーでない場合は無視されます。 PS@ アルゴリズム用の JWT を検証する場合は `true` を渡します。 | +| encoding | text | 署名のエンコード方式。可能な値: "Base64" または "Base64URL"。デフォルト値: "Base64" | #### *戻り値* diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md index 86ae833928ebb6..ae310a19222b5e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataClassClass.md @@ -50,24 +50,24 @@ 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`](../commands/value-type) 参照)
  • `.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"。 属性の概念的な値タイプ。汎用的なプログラミングに有用です。 これは属性の種類 (`kind`) によります。 とりうる値:
  • `.kind` = "storage" の場合: "blob", "bool", "date", "image", "number", "object", または "string"。 数値型の場合 "number" が返されます (時間を含む)。UUID、文字およびテキスト型フィールドの場合 "string" が返されます。"blob" 属性は [BLOB オブジェクト](../Concepts/dt_blob.md#blob-の種類) です。
  • `.kind` = "relatedEntity" の場合: リレートされたデータクラス名
  • `.kind` = "relatedEntities" の場合: リレートされたデータクラス名 + "Selection" 接尾辞
  • `.kind` = "calculated" または "alias" の場合: 結果の値に応じて、上に同じ
  • | -| unique | Boolean | 属性値が重複不可の場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | -| classID | Text | `.type = "object"` でかつクラスがストラクチャーエディター内で指定されていた場合にのみ利用可能です。
    オブジェクトのインスタンス下に使用したクラスの名前を返します。 | +| プロパティ | 型 | 説明 | +| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 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`](../commands/value-type) 参照)
  • `.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"。属性の概念的な値タイプ。汎用的なプログラミングに有用です。 これは属性の種類 (`kind`) によります。 とりうる値:
  • `.kind` = "storage" の場合: "blob", "bool", "date", "image", "number", "object", または "string"。 数値型の場合 "number" が返されます (時間を含む)。UUID、文字およびテキスト型フィールドの場合 "string" が返されます。"blob" 属性は [BLOB オブジェクト](../Concepts/dt_blob.md#blob-の種類) です。
  • `.kind` = "relatedEntity" の場合: リレートされたデータクラス名
  • `.kind` = "relatedEntities" の場合: リレートされたデータクラス名 + "Selection" 接尾辞
  • `.kind` = "calculated" または "alias" の場合: 結果の値に応じて、上に同じ
  • | +| unique | Boolean | 属性値が重複不可の場合に true です。 `.kind` が "relatedEntity" または "relatedEntities" の場合には、このプロパティは返されません。 | +| classID | Text | `.type = "object"` でかつクラスがストラクチャーエディター内で指定されていた場合にのみ利用可能です。
    オブジェクトのインスタンス下に使用したクラスの名前を返します。 | :::tip @@ -150,7 +150,7 @@ var $firstnameAtt;$employerAtt;$employeesAtt : Object `.all()` 関数はデータストアをクエリして、 データクラスの全エンティティをエンティティセレクションとして返します。 -エンティティはデフォルトの順番で返され、通常は作成順になっています。 ただし、エンティティ削除後に新規追加した場合には、デフォルトの順番は作成順を反映しない点に留意が必要です。 +エンティティはデフォルトの順番で返され、通常は作成順になっています。ただし、エンティティ削除後に新規追加した場合には、デフォルトの順番は作成順を反映しない点に留意が必要です。 エンティティが見つからない場合、空のエンティティセレクションが返されます。 @@ -158,11 +158,11 @@ var $firstnameAtt;$employerAtt;$employeesAtt : Object **settings** -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。 エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 この機能は [ORDA のクライアント/サーバー処理](../ORDA/client-server-optimization.md) を想定して設計されています。 | +| プロパティ | 型 | 説明 | +| ------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。この機能は [ORDA のクライアント/サーバー処理](../ORDA/client-server-optimization.md) を想定して設計されています。 | > データクラス内の総エンティティ数を知るには、`ds.myClass.all().length` 式よりも最適化された [`getCount()`](#getcount) 関数を使用することが推奨されます。 @@ -262,24 +262,24 @@ $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" プロパティ値は無視されるため、プライマリーキーの値はそのまま渡さなければなりません。 **リレートエンティティズ** (複数) @@ -291,15 +291,15 @@ $ds.Persons.clearRemoteCache() **スタンプ** -"\_\_STAMP" プロパティが指定された場合、データストアのスタンプとのチェックがおこなわれ、エラーが返されることがあります ("与えられたスタンプはテーブルXXX のレコード# XXのカレントのものと合致しません")。 詳細については [エンティティロッキング](ORDA/entities.md#エンティティロッキング) を参照ください。 +"\_\_STAMP" プロパティが指定された場合、データストアのスタンプとのチェックがおこなわれ、エラーが返されることがあります ("与えられたスタンプはテーブルXXX のレコード# XXのカレントのものと合致しません")。詳細については [エンティティロッキング](ORDA/entities.md#エンティティロッキング) を参照ください。 **settings** -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。 エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。 この機能は [ORDA のクライアント/サーバー処理](../ORDA/client-server-optimization.md) を想定して設計されています。 | +| プロパティ | 型 | 説明 | +| ------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| context | Text | エンティティセレクションに適用されている最適化コンテキストのラベル。エンティティセレクションを扱うコードはこのコンテキストを使うことで最適化の恩恵を受けます。この機能は [ORDA のクライアント/サーバー処理](../ORDA/client-server-optimization.md) を想定して設計されています。 | #### 例題 1 @@ -466,7 +466,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** エンティティが返されます。 @@ -474,15 +474,15 @@ $ds.Persons.clearRemoteCache() **settings** -任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。 以下のプロパティがサポートされています: +任意の *settings* パラメーターには、追加オプションを格納したオブジェクトを渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| context | Text | エンティティに適用されている自動の最適化コンテキストのラベル。 エンティティを読み込む以降のコードは、このコンテキストを使うことで最適化の恩恵を受けます。 この機能は [ORDA のクライアント/サーバー処理](../ORDA/client-server-optimization.md) を想定して設計されています。 | +| プロパティ | 型 | 説明 | +| ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| context | Text | エンティティに適用されている自動の最適化コンテキストのラベル。エンティティを読み込む以降のコードは、このコンテキストを使うことで最適化の恩恵を受けます。この機能は [ORDA のクライアント/サーバー処理](../ORDA/client-server-optimization.md) を想定して設計されています。 | :::info -*settings* パラメーター**なし**で `.get()` 関数を呼び出すと、属性値のリクエストが直接サーバーに送信されます ([ORDAキャッシュ](../ORDA/client-server-optimization.md#ordaキャッシュ) は使用されません)。 一方、*settings* パラメーターを介して `context` を渡す形で `.get()` 関数を呼び出すと、コンテキストに対応する ORDAキャッシュから属性値が取得されます。 この場合、[`reload()`](EntityClass.md#reload) を呼び出して、最新のデータがサーバーから取得されていることを確認することをお勧めします。 +*settings* パラメーター**なし**で `.get()` 関数を呼び出すと、属性値のリクエストが直接サーバーに送信されます ([ORDAキャッシュ](../ORDA/client-server-optimization.md#ordaキャッシュ) は使用されません)。一方、*settings* パラメーターを介して `context` を渡す形で `.get()` 関数を呼び出すと、コンテキストに対応する ORDAキャッシュから属性値が取得されます。この場合、[`reload()`](EntityClass.md#reload) を呼び出して、最新のデータがサーバーから取得されていることを確認することをお勧めします。 ::: @@ -651,7 +651,7 @@ $number:=$ds.Persons.getCount() #### 説明 -`.getInfo()` 関数は、 データクラスの情報を提供するオブジェクトを返します。 このメソッドは汎用的なコードを書くのに有用です。 +`.getInfo()` 関数は、 データクラスの情報を提供するオブジェクトを返します。このメソッドは汎用的なコードを書くのに有用です。 **返されるオブジェクト** @@ -723,7 +723,7 @@ $number:=$ds.Persons.getCount()
    -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -761,11 +761,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 @@ -820,7 +820,7 @@ $cacheAddress:=$ds.Adress.getRemoteCache() `.new()` 関数は、メモリ内にデータクラスに空のエンティティを新規作成しそれを返します。 -エンティティオブジェクトはメモリ内に作成されますが、 [`.save( )`](EntityClass.md#save) 関数が呼び出されるまでデータベースには保存されません。 エンティティを保存する前に削除した場合、復元することはできません。 +エンティティオブジェクトはメモリ内に作成されますが、 [`.save( )`](EntityClass.md#save) 関数が呼び出されるまでデータベースには保存されません。エンティティを保存する前に削除した場合、復元することはできません。 **4D Server**: クライアント/サーバーにおいては、対応するテーブルのプライマリーキーが自動インクリメントであった場合、エンティティがサーバー側に保存されたときに計算されます。 @@ -873,9 +873,9 @@ $cacheAddress:=$ds.Adress.getRemoteCache() > 追加可能なエンティティセレクションについての詳細は [共有可能/追加可能なエンティティセレクション](ORDA/entities.md#共有可能追加可能なエンティティセレクション) を参照ください。 -順列ありのエンティティセレクションを作成するには、*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) 関数を呼び出すことで、エンティティセレクションを徐々にビルドしていくことができます。 #### 例題 @@ -921,7 +921,7 @@ $cacheAddress:=$ds.Adress.getRemoteCache() #### 説明 -`.query()` 関数は、データクラスの全エンティティから、*queryString* または *formula* と任意の *value* 引数で指定した検索条件に合致するエンティティを検索します。 戻り値は、見つかったエンティティをすべて格納する `EntitySelection` 型の新しいオブジェクトです。 この関数には、レイジーローディングが適用されます。 +`.query()` 関数は、データクラスの全エンティティから、*queryString* または *formula* と任意の *value* 引数で指定した検索条件に合致するエンティティを検索します。 戻り値は、見つかったエンティティをすべて格納する `EntitySelection` 型の新しいオブジェクトです。この関数には、レイジーローディングが適用されます。 エンティティが見つからない場合、空のエンティティセレクションが返されます。 @@ -937,56 +937,55 @@ attributePath|formula 比較演算子 値 詳細は以下の通りです: -- **attributePath**: クエリの実行対象となる属性パス。 この引数は、単純な名前 ("country" など) のほか、あらゆる有効な属性パス ("country.name" など) の形をとることができます。 属性パスが `Collection` 型である場合、すべてのオカレンスを管理するには `[]` 記法を使用してください (例: `children[].age` など)。 +- **attributePath**: クエリの実行対象となる属性パス。この引数は、単純な名前 ("country" など) のほか、あらゆる有効な属性パス ("country.name" など) の形をとることができます。属性パスが `Collection` 型である場合、すべてのオカレンスを管理するには `[]` 記法を使用してください (例: `children[].age` など)。 -> *".", "\[ ]", や "=", ">", "#"..., などの特殊文字はクエリ文字列の中で正しく評価されないため、これらが含まれた属性名を直接使用することはできません。 このような属性をクエリするには、プレースホルダーの使用を検討します。これにより、属性パス内で使用できる文字の範囲が広がります (後述の* **プレースホルダーの使用** *参照)。* +> *".", "\[ ]", や "=", ">", "#"..., などの特殊文字はクエリ文字列の中で正しく評価されないため、これらが含まれた属性名を直接使用することはできません。このような属性をクエリするには、プレースホルダーの使用を検討します。これにより、属性パス内で使用できる文字の範囲が広がります (後述の* **プレースホルダーの使用** *参照)。* -- **formula**: テキストまたはオブジェクト形式で渡された有効なフォーミュラ。 フォーミュラは処理されるエンティティごとに評価され、ブール値を返さなくてはなりません。 処理中のエンティティはフォーミュラ内において `This` で参照されます。 +- **formula**: テキストまたはオブジェクト形式で渡された有効なフォーミュラ。フォーミュラは処理されるエンティティごとに評価され、ブール値を返さなくてはなりません。処理中のエンティティはフォーミュラ内において `This` で参照されます。 - - **テキスト**: フォーミュラ文字列の前に `eval()` ステートメントが必要です。これにより、クエリが式を正しく解釈します。 例: *"eval(length(This.lastname) >=30)"* - - **オブジェクト**: [フォーミュラオブジェクト](FunctionClass.md) は **プレースホルダー** (後述参照)を使って受け渡します。 このフォーミュラは、[`Formula`](../commands/formula) または [`Formula from string`](../commands/formula-from-string) コマンドによって作成されたものでなくてはなりません。 + - **テキスト**: フォーミュラ文字列の前に `eval()` ステートメントが必要です。これにより、クエリが式を正しく解釈します。例: *"eval(length(This.lastname) >=30)"* + - **オブジェクト**: [フォーミュラオブジェクト](FunctionClass.md) は **プレースホルダー** (後述参照)を使って受け渡します。このフォーミュラは、[`Formula`](../commands/formula) または [`Formula from string`](../commands/formula-from-string) コマンドによって作成されたものでなくてはなりません。 > * 4Dフォーミュラは、`&` および `|` 記号のみを論理演算子としてサポートすることに留意が必要です。 > * フォーミュラ以外にも検索条件がある場合、クエリエンジンの最適化によってほかの検索条件 (たとえばインデックス属性) の処理が優先される場合があり、その場合はエンティティのサブセットのみがフォーミュラの評価対象となります。 -クエリに使用するフォーミュラは $1 に引数を受け取ることができます。 詳細については後述の **フォーミュラ引数** を参照ください。 +クエリに使用するフォーミュラは $1 に引数を受け取ることができます。詳細については後述の **フォーミュラ引数** を参照ください。 -> - フォーミュラが複雑な場合など、`queryString` パラメーターを使わずに、 `formula` パラメーターにオブジェクトを直接渡すこともできます。 後述の **フォーミュラ引数** を参照ください。 後述の **フォーミュラ引数** を参照ください。 +> - フォーミュラが複雑な場合など、`queryString` パラメーターを使わずに、 `formula` パラメーターにオブジェクトを直接渡すこともできます。 後述の **フォーミュラ引数** を参照ください。後述の **フォーミュラ引数** を参照ください。 > - セキュリティのため、 `query()` 関数内のフォーミュラ使用を禁止することができます。 `querySettings` パラメーターの説明を参照ください。 -- **比較演算子**: *attributePath* 引数と*value* 引数の比較に使用する記号。 以下のプロパティがサポートされています: - -| 比較 | 記号 | 説明 | ベクトル類似度内でのサポート | -| ------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------- | --------------------------- | -| 等しい | =, == | 一致するデータを取得します。 ワイルドカード (@) をサポートし、文字の大小/アクセントの有無は区別しません。 | | -| | ===, IS | 一致するデータを取得します。 ワイルドカード (@) は標準の文字として認識され、文字の大小/アクセント記号の有無は区別しません。 | | -| 等しくない | #, != | ワイルドカード (@) をサポートします。 "宣言に Not 条件を適用" と同じです ([後述参照](#コレクションにおける-等しくない)) | | -| | !==, IS NOT | ワイルドカード (@) は標準の文字として認識されます | | -| 宣言に Not 条件を適用 | NOT | 複数の演算子が含まれる宣言の前に NOT を使用する場合にはカッコをつける必要があります。 "等しくない" と同じです ([後述参照](#コレクションにおける-等しくない)) | | -| 小さい | < | | ✓ | -| 大きい | > | | ✓ | -| 以下 | <= | | ✓ | -| 以上 | > = | | ✓ | -| 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。 ワイルドカード (@) をサポートします。 | | -| キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | | - -- **値** (value): エンティティコレクションの各エンティティの属性のカレント値に対して比較する値。 **プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。 スカラー型(テキスト、日付、数値、など)で型が合致しない場合、4D は可能な限り**value** 引数の値を属性のデータ型へと変換しようとします。これはインターネット越しに受け取る値の管理を容易にするためです。 例えば、**value** 引数に"v20" という文字列が整数属性と比較するために与えられた場合、それは20 へと変換されます。 - 定数値を使用する場合、以下の原則に従う必要があります: - - **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。 文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。 また以下のキーワードはテキスト定数においては使用できません: true, false。 +- **比較演算子**: *attributePath* 引数と*value* 引数の比較に使用する記号。以下のプロパティがサポートされています: + +| 比較 | 記号 | 説明 | ベクトル類似度内でのサポート | +| ------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------- | +| 等しい | =, == | 一致するデータを取得します。 ワイルドカード (@) をサポートし、文字の大小/アクセントの有無は区別しません。 | | +| | ===, IS | 一致するデータを取得します。 ワイルドカード (@) は標準の文字として認識され、文字の大小/アクセント記号の有無は区別しません。 | | +| 等しくない | #, != | ワイルドカード (@) をサポートします。"宣言に Not 条件を適用" と同じです ([後述参照](#コレクションにおける-等しくない)) | | +| | !==, IS NOT | ワイルドカード (@) は標準の文字として認識されます | | +| 宣言に Not 条件を適用 | NOT | 複数の演算子が含まれる宣言の前に NOT を使用する場合にはカッコをつける必要があります。"等しくない" と同じです ([後述参照](#コレクションにおける-等しくない)) | | +| 小さい | < | | ✓ | +| 大きい | > | | ✓ | +| 以下 | <= | | ✓ | +| 以上 | > = | | ✓ | +| 含まれる | IN | コレクション、あるいは複数の値のうち、どれか一つの値と等しいデータを取得します。 ワイルドカード (@) をサポートします。 | | +| キーワードを含む | % | キーワードは、文字列あるいはピクチャー型の属性内で使用されるものが対象です。 | | + +- **値** (value): エンティティコレクションの各エンティティの属性のカレント値に対して比較する値。**プレースホルダー** (後述の **プレースホルダーの使用** 参照) か、あるいはデータ型プロパティと同じ型の式を使用することができます。スカラー型(テキスト、日付、数値、など)で型が合致しない場合、4D は可能な限り**value** 引数の値を属性のデータ型へと変換しようとします。これはインターネット越しに受け取る値の管理を容易にするためです。例えば、**value** 引数に"v20" という文字列が整数属性と比較するために与えられた場合、それは20 へと変換されます。定数値を使用する場合、以下の原則に従う必要があります: + - **テキスト** テキスト型の定数値の場合は単一引用符つき、あるいはなしでも渡すことができます(後述の **引用符を使用する** 参照)。文字列中の文字列を検索する ("含まれる" クエリ) には、ワイルドカード記号 (@) を使用して検索文字列を指定します (例: "@Smith@")。また以下のキーワードはテキスト定数においては使用できません: true, false。 - **ブール** 型の定数値: **true** または **false** (文字の大小を区別します) - **数値** 型の定数値: 浮動小数点は '.' (ピリオド) で区切られます。 - **日付** 型の定数値: "YYYY-MM-DD" フォーマット。 - **null** 定数値: "null" キーワードを使用した場合、**null** と **undefined** プロパティの両方が検索されます。 - IN 記号を使用したクエリの場合、*値* はコレクションか、attributePath の型に合致する、\[ ] でくくられたカンマ区切りの値である必要があります (文字列においては、`"` の記号は `\` でエスケープする必要があります)。 - **オブジェクト**: [**ベクトル類似度クエリ**](#ベクトル類似度クエリ) のコンテキストにおいて [4D.Vector](../API/VectorClass.md) オブジェクトのみがサポートされます。(*attributePath* に有効な4D.Vector オブジェクトが格納されている必要があります)。 -- **論理演算子**: 複数の条件をクエリ内で結合させるのに使用します(任意)。 以下の論理演算子のいずれか一つを使用できます (名前あるいは記号のどちらかを渡します): +- **論理演算子**: 複数の条件をクエリ内で結合させるのに使用します(任意)。以下の論理演算子のいずれか一つを使用できます (名前あるいは記号のどちらかを渡します): | 結合 | 記号 | | --- | ----------------------------------------------------------------------------------- | | AND | &, &&, and | | OR | |,||, or | -- **order by attributePath**: クエリに "order by attributePath" ステートメント を追加することで、結果をソートすることができます。 カンマで区切ることで、複数の order by ステートメントを使用することもできます (例: order by *attributePath1* desc, *attributePath2* asc)。 デフォルトの並び順は昇順です。 並び順を指定するには、降順の場合は 'desc'、昇順の場合は 'asc' を追加します。 +- **order by attributePath**: クエリに "order by attributePath" ステートメント を追加することで、結果をソートすることができます。カンマで区切ることで、複数の order by ステートメントを使用することもできます (例: order by *attributePath1* desc, *attributePath2* asc)。デフォルトの並び順は昇順です。並び順を指定するには、降順の場合は 'desc'、昇順の場合は 'asc' を追加します。 > このステートメントを使用した場合、順序ありエンティティセレクションが返されます (詳細については [エンティティセレクションの順列あり/順列なし](../ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください)。 @@ -994,17 +993,17 @@ attributePath|formula 比較演算子 値 ### 引用符を使用する -クエリに変数や式を使用することができます。 例: +クエリに変数や式を使用することができます。例: ```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')" @@ -1012,14 +1011,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* と*値* に以下のものを含めることができます: @@ -1028,14 +1027,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'* のような入力をした場合、クエリ文字列は解釈時に変更され、非公開データも返してしまう可能性があります。 プレースホルダーを使用した場合、セキュリティ条件を上書きすることは不可能です: @@ -1047,7 +1046,7 @@ attributePath|formula 比較演算子 値 2. フォーマットや文字の問題を心配する必要がありません。これは、*attributePath* や *値* がたとえば "."、"[' ...などの英数字でない文字を格納している可能性がある場合にとくに有用です。 -3. クエリに変数や式を使用することができます。 例: +3. クエリに変数や式を使用することができます。例: ```4d $result:=$col.query("address.city = :1 & name =:2";$city;$myVar+"@") @@ -1056,13 +1055,13 @@ $result2:=$col.query("company.name = :1";"John's Pizzas") ### null値を検索する -null値を検索する場合、プレースホルダーシンタックスは使用できません。 なぜならクエリエンジンは null を予期せぬ比較値としてみなすからです。 たとえば、以下のクエリを実行した場合: +null値を検索する場合、プレースホルダーシンタックスは使用できません。 なぜならクエリエンジンは null を予期せぬ比較値としてみなすからです。たとえば、以下のクエリを実行した場合: ```4d $vSingles:=ds.Person.query("spouse = :1";Null) // 機能しません ``` -この場合 4D は null値を、引数の評価 (別のクエリから渡された属性など) に起因するエラーと解釈するため、期待した結果は得られません。 このようなクエリをおこなうには、直接的なシンタックスを使用する必要があります: +この場合 4D は null値を、引数の評価 (別のクエリから渡された属性など) に起因するエラーと解釈するため、期待した結果は得られません。このようなクエリをおこなうには、直接的なシンタックスを使用する必要があります: ```4d $vSingles:=ds.Person.query("spouse = null") // 正しいシンタックス @@ -1070,7 +1069,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である人物のみを探す @@ -1084,7 +1083,7 @@ $notMarried:=ds.Person.query("info.married#true | info.married=null") // 属性 ### コレクションにおける "等しくない" -コレクションを含むデータクラス属性内を検索する場合、"*値* と等しくない" 比較演算子 (`#` または `!=`) は、すべてのプロパティが *値* と異なる要素を検索します (ほかの比較演算子とは異なり、少なくとも 1つのプロパティが*値* と異なる要素は検索しません)。 つまり、"Not(プロパティ値が *value* と等しいコレクション要素を検索する)" を検索することと同じです。 たとえば、以下のような エンティティがあるとき: +コレクションを含むデータクラス属性内を検索する場合、"*値* と等しくない" 比較演算子 (`#` または `!=`) は、すべてのプロパティが *値* と異なる要素を検索します (ほかの比較演算子とは異なり、少なくとも 1つのプロパティが*値* と異なる要素は検索しません)。つまり、"Not(プロパティ値が *value* と等しいコレクション要素を検索する)" を検索することと同じです。たとえば、以下のような エンティティがあるとき: ``` エンティティ1: @@ -1138,7 +1137,7 @@ ds.Class.query("info.coll[a].val != :1";0) ### コレクション要素とクエリ条件をリンクする -コレクションを含むデータクラス属性を対象に、AND 演算子で結合された複数のクエリ条件を使用して検索するにあたって、検索条件に合致するプロパティが複数のコレクション要素にバラけているのではなく、一つのコレクション要素がすべてまとまっているエンティティを探したいとします。 これには、すべての条件に合致するコレクション要素のみが検出されるよう、クエリ条件をコレクション要素にリンクする必要があります。 +コレクションを含むデータクラス属性を対象に、AND 演算子で結合された複数のクエリ条件を使用して検索するにあたって、検索条件に合致するプロパティが複数のコレクション要素にバラけているのではなく、一つのコレクション要素がすべてまとまっているエンティティを探したいとします。これには、すべての条件に合致するコレクション要素のみが検出されるよう、クエリ条件をコレクション要素にリンクする必要があります。 たとえば、以下のような 2件のエンティティがあるとき: @@ -1163,7 +1162,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") @@ -1171,10 +1170,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件のエンティティにおいて、以下のように書いた場合: @@ -1186,7 +1185,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) @@ -1206,7 +1205,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 は、各クラスインデックス用の一意な参照をクエリ内においてのみ必要とします。 この例では、次のようになります: @@ -1218,17 +1217,17 @@ $es:=ds.Movie.query("roles.actor.lastName = :1 AND roles.actor{2}.lastName = :2" ### ベクトル類似度によるクエリ -*attributePath* が[**ベクトルオブジェクト**](../API/VectorClass.md) を格納している属性を指定している場合([4D フィールドに4D.Vector クラスオブジェクトを保存するように設定する](../Develop/field-properties.md#class) 参照) 、キーワードではなく**埋め込み**に基づいてエンティティを探すクエリをビルドすることができます。 このテクノロジーは人工知能(AI)のワークロードように設計されており、これを使用することでデータをキーワードではなくセマンティクスに基づいてクエリできるようになります。 +*attributePath* が[**ベクトルオブジェクト**](../API/VectorClass.md) を格納している属性を指定している場合([4D フィールドに4D.Vector クラスオブジェクトを保存するように設定する](../Develop/field-properties.md#class) 参照) 、キーワードではなく**埋め込み**に基づいてエンティティを探すクエリをビルドすることができます。このテクノロジーは人工知能(AI)のワークロードように設計されており、これを使用することでデータをキーワードではなくセマンティクスに基づいてクエリできるようになります。 この場合、*value* 引数は、以下のプロパティを格納した**比較ベクトルオブジェクト** である必要があります: -| プロパティ | 型 | 説明 | -| --------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。 必須設定です。 比較するベクトル | -| metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 以下の(テキストの)定数のいずれか一つを使用することができます:
  • `mk cosine` (省略時にデフォルト): ベクトル間の[コサイン類似度](./VectorClass.md#cosinesimilarity)を計算します。
  • `mk dot`: ベクトル間の[ドット類似度](VectorClass.md#dotsimilarity)を計算します。
  • `mk euclidean`: ベクトル間の[ユークリッド距離](./VectorClass.md#euclideandistance)を計算します。 | -| threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | +| プロパティ | 型 | 説明 | +| --------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| vector | [4D.Vector](../API/VectorClass.md) | 必須設定です。必須設定です。 比較するベクトル | +| metric | Text | 任意。クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。以下の(テキストの)定数のいずれか一つを使用することができます:
  • `mk cosine` (省略時にデフォルト): ベクトル間の[コサイン類似度](./VectorClass.md#cosinesimilarity)を計算します。
  • `mk dot`: ベクトル間の[ドット類似度](VectorClass.md#dotsimilarity)を計算します。
  • `mk euclidean`: ベクトル間の[ユークリッド距離](./VectorClass.md#euclideandistance)を計算します。 | +| threshold | Real | 任意(デフォルト: 0.5)。選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | -**comparator** 記号の、一部のみがサポートされます。 これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: +**comparator** 記号の、一部のみがサポートされます。これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: | 比較 | 記号 | 説明 | | --- | --------------------------- | --------- | @@ -1246,7 +1245,7 @@ var $comparisonVector := {vector: $myVector; metric: mk cosine; threshold: 1.2} var $results := ds.MyClass.query("myVectorField <= :1"; $comparisonVector) ``` -**order by** 宣言はクエリ文字列でサポートされており、これによって返されるエンティティセレクション内でエンティティは類似度順にソートされます。 例: +**order by** 宣言はクエリ文字列でサポートされており、これによって返されるエンティティセレクション内でエンティティは類似度順にソートされます。例: ```4d var $results := ds.MyClass.query("myVectorField > :1 order by myVectorField desc"; $comparisonVector) @@ -1255,14 +1254,14 @@ var $results := ds.MyClass.query("myVectorField > :1 order by myVectorField desc :::note -一般的に、ベクトル類似度クエリの結果は「最も類似度が高い」ものから「最も類似度が低い」ものの順に並べ替えてほしいということが多いでしょう。 デフォルトでは、**order by** 節を使用して返された結果は、昇順に並べられています。 使用された類似度メトリック(計算手法)によっては、正しいランキングを取得するために並べ替え方向を調整する必要があるかもしれません: +一般的に、ベクトル類似度クエリの結果は「最も類似度が高い」ものから「最も類似度が低い」ものの順に並べ替えてほしいということが多いでしょう。デフォルトでは、**order by** 節を使用して返された結果は、昇順に並べられています。使用された類似度メトリック(計算手法)によっては、正しいランキングを取得するために並べ替え方向を調整する必要があるかもしれません: -- [**コサイン**](./VectorClass.md#cosinesimilarity) および [**ドット**](./VectorClass.md#dotsimilarity) 類似度に関しては、値が高いほど類似度が高いことを表します。 そのため、通常はクエリ文字列に`desc` キーワードを含める必要があります。 -- [**ユークリッド距離**](./VectorClass.md#euclideandistance) 類似度に関しては、値が低いほど類似度が高いことを表します。 この場合、デフォルトの昇順(あるいは明示的に`asc` キーワードを使用すること)が適切といえます。 +- [**コサイン**](./VectorClass.md#cosinesimilarity) および [**ドット**](./VectorClass.md#dotsimilarity) 類似度に関しては、値が高いほど類似度が高いことを表します。そのため、通常はクエリ文字列に`desc` キーワードを含める必要があります。 +- [**ユークリッド距離**](./VectorClass.md#euclideandistance) 類似度に関しては、値が低いほど類似度が高いことを表します。この場合、デフォルトの昇順(あるいは明示的に`asc` キーワードを使用すること)が適切といえます。 ::: -並べ替えができるのは、単一のベクトルフィールドに対してのみです。 同じベクトルがクエリ文字列内に複数回出現した場合、order by は最初のものの結果に適用されます。例: +並べ替えができるのは、単一のベクトルフィールドに対してのみです。同じベクトルがクエリ文字列内に複数回出現した場合、order by は最初のものの結果に適用されます。例: ```4d var $results := ds.MyClass.query("myVectorField > :1 and myVectorField > :2 order by myVectorField desc"; / @@ -1282,11 +1281,11 @@ var $results := ds.MyClass.query("myVectorField > :1 and myVectorField > :2 orde ### formula 引数 -*queryString* 引数にフォーミュラを挿入 (上記参照) する代わりに、formula オブジェクトをブール検索条件として直接渡すことができます。 トークナイズの利点を生かせる、コードが検索しやすく読みやすい、などといった面から、クエリにおけるフォーミュラオブジェクトの使用は **推奨されています**。 +*queryString* 引数にフォーミュラを挿入 (上記参照) する代わりに、formula オブジェクトをブール検索条件として直接渡すことができます。トークナイズの利点を生かせる、コードが検索しやすく読みやすい、などといった面から、クエリにおけるフォーミュラオブジェクトの使用は **推奨されています**。 -このフォーミュラは、[`Formula`](../commands/formula) または [`Formula from string`](../commands/formula-from-string) コマンドによって作成されたものでなくてはなりません。 この場合において: +このフォーミュラは、[`Formula`](../commands/formula) または [`Formula from string`](../commands/formula-from-string) コマンドによって作成されたものでなくてはなりません。この場合において: -- フォーミュラは処理されるエンティティごとに評価され、true または false を返さなくてはなりません。 クエリの実行中、フォーミュラの結果がブール値でなかった場合、それは false であるとみなされます。 +- フォーミュラは処理されるエンティティごとに評価され、true または false を返さなくてはなりません。クエリの実行中、フォーミュラの結果がブール値でなかった場合、それは false であるとみなされます。 - 処理中のエンティティはフォーミュラ内において `This` で参照されます。 - `Formula` オブジェクトが**null** の場合、エラー1626 ("テキストまたはフォーミュラが必要です")が生成されます。このエラーは[`ON ERR CALL`](../commands/on-err-call) で実装されたメソッドを使用して割り込みが可能です。 @@ -1308,25 +1307,25 @@ var $results := ds.MyClass.query("myVectorField > :1 and myVectorField > :2 orde さらなる使用例は、例題3にて紹介されています。 -**4D Server**: クライアント/サーバーにおいては、フォーミュラはサーバー上で実行されます。 このコンテキストにおいては、`querySettings.args` オブジェクトのみがフォーミュラに送信されます。 +**4D Server**: クライアント/サーバーにおいては、フォーミュラはサーバー上で実行されます。このコンテキストにおいては、`querySettings.args` オブジェクトのみがフォーミュラに送信されます。 ### querySettings 引数 -*querySettings* 引数は、追加のオプションを格納したオブジェクトです。 以下のプロパティがサポートされています: +*querySettings* 引数は、追加のオプションを格納したオブジェクトです。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| parameters | Object | *queryString* または *formula* に **値の命名プレースホルダー** を使用した場合に渡すオブジェクト。 値は、プロパティ/値のペアで表現されます。プロパティは、*queryString* または *formula* に値の代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、実際に比較される値です。 インデックスプレースホルダー (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/client-server-optimization.md#最適化コンテキスト) の章を参照ください。 | -| queryPlan | Boolean | 戻り値のエンティティコレクションに、実行する直前のクエリの詳細 (クエリプラン) を含めるかどうかを指定します。 返されるプロパティは、クエリプラン あるいはサブクエリ (複合クエリの場合) を格納したオブジェクトです。 このオプションはアプリケーションの開発フェーズにおいて有用です。 このオプションは通常 queryPath と組み合わせて使用されます。 省略時のデフォルト: false。 | -| queryPath | Boolean | 戻り値のエンティティコレクションに、実際に実行されたクエリの詳細を含めるかどうかを指定します。 返されたプロパティは、クエリで実際に使用されたパス (通常は queryPlan と同一ですが、エンジンがクエリを最適化した場合には異なる場合があります)、処理時間と検出レコード数を格納したオブジェクトです。 このオプションはアプリケーションの開発フェーズにおいて有用です。 省略時のデフォルト: false。 | +| プロパティ | 型 | 説明 | +| ------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| parameters | Object | *queryString* または *formula* に **値の命名プレースホルダー** を使用した場合に渡すオブジェクト。値は、プロパティ/値のペアで表現されます。プロパティは、*queryString* または *formula* に値の代わりに挿入されたプレースホルダー名 (":placeholder"など) で、値は、実際に比較される値です。インデックスプレースホルダー (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/client-server-optimization.md#最適化コンテキスト) の章を参照ください。 | +| queryPlan | Boolean | 戻り値のエンティティコレクションに、実行する直前のクエリの詳細 (クエリプラン) を含めるかどうかを指定します。返されるプロパティは、クエリプラン あるいはサブクエリ (複合クエリの場合) を格納したオブジェクトです。このオプションはアプリケーションの開発フェーズにおいて有用です。このオプションは通常 queryPath と組み合わせて使用されます。省略時のデフォルト: false。 | +| queryPath | Boolean | 戻り値のエンティティコレクションに、実際に実行されたクエリの詳細を含めるかどうかを指定します。返されたプロパティは、クエリで実際に使用されたパス (通常は queryPlan と同一ですが、エンジンがクエリを最適化した場合には異なる場合があります)、処理時間と検出レコード数を格納したオブジェクトです。このオプションはアプリケーションの開発フェーズにおいて有用です。省略時のデフォルト: false。 | ### queryPlan と queryPath について -`queryPlan`/`queryPath` に格納される情報には、クエリの種類 (インデックスあるいはシーケンシャル)、必要なサブクエリおよびその連結演算子が含まれます。 クエリパスには、見つかったエンティティの数と各検索条件を実行するにかかった時間も含まれます。 この情報は、アプリケーションの開発中に解析することで有効に活用できます。 一般的には、クエリプランとクエリパスの詳細は同一になるはずですが、4D はパフォーマンス向上のために動的な最適化をクエリ実行時に実装することがあり、異なることもあります。 たとえば、その方が早いと判断した場合には、4Dエンジンはインデックス付きクエリをシーケンシャルなものへと動的に変換することがあります。 これは検索されているエンティティの数が少ないときに起こりえます。 +`queryPlan`/`queryPath` に格納される情報には、クエリの種類 (インデックスあるいはシーケンシャル)、必要なサブクエリおよびその連結演算子が含まれます。クエリパスには、見つかったエンティティの数と各検索条件を実行するのにかかった時間も含まれます。この情報は、アプリケーションの開発中に解析することで有効に活用できます。一般的には、クエリプランとクエリパスの詳細は同一になるはずですが、4D はパフォーマンス向上のために動的な最適化をクエリ実行時に実装することがあり、異なることもあります。たとえば、その方が早いと判断した場合には、4Dエンジンはインデックス付きクエリをシーケンシャルなものへと動的に変換することがあります。これは検索されているエンティティの数が少ないときに起こりえます。 たとえば、以下のクエリを実行した場合: @@ -1634,7 +1633,7 @@ softwares:{ #### 例題 4 -この例題では、ベクトル類似度検索でサポートされている様々なシンタックスを紹介します。 ここでは[4D-AIKit](../aikit/overview.md)を使用しています: +この例題では、ベクトル類似度検索でサポートされている様々なシンタックスを紹介します。ここでは[4D-AIKit](../aikit/overview.md)を使用しています: ```4d @@ -1696,7 +1695,7 @@ var $results := ds.MyTable.query("myVectorField <= :1 AND salary>100000 order by
  • -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -1709,17 +1708,17 @@ var $results := ds.MyTable.query("myVectorField <= :1 AND salary>100000 order by | 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/current/API/DataStoreClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataStoreClass.md index 29b0b25946f085..1b85c95a54eb0e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/DataStoreClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/DataStoreClass.md @@ -48,7 +48,7 @@ title: DataStore #### 説明 -データストアの各データクラスは [DataStore オブジェクト](ORDA/dsMapping.md#データストア) のプロパティとして利用可能です。 戻り値のオブジェクトにはデータクラスの詳細が格納されています。 +データストアの各データクラスは [DataStore オブジェクト](ORDA/dsMapping.md#データストア) のプロパティとして利用可能です。戻り値のオブジェクトにはデータクラスの詳細が格納されています。 #### 例題 @@ -93,7 +93,7 @@ title: DataStore `.cancelTransaction()` 関数は、トランザクション中におこなわれたデータ変更をすべてキャンセルします。 -複数のトランザクションをネストすること (サブトランザクション) が可能です。 メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に[`.validateTransaction()`](#validatetransaction) 関数で承認されていても) すべてキャンセルされます。 +複数のトランザクションをネストすること (サブトランザクション) が可能です。メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に[`.validateTransaction()`](#validatetransaction) 関数で承認されていても) すべてキャンセルされます。 #### 例題 @@ -128,7 +128,7 @@ title: DataStore `.clearAllRemoteContexts()` 関数は、 データストアのすべてのアクティブコンテキストの全属性をクリアします。 -この機能は主にデバッグで使用されます。 注意しなければならないのは、デバッガーを開くと、デバッガーはサーバーにリクエストを送り、データクラス属性をすべてクエリして表示することです。 このため、不要なデータでコンテキストが過負荷になることがあります。 +この機能は主にデバッグで使用されます。注意しなければならないのは、デバッガーを開くと、デバッガーはサーバーにリクエストを送り、データクラス属性をすべてクエリして表示することです。このため、不要なデータでコンテキストが過負荷になることがあります。 そのような場合は、`.clearAllRemoteContexts()` を使用してコンテキストをクリアし、クリーンな状態を保つことができます。 @@ -163,7 +163,7 @@ title: DataStore #### 説明 -`.encryptionStatus()` 関数は、カレントデータファイルの暗号化状態を示すオブジェクトを返します。カレントデータファイルとはつまり、`ds` データストアのデータファイルです。 各テーブルの状態も提供されます。 +`.encryptionStatus()` 関数は、カレントデータファイルの暗号化状態を示すオブジェクトを返します。カレントデータファイルとはつまり、`ds` データストアのデータファイルです。各テーブルの状態も提供されます。 > その他のデータファイルの暗号化状態を調べるには、`Data file encryption status` コマンドを使います。 @@ -238,7 +238,7 @@ title: DataStore #### 説明 -`.flushAndLock()` 関数は、ローカルデータストアのキャッシュをフラッシュし、データベースに対して他のプロセスが書き込み操作をおこなうのを防ぎます。 これにより、データストアは凍結状態におかれます。 この関数は、たとえばアプリケーションのスナップショットを実行する前に呼び出す必要があります。 +`.flushAndLock()` 関数は、ローカルデータストアのキャッシュをフラッシュし、データベースに対して他のプロセスが書き込み操作をおこなうのを防ぎます。これにより、データストアは凍結状態におかれます。この関数は、たとえばアプリケーションのスナップショットを実行する前に呼び出す必要があります。 :::info @@ -265,7 +265,7 @@ title: DataStore :::caution [バックアップ](../Backup/backup.md) や [VSS](https://doc.4d.com/4Dv20/4D/20/Using-Volume-Shadow-Copy-Service-on-Windows.300-6330532.ja.html) -、 [MSC](../MSC/overview.md) を含む他の 4D機能およびサービスもデータストアをロックすることがあります。 予期せぬ相互作用を避けるため、`.flushAndLock()` を呼び出す前に、データストアをロックするような他の操作がおこなわれていないことを確認してください。 +、 [MSC](../MSC/overview.md) を含む他の 4D機能およびサービスもデータストアをロックすることがあります。予期せぬ相互作用を避けるため、`.flushAndLock()` を呼び出す前に、データストアをロックするような他の操作がおこなわれていないことを確認してください。 ::: @@ -316,7 +316,7 @@ ds.unlock() // コピー操作をおこなったので、データストアの -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -451,16 +451,16 @@ $hasModifications:=($currentStamp # ds.getGlobalStamp()) #### 説明 -`.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 となります。 @@ -521,7 +521,7 @@ $info:=$remoteDS.getInfo() -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -533,12 +533,12 @@ $info:=$remoteDS.getInfo() 戻り値のオブジェクトには、以下のプロパティが格納されています: -| プロパティ | 型 | 説明 | -| ----------------------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | Text | コンテキストの名称 | -| main | Text | コンテキストに関連する属性 (複数の場合はカンマ区切り) | -| dataclass | Text | データクラスの名称 | -| currentItem (任意) | Text | コンテキストがリストボックスとリンクしている場合の [ページモード](../ORDA/client-server-optimization.md#エンティティセレクション型リストボックス) の属性。 コンテキスト名がリストボックスに使用されていない場合、または currentItem に対応するコンテキストが存在しない場合は、`Null` または空のテキスト要素として返されます。 | +| プロパティ | 型 | 説明 | +| ----------------------------------- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | Text | コンテキストの名称 | +| main | Text | コンテキストに関連する属性 (複数の場合はカンマ区切り) | +| dataclass | Text | データクラスの名称 | +| currentItem (任意) | Text | コンテキストがリストボックスとリンクしている場合の [ページモード](../ORDA/client-server-optimization.md#エンティティセレクション型リストボックス) の属性。コンテキスト名がリストボックスに使用されていない場合、または currentItem に対応するコンテキストが存在しない場合は、`Null` または空のテキスト要素として返されます。 | コンテキストは属性に対するフィルターとして動作するため、*main* が空で返された場合、それはフィルターが適用されておらず、サーバーがすべてのデータクラス属性を返すことを意味します。 @@ -579,11 +579,11 @@ $info:=$remoteDS.getInfo() `.getRequestLog()` 関数は、クライアント側のメモリに記録されているORDAリクエストを返します。 ORDAリクエストのログが、[`.startRequestLog()`](#startrequestlog) 関数によって事前に有効化されている必要があります。 -このメソッドはリモートの 4D で呼び出す必要があり、そうでない場合には空のコレクションを返します。 これはクライアント/サーバー環境でのデバッグを想定して設計されています。 +このメソッドはリモートの 4D で呼び出す必要があり、そうでない場合には空のコレクションを返します。これはクライアント/サーバー環境でのデバッグを想定して設計されています。 **戻り値** -スタックされたリクエストオブジェクトのコレクションが返されます。 直近のリクエストにはインデックス 0 が振られています。 +スタックされたリクエストオブジェクトのコレクションが返されます。直近のリクエストにはインデックス 0 が振られています。 ORDAリクエストログのフォーマットの詳細は、[**ORDAリクエスト**](../Debugging/debugLogFiles.md#ordaリクエスト) の章を参照ください。 @@ -696,14 +696,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 以降のバージョンで作成された新規プロジェクトにおいては、この関数の使用は **推奨されていません**。エンティティセレクションを共有可能にできないため、パフォーマンスとスケーラビリティの観点で妨げになるからです。 @@ -736,14 +735,14 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAリクエス #### 説明 -`.provideDataKey()` 関数は、データストアのカレントデータファイルのデータ暗号化キーを受け取り、暗号化されたデータと合致するかどうかチェックします。 この関数は、暗号化されたデータベースを開くときや、データファイルの再暗号化など暗号化キーが必要となる暗号化オペレーションを実行する際に使用します。 +`.provideDataKey()` 関数は、データストアのカレントデータファイルのデータ暗号化キーを受け取り、暗号化されたデータと合致するかどうかチェックします。この関数は、暗号化されたデータベースを開くときや、データファイルの再暗号化など暗号化キーが必要となる暗号化オペレーションを実行する際に使用します。 -> - `.provideDataKey()` 関数は暗号化されたデータベース内で呼び出される必要があります。 暗号化されていないデータベース内で呼び出した場合、エラー2003 (暗号化キーはデータと合致しません) が返されます。 データベースが暗号化されているかどうかを調べるには `Data file encryption status` コマンドを使用します。 +> - `.provideDataKey()` 関数は暗号化されたデータベース内で呼び出される必要があります。暗号化されていないデータベース内で呼び出した場合、エラー2003 (暗号化キーはデータと合致しません)が返されます。データベースが暗号化されているかどうかを調べるには `Data file encryption status` コマンドを使用します。 > - リモートの 4D または暗号化されたリモートデータストアから、`.provideDataKey()` 関数を呼び出すことはできません。 -*curPassPhrase* パラメーターを使用する場合は、データ暗号化キーの生成に使用した文字列を渡します。 このパラメーターを使用した場合、暗号化キーが生成されます。 +*curPassPhrase* パラメーターを使用する場合は、データ暗号化キーの生成に使用した文字列を渡します。このパラメーターを使用した場合、暗号化キーが生成されます。 -*curDataKey* パラメーターを使用する場合は、データ暗号化キー (*encodedKey* プロパティ) を格納するオブジェクトを渡します。 このキーは、`New data key` コマンドで生成された可能性があります。 +*curDataKey* パラメーターを使用する場合は、データ暗号化キー (*encodedKey* プロパティ) を格納するオブジェクトを渡します。このキーは、`New data key` コマンドで生成された可能性があります。 有効な暗号化キーが提供された場合、そのキーはメモリ内の *keyChain* に追加され、暗号化モードが有効になります: @@ -760,7 +759,7 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAリクエス | | | | 以下のプロパティは、success が *FALSE* であった場合にのみ返されます。 | | status | | Number | エラーコード (提供された暗号化キーが間違っていた場合には 4) | | statusText | | Text | エラーメッセージ | -| errors | | Collection | エラーのスタック。 最初のエラーに最も高いインデックスが割り当てられます。 | +| errors | | Collection | エラーのスタック。最初のエラーに最も高いインデックスが割り当てられます。 | | | \[ ].componentSignature | Text | 内部コンポーネント名 | | | \[ ].errCode | Number | エラー番号 | | | \[ ].message | Text | エラーメッセージ | @@ -815,9 +814,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管理ポート上でのデータエクスプローラーによるデータアクセスを無効にすることができます。この関数を実行するとデータファイルは即座に保護され、そのステータスがディスク上に保存されます: アプリケーションを再起動しても、データファイルは保護されたままです。 #### 例題 @@ -858,7 +857,7 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAリクエス :::info 詳細モード -これは、グローバルスタンプのカレント値を変更する必要があるデベロッパー用の関数です。 十分な注意を払って使用してください。 +これは、グローバルスタンプのカレント値を変更する必要があるデベロッパー用の関数です。十分な注意を払って使用してください。 ::: @@ -920,11 +919,11 @@ ds.setGlobalStamp($newValue) -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 -`.setRemoteContextInfo()` 関数は、指定したデータクラス属性を *contextName* の最適化コンテキストにリンクします。 指定した属性に対して最適化コンテキストが既に存在する場合、このコマンドはそれを置き換えます。 +`.setRemoteContextInfo()` 関数は、指定したデータクラス属性を *contextName* の最適化コンテキストにリンクします。指定した属性に対して最適化コンテキストが既に存在する場合、このコマンドはそれを置き換えます。 ORDAクラスの関数にコンテキストを渡すと、RESTリクエストの最適化が即座に発動します: @@ -939,16 +938,16 @@ ORDAクラスの関数にコンテキストを渡すと、RESTリクエストの コンテキストにリンクする属性を指定するには、*attributes* (テキスト) にカンマ区切りの属性リストを渡すか、属性名のコレクションを *attributesColl* (テキストのコレクション) に渡します。 -*attributes* が空のテキスト、または *attributesColl* が空のコレクションの場合、データクラスのすべてのスカラー属性が最適化コンテキストに置かれます。 データクラスに存在しない属性を渡した場合、それは無視され、エラーが返されます。 +*attributes* が空のテキスト、または *attributesColl* が空のコレクションの場合、データクラスのすべてのスカラー属性が最適化コンテキストに置かれます。データクラスに存在しない属性を渡した場合、それは無視され、エラーが返されます。 *contextType* を渡して、コンテキストが標準コンテキストか、リストボックスに表示されているカレントエンティティセレクション項目のコンテキストかを指定することができます。 - "main" (デフォルト) を渡すと、*contextName* は標準コンテキストを指定します。 -- "currentItem" の場合には、渡された属性はカレント項目のコンテキストに置かれます。 [エンティティセレクション型リストボックス](../ORDA/client-server-optimization.md#エンティティセレクション型リストボックス) を参照ください。 +- "currentItem" の場合には、渡された属性はカレント項目のコンテキストに置かれます。[エンティティセレクション型リストボックス](../ORDA/client-server-optimization.md#エンティティセレクション型リストボックス) を参照ください。 *pageLength* には、サーバーに要求するデータクラスエンティティの数を指定します。 -エンティティセレクションであるリレーション属性 (1対N) について、*pageLength* を渡すことができます。 シンタックスは、`relationAttributeName:pageLength` です (例: employees:20)。 +エンティティセレクションであるリレーション属性 (1対N) について、*pageLength* を渡すことができます。シンタックスは、`relationAttributeName:pageLength` です (例: employees:20)。 #### 例題 1 @@ -983,7 +982,7 @@ $info:=$ds.getRemoteContextInfo("contextA") #### 例題 2 -以下のコードでは、`Address` データクラスのエンティティ 30件のページをサーバーに要求しています。 返されるエンティティは、`zipCode` 属性のみを含みます。 +以下のコードでは、`Address` データクラスのエンティティ 30件のページをサーバーに要求しています。返されるエンティティは、`zipCode` 属性のみを含みます。 各 `Address` エンティティに対して、20件の Persons エンティティが返され、それらには `lastname` と `firstname` 属性のみが含まれます: @@ -1053,7 +1052,7 @@ Form.currentItemLearntAttributes:=Form.selectedPerson.getRemoteContextAttributes #### 説明 -`.startRequestLog()` 関数は、クライアント側でまたはサーバーサイドで ORDAリクエストのログを開始します。 これはクライアント/サーバー環境でのデバッグを想定して設計されています。 +`.startRequestLog()` 関数は、クライアント側でまたはサーバーサイドで ORDAリクエストのログを開始します。これはクライアント/サーバー環境でのデバッグを想定して設計されています。 :::info @@ -1063,23 +1062,22 @@ ORDAリクエストログのフォーマットの詳細は、[**ORDAリクエス #### クライアント側 -クライアント側の ORDAリクエストログを作成するには、リモートマシン上でこの関数を呼び出します。 ログは、渡した引数によってファイルまたはメモリに送ることができます: +クライアント側の ORDAリクエストログを作成するには、リモートマシン上でこの関数を呼び出します。ログは、渡した引数によってファイルまたはメモリに送ることができます: -- `File` コマンドで作成された *file* オブジェクトを渡した場合、ログデータはオブジェクト (JSON フォーマット) のコレクションとしてこのファイルに書き込まれます。 各オブジェクトは一つのリクエストを表します。
    ファイルがまだ存在しない場合には、作成されます。 もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。 - メモリへのログ記録が既に始まっている状態で、 `.startRequestLog()`が file 引数付きで呼び出された場合、メモリに記録されていたログは停止され消去されます。 +- `File` コマンドで作成された *file* オブジェクトを渡した場合、ログデータはオブジェクト (JSON フォーマット) のコレクションとしてこのファイルに書き込まれます。各オブジェクトは一つのリクエストを表します。
    ファイルがまだ存在しない場合には、作成されます。もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。メモリへのログ記録が既に始まっている状態で、 `.startRequestLog()`が file 引数付きで呼び出された場合、メモリに記録されていたログは停止され消去されます。 > JSON 評価を実行するには、ファイルの終わりに手動で \] 文字を追加する必要があります。 - *reqNum* (倍長整数) 引数を渡した場合、メモリ内のログは (あれば) 消去され、新しいログが初期化されます。 *reqNum* 引数が指定する数にリクエスト数が到達するまでは、ログはメモリに保管され、到達した場合には古いエントリーから消去されていきます (FIFO スタック)。
    ファイルへのログ記録が既に始まっている状態で、`.startRequestLog()` が *reqNum* 引数付きで呼び出された場合、ファイルへのログは停止されます。 -- 引数を何も渡さなかった場合、ログはメモリに記録されていきます。 前もって `.startRequestLog()` が*reqNum* 引数付きで 呼び出されていた場合 (ただし `.stopRequestLog()` の前)、ログが次回消去されるかまたは`.stopRequestLog()` が呼び出されるまで、ログデータはメモリ内にスタックされます。 +- 引数を何も渡さなかった場合、ログはメモリに記録されていきます。前もって `.startRequestLog()` が*reqNum* 引数付きで 呼び出されていた場合 (ただし `.stopRequestLog()` の前)、ログが次回消去されるかまたは`.stopRequestLog()` が呼び出されるまで、ログデータはメモリ内にスタックされます。 #### サーバー側 -サーバー側の ORDAリクエストログを作成するには、サーバーマシン上でこの関数を呼び出します。 ログは、`.jsonl` 形式のファイルに書き込まれます。 各オブジェクトは 1つのリクエストを表します。 ファイルが存在しない場合は、作成されます。 もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。 +サーバー側の ORDAリクエストログを作成するには、サーバーマシン上でこの関数を呼び出します。ログは、`.jsonl` 形式のファイルに書き込まれます。各オブジェクトは 1つのリクエストを表します。ファイルが存在しない場合は、作成されます。もしファイルが既に存在する場合、新しいログデータはそこに追加されていきます。 - *file* 引数を渡した場合、ログデータはこのファイルの指定位置に書き込まれます。 - *file* 引数を省略した場合、または引数が NULL の場合、ログデータは *ordaRequests.jsonl* という名前のファイルに書き込まれ、"/LOGS" フォルダーに保存されます。 -- *options* 引数を使って、サーバーのレスポンスをログに記録するかどうか、および本文をログに含めるかどうかを指定することができます。 引数を省略した場合のデフォルトでは、全レスポンスがログに記録されます。 この引数には、以下の定数を使用することができます: +- *options* 引数を使って、サーバーのレスポンスをログに記録するかどうか、および本文をログに含めるかどうかを指定することができます。引数を省略した場合のデフォルトでは、全レスポンスがログに記録されます。この引数には、以下の定数を使用することができます: | 定数 | 説明 | | ----------------------------- | ------------------------------------------ | @@ -1166,11 +1164,11 @@ SET DATABASE PARAMETER(4D Server Log Recording;0) #### 説明 -`.startTransaction()` 関数は、対象データストアに対応するデータベース上で、カレントプロセス内のトランザクションを開始します。 トランザクションプロセス中にデータストアのエンティティに加えられた変更は、トランザクションが確定されるかキャンセルされるまで一時的に保管されたままになります。 +`.startTransaction()` 関数は、対象データストアに対応するデータベース上で、カレントプロセス内のトランザクションを開始します。トランザクションプロセス中にデータストアのエンティティに加えられた変更は、トランザクションが確定されるかキャンセルされるまで一時的に保管されたままになります。 > このメソッドがメインのデータストア (`ds` コマンドで返されるデータストア) で呼ばれた場合、トランザクションはメインのデータストアとそのデータベースで実行されるすべてのオペレーションに適用されます。これには、そこで実行される ORDA とクラシック言語も含まれます。 -複数のトランザクションをネストすること (サブトランザクション) が可能です。 個々のトランザクションまたはサブトランザクションは、それぞれキャンセルするか確定される必要があります。 メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に`.validateTransaction()` 関数で承認されていても) すべてキャンセルされます。 +複数のトランザクションをネストすること (サブトランザクション) が可能です。個々のトランザクションまたはサブトランザクションは、それぞれキャンセルするか確定される必要があります。メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々に`.validateTransaction()` 関数で承認されていても) すべてキャンセルされます。 #### 例題 @@ -1237,7 +1235,7 @@ SET DATABASE PARAMETER(4D Server Log Recording;0) `.stopRequestLog()` 関数は、呼び出されたマシン (クライアントまたはサーバー) 上の ORDAリクエストのログをすべて停止します(ファイル・メモリとも)。 -実際には、ディスク上で開かれているドキュメントを閉じます。 クライアント側で、メモリ上でログの記録が開始されていた場合、そのログを停止します。 +実際には、ディスク上で開かれているドキュメントを閉じます。クライアント側で、メモリ上でログの記録が開始されていた場合、そのログを停止します。 ORDAリクエストログがマシン上で開始されていない場合、この関数は何もしません。 @@ -1272,7 +1270,7 @@ ORDAリクエストログがマシン上で開始されていない場合、こ #### 説明 -`.unlock()` 関数は、データストアにおける、書き込み操作に対する現在のロックが同じプロセスで設定されていた場合、そのロックを解除します。 ローカルデータストアの書き込み操作は、[`.flushAndLock()`](#flushandlock) 関数を使用してロックすることができます。 +`.unlock()` 関数は、データストアにおける、書き込み操作に対する現在のロックが同じプロセスで設定されていた場合、そのロックを解除します。ローカルデータストアの書き込み操作は、[`.flushAndLock()`](#flushandlock) 関数を使用してロックすることができます。 現在のロックがデータストアの唯一のロックであった場合、書き込み操作は直ちに可能になります。 `.flushAndLock()` 関数がプロセス内で複数回呼ばれている場合、データストアのロックを解除するには、同じ回数だけ `.unlock()` を呼び出す必要があります。 @@ -1315,7 +1313,7 @@ ORDAリクエストログがマシン上で開始されていない場合、こ この関数は、トランザクション中におこなわれたデータストア上のデータの変更を保存します。 -複数のトランザクションをネストすること (サブトランザクション) が可能です。 メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々にこの関数で承認されていても) すべてキャンセルされます。 +複数のトランザクションをネストすること (サブトランザクション) が可能です。メイントランザクションがキャンセルされると、サブトランザクションも (たとえ個々にこの関数で承認されていても) すべてキャンセルされます。 #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/Directory.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/Directory.md index add32fd1a1fcdd..25a7d3784c5aae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/Directory.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/Directory.md @@ -91,7 +91,7 @@ title: Directory クラス #### 説明 -`.extension` プロパティは、フォルダー名の拡張子を返します (あれば)。 拡張子は必ず"." で始まります。 フォルダー名が拡張子を持たない場合には、このプロパティは空の文字列を返します。 +`.extension` プロパティは、フォルダー名の拡張子を返します (あれば)。拡張子は必ず"." で始まります。フォルダー名が拡張子を持たない場合には、このプロパティは空の文字列を返します。 このプロパティは **読み取り専用** です。 @@ -235,7 +235,7 @@ title: Directory クラス #### 説明 -`.isPackage` プロパティは、フォルダーが macOS上のパッケージである (かつディスク上に存在している) 場合に true を返します。 それ以外の場合は false を返します。 +`.isPackage` プロパティは、フォルダーが macOS上のパッケージである (かつディスク上に存在している) 場合に true を返します。それ以外の場合は false を返します。 Windows 上においては、`.isPackage` は常に **false** を返します。 @@ -359,7 +359,7 @@ Windows 上においては、`.isPackage` は常に **false** を返します。 #### 説明 -`.parent` プロパティは、対象フォルダーの親フォルダーオブジェクトを返します。 パスがシステムパスを表す場合 (例: "/DATA/")、システムパスが返されます。 +`.parent` プロパティは、対象フォルダーの親フォルダーオブジェクトを返します。パスがシステムパスを表す場合 (例: "/DATA/")、システムパスが返されます。 親フォルダーが存在しない場合 (root) は、このプロパティは null値を返します。 @@ -385,7 +385,7 @@ Windows 上においては、`.isPackage` は常に **false** を返します。 #### 説明 -`.path` プロパティは、フォルダーの POSIXパスを返します。 パスがファイルシステムを表す場合 (例: "/DATA/")、ファイルシステムが返されます。 +`.path` プロパティは、フォルダーの POSIXパスを返します。パスがファイルシステムを表す場合 (例: "/DATA/")、ファイルシステムが返されます。 このプロパティは **読み取り専用** です。 @@ -451,7 +451,7 @@ Windows 上においては、`.isPackage` は常に **false** を返します。 *destinationFolder* 引数が指定するフォルダーはディスク上に存在している必要があり、そうでない場合にはエラーが生成されます。 -デフォルトで、フォルダーは元の名前を維持したままコピーされます。 コピーの際に名称を変更したい場合、新しい名前を *newName* に渡します。 新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 +デフォルトで、フォルダーは元の名前を維持したままコピーされます。コピーの際に名称を変更したい場合、新しい名前を *newName* に渡します。新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 *destinationFolder* 引数が指定するフォルダー内に同じ名前のフォルダーが既に存在する場合、4D はデフォルトでエラーを生成します。 *overwrite* に `fk overwrite` 定数を渡すことで、既存のフォルダーを無視して上書きすることができます: @@ -507,7 +507,7 @@ $copiedImages:=$userImages.copyTo(Folder(fk database folder);fk overwrite) `.file()` 関数は、`Folder` オブジェクト内に `File` オブジェクトを作成し、その参照を返します。 -*path* には、返すべきファイルの相対的パスを POSIX 形式で渡します。 このパスは、親フォルダーを起点として評価されます。 +*path* には、返すべきファイルの相対的パスを POSIX 形式で渡します。このパスは、親フォルダーを起点として評価されます。 **戻り値** @@ -623,7 +623,7 @@ $myPDF:=Folder(fk documents folder).file("Pictures/info.pdf") `.folder()` 関数は、親の `Folder` オブジェクト内に新しい `Folder` オブジェクトを作成し、その参照を返します。 -*path* には、返すべきフォルダーの相対的パスを POSIX 形式で渡します。 このパスは、親フォルダーを起点として評価されます。 +*path* には、返すべきフォルダーの相対的パスを POSIX 形式で渡します。このパスは、親フォルダーを起点として評価されます。 **戻り値** @@ -724,7 +724,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/current/API/Document.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md index 1928724bc79e77..0525a1eba25962 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/Document.md @@ -87,7 +87,7 @@ title: Document クラス #### 説明 -`.extension` プロパティは、ファイル名の拡張子を返します (あれば)。 拡張子は必ず"." で始まります。 ファイル名が拡張子を持たない場合には、このプロパティは空の文字列を返します。 +`.extension` プロパティは、ファイル名の拡張子を返します (あれば)。拡張子は必ず"." で始まります。ファイル名が拡張子を持たない場合には、このプロパティは空の文字列を返します。 このプロパティは **読み取り専用** です。 @@ -318,7 +318,7 @@ title: Document クラス #### 説明 -`.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。 ターゲット要素は以下のいずれかです: +`.original` プロパティは、エイリアス、ショートカット、シンボリックリンクファイルのターゲット要素を返します。ターゲット要素は以下のいずれかです: - File オブジェクト - Folder オブジェクト @@ -345,7 +345,7 @@ title: Document クラス #### 説明 -`.parent` プロパティは、対象ファイルの親フォルダーオブジェクトを返します。 パスがシステムパスを表す場合 (例: "/DATA/")、システムパスが返されます。 +`.parent` プロパティは、対象ファイルの親フォルダーオブジェクトを返します。パスがシステムパスを表す場合 (例: "/DATA/")、システムパスが返されます。 このプロパティは **読み取り専用** です。 @@ -367,7 +367,7 @@ title: Document クラス #### 説明 -`.path` プロパティは、ファイルの POSIXパスを返します。 パスがファイルシステムを表す場合 (例: "/DATA/")、ファイルシステムが返されます。 +`.path` プロパティは、ファイルの POSIXパスを返します。パスがファイルシステムを表す場合 (例: "/DATA/")、ファイルシステムが返されます。 このプロパティは **読み取り専用** です。 @@ -411,7 +411,7 @@ title: Document クラス #### 説明 -`.size` プロパティは、ファイルのサイズ (バイト単位) を返します。 ファイルがディスク上に存在しない場合、サイズは 0 になります。 +`.size` プロパティは、ファイルのサイズ (バイト単位) を返します。ファイルがディスク上に存在しない場合、サイズは 0 になります。 このプロパティは **読み取り専用** です。 @@ -451,7 +451,7 @@ title: Document クラス *destinationFolder* 引数が指定するフォルダーはディスク上に存在している必要があり、そうでない場合にはエラーが生成されます。 -デフォルトで、ファイルは元の名前を維持したままコピーされます。 コピーの際に名称を変更したい場合、新しい名前を *newName* に渡します。 新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 +デフォルトで、ファイルは元の名前を維持したままコピーされます。コピーの際に名称を変更したい場合、新しい名前を *newName* に渡します。新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 *destinationFolder* 引数が指定するフォルダー内に同じ名前のファイルが既に存在する場合、4D はデフォルトでエラーを生成します。 *overwrite* に `fk overwrite` 定数を渡すことで、既存のフォルダーを無視して上書きすることができます: @@ -553,7 +553,7 @@ $copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite) `.getIcon()` 関数は、ファイルのアイコンを返します。 -任意の *size* 引数を渡すと、返されるアイコンのサイズをピクセル単位で指定することができます。 この値は、実際にはアイコンを格納している正方形の一辺の長さを表しています。 アイコンは通常、32x32ピクセル ("大きいアイコン") または 16x16ピクセル ("小さいアイコン") で定義されています。 この引数に 0 を渡すか省略した場合、"大きいアイコン" が返されます。 +任意の *size* 引数を渡すと、返されるアイコンのサイズをピクセル単位で指定することができます。この値は、実際にはアイコンを格納している正方形の一辺の長さを表しています。アイコンは通常、32x32ピクセル ("大きいアイコン") または 16x16ピクセル ("小さいアイコン") で定義されています。この引数に 0 を渡すか省略した場合、"大きいアイコン" が返されます。 ファイルがディスク上に存在しない場合、デフォルトの空のアイコンが返されます。 @@ -595,15 +595,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" テーマの、以下の定数を使用することができます: "System Documents" テーマの、以下の定数を使用することができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/EmailObjectClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/EmailObjectClass.md index 7522c5119839e3..10dff467a7f4c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/EmailObjectClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/EmailObjectClass.md @@ -79,9 +79,9 @@ Email オブジェクトは次のプロパティを提供します: ### メール本文の扱い -[`textBody`](#textbody) および [`htmlBody`](#htmlbody) はどちらも[SMTP.send()](SMTPTransporterClass.md#send) でのみ使用され、これによって単純なメールの送信が可能になります。 プロパティが両方ともある場合、MIME content-type の multipart/alternative が使用されます。 メールクライアントは multipart/alternative パートを認識し、必要に応じてテキスト部または html 部を表示します。 +[`textBody`](#textbody) および [`htmlBody`](#htmlbody) はどちらも[SMTP.send()](SMTPTransporterClass.md#send) でのみ使用され、これによって単純なメールの送信が可能になります。プロパティが両方ともある場合、MIME content-type の multipart/alternative が使用されます。メールクライアントは multipart/alternative パートを認識し、必要に応じてテキスト部または html 部を表示します。 -[Email オブジェクト](#email-オブジェクト) が MIME ドキュメントからビルドされた場合 (例: `MAIL Convert from MIME` コマンドで生成されたとき) は、[`bodyStructure`](#bodystructure) および [`bodyValues`](#bodyvalues) が [SMTP](SMTPTransporterClass.md) に使用されます。 この場合、`bodyStructure` および `bodyValues` プロパティは両方一緒に渡される必要があり、`textBody` および `htmlBody` の使用は推奨されません。 +[Email オブジェクト](#email-オブジェクト) が MIME ドキュメントからビルドされた場合 (例: `MAIL Convert from MIME` コマンドで生成されたとき) は、[`bodyStructure`](#bodystructure) および [`bodyValues`](#bodyvalues) が [SMTP](SMTPTransporterClass.md) に使用されます。この場合、`bodyStructure` および `bodyValues` プロパティは両方一緒に渡される必要があり、`textBody` および `htmlBody` の使用は推奨されません。 #### bodyStructure および bodyValues オブジェクトの例 @@ -133,7 +133,7 @@ MailAttachment オブジェクトは [`MAIL New attachment`](../commands/mail-ne #### 説明 -`.bodyStructure` プロパティは、(任意) メッセージ本文の完全なMIME ストラクチャーである *EmailBodyPart* オブジェクトを格納します。 [メール本文の扱い](#メール本文の扱い) を参照ください。 +`.bodyStructure` プロパティは、(任意) メッセージ本文の完全なMIME ストラクチャーである *EmailBodyPart* オブジェクトを格納します。[メール本文の扱い](#メール本文の扱い) を参照ください。 `.bodyStructure` オブジェクトには、次のプロパティが格納されています: @@ -156,14 +156,14 @@ MailAttachment オブジェクトは [`MAIL New attachment`](../commands/mail-ne #### 説明 `.bodyValues` プロパティは、 -`bodyStructure` の 毎にオブジェクトを格納している *EmailBodyValue* オブジェクトを格納します (任意)。 [メール本文の扱い](#メール本文の扱い) を参照ください。 +`bodyStructure` の 毎にオブジェクトを格納している *EmailBodyValue* オブジェクトを格納します (任意)。[メール本文の扱い](#メール本文の扱い) を参照ください。 `.bodyValues` オブジェクトには、次のプロパティが格納されています: -| プロパティ | 型 | 値 | -| ------------------------------------------ | ------- | --------------------------------------------------------------------------------------------------------- | -| *partID*.value | text | 本文パートの値 | -| *partID*.isEncodingProblem | boolean | 文字セットをデコーディング中に、不正なフォーマットのセクション、未知の文字セット、あるいは未知の content-transfer-encoding が見つかった場合には true。 デフォルトは false。 | +| プロパティ | 型 | 値 | +| ------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------- | +| *partID*.value | text | 本文パートの値 | +| *partID*.isEncodingProblem | boolean | 文字セットをデコーディング中に、不正なフォーマットのセクション、未知の文字セット、あるいは未知の content-transfer-encoding が見つかった場合には true。デフォルトは false。 | ## .cc @@ -206,7 +206,7 @@ MailAttachment オブジェクトは [`MAIL New attachment`](../commands/mail-ne #### 説明 -`.headers` プロパティは、メッセージ内で現れる順番どおりの `EmailHeader` オブジェクトのコレクションを格納します。 これによってユーザーは拡張された (登録された) ヘッダーや、ユーザー定義された (登録されていない、"X" で始まる) ヘッダーを追加することができます。 +`.headers` プロパティは、メッセージ内で現れる順番どおりの `EmailHeader` オブジェクトのコレクションを格納します。これによってユーザーは拡張された (登録された) ヘッダーや、ユーザー定義された (登録されていない、"X" で始まる) ヘッダーを追加することができます。 > メールレベルですでにプロパティとして設定されている "from" または "cc" などのヘッダーを `EmailHeader` オブジェクトプロパティが定義している場合、`EmailHeader` プロパティは無視されます。 @@ -223,7 +223,7 @@ MailAttachment オブジェクトは [`MAIL New attachment`](../commands/mail-ne #### 説明 -`.htmlBody` プロパティは、(任意、SMTPのみ) HTML形式のメールメッセージ (デフォルトの文字セットは UTF-8) を格納します。 [メール本文の扱い](#メール本文の扱い) を参照ください。 +`.htmlBody` プロパティは、(任意、SMTPのみ) HTML形式のメールメッセージ (デフォルトの文字セットは UTF-8) を格納します。[メール本文の扱い](#メール本文の扱い) を参照ください。 ## .id @@ -282,7 +282,7 @@ MailAttachment オブジェクトは [`MAIL New attachment`](../commands/mail-ne `.messageId` プロパティは、メッセージ識別ヘッダー ("message-id") を格納します。 -通常は、"lettersOrNumbers@domainname" の形式、たとえば "abcdef.123456@4d.com" などです。 この固有ID は特にフォーラムや公開メーリングリストで使用されています。 一般的に、メールサーバーは送信するメッセージにこのヘッダーを自動的に追加します。 +通常は、"lettersOrNumbers@domainname" の形式、たとえば "abcdef.123456@4d.com" などです。この固有ID は特にフォーラムや公開メーリングリストで使用されています。一般的に、メールサーバーは送信するメッセージにこのヘッダーを自動的に追加します。 ## .receivedAt @@ -359,7 +359,7 @@ MailAttachment オブジェクトは [`MAIL New attachment`](../commands/mail-ne #### 説明 -`.textBody` プロパティは、(任意、SMTPのみ) 標準テキスト形式のメールメッセージ (デフォルトの文字セットは UTF-8) を格納します。 [メール本文の扱い](#メール本文の扱い) を参照ください。 +`.textBody` プロパティは、(任意、SMTPのみ) 標準テキスト形式のメールメッセージ (デフォルトの文字セットは UTF-8) を格納します。[メール本文の扱い](#メール本文の扱い) を参照ください。 ## .to diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md index 99031b5c4522b9..e40b4efb1d8905 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -3,7 +3,7 @@ id: EntityClass title: Entity --- -レコードとテーブルの関係と同様に、 [エンティティ](ORDA/dsMapping.md#エンティティ) は [データクラス](ORDA/dsMapping.md#データクラス) のインスタンスです。 エンティティはデータクラスと同じ属性を持つほか、データ値や、特有のプロパティおよび関数を持ちます。 +レコードとテーブルの関係と同様に、 [エンティティ](ORDA/dsMapping.md#エンティティ) は [データクラス](ORDA/dsMapping.md#データクラス) のインスタンスです。エンティティはデータクラスと同じ属性を持つほか、データ値や、特有のプロパティおよび関数を持ちます。 ### 概要 @@ -58,9 +58,9 @@ title: Entity - *attributeName* で指定した属性がストレージ型の場合: `.attributeName` は *attributeName* と同じ型の値を返します。 - *attributeName* で指定した属性が**リレートエンティティ**型の場合: - `.attributeName` はリレートエンティティを返します。 リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" + `.attributeName` はリレートエンティティを返します。リレートエンティティの値は、ドット記法でプロパティを繋げることでアクセス可能です。例: "myEntity.employer.employees[0].lastname" - *attributeName* で指定した属性が**リレートエンティティズ型**の場合: - `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 + `.attributeName` はリレートエンティティの新しいエンティティセレクションを返します。重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 #### 例題 @@ -103,11 +103,11 @@ title: Entity `.clone()` 関数は、対象エンティティと同じレコードを参照する新規エンティティをメモリ内に作成します。 -この関数を使用するとエンティティを個別に更新することができます。 ただし、パフォーマンス上の理由から、新しいエンティティはクローンされたエンティティのオブジェクト属性と同じ参照を共有すると言う点に注意して下さい。 +この関数を使用するとエンティティを個別に更新することができます。ただし、パフォーマンス上の理由から、新しいエンティティはクローンされたエンティティのオブジェクト属性と同じ参照を共有すると言う点に注意して下さい。 > エンティティに対して何らかの変更をおこなった場合、それらは [`.save()`](#save) 関数が実行されたときのみ、参照先のレコードに保存されるという点に注意してください。 -この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。 新規に作成されたエンティティ([`.isNew()`](#isnew) が **true** を返すもの) に対して呼び出すことはできません。 +この関数は、すでにデータベースに保存されているエンティティに対してのみ使用可能です。新規に作成されたエンティティ([`.isNew()`](#isnew) が **true** を返すもの) に対して呼び出すことはできません。 #### 例題 1 @@ -166,7 +166,7 @@ title: Entity *entityToCompare* には、オリジナルのエンティティと比較をするエンティティを渡します。 -*attributesToCompare* 引数では、比較する属性を指定することができます。 これを渡した場合、指定された属性に対してのみ比較がおこなわれます。 省略時には、エンティティ間の差異がすべて返されます。 +*attributesToCompare* 引数では、比較する属性を指定することができます。これを渡した場合、指定された属性に対してのみ比較がおこなわれます。省略時には、エンティティ間の差異がすべて返されます。 エンティティの差異は、以下のプロパティを持つオブジェクトのコレクションとして返されます: @@ -176,9 +176,9 @@ title: Entity | value | any - 属性の型による | オリジナルエンティティの属性値 | | otherValue | any - 属性の型による | *entityToCompare* の属性値 | -コレクションに含まれるのは異なる値を持っていた属性のみです。 差異が見つからない場合、`diff()` は空のコレクションを返します。 +コレクションに含まれるのは異なる値を持っていた属性のみです。差異が見つからない場合、`diff()` は空のコレクションを返します。 -この関数は、種類([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。 リレート先のエンティティそのものが更新されていた場合 (外部キーの変更)、リレートエンティティの名称とそのプライマリーキー名が返されます。 +この関数は、種類([kind](DataClassClass.md#attributename)) が **storage** あるいは **relatedEntity** であるプロパティに適用されます。リレート先のエンティティそのものが更新されていた場合 (外部キーの変更)、リレートエンティティの名称とそのプライマリーキー名が返されます。 比較するどちらかのエンティティが **Null** である場合、エラーが生成されます。 @@ -367,7 +367,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータをデータストアから削除します。 データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 +`.drop()` 関数は、データクラスに対応するテーブルにおいて、データストアのエンティティに格納されているデータをデータストアから削除します。データクラスに対応するテーブルからエンティティが削除される一方、 エンティティそのものはメモリ内に残るという点に注意してください。 マルチユーザー、あるいはマルチプロセスアプリケーションにおいて、`.drop()` 関数は ["オプティミスティック・ロック"](ORDA/entities.md#entity-locking) 機構のもとで実行されます。これはレコードが保存されるたびに内部的なロックスタンプが自動的に増分していくという機構です。 @@ -402,15 +402,15 @@ 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 if stamp changed` オプションを使用した場合に返されることがあります。
  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "Already locked" (既にロックされています) | -| `dk status validation failed` | 7 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的ではないエラー。 **割り当てられた statusText**: "Mild Validation Error" (緩やかな検証エラー) | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "Other error" (その他のエラー) | -| `dk status serious validation error` | 8 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的なエラー。 **割り当てられたstatusText**: "Serious Validation Error" (深刻な検証エラー) | -| `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 if stamp changed` オプションを使用した場合に返されることがあります。
  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。
    **割り当てられた statusText**: "Already locked" (既にロックされています) | +| `dk status validation failed` | 7 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的ではないエラー。**割り当てられた statusText**: "Mild Validation Error" (緩やかな検証エラー) | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    **割り当てられた statusText**: "Other error" (その他のエラー) | +| `dk status serious validation error` | 8 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的なエラー。**割り当てられたstatusText**: "Serious Validation Error" (深刻な検証エラー) | +| `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 @@ -530,8 +530,8 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ オブジェクトとエンティティ間のマッピングは属性名でおこなわれます: - オブジェクトのプロパティがデータクラスに存在しない場合、それは無視されます。 -- データタイプは同じである必要があります。 オブジェクトとデータクラス間で型が合致しない場合、4D は可能であればデータを変換しようとし ([`データタイプの変換`](Concepts/data-types.md#データタイプの変換)) 参照)、それ以外の場合にはその属性は更新されません。 -- プライマリーキーはそのまま、あるいは "__KEY" プロパティを (プライマリーキー値とともに) 使って指定することができます。 その値のエンティティがデータクラス内に存在しない場合には、[.save()](#save) が呼び出されたときに指定値を使ってエンティティが作成されます。 プライマリーキーを指定していない場合、エンティティは作成され、データベースのルールに基づいてプライマリーキー値が割り当てられます。 自動インクリメント機能はプライマリーキーが null の場合にのみ計算されます。 +- データタイプは同じである必要があります。オブジェクトとデータクラス間で型が合致しない場合、4D は可能であればデータを変換しようとし ([`データタイプの変換`](Concepts/data-types.md#データタイプの変換)) 参照)、それ以外の場合にはその属性は更新されません。 +- プライマリーキーはそのまま、あるいは "__KEY" プロパティを (プライマリーキー値とともに) 使って指定することができます。その値のエンティティがデータクラス内に存在しない場合には、[.save()](#save) が呼び出されたときに指定値を使ってエンティティが作成されます。プライマリーキーを指定していない場合、エンティティは作成され、データベースのルールに基づいてプライマリーキー値が割り当てられます。自動インクリメント機能はプライマリーキーが null の場合にのみ計算されます。 *filler* 引数のオブジェクトは、以下の条件のいずれかを満たしている場合にはリレートエンティティを扱うことができます: @@ -613,7 +613,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ #### 説明 -`.getDataClass()` 関数は、エンティティのデータクラスを返します。 この関数は汎用的なコードを書くのに有用です。 +`.getDataClass()` 関数は、エンティティのデータクラスを返します。この関数は汎用的なコードを書くのに有用です。 #### 例題 @@ -702,7 +702,7 @@ vCompareResult3 ($e1 において更新された (touch された) 属性のみ -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -815,9 +815,9 @@ $info:=$address.getRemoteContextAttributes() `.getStamp()` 関数は、 エンティティのスタンプの値を返します。 -内部スタンプは、エンティティが保存されるたびに 4D によって自動的にインクリメントされます。 これは同じエンティティに対する複数のユーザーの同時アクセス・編集を管理します。この機構の詳細については、[**エンティティロッキング**](ORDA/entities.md#エンティティロッキング) を参照ください。 +内部スタンプは、エンティティが保存されるたびに 4D によって自動的にインクリメントされます。これは同じエンティティに対する複数のユーザーの同時アクセス・編集を管理します。この機構の詳細については、[**エンティティロッキング**](ORDA/entities.md#エンティティロッキング) を参照ください。 -> (一度も保存されていない) 新規エンティティに対しては、このメソッドは 0 を返します。 しかしながら、エンティティがまだ作成されたばかりかどうかを調べるには、[isNew()](#isnew) の使用が推奨されます。 +> (一度も保存されていない) 新規エンティティに対しては、このメソッドは 0 を返します。しかしながら、エンティティがまだ作成されたばかりかどうかを調べるには、[isNew()](#isnew) の使用が推奨されます。 #### 例題 @@ -907,16 +907,16 @@ $info:=$address.getRemoteContextAttributes()
    -| 引数 | 型 | | 説明 | -| --- | ------- | :-------------------------: | ------------------------------------------------------- | -| 戻り値 | Boolean | <- | エンティティが作成されたばかりで未保存の場合は true。 それ以外は false。 それ以外は false。 | +| 引数 | 型 | | 説明 | +| --- | ------- | :-------------------------: | ------------------------------------------------------ | +| 戻り値 | Boolean | <- | エンティティが作成されたばかりで未保存の場合は true。 それ以外は false。それ以外は false。 |
    #### 説明 -`.isNew()` 関数は、対象エンティティが作成されたばかりで、まだデータストアに保存されていない場合にtrue を返します。 そうでない場合には、false を返します。 +`.isNew()` 関数は、対象エンティティが作成されたばかりで、まだデータストアに保存されていない場合にtrue を返します。そうでない場合には、false を返します。 #### 例題 @@ -1003,14 +1003,14 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.lock()` 関数は、対象エンティティが参照するレコードにペシミスティック・ロック をかけます。 [ロック](ORDA/entities.md#エンティティロッキング)はレコードと、カレントプロセス内の当該エンティティの参照すべてに対してかけられます。 +`.lock()` 関数は、対象エンティティが参照するレコードにペシミスティック・ロック をかけます。[ロック](ORDA/entities.md#エンティティロッキング)はレコードと、カレントプロセス内の当該エンティティの参照すべてに対してかけられます。 -他のプロセスからはこのレコードがロックされて見えます (この関数を使って同エンティティをロックしようとした場合、`result.success` プロパティには False が返されます)。 ロックをおこなったセッション内で実行される関数のみが、当該エンティティの属性を編集・保存できます。 他のセッションは同エンティティを読み取り専用にロードできますが、値の入力・保存はできません。 +他のプロセスからはこのレコードがロックされて見えます (この関数を使って同エンティティをロックしようとした場合、`result.success` プロパティには False が返されます)。ロックをおこなったセッション内で実行される関数のみが、当該エンティティの属性を編集・保存できます。他のセッションは同エンティティを読み取り専用にロードできますが、値の入力・保存はできません。 `.lock()` でロックされたレコードは、以下の場合にロック解除されます: - 同プロセス内で合致するエンティティに対して [`.unlock()`](#unlock) 関数が呼び出された場合 -- メモリ内のどのエンティティからも参照されなくなった場合、自動的にロックが解除されます。 たとえば、エンティティのローカル参照に対してのみロックがかかっていた場合、関数の実行が終了すればロックは解除されます。 メモリ内にエンティティへの参照がある限り、レコードはロックされたままです。 +- メモリ内のどのエンティティからも参照されなくなった場合、自動的にロックが解除されます。たとえば、エンティティのローカル参照に対してのみロックがかかっていた場合、関数の実行が終了すればロックは解除されます。メモリ内にエンティティへの参照がある限り、レコードはロックされたままです。 :::note 注記 @@ -1037,7 +1037,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 | マシン上でのセッションユーザー名 | @@ -1058,12 +1058,12 @@ $info:=$address.getRemoteContextAttributes() (\*) エラー時には *Result* オブジェクトの *status* あるいは *statusText* プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 `.drop()` を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload if stamp changed` オプションを使用した場合に返されることがあります。

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

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

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

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

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

  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。
    ***割り当てられた statusText***: "Other error" (その他のエラー) | #### 例題 @@ -1288,17 +1288,17 @@ $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` オプションを渡すと自動マージモードが有効化され、別のプロセス/ユーザーが同エンティティに対して同時に変更を行なっていても、異なる属性に対する変更であればエラーは生成されません。 エンティティに保存されるデータは、別々の変更処理の組み合わせ ("マージ (併合)") になります (同じ属性に対して変更がおこなわれた場合には、自動マージモードであっても保存は失敗し、エラーが返されます)。 +*mode* に `dk auto merge` オプションを渡すと自動マージモードが有効化され、別のプロセス/ユーザーが同エンティティに対して同時に変更を行なっていても、異なる属性に対する変更であればエラーは生成されません。エンティティに保存されるデータは、別々の変更処理の組み合わせ ("マージ (併合)") になります (同じ属性に対して変更がおこなわれた場合には、自動マージモードであっても保存は失敗し、エラーが返されます)。 -> ピクチャー・オブジェクト・テキスト型属性で、レコードの外にデータを保存している場合には、自動マージモードは利用できません。 これらの属性に同時の変更があった場合には `dk status stamp has changed` エラーになります。 +> ピクチャー・オブジェクト・テキスト型属性で、レコードの外にデータを保存している場合には、自動マージモードは利用できません。これらの属性に同時の変更があった場合には `dk status stamp has changed` エラーになります。 **戻り値** @@ -1331,16 +1331,16 @@ $info:=$address.getRemoteContextAttributes() エラー時には Result オブジェクトの `status` あるいは `statusText` プロパティに以下のいずれかの値が返されます: -| 定数 | 値 | 説明 | -| ----------------------------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `dk status automerge failed` | 6 | (`dk auto merge` オプションが使用されたときのみ) エンティティを保存するときに自動マージオプションが失敗しました。 **割り当てられた statusText**: "Auto merge failed" (自動マージ失敗) | -| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。 このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 `.drop()` を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload if stamp changed` オプションを使用した場合に返されることがあります。

  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | -| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。 **割り当てられた statusText**: "Already locked" (既にロックされています) | -| `dk status validation failed` | 7 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的ではないエラー。 **割り当てられた statusText**: "Mild Validation Error" (緩やかな検証エラー) | -| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。 **割り当てられた statusText**: "Other error" (その他のエラー) | -| `dk status serious validation error` | 8 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的なエラー。 **割り当てられたstatusText**: "Serious Validation Error" (深刻な検証エラー) | -| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
  • `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
  • `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

  • **割り当てられた statusText**: "Stamp has changed" (スタンプが変更されました) | -| `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。 **割り当てられた statusText**: "Permission Error" (権限エラー) | +| 定数 | 値 | 説明 | +| ----------------------------------------- | - | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status automerge failed` | 6 | (`dk auto merge` オプションが使用されたときのみ) エンティティを保存するときに自動マージオプションが失敗しました。**割り当てられた statusText**: "Auto merge failed" (自動マージ失敗) | +| `dk status entity does not exist anymore` | 5 | エンティティはもうデータ内に存在していません。このエラーは以下のような場合に起きえます:
  • エンティティがドロップされている (スタンプが変更されていて、メモリ空間は解放されている)
  • エンティティがドロップされていて、他のプライマリーキー値を持つエンティティで置き換えられている (スタンプは変更されていて、新しいエンティティがメモリ空間を使用している)。 `.drop()` を使用するとき、このエラーは dk force drop if stamp changed オプションを使用した場合に返されることがあります。 `entity.lock()` を使用するとき、このエラーは `dk reload if stamp changed` オプションを使用した場合に返されることがあります。

  • **割り当てられた statusText**: "Entity does not exist anymore" (エンティティはもう存在しません) | +| `dk status locked` | 3 | エンティティはペシミスティック・ロックでロックされています。**割り当てられた statusText**: "Already locked" (既にロックされています) | +| `dk status validation failed` | 7 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的ではないエラー。**割り当てられた statusText**: "Mild Validation Error" (緩やかな検証エラー) | +| `dk status serious error` | 4 | 深刻なエラーとは、低レベルのデータベースエラー (例: 重複キー)、ハードウェアエラーなどです。 **割り当てられた statusText**: "Other error" (その他のエラー) | +| `dk status serious validation error` | 8 | [検証イベント](../ORDA/orda-events.md) 用にデベロッパーから送信された、致命的なエラー。**割り当てられたstatusText**: "Serious Validation Error" (深刻な検証エラー) | +| `dk status stamp has changed` | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません (オプティミスティック・ロック)。
  • `.save()` の場合: `dk auto merge` オプションが使用されていない場合に限りエラー
  • `.drop()` の場合: `dk force drop if stamp changed` オプションが使用されていない場合に限りエラー
  • `.lock()` の場合: `dk reload if stamp changed` オプションが使用されていない場合に限りエラー

  • **割り当てられた statusText**: "Stamp has changed" (スタンプが変更されました) | +| `dk status wrong permission` | 1 | 現在の権限では、エンティティを保存することはできません。**割り当てられた statusText**: "Permission Error" (権限エラー) | #### 例題 1 @@ -1432,15 +1432,15 @@ $info:=$address.getRemoteContextAttributes() #### 説明 -`.toObject()` 関数は、エンティティからビルトされたオブジェクトを返します。 エンティティの属性値を格納します +`.toObject()` 関数は、エンティティからビルトされたオブジェクトを返します。エンティティの属性値を格納します *filterString* 引数が空の文字列、あるいは "\*" の場合、以下のいずれかが返されます: - すべてのストレージエンティティ属性 -- リレートエンティティ型の属性 ([kind](DataClassClass.md#attributename) が `relatedEntity`) : リレートエンティティと同じ名前 (N対1リレーション名) のプロパティ。 属性は単純な形式で取得されます。 +- リレートエンティティ型の属性 ([kind](DataClassClass.md#attributename) が `relatedEntity`) : リレートエンティティと同じ名前 (N対1リレーション名) のプロパティ。属性は単純な形式で取得されます。 - リレートエンティティズ型の属性 ([kind](DataClassClass.md#attributename) が `relatedEntities`): 属性は返されません。 -最初の引数として、取得するエンティティ属性を渡します。 以下のものを渡すことができます: +最初の引数として、取得するエンティティ属性を渡します。以下のものを渡すことができます: - *filterString*: プロパティパスをカンマで区切った文字列: "propertyPath1, propertyPath2, ..." または - *filterCol*: 文字列のコレクション: \["propertyPath1","propertyPath2";...] @@ -1722,11 +1722,11 @@ employeeObject:=employeeSelected.toObject("directReports.*") #### 説明 `.touched()` 関数は、 -エンティティがメモリに読み込まれてから、あるいは保存されてから、少なくとも1つのエンティティ属性が変更されていた場合にはTrue を返します。 この関数を使用することで、エンティティを保存する必要があるかどうかを確認することができます。 +エンティティがメモリに読み込まれてから、あるいは保存されてから、少なくとも1つのエンティティ属性が変更されていた場合にはTrue を返します。この関数を使用することで、エンティティを保存する必要があるかどうかを確認することができます。 これは属性の[`kind`](DataClassClass.md#返されるオブジェクト) が"storage" あるいは "relatedEntity" である属性のみに適用されます。 -[`.new()`](DataClassClass.md#new) を使用して新規に作成したばかりの新しいエンティティについては、この関数はFalse を返します。 しかしながら、このコンテキストにおいて[`autoFilled` プロパティ](./DataClassClass.md#返されるオブジェクト) がTrue である属性にアクセスすると、`.touched()` 関数はTrue を返します。 例えば、新しいエンティティに対して`$id:=ds.Employee.ID` を実行すると (ID 属性に "自動インクリメント" プロパティが設定されていると仮定)、`.touched()` は True を返します。 +[`.new()`](DataClassClass.md#new) を使用して新規に作成したばかりの新しいエンティティについては、この関数はFalse を返します。しかしながら、このコンテキストにおいて[`autoFilled` プロパティ](./DataClassClass.md#返されるオブジェクト) がTrue である属性にアクセスすると、`.touched()` 関数はTrue を返します。例えば、新しいエンティティに対して`$id:=ds.Employee.ID` を実行すると (ID 属性に "自動インクリメント" プロパティが設定されていると仮定)、`.touched()` は True を返します。 #### 例題 @@ -1875,10 +1875,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/current/API/EntitySelectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md index a302345d8db23f..fee188f80e395d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md @@ -3,9 +3,9 @@ id: EntitySelectionClass title: EntitySelection --- -エンティティセレクションとは、同じ [データクラス](ORDA/dsMapping.md#データクラス) に所属する一つ以上の[エンティティ](ORDA/dsMapping.md#エンティティ) への参照を格納しているオブジェクトのことです。 エンティティセレクションは、データクラスから 0個、1個、あるいは X個のエンティティを格納することができます (X はデータクラスに格納されているエンティティの総数です)。 +エンティティセレクションとは、同じ [データクラス](ORDA/dsMapping.md#データクラス) に所属する一つ以上の[エンティティ](ORDA/dsMapping.md#エンティティ) への参照を格納しているオブジェクトのことです。エンティティセレクションは、データクラスから 0個、1個、あるいは X個のエンティティを格納することができます (X はデータクラスに格納されているエンティティの総数です)。 -エンティティセレクションは、[`.all()`](DataClassClass.md#all)、[`.query()`](DataClassClass.md#query) などの [`DataClass` クラス](DataClassClass.md) の関数や、[`.and()`](#and)、[`orderBy()`](#orderby) など `EntitySelection` クラス自身の関数を用いて、既存のセレクションから作成することができます。 また、[`dataClass.newSelection()`](DataClassClass.md#newselection) 関数または [`Create entity selection`](../commands/create-entity-selection) コマンドを使用して、空のエンティティセレクションを作成することもできます。 +エンティティセレクションは、[`.all()`](DataClassClass.md#all)、[`.query()`](DataClassClass.md#query) などの [`DataClass` クラス](DataClassClass.md) の関数や、[`.and()`](#and)、[`orderBy()`](#orderby) など `EntitySelection` クラス自身の関数を用いて、既存のセレクションから作成することができます。また、[`dataClass.newSelection()`](DataClassClass.md#newselection) 関数または [`Create entity selection`](../commands/create-entity-selection) コマンドを使用して、空のエンティティセレクションを作成することもできます。 ### 概要 @@ -78,7 +78,7 @@ title: EntitySelection :::caution -`EntitySelection[index]` は代入不可の式です。これは、 [`.lock()`](EntityClass.md#lock) や [`.save()`](EntityClass.md#save) などの関数において、編集可能なエンティティ参照として使用することはできない、ということを意味します。 エンティティを操作するには、戻り値を変数などの代入可能な式に割り当てる必要があります。 例: +`EntitySelection[index]` は代入不可の式です。これは、 [`.lock()`](EntityClass.md#lock) や [`.save()`](EntityClass.md#save) などの関数において、編集可能なエンティティ参照として使用することはできない、ということを意味します。エンティティを操作するには、戻り値を変数などの代入可能な式に割り当てる必要があります。例: ```4d $sel:=ds.Employee.all() // エンティティセレクションを作成 @@ -121,16 +121,16 @@ $result:=$sel[0].lock() //動作しません #### 説明 -データクラス属性はすべてエンティティセレクションのプロパティとして利用可能で、エンティティセレクション内の属性値の "投影" を返します。 戻り値は、属性の種類 ([kind](DataClassClass.md#attributename) が `storage` あるいは `relation`) によって、コレクションあるいは新しいエンティティセレクションのどちらかになります。 +データクラス属性はすべてエンティティセレクションのプロパティとして利用可能で、エンティティセレクション内の属性値の "投影" を返します。戻り値は、属性の種類 ([kind](DataClassClass.md#attributename) が `storage` あるいは `relation`) によって、コレクションあるいは新しいエンティティセレクションのどちらかになります。 - *attributeName* で指定した属性がストレージ型の場合: `.attributeName`は *attributeName* と同じ型の値のコレクションを返します。 - *attributeName* で指定した属性がリレートエンティティ型の場合: - `.attributeName` は *attributeName* と同じ型のリレート値の新規エンティティセレクションを返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 + `.attributeName` は *attributeName* と同じ型のリレート値の新規エンティティセレクションを返します。重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 - *attributeName* で指定した属性がリレートエンティティズ型の場合: - `.attributeName` は *attributeName* と同じ型のリレート値の新規エンティティセレクション を返します。 重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 + `.attributeName` は *attributeName* と同じ型のリレート値の新規エンティティセレクション を返します。重複しているエンティティは取り除かれます (返されるのは順列なしのエンティティセレクションです)。 -エンティティセレクションのプロパティとしてリレーション属性が使用されると、返される結果は、たとえ返されるエンティティが一つだけだとしても、常に新しいエンティティセレクションとなります。 エンティティが何も返ってこない場合には、返されるのは空のエンティティセレクション です。 +エンティティセレクションのプロパティとしてリレーション属性が使用されると、返される結果は、たとえ返されるエンティティが一つだけだとしても、常に新しいエンティティセレクションとなります。エンティティが何も返ってこない場合には、返されるのは空のエンティティセレクション です。 属性がエンティティセレクション内に存在しない場合、エラーが返されます。 @@ -216,13 +216,13 @@ $result:=$sel[0].lock() //動作しません :::info 警告 -エンティティセレクションは *追加可能* のものでなければなりません。つまり [`.newSelection()`](DataClassClass.md#newselection) あるいは `Create entity selection` などで作成されたものでなければならないということです。そうでない場合、 `.add()` はエラーを返します。 共有可能なエンティティセレクションはエンティティの追加を受け付けないからです。 詳細については [共有可能/追加可能なエンティティセレクション](ORDA/entities.md#共有可能追加可能なエンティティセレクション) を参照ください。 +エンティティセレクションは *追加可能* のものでなければなりません。つまり [`.newSelection()`](DataClassClass.md#newselection) あるいは `Create entity selection` などで作成されたものでなければならないということです。そうでない場合、 `.add()` はエラーを返します。共有可能なエンティティセレクションはエンティティの追加を受け付けないからです。詳細については [共有可能/追加可能なエンティティセレクション](ORDA/entities.md#共有可能追加可能なエンティティセレクション) を参照ください。 ::: **エンティティの追加** -- エンティティセレクションが順列ありの場合、*entity* 引数のエンティティはセレクションの最後に追加されます。 同じエンティティへの参照がそのエンティティセレクションにすでに所属していた場合、エンティティは重複することになり、同エンティティの新しい参照が追加されます。 +- エンティティセレクションが順列ありの場合、*entity* 引数のエンティティはセレクションの最後に追加されます。同じエンティティへの参照がそのエンティティセレクションにすでに所属していた場合、エンティティは重複することになり、同エンティティの新しい参照が追加されます。 - エンティティセレクションが順列なしの場合、*entity* 引数のエンティティはセレクションの不特定の場所へ追加され、順番付けはされません。 **エンティティセレクションの追加** @@ -234,7 +234,7 @@ $result:=$sel[0].lock() //動作しません 編集されたエンティティセレクションが関数から返されるため、関数の呼び出しをつなげることができます。 -*entity* 引数のエンティティとエンティティセレクション が同じデータクラスに属していない場合、エラーが発生します。 追加するエンティティが Null であった場合には、エラーは発生しません。 +*entity* 引数のエンティティとエンティティセレクション が同じデータクラスに属していない場合、エラーが発生します。追加するエンティティが Null であった場合には、エラーは発生しません。 #### 例題 1 @@ -265,7 +265,7 @@ $result:=$sel[0].lock() //動作しません #### 例題 3 -ユーザーインターフェースにおいて、2つのリストがあるとします。 ユーザーは 1つ目のリストのアイテムを複数選択し、それらを 2つ目のリストに追加します。 +ユーザーインターフェースにおいて、2つのリストがあるとします。ユーザーは 1つ目のリストのアイテムを複数選択し、それらを 2つ目のリストに追加します。 ```4d $sellist2:=$sellist2.add($sellist1) @@ -304,10 +304,10 @@ $sellist2:=$sellist2.add($sellist1) `.and()` 関数は、エンティティセレクションと *entity* あるいは *entitySelection* 引数をAND論理演算子を使用して結合します。 戻り値は、エンティティセレクションと引数の両方から参照されているエンティティのみを格納した、順列なしの新規エンティティセレクションです。 -- *entity* 引数を渡した場合、引数のエンティティをエンティティセレクションと結合させることになります。 エンティティがエンティティセレクションに属している場合、そのエンティティのみを格納する新しいエンティティセレクションが返されます。 そうでない場合、空のエンティティセレクションが返されます。 -- *entitySelection* 引数を渡した場合、二つのエンティティセレクション を結合させることになります。 両方のセレクションから参照されているエンティティのみを格納する新しいエンティティセレクションが返されます。 重複するエンティティがなかった場合、空のエンティティセレクションが返されます。 +- *entity* 引数を渡した場合、引数のエンティティをエンティティセレクションと結合させることになります。エンティティがエンティティセレクションに属している場合、そのエンティティのみを格納する新しいエンティティセレクションが返されます。そうでない場合、空のエンティティセレクションが返されます。 +- *entitySelection* 引数を渡した場合、二つのエンティティセレクション を結合させることになります。両方のセレクションから参照されているエンティティのみを格納する新しいエンティティセレクションが返されます。重複するエンティティがなかった場合、空のエンティティセレクションが返されます。 -> [順列ありと順列なしのエンティティセレクション](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を比較することができます。 返されるセレクションは常に順列なしのものになります。 +> [順列ありと順列なしのエンティティセレクション](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を比較することができます。返されるセレクションは常に順列なしのものになります。 元のエンティティセレクションあるいは *entitySelection* 引数が空であった場合、あるいは*entity* 引数が Null であった場合、空のエンティティセレクションが返されます。 @@ -421,7 +421,7 @@ $emp2:=$employees.at(-3) // $employees エンティティセレクションの *attributePath* 引数として、評価する属性パスを渡します。 -計算の対象となるのは数値のみです。 ただし、エンティティセレクションの *attributePath* 引数で指定したパスに異なる型の値が混在している場合、 `.average()` はすべてのスカラー要素を対象として平均値を算出します。 +計算の対象となるのは数値のみです。ただし、エンティティセレクションの *attributePath* 引数で指定したパスに異なる型の値が混在している場合、 `.average()` はすべてのスカラー要素を対象として平均値を算出します。 > 日付値は数値 (秒数) に変換され、平均を計算するのに使用されます。 @@ -474,7 +474,7 @@ $emp2:=$employees.at(-3) // $employees エンティティセレクションの `.clean()` 関数は、元のエンティティセレクションに基づいた、削除済エンティティを含まない新しいエンティティセレクションを返します。 -デフォルトでは、あるエンティティが削除 ([drop](EntitySelectionClass.md#drop)) された場合、既存のエンティティセレクション内のこのエンティティへの参照は *undefined* になりますが、エンティティセレクションオブジェクト から参照そのものは削除されません。 削除されたエンティティは、[`.length`](#length) プロパティの数にまだ含まれており、リストなどのインターフェースオブジェクトにエンティティセレクションがバインドされている場合、空白の行として表示されます。 この場合、エンティティセレクションに対して `.clean()` 関数を呼び出すことで、*undefined* なエンティティ参照が含まれない、最新のエンティティセレクションを新規に取得することができます。 +デフォルトでは、あるエンティティが削除 ([drop](EntitySelectionClass.md#drop)) された場合、既存のエンティティセレクション内のこのエンティティへの参照は *undefined* になりますが、エンティティセレクションオブジェクト から参照そのものは削除されません。削除されたエンティティは、[`.length`](#length) プロパティの数にまだ含まれており、リストなどのインターフェースオブジェクトにエンティティセレクションがバインドされている場合、空白の行として表示されます。この場合、エンティティセレクションに対して `.clean()` 関数を呼び出すことで、*undefined* なエンティティ参照が含まれない、最新のエンティティセレクションを新規に取得することができます。 結果のエンティティセレクションは、元のエンティティセレクションと同じ種別になります ([順序あり/順序なし](../ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし)、[変更可能/共有可能](../ORDA/entities.md#共有可能追加可能なエンティティセレクション) の種別が保持されます)。 @@ -530,7 +530,7 @@ $sel2:=$sel.clean() `.contains()` 関数は、エンティティ参照がエンティティセレクションに属している場合には true を返します。そうでない場合には false を返します。 -*entity* 引数として、エンティティセレクション内で検索するエンティティを渡します。 エンティティが Null の場合、関数は false を返します。 +*entity* 引数として、エンティティセレクション内で検索するエンティティを渡します。エンティティが Null の場合、関数は false を返します。 *entity* 引数とエンティティセレクションが同じデータクラスのものでない場合、エラーが生成されます。 @@ -583,7 +583,7 @@ $sel2:=$sel.clean() `.count()` 関数は、 エンティティセレクション内で *attributePath* に指定したパスの値が null でないエンティティの数を返します。 -> 対象となるのはスカラー値のみです。 オブジェクトあるいはコレクション型の値は Null値とみなされます。 +> 対象となるのはスカラー値のみです。オブジェクトあるいはコレクション型の値は Null値とみなされます。 以下の場合には、エラーが返されます: @@ -636,7 +636,7 @@ $sel2:=$sel.clean() > この関数は、元のエンティティセレクションを変更しません。 -*option* パラメーターが省略された場合はデフォルトで、たとえコピー元が共有可能なエンティティセレクション であったとしても、関数はデフォルトで追加可能な (共有不可の) 新規エンティティセレクションを返します。 共有可能なエンティティセレクションを取得するには、*option* に `ck shared` 定数を渡します。 +*option* パラメーターが省略された場合はデフォルトで、たとえコピー元が共有可能なエンティティセレクション であったとしても、関数はデフォルトで追加可能な (共有不可の) 新規エンティティセレクションを返します。共有可能なエンティティセレクションを取得するには、*option* に `ck shared` 定数を渡します。 > 詳細については [共有可能/追加可能なエンティティセレクション](ORDA/entities.md#共有可能追加可能なエンティティセレクション) を参照ください。 @@ -706,7 +706,7 @@ $sel2:=$sel.clean() 返されたコレクションは自動的に並べ替えられています。 **Null** 値 は返されません。 -*attributePath* 引数として、固有の値を取得したいエンティティ属性を渡します。 スカラー値 (テキスト、数値、ブール、あるいは日付) のみが可能です。 *attributePath* のパスが異なる型の値を格納しているオブジェクトプロパティ であった場合、まず最初に型ごとにグループ分けされ、そのあとで並べ替えされます。 型は以下の順番で返されます: +*attributePath* 引数として、固有の値を取得したいエンティティ属性を渡します。スカラー値 (テキスト、数値、ブール、あるいは日付) のみが可能です。 *attributePath* のパスが異なる型の値を格納しているオブジェクトプロパティ であった場合、まず最初に型ごとにグループ分けされ、そのあとで並べ替えされます。型は以下の順番で返されます: 1. ブール 2. 文字列 @@ -717,10 +717,10 @@ $sel2:=$sel.clean() *options* 引数として、以下の定数を 1つ、または組み合わせで渡すことができます: -| 定数 | 値 | 説明 | -| ----------------- | -- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk diacritical` | 8 | 文字の大小とアクセントを区別して評価をおこないます。 省略された場合のデフォルトでは、アクセント等の発音区別符号を無視した評価が実行されます。 | -| `dk count values` | 32 | 特定の値を持つエンティティの数 (重複がなければ 1、重複があればその数) を返します。 このオプションを渡すと、 `.distinct()` は、`{"value":*value*; "count":*count*}` のプロパティを含むオブジェクトのコレクションを返します。 | +| 定数 | 値 | 説明 | +| ----------------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk diacritical` | 8 | 文字の大小とアクセントを区別して評価をおこないます。省略された場合のデフォルトでは、アクセント等の発音区別符号を無視した評価が実行されます。 | +| `dk count values` | 32 | 特定の値を持つエンティティの数 (重複がなければ 1、重複があればその数) を返します。このオプションを渡すと、 `.distinct()` は、`{"value":*value*; "count":*count*}` のプロパティを含むオブジェクトのコレクションを返します。 | :::note @@ -797,7 +797,7 @@ $jobs:=ds.Employee.all().distinct("jobName";dk count values) *attribute* が、インデックスされているオブジェクト属性でない場合、エラーが生成されます。 -呼び出し後、返されるコレクションのサイズは、対象のエンティティセレクションにおいて *attribute* で指定したオブジェクト属性が持つ重複しないパスの数に等しくなります。 パスは、ネストされた属性やコレクション ("info.address.number" や "children[].birthdate" など) を含め、文字列として返されます。 *attribute* が null 値のエンティティは考慮されません。 +呼び出し後、返されるコレクションのサイズは、対象のエンティティセレクションにおいて *attribute* で指定したオブジェクト属性が持つ重複しないパスの数に等しくなります。パスは、ネストされた属性やコレクション ("info.address.number" や "children[].birthdate" など) を含め、文字列として返されます。 *attribute* が null 値のエンティティは考慮されません。 #### 例題 @@ -850,11 +850,11 @@ $paths:=ds.Employee.all().distinctPaths("fullData") #### 説明 -`.drop()` 関数は、 データストアのデータクラスに対応するテーブルから、エンティティセレクションに所属しているエンティティを削除します。 エンティティセレクションはメモリ内に残ります。 +`.drop()` 関数は、 データストアのデータクラスに対応するテーブルから、エンティティセレクションに所属しているエンティティを削除します。エンティティセレクションはメモリ内に残ります。 -> エンティティの削除は恒久的なものであり、取り消しはできません。 ロールバックで戻すことができるように、この関数はトランザクション内で呼び出すことが推奨されています。 +> エンティティの削除は恒久的なものであり、取り消しはできません。ロールバックで戻すことができるように、この関数はトランザクション内で呼び出すことが推奨されています。 -`.drop()` の実行中にロックされたエンティティに遭遇した場合、そのエンティティは削除されません。 デフォルトでは、メソッドはエンティティセレクション内のすべてのエンティティを処理し、ドロップ不可なエンティティはエンティティセレクション内に返します。 最初のドロップ不可なエンティティに遭遇した時点でメソッドの実行を止めたい場合は、*mode* パラメーターに `dk stop dropping on first error` 定数を渡します。 +`.drop()` の実行中にロックされたエンティティに遭遇した場合、そのエンティティは削除されません。デフォルトでは、メソッドはエンティティセレクション内のすべてのエンティティを処理し、ドロップ不可なエンティティはエンティティセレクション内に返します。最初のドロップ不可なエンティティに遭遇した時点でメソッドの実行を止めたい場合は、*mode* パラメーターに `dk stop dropping on first error` 定数を渡します。 #### 例題 @@ -939,9 +939,9 @@ $paths:=ds.Employee.all().distinctPaths("fullData") **.extract ( attributePath ; targetPath { ; ...attributePathN ; ... targetPathN}) : Collection** -このシンタックスを使用すると、`.extract()` は *attributePath* 引数で指定されたプロパティを持つコレクションを作成して返します。 このコレクションのそれぞれの要素は、*targetPath* 引数のプロパティと、対応する*attributePath* 引数のプロパティを格納したオブジェクトです。 Null値はそのまま保持されます (このシンタックスでは *option* に引数を渡しても無視されます)。 +このシンタックスを使用すると、`.extract()` は *attributePath* 引数で指定されたプロパティを持つコレクションを作成して返します。このコレクションのそれぞれの要素は、*targetPath* 引数のプロパティと、対応する*attributePath* 引数のプロパティを格納したオブジェクトです。 Null値はそのまま保持されます (このシンタックスでは *option* に引数を渡しても無視されます)。 -複数の *attributePath* 引数が渡した場合、それぞれに対して *targetPath* 引数を渡す必要があります。 有効な \[*attributePath*, *targetPath*] のペアのみが取得されます。 +複数の *attributePath* 引数が渡した場合、それぞれに対して *targetPath* 引数を渡す必要があります。有効な \[*attributePath*, *targetPath*] のペアのみが取得されます。 - [.kind](DataClassClass.md#attributename) = "relatedEntity" であるデータクラス属性は、エンティティとして取得されます。 - [.kind](DataClassClass.md#attributename) = "relatedEntities" であるデータクラス属性は、エンティティセレクションとして取得されます。 @@ -1126,7 +1126,7 @@ $paths:=ds.Employee.all().distinctPaths("fullData") -> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。 ほとんどの場合、使用する必要はないでしょう。 +> **上級者向け:** この機能は、特定の構成のため、ORDAのデフォルト機能をカスタマイズする必要がある開発者向けです。ほとんどの場合、使用する必要はないでしょう。 #### 説明 @@ -1193,7 +1193,7 @@ $info:=$persons.getRemoteContextAttributes() #### 例題 -`Form.products` をフォーム内の [リストボックス](FormObjects/listbox_overview.md) に表示し、ユーザーが新しい製品を追加できるようにします。 ユーザーが製品を追加したときにエラーが起きないよう、追加可能であることを確認します: +`Form.products` をフォーム内の [リストボックス](FormObjects/listbox_overview.md) に表示し、ユーザーが新しい製品を追加できるようにします。ユーザーが製品を追加したときにエラーが起きないよう、追加可能であることを確認します: ```4d If (Not(Form.products.isAlterable())) @@ -1326,7 +1326,7 @@ Form.products.add(Form.product) #### 説明 -`.length` プロパティは、エンティティセレクション内のエンティティの数を返します。 エンティティセレクションが空の場合、関数は 0 を返します。 +`.length` プロパティは、エンティティセレクション内のエンティティの数を返します。エンティティセレクションが空の場合、関数は 0 を返します。 エンティティセレクションは、常に `.length` プロパティを持っています。 @@ -1371,7 +1371,7 @@ Form.products.add(Form.product) #### 説明 -`.max()` 関数は、*attributePath* に指定したエンティティセレクションの属性値のうち最高の (あるいは最大の) 値を返します。 実際には、[`.orderBy()`](#orderby) 関数を使用してエンティティセレクションを昇順に並べ替えたときの最後のエンティティを返します。 +`.max()` 関数は、*attributePath* に指定したエンティティセレクションの属性値のうち最高の (あるいは最大の) 値を返します。実際には、[`.orderBy()`](#orderby) 関数を使用してエンティティセレクションを昇順に並べ替えたときの最後のエンティティを返します。 *attributePath* に異なる[値の型](../Concepts/data-types.md) へのオブジェクトプロパティへのパスを渡した場合、`.max()` 関数は、[4D 並べ替えの原則](../Concepts/ordering.md) に準じた最初のスカラー型の中での最大値を返します。 @@ -1424,7 +1424,7 @@ Form.products.add(Form.product) #### 説明 -`.min()` 関数は、*attributePath* に指定したエンティティセレクションの属性値のうち最低の (あるいは最小の) 値を返します。 実際には、[`.orderBy()`](#orderby) 関数を使用してエンティティセレクションを昇順に並べ替えたときの最初のエンティティを返します (**null**値は除く)。 +`.min()` 関数は、*attributePath* に指定したエンティティセレクションの属性値のうち最低の (あるいは最小の) 値を返します。実際には、[`.orderBy()`](#orderby) 関数を使用してエンティティセレクションを昇順に並べ替えたときの最初のエンティティを返します (**null**値は除く)。 *attributePath* に異なる[値の型](../Concepts/data-types.md) へのオブジェクトプロパティへのパスを渡した場合、`.min()` 関数は、[4D 並べ替えの原則](../Concepts/ordering.md) に準じた最初のスカラー型の中での最小値を返します。 @@ -1482,9 +1482,9 @@ Form.products.add(Form.product) `.minus()` 関数は、元のエンティティセレクションから、*entity* 引数のエンティティ、あるいは *entitySelection* 引数のエンティティセレクションに含まれるエンティティを除外し、結果のエンティティセレクションを返します。 - *entity* を引数として渡した場合、メソッドは (*entity* が元のエンティティセレクションに所属していた場合) *entity* を除外した新しいエンティティセレクションを作成します。 *entity* が元のエンティティセレクションに含まれていなかった場合には、同エンティティセレクションへの新しい参照が返されます。 -- *entitySelection* を引数として渡した場合、メソッドは *entitySelection* に所属しているエンティティを、元のエンティティセレクションから除外した新しいエンティティセレクションを返します。 [順列ありと順列なしのエンティティセレクション](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を比較することができます。 +- *entitySelection* を引数として渡した場合、メソッドは *entitySelection* に所属しているエンティティを、元のエンティティセレクションから除外した新しいエンティティセレクションを返します。[順列ありと順列なしのエンティティセレクション](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を比較することができます。 -*keepOrder* 引数を省略した場合のデフォルトでは、結果のエンティティセレクションは順列なしになります。 元のエンティティセレクションの順列を維持したい場合 (たとえば、ユーザーインターフェースでエンティティセレクションを再利用したい場合) には、*keepOrder* に `dk keep ordered` 定数を渡します。 この場合、結果のエンティティセレクションは順列ありとなり、元のエンティティセレクションの順列が維持されます。 +*keepOrder* 引数を省略した場合のデフォルトでは、結果のエンティティセレクションは順列なしになります。元のエンティティセレクションの順列を維持したい場合 (たとえば、ユーザーインターフェースでエンティティセレクションを再利用したい場合) には、*keepOrder* に `dk keep ordered` 定数を渡します。この場合、結果のエンティティセレクションは順列ありとなり、元のエンティティセレクションの順列が維持されます。 :::note @@ -1526,7 +1526,7 @@ Form.products.add(Form.product) #### 例題 3 -あるユーザーインターフェースにおいて、特定の順番で項目を表示するリストがあります。 ユーザーがリストの項目を選択して削除した場合、更新後のリストにおいても順番を維持する必要があります: +あるユーザーインターフェースにおいて、特定の順番で項目を表示するリストがあります。ユーザーがリストの項目を選択して削除した場合、更新後のリストにおいても順番を維持する必要があります: ```4d $listsel:=$listsel.minus($selectedItems; dk keep ordered) @@ -1565,12 +1565,12 @@ $listsel:=$listsel.minus($selectedItems; dk keep ordered) `.or()` 関数は、OR論理演算子を使用して、*entity* または *entitySelection* のエンティティと対象エンティティセレクションを組み合わせます。戻り値は、渡した引数とエンティティセレクションの全エンティティを格納する順列なしの新規エンティティセレクションです。 -- *entity* を渡した場合、引数のエンティティをエンティティセレクションと比較することになります。 エンティティがエンティティセレクションに所属している場合、エンティティセレクションへの新しい参照が返されます。 そうでない場合、元のエンティティセレクションと渡したエンティティを格納した新しいエンティティセレクションが返されます。 -- *entitySelection* を渡した場合、二つのエンティティセレクションを比較することになります。 元のエンティティセレクションと *entitySelection* のどちらかに所属しているエンティティを格納した新しいエンティティセレクションが返されます (OR は排他的ではなく、また両方のセレクションで参照されているエンティティは、結果のセレクションに複数格納されることはありません)。 +- *entity* を渡した場合、引数のエンティティをエンティティセレクションと比較することになります。エンティティがエンティティセレクションに所属している場合、エンティティセレクションへの新しい参照が返されます。そうでない場合、元のエンティティセレクションと渡したエンティティを格納した新しいエンティティセレクションが返されます。 +- *entitySelection* を渡した場合、二つのエンティティセレクションを比較することになります。元のエンティティセレクションと *entitySelection* のどちらかに所属しているエンティティを格納した新しいエンティティセレクションが返されます (OR は排他的ではなく、また両方のセレクションで参照されているエンティティは、結果のセレクションに複数格納されることはありません)。 -> [順列ありと順列なしのエンティティセレクション](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を比較することができます。 返されるセレクションは常に順列なしのものになります。 +> [順列ありと順列なしのエンティティセレクション](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を比較することができます。返されるセレクションは常に順列なしのものになります。 -元のエンティティセレクションと *entitySelection* の両方が空であった場合、空のエンティティセレクションが返されます。 元のエンティティセレクションが空であった場合、*entitySelection* への参照、あるいは *entity* のみを格納したエンティティセレクションが返されます。 +元のエンティティセレクションと *entitySelection* の両方が空であった場合、空のエンティティセレクションが返されます。元のエンティティセレクションが空であった場合、*entitySelection* への参照、あるいは *entity* のみを格納したエンティティセレクションが返されます。 *entitySelection* が空、あるいは *entity* が Null であった場合、元のエンティティセレクションへの新しい参照が返されます。 @@ -1633,15 +1633,15 @@ $listsel:=$listsel.minus($selectedItems; dk keep ordered) > - この関数は、元のエンティティセレクションを変更しません。 > - エンティティセレクションの順列については、[エンティティセレクションの順列あり/順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし) を参照ください。 -引数を渡して、エンティティの並び替えを指定する必要があります。 並べ替えの指定方法は 2つあります: +引数を渡して、エンティティの並び替えを指定する必要があります。並べ替えの指定方法は 2つあります: -- *pathString* (テキスト): この場合、カンマ区切りされた、1 〜 x 個の属性パスと並べ替え順 (任意) で構成されるフォーミュラを渡します。 シンタックスは以下の通りです: +- *pathString* (テキスト): この場合、カンマ区切りされた、1 〜 x 個の属性パスと並べ替え順 (任意) で構成されるフォーミュラを渡します。シンタックスは以下の通りです: ```4d "attributePath1 {desc or asc}, attributePath2 {desc or asc},..." ``` -属性を渡す順番が、エンティティの並べ替えの優先順位を決定します。 デフォルトでは、属性は昇順に並べ替えられます。 並び順を設定するには、プロパティパスの後に半角スペースで区切ったあとに、昇順を指定するには "asc"、降順を指定するには "desc" を渡します。 +属性を渡す順番が、エンティティの並べ替えの優先順位を決定します。デフォルトでは、属性は昇順に並べ替えられます。並び順を設定するには、プロパティパスの後に半角スペースで区切ったあとに、昇順を指定するには "asc"、降順を指定するには "desc" を渡します。 - *pathObjects* (コレクション): コレクションの各要素は、以下の構造を持つオブジェクトを格納します: @@ -1721,7 +1721,7 @@ pathObjects コレクションには必要な数だけオブジェクトを追 - *formulaString*: "Year of(this.birthDate)" などの 4D式 - *formulaObj*: `Formula` または `Formula from string` コマンドを使用して作成された、有効なフォーミュラオブジェクト -*formulaString* および *formulaObj* はエンティティセレクションの各エンティティに対して実行され、その結果は返されるエンティティセレクション内でのエンティティの位置を決定するのに使用されます。 結果は並べ替え可能な型 (ブール、日付、数値、テキスト、時間、Null) である必要があります。 +*formulaString* および *formulaObj* はエンティティセレクションの各エンティティに対して実行され、その結果は返されるエンティティセレクション内でのエンティティの位置を決定するのに使用されます。結果は並べ替え可能な型 (ブール、日付、数値、テキスト、時間、Null) である必要があります。 > Null値の結果は常に最小の値とみなされます。 @@ -1762,7 +1762,7 @@ pathObjects コレクションには必要な数だけオブジェクトを追 引数付きのフォーミュラオブジェクトを渡します。`settings.args` オブジェクトは、***computeAverage*** メソッド内で $1 が受け取ります。 -この例題では、**Students** データクラス内の "marks" オブジェクトフィールドに科目ごとの生徒の成績が格納されています。 フォーミュラオブジェクトを使用し、schoolA と schoolB で異なる係数を用いて生徒の平均の成績を計算します。 +この例題では、**Students** データクラス内の "marks" オブジェクトフィールドに科目ごとの生徒の成績が格納されています。フォーミュラオブジェクトを使用し、schoolA と schoolB で異なる係数を用いて生徒の平均の成績を計算します。 ```4d var $es1; $es2 : cs.StudentsSelection @@ -1842,7 +1842,7 @@ pathObjects コレクションには必要な数だけオブジェクトを追 #### 説明 -`.query()` 関数は、エンティティセレクションの全エンティティから、*queryString* または *formula* と任意の *value* 引数で指定した検索条件に合致するエンティティを検索します。戻り値は、見つかったエンティティをすべて格納する `EntitySelection` 型の新しいオブジェクトです。 この関数には、レイジーローディングが適用されます。 この関数には、レイジーローディングが適用されます。 +`.query()` 関数は、エンティティセレクションの全エンティティから、*queryString* または *formula* と任意の *value* 引数で指定した検索条件に合致するエンティティを検索します。戻り値は、見つかったエンティティをすべて格納する `EntitySelection` 型の新しいオブジェクトです。 この関数には、レイジーローディングが適用されます。この関数には、レイジーローディングが適用されます。 > この関数は、元のエンティティセレクションを変更しません。 @@ -1850,7 +1850,7 @@ pathObjects コレクションには必要な数だけオブジェクトを追 *queryString* および *value* や *querySettings* パラメーターを使ってクエリをビルドする方法の詳細については、DataClass[`.query()`](DataClassClass.md#query) 関数を参照ください。 -> *queryString* 内で **order by** ステートメントを省略した場合のデフォルトでは、返されるエンティティセレクションは、[順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし)のものになります。 しかしながら、クライアント/サーバーモードにおいては、順列ありのエンティティセレクションのように振る舞う (エンティティはセレクションの終わりに追加されていく) 点に注意してください。 +> *queryString* 内で **order by** ステートメントを省略した場合のデフォルトでは、返されるエンティティセレクションは、[順列なし](ORDA/dsMapping.md#エンティティセレクションの順列あり順列なし)のものになります。しかしながら、クライアント/サーバーモードにおいては、順列ありのエンティティセレクションのように振る舞う (エンティティはセレクションの終わりに追加されていく) 点に注意してください。 #### 例題 1 @@ -1886,7 +1886,7 @@ pathObjects コレクションには必要な数だけオブジェクトを追 #### 説明 -`.queryPath` プロパティは、実際に 4Dで実行されたクエリの詳細な情報を格納します。 このプロパティは、[`.query()`](#query) 関数の *querySettings* 引数に `"queryPath":true` プロパティが渡されていた場合に、クエリを通して生成された `EntitySelection` オブジェクトで利用可能です。 +`.queryPath` プロパティは、実際に 4Dで実行されたクエリの詳細な情報を格納します。このプロパティは、[`.query()`](#query) 関数の *querySettings* 引数に `"queryPath":true` プロパティが渡されていた場合に、クエリを通して生成された `EntitySelection` オブジェクトで利用可能です。 詳細については、DataClass[`.query()`](DataClassClass.md#query) の **querySettings** の説明を参照ください。 @@ -1908,7 +1908,7 @@ pathObjects コレクションには必要な数だけオブジェクトを追 #### 説明 -`.queryPlan` プロパティは、実行前のクエリの詳細な情報 (クエリプラン) を格納します。 このプロパティは、[`.query()`](#query) 関数の *querySettings* 引数に `"queryPlan":true` プロパティが渡されていた場合に、クエリを通して生成された `EntitySelection` オブジェクトで利用可能です。 +`.queryPlan` プロパティは、実行前のクエリの詳細な情報 (クエリプラン) を格納します。このプロパティは、[`.query()`](#query) 関数の *querySettings* 引数に `"queryPlan":true` プロパティが渡されていた場合に、クエリを通して生成された `EntitySelection` オブジェクトで利用可能です。 詳細については、DataClass[`.query()`](DataClassClass.html#query) の **querySettings** の説明を参照ください。 @@ -1945,7 +1945,7 @@ pathObjects コレクションには必要な数だけオブジェクトを追 `.refresh()` 関数は、[ローカルの ORDAキャッシュ](../ORDA/client-server-optimization.md#ordaキャッシュ) にあるエンティティセレクションデータを即座に "無効化" します。そのため、次に 4Dがエンティティセレクションを必要としたときにはそれがデータベースからリロードされます。 -デフォルトでは、ローカルの ORDA のキャッシュは 30秒後に無効化されます。 クライアント/サーバーアプリケーションのコンテキストにおいて ORDA とクラシック言語の両方を使用している場合、このメソッドを使用することでリモートアプリケーションが必ず最新のデータを使用するようにできます。 +デフォルトでは、ローカルの ORDA のキャッシュは 30秒後に無効化されます。クライアント/サーバーアプリケーションのコンテキストにおいて ORDA とクラシック言語の両方を使用している場合、このメソッドを使用することでリモートアプリケーションが必ず最新のデータを使用するようにできます。 #### 例題 1 @@ -2046,7 +2046,7 @@ pathObjects コレクションには必要な数だけオブジェクトを追 | ranges[].start | Integer | レンジ内の先頭エンティティのインデックス (位置) | | ranges[].end | Integer | レンジ内の最終エンティティのインデックス (位置) | -`ranges` プロパティに 1件のエンティティしか含まれない場合、`start` = `end` です。 インデックスは 0 起点です。 インデックスは 0 起点です。 +`ranges` プロパティに 1件のエンティティしか含まれない場合、`start` = `end` です。 インデックスは 0 起点です。インデックスは 0 起点です。 元のエンティティセレクションと *entitySelection* の両方が空であった場合、空のエンティティセレクションが返されます。 元のエンティティセレクションが空であった場合、*entitySelection* への参照、あるいは *entity* のみを格納したエンティティセレクションが返されます。 @@ -2100,13 +2100,13 @@ $result2:=$invoices.selected($creditSel) #### 説明 -`.slice()` 関数は、*startFrom* の位置 (含まれる) から *end* の位置 (含まれない) または終わりまでのエンティティセレクションの一部を、新規エンティティセレクションとして返します。 この関数は、エンティティセレクションのシャロウ・コピーを返します (同じエンティティ参照を使用します)。 +`.slice()` 関数は、*startFrom* の位置 (含まれる) から *end* の位置 (含まれない) または終わりまでのエンティティセレクションの一部を、新規エンティティセレクションとして返します。この関数は、エンティティセレクションのシャロウ・コピーを返します (同じエンティティ参照を使用します)。 > この関数は、元のエンティティセレクションを変更しません。 戻り値のエンティティセレクションには、*startFrom* 引数で指定したエンティティ (含まれる) から、*end* 引数で指定したエンティティまで (含まれない) の全エンティティが格納されます。 *startFrom* 引数のみを渡した場合には、*startFrom* 引数で指定したエンティティから最後のエンティティまでが戻り値のエンティティセレクションに格納されます。 -- *startFrom* < 0 の場合、*startFrom:=startFrom+length* として再計算されます (エンティティセレクションの終端からのオフセットであるとみなされます)。 再計算された値も負の値だった場合、*startFrom* は 0 に設定されます。 +- *startFrom* < 0 の場合、*startFrom:=startFrom+length* として再計算されます (エンティティセレクションの終端からのオフセットであるとみなされます)。再計算された値も負の値だった場合、*startFrom* は 0 に設定されます。 - *startFrom >= length* の場合、関数は空のエンティティセレクションを返します。 - *end* < 0 の場合、それは *end:=end+length* として再計算されます。 - 渡された値、あるいは再計算された値が *end* < *startFrom* の場合、関数はなにもしません。 @@ -2169,7 +2169,7 @@ $slice:=ds.Employee.all().slice(-1;-2) // インデックス 9 から 8番まで エンティティセレクションが空の場合、`.sum()` は 0 を返します。 -総和は、数値型の値に対してのみ実行可能です。 *attributePath* がオブジェクトプロパティだった場合、計算の対象になるのは数値型の値のみです (他の値の型は無視されます)。 この場合で、*attributePath* がオブジェクト内に存在しないパス、あるいは数値を含んでいない属性へのパスであった場合には、`.sum()` は 0 を返します。 +総和は、数値型の値に対してのみ実行可能です。 *attributePath* がオブジェクトプロパティだった場合、計算の対象になるのは数値型の値のみです (他の値の型は無視されます)。この場合で、*attributePath* がオブジェクト内に存在しないパス、あるいは数値を含んでいない属性へのパスであった場合には、`.sum()` は 0 を返します。 以下の場合には、エラーが返されます: @@ -2251,7 +2251,7 @@ filterString および filterCol 引数が省略されるか、空の文字列 *begin* 引数を渡すことで、抽出するエンティティの開始インデックスを指定することができます。 0 からエンティティセレクションの長さ - 1 の範囲で値を渡すことができます。 -*howMany* 引数を渡すと、*begin* 引数で指定した位置から抽出するエンティティの件数を指定することができます。 ドロップされたエンティティは返されませんが、*howMany* 引数のカウントでは考慮されます。 たとえば、ドロップされたエンティティが1つある場合に *howMany*= 3 であれば、2件のエンティティが抽出されます。 +*howMany* 引数を渡すと、*begin* 引数で指定した位置から抽出するエンティティの件数を指定することができます。ドロップされたエンティティは返されませんが、*howMany* 引数のカウントでは考慮されます。たとえば、ドロップされたエンティティが1つある場合に *howMany*= 3 であれば、2件のエンティティが抽出されます。 *howMany* 引数がエンティティセレクションの length を超える場合、メソッドは (length - *begin*) の数だけオブジェクトを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/FileClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/FileClass.md index d78f8f864e159d..814c9dfbcb9062 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/FileClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/FileClass.md @@ -3,7 +3,7 @@ id: FileClass title: File --- -`File` オブジェクトは [`File`](../commands/file) コマンドによって作成されます。 これらのオブジェクトには、(実在しているか否かに関わらず) ディスクファイルへの参照が格納されます。 たとえば、新規ファイルを作成するために `File` コマンドを実行した場合、有効な `File` オブジェクトが作成されますが、[`file.create()`](#create) 関数を呼び出すまで、ディスク上にはなにも保存されていません。 +`File` オブジェクトは [`File`](../commands/file) コマンドによって作成されます。これらのオブジェクトには、(実在しているか否かに関わらず) ディスクファイルへの参照が格納されます。たとえば、新規ファイルを作成するために `File` コマンドを実行した場合、有効な `File` オブジェクトが作成されますが、[`file.create()`](#create) 関数を呼び出すまで、ディスク上にはなにも保存されていません。 :::info @@ -22,7 +22,7 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() ### パス名 -`File` オブジェクトは、`filesystems` や `posix` シンタックスを含む、いくつかのパス名をサポートしています。 使用できるパス名についての詳細は [**パス名**](../Concepts/paths.md) ページを参照ください。 +`File` オブジェクトは、`filesystems` や `posix` シンタックスを含む、いくつかのパス名をサポートしています。使用できるパス名についての詳細は [**パス名**](../Concepts/paths.md) ページを参照ください。 ### File オブジェクト @@ -77,7 +77,7 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() #### 説明 -`4D.File.new()` 関数は、`4D.File` 型の新しいオブジェクトを作成して返します。 この関数の機能は、[`File`](../commands/file) コマンドと同一です。 +`4D.File.new()` 関数は、`4D.File` 型の新しいオブジェクトを作成して返します。この関数の機能は、[`File`](../commands/file) コマンドと同一です。 > `4D.File.new()` よりも、短い [`File`](../commands/file) コマンドの使用が推奨されます。 @@ -116,7 +116,7 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() `.create()` 関数は、`File` オブジェクトのプロパティに基づいてディスク上にファイルを作成します。 -必要であれば、 関数は [platformPath](#platformpath) あるいは [path](#path) プロパティの詳細に基づいてフォルダー階層を作成します。 ファイルがディスク上にすでに存在する場合、関数は何もせず、false を返します (エラーは返されません)。 +必要であれば、 関数は [platformPath](#platformpath) あるいは [path](#path) プロパティの詳細に基づいてフォルダー階層を作成します。ファイルがディスク上にすでに存在する場合、関数は何もせず、false を返します (エラーは返されません)。 **戻り値** @@ -168,7 +168,7 @@ $created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create() *aliasName* には、作成するエイリアスまたはショートカットの名前を渡します。 -macOS 上では、この関数はデフォルトで標準エイリアスを作成します。 *aliasType* 引数を渡すことで、シンボリックリンクを作成することもできます。 以下の定数を使用することができます: +macOS 上では、この関数はデフォルトで標準エイリアスを作成します。 *aliasType* 引数を渡すことで、シンボリックリンクを作成することもできます。以下の定数を使用することができます: | 定数 | 値 | 説明 | | ------------------ | - | -------------------------------------- | @@ -234,7 +234,7 @@ Windows 上では、常にショートカット (.lnk ファイル) が作成さ :::caution -`.delete()` はディスク上の任意のファイルを削除できます。 これには、他のアプリケーションで作成されたドキュメントや、アプリケーションそのものも対象になります。 そのため、`.delete()` は特に十分な注意を払って使用してください。 ファイルの削除は恒久的な操作であり取り消しできません。 +`.delete()` はディスク上の任意のファイルを削除できます。これには、他のアプリケーションで作成されたドキュメントや、アプリケーションそのものも対象になります。そのため、`.delete()` は特に十分な注意を払って使用してください。ファイルの削除は恒久的な操作であり取り消しできません。 ::: @@ -288,7 +288,7 @@ Windows 上では、常にショートカット (.lnk ファイル) が作成さ `.getAppInfo()` 関数は、アプリケーションファイル情報のコンテンツをオブジェクトとして返します。 -この関数は存在している、以下のサポートされているファイル形式のファイルに対して使用されなければなりません: **.plist** (全プラットフォーム)、**.exe**/**.dll** (Windows)、あるいは **macOS 実行ファイル**。 ファイルがディスク上に存在しない場合、またはサポートされていないファイルの場合は、関数は空のオブジェクトを生成します(エラーは生成されません)。 +この関数は存在している、以下のサポートされているファイル形式のファイルに対して使用されなければなりません: **.plist** (全プラットフォーム)、**.exe**/**.dll** (Windows)、あるいは **macOS 実行ファイル**。ファイルがディスク上に存在しない場合、またはサポートされていないファイルの場合は、関数は空のオブジェクトを生成します(エラーは生成されません)。 **.plist ファイルの場合に返されるオブジェクト(全プラットフォーム)** @@ -296,7 +296,7 @@ xml ファイルの中身は解析され、オブジェクトのプロパティ :::note -この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。 バイナリ形式の .plist ファイルを対象に使用した場合、エラーが返されます。 +この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。バイナリー形式の .plist ファイルを対象に使用した場合、エラーが返されます。 ::: @@ -323,7 +323,7 @@ macOS実行可能ファイルはパッケージ内部にあります(例: myApp. ::: -この関数は、実行ファイル内で見つかったそれぞれのアーキテクチャーを表すオブジェクトのコレクションを格納した、 `archs` オブジェクトを返します(ファットな実行ファイルには複数のアーキテクチャーを埋め込むことができます)。 コレクション内のそれぞれのオブジェクトは以下のプロパティを格納しています: +この関数は、実行ファイル内で見つかったそれぞれのアーキテクチャーを表すオブジェクトのコレクションを格納した、 `archs` オブジェクトを返します(ファットな実行ファイルには複数のアーキテクチャーを埋め込むことができます)。コレクション内のそれぞれのオブジェクトは以下のプロパティを格納しています: | プロパティ | 型 | 説明 | | ----- | ------ | ------------------------------------------------------------------------ | @@ -440,7 +440,7 @@ var $info:=$app.getAppInfo() *destinationFolder* 引数が指定するフォルダーはディスク上に存在している必要があり、そうでない場合にはエラーが生成されます。 -デフォルトでは、移動したファイルは元の名前を維持します。 移動の際にファイル名を変更したい場合、新しい完全な名前を *newName* に渡します。 新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 +デフォルトでは、移動したファイルは元の名前を維持します。移動の際にファイル名を変更したい場合、新しい完全な名前を *newName* に渡します。新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 **返されるオブジェクト** @@ -491,24 +491,24 @@ $myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt") *mode* (text) 引数として、どのモードで FileHandle を開くかを指定します。 -| *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` は、改行文字に適用する処理を指定します。以下のいずれかの値を使用できます (テキストまたは数値): | 改行モードの値 (テキスト) | 改行モードの値 (数値/定数) | 説明 | | --------------------------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -572,7 +572,7 @@ $fhandle:=$f.open("read") `.rename()` 関数は、ファイル名を *newName* に指定した名称に変更し、名称変更後の `File` オブジェクトを返します。 -*newName* 引数は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 同じ名前のファイルがすでに存在する場合には、エラーが返されます。 +*newName* 引数は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。同じ名前のファイルがすでに存在する場合には、エラーが返されます。 この関数はファイルの完全な名前を編集することに留意が必要です。 つまり、*newName* に拡張子を渡さなかった場合、新しいファイル名には拡張子がありません。 @@ -619,21 +619,21 @@ $fhandle:=$f.open("read") #### 説明 -`.setAppInfo()` 関数は、 *info* に渡したプロパティをアプリケーションファイルの情報として書き込みます。 これは4D アプリケーションのビルドチェーンをカスタマイズしたいデベロッパーのために設計されています。 +`.setAppInfo()` 関数は、 *info* に渡したプロパティをアプリケーションファイルの情報として書き込みます。これは4D アプリケーションのビルドチェーンをカスタマイズしたいデベロッパーのために設計されています。 -この関数は、以下のタイプに対してのみ使用可能です: **.plist** (全プラットフォーム)、存在する **.exe** / **.dll** (Windows)、あるいは **macOS 実行ファイル**。 他のファイルタイプを使用した場合、あるいはディスク上にまだ存在しない\*\*.exe\*\*/**.dll** ファイルに対して使用した場合、関数は何もしません(エラーも生成されません)。 +この関数は、以下のタイプに対してのみ使用可能です: **.plist** (全プラットフォーム)、存在する **.exe** / **.dll** (Windows)、あるいは **macOS 実行ファイル**。他のファイルタイプを使用した場合、あるいはディスク上にまだ存在しない\*\*.exe\*\*/**.dll** ファイルに対して使用した場合、関数は何もしません(エラーも生成されません)。 **.plist ファイル用の*info* オブジェクト (全プラットフォーム)** :::note -この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。 バイナリ形式の .plist ファイルを対象に使用した場合、エラーが返されます。 +この関数は xml形式の .plist ファイル (テキスト) のみをサポートしています。バイナリー形式の .plist ファイルを対象に使用した場合、エラーが返されます。 ::: -もし .plist ファイルがディスク上に既に存在する場合、それは更新されます。 そうでない場合には、作成されます。 そうでない場合には、作成されます。 +もし .plist ファイルがディスク上に既に存在する場合、それは更新されます。 そうでない場合には、作成されます。そうでない場合には、作成されます。 -*info* オブジェクト引数内に設定されたそれぞれの有効なプロパティは、 .plist ファイル内にキーとして書き込まれます。 あらゆるキーの名称が受け入れられます。 値の型は可能な限り維持されます。 +*info* オブジェクト引数内に設定されたそれぞれの有効なプロパティは、 .plist ファイル内にキーとして書き込まれます。あらゆるキーの名称が受け入れられます。値の型は可能な限り維持されます。 *info* 引数内に設定されたキーが.plist ファイル内に既に定義されていた場合には、元の型を保ったまま値が更新されます。 .plist ファイルに既存のそのほかのキーはそのまま維持されます。 @@ -645,28 +645,28 @@ $fhandle:=$f.open("read") **.exe または .dll ファイル用の*info* オブジェクト(Windows のみ)** -*info* オブジェクト引数内に設定されているそれぞれの有効なプロパティは、.exe あるいは .dll ファイルのバージョンリソースに書き込まれます。 以下のプロパティが使用できます (それ以外のプロパティは無視されます): +*info* オブジェクト引数内に設定されているそれぞれの有効なプロパティは、.exe あるいは .dll ファイルのバージョンリソースに書き込まれます。以下のプロパティが使用できます (それ以外のプロパティは無視されます): -| プロパティ | 型 | 説明 | -| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| CompanyName | Text | | -| FileDescription | Text | | -| FileVersion | Text | | -| InternalName | Text | | -| LegalCopyright | Text | | -| OriginalFilename | Text | | -| ProductName | Text | | -| ProductVersion | Text | | -| removeFluentUI | Boolean | これは組み込み4D アプリケーション(.exe ファイル) でのみ使用可能です。 ここにTrue を渡すと、組み込みWindows App SDK ([Fluent UI レンダリング](../FormEditor/forms.md#fluent-ui-レンダリング) を使用するには必須) を参照している *manifest* と *.pri* ファイルを、OS にインストールされているWindows App SDK の使用を許可するバージョンに置き換えます。 ローカルのSDK を使用することで、生成されるアプリケーションのサイズを減らすことができます(ただしデフォルトの埋め込みファイルを削除する必要もあります)。 False を渡す、あるいはこのプロパティを省略した場合には、何も起こりません。 | -| WinIcon | Text | .icoファイルの Posixパス。 このプロパティは、4D が生成した実行ファイルにのみ適用されます。 | +| プロパティ | 型 | 説明 | +| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| CompanyName | Text | | +| FileDescription | Text | | +| FileVersion | Text | | +| InternalName | Text | | +| LegalCopyright | Text | | +| OriginalFilename | Text | | +| ProductName | Text | | +| ProductVersion | Text | | +| removeFluentUI | Boolean | これは組み込み4D アプリケーション(.exe ファイル) でのみ使用可能です。ここにTrue を渡すと、組み込みWindows App SDK ([Fluent UI レンダリング](../FormEditor/forms.md#fluent-ui-レンダリング) を使用するには必須) を参照している *manifest* と *.pri* ファイルを、OS にインストールされているWindows App SDK の使用を許可するバージョンに置き換えます。ローカルのSDK を使用することで、生成されるアプリケーションのサイズを減らすことができます(ただしデフォルトの埋め込みファイルを削除する必要もあります)。 False を渡す、あるいはこのプロパティを省略した場合には、何も起こりません。 | +| WinIcon | Text | .icoファイルの Posixパス。このプロパティは、4D が生成した実行ファイルにのみ適用されます。 | -`WinIcon` を除き全てのプロパティにおいて、値としてnull または空の文字列を渡した場合、プロパティには空の文字列が書き込まれます。 テキストでない型の値を渡した場合には、文字列に変換されます。 +`WinIcon` を除き全てのプロパティにおいて、値としてnull または空の文字列を渡した場合、プロパティには空の文字列が書き込まれます。テキストでない型の値を渡した場合には、文字列に変換されます。 `WinIcon` プロパティにおいては、ファイルが存在しない、または不正なフォーマットだった場合にはエラーが生成されます。 **macOS 実行ファイル用の *info* パラメーター(macOSのみ)** -*info* オブジェクトは単一の`archs` という名前のプロパティを持ち、そのコレクションの中に[`getAppInfo()`](#getappinfo) から返されるフォーマットのオブジェクトを格納していなければなりません。 それぞれのオブジェクトには、少なくとも`type` および `uuid` プロパティが格納されている必要があります(`name` は使用されません)。 +*info* オブジェクトは単一の`archs` という名前のプロパティを持ち、そのコレクションの中に[`getAppInfo()`](#getappinfo) から返されるフォーマットのオブジェクトを格納していなければなりません。それぞれのオブジェクトには、少なくとも`type` および `uuid` プロパティが格納されている必要があります(`name` は使用されません)。 *info*.archs コレクション内のそれぞれのオブジェクトは、以下のプロパティを格納していなければなりません: @@ -798,18 +798,18 @@ $app.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** テーマ内にある、以下の定数を使用することができます: @@ -823,7 +823,7 @@ $app.setAppInfo($info) *breakMode* 引数を渡さなかった場合はデフォルトで、改行はネイティブモード (1) で処理されます。 -> **互換性に関する注記:** EOL (改行コード) および BOM の管理については、互換性オプションが利用可能です。 詳細については、doc.4d.com 上の[互換性ページ](https://doc.4d.com/4Dv20/4D/20.2/Compatibility-page.300-6750362.ja.html)を参照してください。 +> **互換性に関する注記:** EOL (改行コード) および BOM の管理については、互換性オプションが利用可能です。詳細については、doc.4d.com 上の[互換性ページ](https://doc.4d.com/4Dv20/4D/20.2/Compatibility-page.300-6750362.ja.html)を参照してください。 #### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/FileHandleClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/FileHandleClass.md index 71ab36b8d4b0f9..2b6c3bbe62773b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/FileHandleClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/FileHandleClass.md @@ -9,11 +9,11 @@ title: FileHandle > ドキュメント全体を一括で読み書きするには、[file.getText()](FileClass.md#gettext) と [file.setText()](FileClass.md#settext) 関数の使用を検討されるとよいでしょう。 -標準的な 4Dオブジェクトの *参照カウント* により、FileHandle は参照されなくなると自動的に削除され、要求された [`File`](FileClass) オブジェクトも自動的に閉じられます。 つまり、FileHandle を使えば、ドキュメントを閉じる必要がなくなります。 +標準的な 4Dオブジェクトの *参照カウント* により、FileHandle は参照されなくなると自動的に削除され、要求された [`File`](FileClass) オブジェクトも自動的に閉じられます。つまり、FileHandle を使えば、ドキュメントを閉じる必要がなくなります。 :::note -ドキュメントなどのオブジェクトリソースは、メモリ上で参照がなくなると解放されます。 これはたとえば、メソッド実行終了時のローカル変数などで起こります。 任意の時点でオブジェクトリソースを "強制的に" 解放したい場合は、[その参照を無効化](../Concepts/dt_object.md#リソース) することができます。 +ドキュメントなどのオブジェクトリソースは、メモリ上で参照がなくなると解放されます。 これはたとえば、メソッド実行終了時のローカル変数などで起こります。任意の時点でオブジェクトリソースを "強制的に" 解放したい場合は、[その参照を無効化](../Concepts/dt_object.md#リソース) することができます。 ::: @@ -96,7 +96,7 @@ FileHandle オブジェクトは共有できません。 `.breakModeRead` プロパティは、ファイル読み取り時に使用される改行の処理モードを返します。 -`.breakModeRead` プロパティは、FileHandle 作成時に [`file.open()`](FileClass.md#open) 関数で定義できます (詳細については [`.open()` 関数](FileClass.md#open) を参照ください)。 デフォルトは "native" です。 +`.breakModeRead` プロパティは、FileHandle 作成時に [`file.open()`](FileClass.md#open) 関数で定義できます (詳細については [`.open()` 関数](FileClass.md#open) を参照ください)。デフォルトは "native" です。 > `.breakModeRead` プロパティは、`.open()` のオプションが数値 (定数) を使って設定されていたとしても、常にテキスト値を格納します。 @@ -122,7 +122,7 @@ FileHandle オブジェクトは共有できません。 `.breakModeWrite` プロパティは、ファイル書き込み時に使用される改行の処理モードを返します。 -`.breakModeWrite` プロパティは、FileHandle 作成時に [`file.open()`](FileClass.md#open) 関数で定義できます (詳細については [`.open()` 関数](FileClass.md#open) を参照ください)。 デフォルトは "native" です。 +`.breakModeWrite` プロパティは、FileHandle 作成時に [`file.open()`](FileClass.md#open) 関数で定義できます (詳細については [`.open()` 関数](FileClass.md#open) を参照ください)。デフォルトは "native" です。 > `.breakModeWrite` プロパティは、`.open()` のオプションが数値 (定数) を使って設定されていたとしても、常にテキスト値を格納します。 @@ -148,7 +148,7 @@ FileHandle オブジェクトは共有できません。 `.charset` プロパティは、ファイルの読み取りや書き込みに使用される文字セットを返します。 -文字セットは、FileHandle 作成時に [`file.open()`](FileClass#open) 関数で定義できます。 デフォルト値: "UTF-8" +文字セットは、FileHandle 作成時に [`file.open()`](FileClass#open) 関数で定義できます。デフォルト値: "UTF-8" このプロパティは **読み取り専用** です。 @@ -245,7 +245,7 @@ FileHandle オブジェクトは共有できません。 `.mode` プロパティは、FileHandle が作成されたモード ("read"、"write"、"append" のいずれか) を返します。 -モードは、FileHandle 作成時に [`file.open()`](FileClass#open) 関数で定義できます。 デフォルトは "read" です。 +モードは、FileHandle 作成時に [`file.open()`](FileClass#open) 関数で定義できます。デフォルトは "read" です。 このプロパティは **読み取り専用** です。 @@ -267,7 +267,7 @@ FileHandle オブジェクトは共有できません。 #### 説明 -`.offset` プロパティは、データストリームの現在のオフセット (ドキュメント内の位置) を返します。 オフセット値は、読み取りおよび書き込み操作の後に自動的に更新されます。 +`.offset` プロパティは、データストリームの現在のオフセット (ドキュメント内の位置) を返します。オフセット値は、読み取りおよび書き込み操作の後に自動的に更新されます。 `.offset` を設定すると、次の読み取り・書き取り操作の際に、その現在値が変更されます。 @@ -278,7 +278,7 @@ FileHandle オブジェクトは共有できません。 :::caution -FileHandle の作成時、`.offset` の値はバイト数です。 しかしながら、オフセットの単位は読み取り関数によって異なります。[`readBlob()`](#readblob) の場合、`.offset` はバイト数ですが、[`readText()`](#readtext)/[`readLine()`](#readline) の場合は文字数になります。 ファイルの文字セットに応じて、1文字は 1バイトまたは複数バイトに対応します。 したがって、`readBlob()` で読み取りを開始してから `readText()` を呼び出すと、テキストの読み取りは一貫性のない位置から開始されます。 そのため、同じ FileHandle内で、BLOB の読み取り/書き込みからテキストの読み取り/書き込みに切り替える場合には、`.offset` プロパティを自分で設定することが不可欠です。 例: +FileHandle の作成時、`.offset` の値はバイト数です。しかしながら、オフセットの単位は読み取り関数によって異なります。[`readBlob()`](#readblob) の場合、`.offset` はバイト数ですが、[`readText()`](#readtext)/[`readLine()`](#readline) の場合は文字数になります。ファイルの文字セットに応じて、1文字は 1バイトまたは複数バイトに対応します。したがって、`readBlob()` で読み取りを開始してから `readText()` を呼び出すと、テキストの読み取りは一貫性のない位置から開始されます。そのため、同じ FileHandle内で、BLOB の読み取り/書き込みからテキストの読み取り/書き込みに切り替える場合には、`.offset` プロパティを自分で設定することが不可欠です。例: ```4d // utf-16エンコーディング (1文字につき 2バイト) を使用して、ヨーロッパのテキストファイルを開きます @@ -368,7 +368,7 @@ $s:=$fh.readText() :::caution 警告 -この関数は、[`.offset`](#offset) プロパティがバイト数ではなく文字数であることを前提としています。 詳細については、[.offset の説明](#offset) を参照ください。 +この関数は、[`.offset`](#offset) プロパティがバイト数ではなく文字数であることを前提としています。詳細については、[.offset の説明](#offset) を参照ください。 ::: @@ -416,7 +416,7 @@ $s:=$fh.readText() :::caution 警告 -この関数は、[`.offset`](#offset) プロパティがバイト数ではなく文字数であることを前提としています。 詳細については、[.offset の説明](#offset) を参照ください。 +この関数は、[`.offset`](#offset) プロパティがバイト数ではなく文字数であることを前提としています。詳細については、[.offset の説明](#offset) を参照ください。 ::: @@ -531,7 +531,7 @@ $s:=$fh.readText() #### 説明 -`.writeLine()` 関数は、現在の位置に *lineOfText* の内容を書き込み、改行文字を挿入します ([.writeText()](#writetext) 関数とは異なります)。 デフォルトではネイティブの改行文字が使用されますが、[FileHandle](FileClass.md#open) を開く際に、[`.breakModeWrite`](#breakmodewrite) プロパティを設定することで、別の改行文字を定義することができます。 +`.writeLine()` 関数は、現在の位置に *lineOfText* の内容を書き込み、改行文字を挿入します ([.writeText()](#writetext) 関数とは異なります)。デフォルトではネイティブの改行文字が使用されますが、[FileHandle](FileClass.md#open) を開く際に、[`.breakModeWrite`](#breakmodewrite) プロパティを設定することで、別の改行文字を定義することができます。 この関数を実行すると、現在の位置 ([.offset](#offset)) が、最後に書き込んだ改行文字の後に更新されます。 @@ -568,7 +568,7 @@ $s:=$fh.readText() #### 説明 -`.writeText()` 関数は、現在の位置に *textToWrite* の内容を書き込み、改行文字は挿入しません ([.writeLine()](#writeline) 関数とは異なります)。 デフォルトではネイティブの改行文字が使用されますが、[FileHandle](FileClass.md#open) を開く際に、[`.breakModeWrite`](#breakmodewrite) プロパティを設定することで、別の改行文字を定義することができます。 +`.writeText()` 関数は、現在の位置に *textToWrite* の内容を書き込み、改行文字は挿入しません ([.writeLine()](#writeline) 関数とは異なります)。デフォルトではネイティブの改行文字が使用されますが、[FileHandle](FileClass.md#open) を開く際に、[`.breakModeWrite`](#breakmodewrite) プロパティを設定することで、別の改行文字を定義することができます。 この関数を実行すると、現在の位置 ([.offset](#offset)) は、次の改行文字の後に更新されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/FolderClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/FolderClass.md index a74e6f37f548c3..cc636593aa3bc3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/FolderClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/FolderClass.md @@ -3,7 +3,7 @@ id: FolderClass title: Folder --- -`Folder` オブジェクトは [`Folder`](../commands/folder) コマンドによって作成されます。 これらのオブジェクトには、(実在しているか否かに関わらず) フォルダーへの参照が格納されます。 たとえば、新規フォルダーを作成するために `Folder` コマンドを実行した場合、有効な `Folder` オブジェクトが作成されますが、[`folder.create()`](#create) 関数を呼び出すまで、ディスク上にはなにも保存されていません。 +`Folder` オブジェクトは [`Folder`](../commands/folder) コマンドによって作成されます。これらのオブジェクトには、(実在しているか否かに関わらず) フォルダーへの参照が格納されます。たとえば、新規フォルダーを作成するために `Folder` コマンドを実行した場合、有効な `Folder` オブジェクトが作成されますが、[`folder.create()`](#create) 関数を呼び出すまで、ディスク上にはなにも保存されていません。 :::info @@ -22,7 +22,7 @@ Form.curfolder:=Folder("C:\\Users\\JohnSmith\\";fk platform path) ### パス名 -`Folder` オブジェクトは、`filesystems` や `posix` シンタックスを含む、いくつかのパス名をサポートしています。 使用できるパス名についての詳細は [**パス名**](../Concepts/paths.md) ページを参照ください。 +`Folder` オブジェクトは、`filesystems` や `posix` シンタックスを含む、いくつかのパス名をサポートしています。使用できるパス名についての詳細は [**パス名**](../Concepts/paths.md) ページを参照ください。 ### Folder オブジェクト @@ -73,7 +73,7 @@ Form.curfolder:=Folder("C:\\Users\\JohnSmith\\";fk platform path) #### 説明 -`4D.Folder.new()` 関数は、`4D.Folder` 型の新しいオブジェクトを作成して返します。 この関数の機能は、[`Folder`](../commands/folder) コマンドと同一です。 +`4D.Folder.new()` 関数は、`4D.Folder` 型の新しいオブジェクトを作成して返します。この関数の機能は、[`Folder`](../commands/folder) コマンドと同一です。 > `4D.Folder.new()` よりも、短い [`Folder`](../commands/folder) コマンドの使用が推奨されます。 @@ -109,7 +109,7 @@ Form.curfolder:=Folder("C:\\Users\\JohnSmith\\";fk platform path) `.create()` 関数は、 `Folder` オブジェクトのプロパティに基づいてディスク上にフォルダーを作成します。 -必要であれば、 関数は [platformPath](#platformpath) あるいは [path](#path) プロパティの詳細に基づいてフォルダー階層を作成します。 フォルダーがディスク上にすでに存在する場合、関数は何もせず、false を返します (エラーは返されません)。 +必要であれば、 関数は [platformPath](#platformpath) あるいは [path](#path) プロパティの詳細に基づいてフォルダー階層を作成します。フォルダーがディスク上にすでに存在する場合、関数は何もせず、false を返します (エラーは返されません)。 **戻り値** @@ -174,7 +174,7 @@ End if *aliasName* には、作成するエイリアスまたはショートカットの名前を渡します。 -macOS 上では、この関数はデフォルトで標準エイリアスを作成します。 *aliasType* 引数を渡すことで、シンボリックリンクを作成することもできます。 以下の定数を使用することができます: +macOS 上では、この関数はデフォルトで標準エイリアスを作成します。 *aliasType* 引数を渡すことで、シンボリックリンクを作成することもできます。以下の定数を使用することができます: | 定数 | 値 | 説明 | | ------------------ | - | -------------------------------------- | @@ -231,7 +231,7 @@ $aliasFile:=$myFolder.createAlias(Folder("/PACKAGE");"Jan2019") `.delete()` 関数は、フォルダーを削除します。 -セキュリティ上の理由から、option 引数を渡さなかった場合はデフォルトで、`.delete()` は空のフォルダーしか削除しません。 空でないフォルダーを削除するには、以下の定数のいずれか一つを option 引数として渡す必要があります: +セキュリティ上の理由から、option 引数を渡さなかった場合はデフォルトで、`.delete()` は空のフォルダーしか削除しません。空でないフォルダーを削除するには、以下の定数のいずれか一つを option 引数として渡す必要があります: | 定数 | 値 | 説明 | | ---------------------- | - | ----------------- | @@ -245,9 +245,8 @@ $aliasFile:=$myFolder.createAlias(Folder("/PACKAGE");"Jan2019") `Delete with contents` を渡した場合: -- フォルダーと、その中身がすべて削除されます。 - **警告**: フォルダーまたはその中身がロックされている、あるいは読み取り専用に設定されていたとしても、カレントユーザーが適切なアクセス権を持っていた場合には、フォルダーはその中身ごと削除されます。 -- このフォルダー、またはその中に含まれるファイルのいずれかが削除できなかった場合、削除できない要素が検知された時点で削除は中止され、エラー(\*) が返されます。 このとき、フォルダーは途中までしか削除されていない可能性があります。 削除が中止された場合、`Last errors` コマンドを使用して原因となったファイルの名前とパスを取得することができます。 +- フォルダーと、その中身がすべて削除されます。**警告**: フォルダーまたはその中身がロックされている、あるいは読み取り専用に設定されていたとしても、カレントユーザーが適切なアクセス権を持っていた場合には、フォルダーはその中身ごと削除されます。 +- このフォルダー、またはその中に含まれるファイルのいずれかが削除できなかった場合、削除できない要素が検知された時点で削除は中止され、エラー(\*) が返されます。このとき、フォルダーは途中までしか削除されていない可能性があります。削除が中止された場合、`Last errors` コマンドを使用して原因となったファイルの名前とパスを取得することができます。 - フォルダーが存在しない場合、コマンドは何もせず、エラーは返されません。

    (\*) Windowsの場合: -54 (ロックされたファイルを書き込みのために開こうとした)
    macOSの場合: -45 (ファイルはロックされていたか不正なパス名) @@ -315,7 +314,7 @@ $aliasFile:=$myFolder.createAlias(Folder("/PACKAGE");"Jan2019") *destinationFolder* 引数が指定するフォルダーはディスク上に存在している必要があり、そうでない場合にはエラーが生成されます。 -デフォルトで、移動したフォルダーは元の名前を維持します。 移動の際にフォルダー名を変更したい場合、新しい完全な名前を *newName* に渡します。 新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 +デフォルトで、移動したフォルダーは元の名前を維持します。移動の際にフォルダー名を変更したい場合、新しい完全な名前を *newName* に渡します。新しい名前は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 **返されるオブジェクト** @@ -374,7 +373,7 @@ $aliasFile:=$myFolder.createAlias(Folder("/PACKAGE");"Jan2019") `.rename()` 関数は、*newName* に指定した名称にフォルダー名を変更し、名称変更後の `Folder` オブジェクトを返します。 -*newName* 引数は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。 同じ名前のファイルがすでに存在する場合には、エラーが返されます。 +*newName* 引数は命名規則に則っている必要があります (例: ":", "/", 等の文字を含んでいない、など)。 そうでない場合、エラーが返されます。同じ名前のファイルがすでに存在する場合には、エラーが返されます。 **返されるオブジェクト** diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/FormulaClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/FormulaClass.md index c4f215a5b84a7d..9d8e0cc2160ed4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/FormulaClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/FormulaClass.md @@ -5,7 +5,7 @@ title: Formula `4D.Formula` オブジェクトは [Formula](../commands/formula) または [Formula from string](../commands/formula-from-string) コマンドによって作成され、これを使用するとあらゆる4D 式または単一行のテキストとして表現されたコードを実行することができます。 -`4D.Formula` クラスオブジェクトは、 [`4D.Function`](./FunctionClass.md) クラスを継承します。 そのため、フォーミュラを実行するためには、以下のような方法があります: +`4D.Formula` クラスオブジェクトは、 [`4D.Function`](./FunctionClass.md) クラスを継承します。そのため、フォーミュラを実行するためには、以下のような方法があります: - オブジェクトプロパティに `4D.Formula` オブジェクトを入れ、プロパティ名の後に `()` 演算子を使用する - または、 [`call()`](#call) あるいは [`apply()`](#apply) 関数を使用して `4D.Formula` オブジェクトを呼び出す。 @@ -20,7 +20,7 @@ title: Formula ### フォーミュラに引数を渡す -フォーミュラには、順番引数シンタックス `$1, $2...$n` を使用して引数を渡すことができます。 $ 付きの引数の番号は、それらがフォーミュラに渡される順番を表します。 たとえば: +フォーミュラには、順番引数シンタックス `$1, $2...$n` を使用して引数を渡すことができます。 $ 付きの引数の番号は、それらがフォーミュラに渡される順番を表します。たとえば: ```4d $f:={message: Formula(ALERT("Hello "+$2+", "+$1))} @@ -38,7 +38,7 @@ title: Formula #### 単一メソッド用の引数 -利便性のために、フォーミュラが単一のプロジェクトメソッドから作成された場合には、引数はフォーミュラオブジェクトの初期化では省略することができます。 省略された引数は、フォーミュラを呼び出す時に一緒に渡すことができます。 例: +利便性のために、フォーミュラが単一のプロジェクトメソッドから作成された場合には、引数はフォーミュラオブジェクトの初期化では省略することができます。省略された引数は、フォーミュラを呼び出す時に一緒に渡すことができます。例: ```4d var $f : 4D.Formula 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 ef10ad6f8e2fa7..548d176868690d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/FunctionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/FunctionClass.md @@ -24,7 +24,7 @@ $message:=Formula(ALERT("Hello world")) $f:={message: $message} ``` -このようなプロパティは "オブジェクト関数"、つまり親オブジェクトに紐づいた関数です。 オブジェクトプロパティに保存されている関数を実行するには、プロパティ名のあとに **()** をつけます: +このようなプロパティは "オブジェクト関数"、つまり親オブジェクトに紐づいた関数です。オブジェクトプロパティに保存されている関数を実行するには、プロパティ名のあとに **()** をつけます: ```4d $f.message() // "Hello world" を表示します @@ -36,7 +36,7 @@ $f:={message: $message} $f["message"]() // "Hello world" と表示します ``` -たとえ引数を受け取らなかったとしても (後述参照)、オブジェクト関数を実行するためにはカッコ `()` をつけて呼び出す必要があるという点に注意してください。 オブジェクトプロパティのみを呼び出した場合、フォーミュラへの新しい参照が返されます (そしてフォーミュラは実行はされません): +たとえ引数を受け取らなかったとしても (後述参照)、オブジェクト関数を実行するためにはカッコ `()` をつけて呼び出す必要があるという点に注意してください。オブジェクトプロパティのみを呼び出した場合、フォーミュラへの新しい参照が返されます (そしてフォーミュラは実行はされません): ```4d $o:=$f.message // $o にはFunction オブジェクトが返されます @@ -95,7 +95,7 @@ $f:={message: $message} - `4D.Formula` オブジェクトには、引数は $1...$n でフォーミュラに渡されます。 - `4D.Method` オブジェクトのようなその他の `4D.Function` オブジェクトには、引数は[宣言されたメソッド引数](../Concepts/parameters.md) 内に渡されます。 -`.apply()` は [`.call()`](#call) と似ていますが、引数をコレクションとして渡す点が異なります。 これは計算された結果を渡すのに便利です。 +`.apply()` は [`.call()`](#call) と似ていますが、引数をコレクションとして渡す点が異なります。これは計算された結果を渡すのに便利です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPAgentClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPAgentClass.md index 140ab35a1d4706..421e7dc69222a1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPAgentClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPAgentClass.md @@ -7,7 +7,7 @@ title: HTTPAgent `HTTPAgent` クラスは、`4D` クラスストアにて提供されています。 [`HTTPAgent オブジェクト`](#httpagent-オブジェクト) は、[4D.HTTPAgent.new()](#4dhttpagentnew) 関数で新規作成できます。 -HTTPリクエストに関連付けられたエージェントがない場合、デフォルト値を持つグローバルエージェントが使用されます。 デフォルトエージェントは、基本的なユースケースに適した最もシンプルな HTTPエージェントです。 接続の設定 (keep-alive設定、タイムアウト、TLS/SSL設定など) について、HTTPリクエスト毎ではなくエージェントレベルで、より細かい制御をおこなうために、カスタムエージェントの使用が推奨されます。 +HTTPリクエストに関連付けられたエージェントがない場合、デフォルト値を持つグローバルエージェントが使用されます。デフォルトエージェントは、基本的なユースケースに適した最もシンプルな HTTPエージェントです。接続の設定 (keep-alive設定、タイムアウト、TLS/SSL設定など) について、HTTPリクエスト毎ではなくエージェントレベルで、より細かい制御をおこなうために、カスタムエージェントの使用が推奨されます。
    履歴 @@ -76,17 +76,17 @@ HTTPAgent のオプションは [HTTPRequest のオプション](HTTPRequestClas ::: -| プロパティ | 型 | デフォルト | 説明 | -| ---------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| certificatesFolder | Folder | undefined (デフォルト値は [HTTPRequest.new()](HTTPRequestClass.md#options-引数) 参照) | 当該エージェントを使ったリクエストに使用するクライアント証明書フォルダー。 "storeCertificateName" によって上書き可能(下記参照) "storeCertificateName" によって上書き可能(下記参照) | -| keepAlive | Boolean | true | 当該エージェントについて keep-alive を有効にします | -| maxSockets | Integer | 65535 | サーバーあたりの最大ソケット数 | -| maxTotalSockets | Integer | 65535 | エージェントの最大ソケット数 | -| minTLSVersion | Text | undefined (デフォルト値は [HTTPRequest.new()](HTTPRequestClass.md#options-引数) 参照) | 当該エージェントを使ったリクエストに設定する TLS の最小バージョン | -| protocol | Text | undefined (デフォルト値は [HTTPRequest.new()](HTTPRequestClass.md#options-引数) 参照) | 当該エージェントを使ったリクエストに使用されるプロトコル | -| storeCertificateName | Text | undefined | 証明書フォルダーに保存されているものの代わりに使用する、証明書ストア(Windows) または *keychain* (macOS) に保存されている証明書の名前。 証明書がストアに見つからなかった場合、エラーが返されます。 より詳細な情報については、[Windows についてはこちらのblog 記事を](https://blog.4d.com/https-requests-now-support-windows-certificate-store) 、また [macOS についてはこちらのblog 記事を](https://blog.4d.com/https-requests-macos-keychain-support-is-here)を参照してください。 | -| timeout | Real | undefined | 定義されている場合、未使用のソケットが閉じられるまでのタイムアウト | -| validateTLSCertificate | Boolean | undefined (デフォルト値は [HTTPRequest.new()](HTTPRequestClass.md#options-引数) 参照) | 当該エージェントを使用したリクエストについて、TLS 証明書の検証をおこなうか | +| プロパティ | 型 | デフォルト | 説明 | +| ---------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| certificatesFolder | Folder | undefined (デフォルト値は [HTTPRequest.new()](HTTPRequestClass.md#options-引数) 参照) | 当該エージェントを使ったリクエストに使用するクライアント証明書フォルダー。 "storeCertificateName" によって上書き可能(下記参照) "storeCertificateName" によって上書き可能(下記参照) | +| keepAlive | Boolean | true | 当該エージェントについて keep-alive を有効にします | +| maxSockets | Integer | 65535 | サーバーあたりの最大ソケット数 | +| maxTotalSockets | Integer | 65535 | エージェントの最大ソケット数 | +| minTLSVersion | Text | undefined (デフォルト値は [HTTPRequest.new()](HTTPRequestClass.md#options-引数) 参照) | 当該エージェントを使ったリクエストに設定する TLS の最小バージョン | +| protocol | Text | undefined (デフォルト値は [HTTPRequest.new()](HTTPRequestClass.md#options-引数) 参照) | 当該エージェントを使ったリクエストに使用されるプロトコル | +| storeCertificateName | Text | undefined | 証明書フォルダーに保存されているものの代わりに使用する、証明書ストア(Windows) または *keychain* (macOS) に保存されている証明書の名前。証明書がストアに見つからなかった場合、エラーが返されます。より詳細な情報については、[Windows についてはこちらのblog 記事を](https://blog.4d.com/https-requests-now-support-windows-certificate-store) 、また [macOS についてはこちらのblog 記事を](https://blog.4d.com/https-requests-macos-keychain-support-is-here)を参照してください。 | +| timeout | Real | undefined | 定義されている場合、未使用のソケットが閉じられるまでのタイムアウト | +| validateTLSCertificate | Boolean | undefined (デフォルト値は [HTTPRequest.new()](HTTPRequestClass.md#options-引数) 参照) | 当該エージェントを使用したリクエストについて、TLS 証明書の検証をおこなうか | :::note @@ -96,7 +96,7 @@ macOS では、新しいアプリケーション(新しい [UUID](./FileClass.md :::note -同じエージェントを使って複数のサーバーにリクエストすることができます。 その場合各サーバーは、同じエージェントオプションを使用した独自の接続プールを持ちます。 +同じエージェントを使って複数のサーバーにリクエストすることができます。その場合各サーバーは、同じエージェントオプションを使用した独自の接続プールを持ちます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md index 41a641dc8d77a5..c82369cc0f3228 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md @@ -111,7 +111,7 @@ HTTPRequest オブジェクトは次のプロパティや関数を提供しま 返される `HTTPRequest` オブジェクトは、HTTPサーバーのレスポンスの処理と、メソッドを呼び出すのに使用されます。 -*url* には、リクエスト送信先の URL を渡します。 シンタックスは以下の通りです: +*url* には、リクエスト送信先の URL を渡します。シンタックスは以下の通りです: ``` {http://}[{user}:[{password}]@]host[:{port}][/{path}][?{queryString}] @@ -137,30 +137,30 @@ HTTPRequest オブジェクトは次のプロパティや関数を提供しま *options* に渡すオブジェクトは、次のプロパティを持つことができます: -| プロパティ | 型 | 説明 | デフォルト | -| ---------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- | -| agent | [4D.HTTPAgent](HTTPAgentClass.md) | HTTPRequest で使用する HTTPAgent。 エージェントオプションはリクエストオプションと統合されます (リクエストオプションが優先されます)。 特定のエージェントが定義されていない場合、デフォルト値を持つグローバルエージェントが使用されます。 | グローバルエージェントオブジェクト | -| automaticRedirections | Boolean | true の場合、リダイレクトは自動的に実行されます (最大 5回までのリダイレクトが処理され、もしあれば 6回目のリダイレクトレスポンスが返されます) | true | -| body | Variant | リクエストの本文 (`post` または `put` リクエストの場合に必須)。 テキスト、BLOB、またはオブジェクトを指定できます。 ヘッダー内で設定されていない限り、content-type は当プロパティの型によって決定されます。 | undefined | -| certificatesFolder | [Folder](FolderClass.md) | アクティブクライアント証明書フォルダーを設定します。 "storeCertificateName" によって上書き可能です(下記参照)。 | undefined | -| dataType | Text | レスポンス本文のデータ型。 値: "text", "blob", "object", または "auto"。 "auto" の場合、本文の型は MIMEタイプから推定されます (JSON ならオブジェクト、テキスト・javascript・xml・httpメッセージ・URLエンコードされたフォームなどはテキスト、それ以外は BLOB)。 | "auto" | -| decodeData | Boolean | true の場合、`onData` コールバックが受け取るデータは非圧縮です | false | -| encoding | Text | `body` のあるリクエストの場合にのみ使用 (`post` または `put` メソッド)。 本文がテキストの場合のエンコーディング。ヘッダーにて content-type が指定されている場合は無視されます。 | "UTF-8" | -| headers | Object | リクエストのヘッダー。 シンタックス: `headers.key=value` (同じ key に対して *value* を複数指定する場合、*value* にコレクションを使用できます) | 空のオブジェクト | -| method | Text | "POST"、"GET"、またはその他のメソッド | "GET" | -| minTLSVersion | Text | TLS の最小バージョンを指定します: "`TLSv1_0`", "`TLSv1_1`", "`TLSv1_2`", "`TLSv1_3`" | "`TLSv1_2`" | -| onData | [Function](FunctionClass.md) | 本文のデータ受信時のコールバック。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | -| onError | [Function](FunctionClass.md) | エラー発生時のコールバック。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | -| onHeaders | [Function](FunctionClass.md) | ヘッダー受信時のコールバック。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | -| onResponse | [Function](FunctionClass.md) | レスポンス受信時のコールバック。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | -| onTerminate | [Function](FunctionClass.md) | リクエスト終了時のコールバック。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | -| protocol | Text | "auto" または "HTTP1"。 "auto" は現在の実装における HTTP1 を意味します。 | "auto" | -| proxyAuthentication | [authentication オブジェクト](#authentication-オブジェクト) | プロキシ認証のためのオブジェクト | undefined | -| returnResponseBody | Boolean | false の場合、レスポンス本文は[`response` オブジェクト](#response) に返されません。 false かつ `onData` が未定義の場合にエラーを返します。 | true | -| serverAuthentication | [authentication オブジェクト](#authentication-オブジェクト) | サーバー認証のためのオブジェクト | undefined | -| storeCertificateName | Text | 証明書フォルダーに保存されているものの代わりに使用する、証明書ストア(Windows) または *keychain* (macOS) に保存されている証明書の名前。 証明書がストアに見つからなかった場合、エラーが返されます。 より詳細な情報については、[Windows についてはこちらのblog 記事を](https://blog.4d.com/https-requests-now-support-windows-certificate-store) 、また [macOS についてはこちらのblog 記事を](https://blog.4d.com/https-requests-macos-keychain-support-is-here)を参照してください。 | undefined | -| timeout | Real | タイムアウト (秒単位)。 タイムアウト (秒単位) 未定義 = タイムアウトなし | undefined | -| validateTLSCertificate | Boolean | false の場合、4D は TLS証明書の検証をおこなわず、無効 (期限切れ、自己署名など) であってもエラーを返しません。 重要: 現在の実装では、認証局そのものは検証されません。 | true | +| プロパティ | 型 | 説明 | デフォルト | +| ---------------------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | +| agent | [4D.HTTPAgent](HTTPAgentClass.md) | HTTPRequest で使用する HTTPAgent。エージェントオプションはリクエストオプションと統合されます (リクエストオプションが優先されます)。特定のエージェントが定義されていない場合、デフォルト値を持つグローバルエージェントが使用されます。 | グローバルエージェントオブジェクト | +| automaticRedirections | Boolean | true の場合、リダイレクトは自動的に実行されます (最大 5回までのリダイレクトが処理され、もしあれば 6回目のリダイレクトレスポンスが返されます) | true | +| body | Variant | リクエストの本文 (`post` または `put` リクエストの場合に必須)。テキスト、BLOB、またはオブジェクトを指定できます。ヘッダー内で設定されていない限り、content-type は当プロパティの型によって決定されます。 | undefined | +| certificatesFolder | [Folder](FolderClass.md) | アクティブクライアント証明書フォルダーを設定します。 "storeCertificateName" によって上書き可能です(下記参照)。 | undefined | +| dataType | Text | レスポンス本文のデータ型。値: "text", "blob", "object", または "auto"。 "auto" の場合、本文の型は MIMEタイプから推定されます (JSON ならオブジェクト、テキスト・javascript・xml・httpメッセージ・URLエンコードされたフォームなどはテキスト、それ以外は BLOB)。 | "auto" | +| decodeData | Boolean | true の場合、`onData` コールバックが受け取るデータは非圧縮です | false | +| encoding | Text | `body` のあるリクエストの場合にのみ使用 (`post` または `put` メソッド)。本文がテキストの場合のエンコーディング。ヘッダーにて content-type が指定されている場合は無視されます。 | "UTF-8" | +| headers | Object | リクエストのヘッダー。シンタックス: `headers.key=value` (同じ key に対して *value* を複数指定する場合、*value* にコレクションを使用できます) | 空のオブジェクト | +| method | Text | "POST"、"GET"、またはその他のメソッド | "GET" | +| minTLSVersion | Text | TLS の最小バージョンを指定します: "`TLSv1_0`", "`TLSv1_1`", "`TLSv1_2`", "`TLSv1_3`" | "`TLSv1_2`" | +| onData | [Function](FunctionClass.md) | 本文のデータ受信時のコールバック。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | +| onError | [Function](FunctionClass.md) | エラー発生時のコールバック。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | +| onHeaders | [Function](FunctionClass.md) | ヘッダー受信時のコールバック。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | +| onResponse | [Function](FunctionClass.md) | レスポンス受信時のコールバック。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | +| onTerminate | [Function](FunctionClass.md) | リクエスト終了時のコールバック。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | undefined | +| protocol | Text | "auto" または "HTTP1"。 "auto" は現在の実装における HTTP1 を意味します。 | "auto" | +| proxyAuthentication | [authentication オブジェクト](#authentication-オブジェクト) | プロキシ認証のためのオブジェクト | undefined | +| returnResponseBody | Boolean | false の場合、レスポンス本文は[`response` オブジェクト](#response) に返されません。 false かつ `onData` が未定義の場合にエラーを返します。 | true | +| serverAuthentication | [authentication オブジェクト](#authentication-オブジェクト) | サーバー認証のためのオブジェクト | undefined | +| storeCertificateName | Text | 証明書フォルダーに保存されているものの代わりに使用する、証明書ストア(Windows) または *keychain* (macOS) に保存されている証明書の名前。証明書がストアに見つからなかった場合、エラーが返されます。より詳細な情報については、[Windows についてはこちらのblog 記事を](https://blog.4d.com/https-requests-now-support-windows-certificate-store) 、また [macOS についてはこちらのblog 記事を](https://blog.4d.com/https-requests-macos-keychain-support-is-here)を参照してください。 | undefined | +| timeout | Real | タイムアウト (秒単位)。タイムアウト (秒単位) 未定義 = タイムアウトなし | undefined | +| validateTLSCertificate | Boolean | false の場合、4D は TLS証明書の検証をおこなわず、無効 (期限切れ、自己署名など) であってもエラーを返しません。重要: 現在の実装では、認証局そのものは検証されません。 | true | :::note @@ -193,16 +193,16 @@ macOS では、新しいアプリケーション(新しい [UUID](./FileClass.md #### event オブジェクト -`event` オブジェクトは、 [コールバック関数](#コールバック関数) が呼ばれたときに返されます。 このオブジェクトには次のプロパティが含まれます: +`event` オブジェクトは、 [コールバック関数](#コールバック関数) が呼ばれたときに返されます。このオブジェクトには次のプロパティが含まれます: -| プロパティ | 型 | 説明 | -| --------------------- | ---- | -------------------------------------------------------------------------------------- | -| .data | blob | 取得データ。 取得データ。 `onData` コールバック以外の場合は常に *undefined* です。 | -| .type | text | イベントの種類。 取り得る値: "response", "error", "headers", "data", または "terminate | +| プロパティ | 型 | 説明 | +| --------------------- | ---- | ------------------------------------------------------------------------------------- | +| .data | blob | 取得データ。取得データ。 `onData` コールバック以外の場合は常に *undefined* です。 | +| .type | text | イベントの種類。取り得る値: "response", "error", "headers", "data", または "terminate | #### authentication オブジェクト -authentication オブジェクトは `options.serverAuthentication` または `options.proxyAuthentication` プロパティに使用します。 このオブジェクトには以下のプロパティを含めることができます: +authentication オブジェクトは `options.serverAuthentication` または `options.proxyAuthentication` プロパティに使用します。このオブジェクトには以下のプロパティを含めることができます: | プロパティ | 型 | 説明 | デフォルト | | -------- | ---- | ----------------------------------------------- | --------- | @@ -277,7 +277,7 @@ authentication オブジェクトは `options.serverAuthentication` または `o #### 説明 -`.headers` プロパティは、 [new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された `headers` を格納します。 (省略された場合は空のオブジェクト) +`.headers` プロパティは、 [new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された `headers` を格納します。(省略された場合は空のオブジェクト) @@ -289,7 +289,7 @@ authentication オブジェクトは `options.serverAuthentication` または `o #### 説明 -`.method` プロパティは、[new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された `method` を格納します。 (省略された場合は "GET") +`.method` プロパティは、[new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された `method` を格納します。(省略された場合は "GET") @@ -301,7 +301,7 @@ authentication オブジェクトは `options.serverAuthentication` または `o #### 説明 -`.protocol` プロパティは、 [new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された `protocol` を格納します。 (省略時、または "auto" の場合は、使用されたプロトコルのバージョン) +`.protocol` プロパティは、 [new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された `protocol` を格納します。(省略時、または "auto" の場合は、使用されたプロトコルのバージョン) @@ -323,15 +323,15 @@ authentication オブジェクトは `options.serverAuthentication` または `o `.response` プロパティは、少なくともステータスコードを受け取った場合には、リクエストへのレスポンスを格納します (それ以外の場合は未定義)。 -`response` オブジェクトは共有できないオブジェクトです。 このオブジェクトは次のプロパティを提供します: +`response` オブジェクトは共有できないオブジェクトです。このオブジェクトは次のプロパティを提供します: -| プロパティ | 型 | 説明 | -| --------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| .body | Variant | レスポンスのボディ。 メッセージのデータ型は [`dataType`](#datatype) プロパティによって定義されています。 ボディがまだ受信されていない場合は未定義です。 | -| .headers | Object | レスポンスのヘッダー。 ヘッダー名は小文字で返されます。 `.key` = value (同じ key が複数指定されている場合、*value* はコレクションでありえます)。 ヘッダーがまだ受信されていない場合は未定義です。 | -| .status | Number | レスポンスのステータスコード | -| .statusText | Text | ステータスコードを説明するメッセージ | -| .rawHeaders | Object | レスポンスのヘッダー。 ヘッダー名はそのまま (大文字小文字を変えずに) 返されます。 `.key` = value (同じ key が複数指定されている場合、*value* はコレクションでありえます)。 ヘッダーがまだ受信されていない場合は未定義です。 | +| プロパティ | 型 | 説明 | +| --------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| .body | Variant | レスポンスのボディ。メッセージのデータ型は [`dataType`](#datatype) プロパティによって定義されています。ボディがまだ受信されていない場合は未定義です。 | +| .headers | Object | レスポンスのヘッダー。ヘッダー名は小文字で返されます。 `.key` = value (同じ key が複数指定されている場合、*value* はコレクションでありえます)。ヘッダーがまだ受信されていない場合は未定義です。 | +| .status | Number | レスポンスのステータスコード | +| .statusText | Text | ステータスコードを説明するメッセージ | +| .rawHeaders | Object | レスポンスのヘッダー。ヘッダー名はそのまま (大文字小文字を変えずに) 返されます。 `.key` = value (同じ key が複数指定されている場合、*value* はコレクションでありえます)。ヘッダーがまだ受信されていない場合は未定義です。 | @@ -343,7 +343,7 @@ authentication オブジェクトは `options.serverAuthentication` または `o #### 説明 -`.returnResponseBody` プロパティは、 [new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された` returnResponseBody` を格納します。 省略された場合は true。 +`.returnResponseBody` プロパティは、 [new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された` returnResponseBody` を格納します。省略された場合は true。 @@ -368,7 +368,7 @@ authentication オブジェクトは `options.serverAuthentication` または `o > この関数はスレッドセーフです。 -`.terminate()` 関数は、HTTPリクエストを中止します。 また、`onTerminate` イベントをトリガーします。 +`.terminate()` 関数は、HTTPリクエストを中止します。また、`onTerminate` イベントをトリガーします。 @@ -392,7 +392,7 @@ authentication オブジェクトは `options.serverAuthentication` または `o #### 説明 -`.timeout` プロパティは、 [new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された `timeout` を格納します。 省略された場合は未定義。 +`.timeout` プロパティは、 [new()](#4dhttprequestnew) を呼び出す際に [`options`](#options-引数) オブジェクトに渡された `timeout` を格納します。省略された場合は未定義。 @@ -432,13 +432,13 @@ authentication オブジェクトは `options.serverAuthentication` または `o `wait()` 関数はサーバーからのレスポンスが来るか、`timeout` 引数で指定した秒数に達するまで待ちます。 -*timeout* 引数でタイムアウトまでの時間が指定された場合、関数はこの引数で指定された時間待機します。 小数点以下も指定可能です。 +*timeout* 引数でタイムアウトまでの時間が指定された場合、関数はこの引数で指定された時間待機します。小数点以下も指定可能です。 サーバーのレスポンスがすでに到着している場合、関数は即座に返されます。 :::note -.wait() の実行中、それが `HTTPRequest` あるいは [`SystemWorker`](SystemWorkerClass.md) インスタンス、あるいは他の [`CALL WORKER`](../commands/call-worker) 呼び出しから発生したかにかかわらず、ワーカーからのコールバックは実行されます。 コールバックから [`terminate()`](#terminate) を呼び出すことで、`.wait()` を終了することができます。 +.wait() の実行中、それが `HTTPRequest` あるいは [`SystemWorker`](SystemWorkerClass.md) インスタンス、あるいは他の [`CALL WORKER`](../commands/call-worker) 呼び出しから発生したかにかかわらず、ワーカーからのコールバックは実行されます。コールバックから [`terminate()`](#terminate) を呼び出すことで、`.wait()` を終了することができます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/IMAPNotifierClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/IMAPNotifierClass.md index 1e7e43446e4f21..02e35da0c3a8cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/IMAPNotifierClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/IMAPNotifierClass.md @@ -84,7 +84,7 @@ IMAPNotifier オブジェクトは以下のプロパティと関数を提供し #### 説明 -`.isStarted` プロパティは 通知が開始されたか(`true`) 停止されたか(`false`) を表します。 このプロパティは **読み取り専用** です。 +`.isStarted` プロパティは 通知が開始されたか(`true`) 停止されたか(`false`) を表します。このプロパティは **読み取り専用** です。 @@ -112,9 +112,9 @@ IMAPNotifier オブジェクトは以下のプロパティと関数を提供し :::note 注記 -- 通知が開始されたら、(`getMail()` あるいは `send()` などの) 他のトランスポーター関数は利用できなくなります。 これらの関数を使用するためにはその前に`.stop()` を呼び出し、そして通知を再開するためには`.start()` をまた呼び出す必要があります。 +- 通知が開始されたら、(`getMail()` あるいは `send()` などの) 他のトランスポーター関数は利用できなくなります。これらの関数を使用するためにはその前に`.stop()` を呼び出し、そして通知を再開するためには`.start()` をまた呼び出す必要があります。 -- IMAP IDLE 通知は、変化が起きたということを表しますが、更新されたメールボックスのデータは提供しません。 メールボックスの状態を更新するためには、通知を停止し、更新されたデータを取得し(例えばを`getMail()` 使用するなど)、その後に通知を再開する必要があります。 +- IMAP IDLE 通知は、変化が起きたということを表しますが、更新されたメールボックスのデータは提供しません。メールボックスの状態を更新するためには、通知を停止し、更新されたデータを取得し(例えばを`getMail()` 使用するなど)、その後に通知を再開する必要があります。 ::: @@ -147,7 +147,7 @@ IMAPNotifier オブジェクトは以下のプロパティと関数を提供し #### 説明 -`.stop()` 関数は通知の登録を停止します。 他のトランスポーター関数(`getMail()` あるいは `send()`など) を呼び出す前に、`.stop()` 関数を呼び出す必要があります。 +`.stop()` 関数は通知の登録を停止します。他のトランスポーター関数(`getMail()` あるいは `send()`など) を呼び出す前に、`.stop()` 関数を呼び出す必要があります。 #### 返されるオブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md index d8097ed7901914..ca48f55b08c6fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md @@ -7,7 +7,7 @@ title: IMAPTransporter ### IMAP Transporter オブジェクト -IMAP Transporter オブジェクトは [IMAP New transporter](../commands/imap-new-transporter) コマンドによってインスタンス化されます。 これらは、次のプロパティや関数を持ちます: +IMAP Transporter オブジェクトは [IMAP New transporter](../commands/imap-new-transporter) コマンドによってインスタンス化されます。これらは、次のプロパティや関数を持ちます: | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -61,7 +61,7 @@ IMAP Transporter オブジェクトは [IMAP New transporter](../commands/imap-n #### 説明 -`4D.IMAPTransporter.new()` 関数は、新規の `4D.IMAPTransporter`型オブジェクトを作成して返します。 この関数の機能は、[`IMAP New transporter`](../commands/imap-new-transporter) コマンドと同一です。 +`4D.IMAPTransporter.new()` 関数は、新規の `4D.IMAPTransporter`型オブジェクトを作成して返します。この関数の機能は、[`IMAP New transporter`](../commands/imap-new-transporter) コマンドと同一です。 @@ -108,7 +108,7 @@ IMAP Transporter オブジェクトは [IMAP New transporter](../commands/imap-n | -------- | - | ------------------------- | | IMAP all | 1 | 選択されたメールボックスの全メッセージを選択します | -`keywords` を使って、`msgIDs` 引数で指定したメッセージに対して追加するフラグを定義します。 以下の標準フラグおよびカスタムフラグを使用することができます (カスタムフラグのサポートはサーバーの実装に依存します)。 +`keywords` を使って、`msgIDs` 引数で指定したメッセージに対して追加するフラグを定義します。以下の標準フラグおよびカスタムフラグを使用することができます (カスタムフラグのサポートはサーバーの実装に依存します)。 | プロパティ | 型 | 説明 | | --------------- | ------- | --------------------------------- | @@ -202,16 +202,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 およびテキスト本文コンテンツで使用される文字セットとエンコーディング。取り得る値: 以下の可能な文字セットテーブルを参照ください。 | 使用可能な文字セット: @@ -279,7 +279,7 @@ $status:=$imap.append($msg; "Drafts") #### 説明 -`.checkConnectionDelay` 関数は、サーバー接続をチェックするまでの最長時間 (秒単位) を格納します。 関数呼び出しの間隔がこの時間を超過する場合、サーバー接続が確認されます。 プロパティが *server* オブジェクトによって設定されていない場合は、デフォルトで 300 という値が使用されます。 +`.checkConnectionDelay` 関数は、サーバー接続をチェックするまでの最長時間 (秒単位) を格納します。関数呼び出しの間隔がこの時間を超過する場合、サーバー接続が確認されます。プロパティが *server* オブジェクトによって設定されていない場合は、デフォルトで 300 という値が使用されます。 > **警告**: 定義されたタイムアウトが、サーバータイムアウトより短いようにしてください。そうでない場合、クライアントタイムアウトは無意味になります。 @@ -509,7 +509,7 @@ End if - `msgsIDs` には、削除するメッセージの固有ID を格納したコレクション - `allMsgs` には、選択されているメールボックスの全メッセージを削除するための定数 (倍長整数型): -この関数を実行しても、メールが実際に削除される訳ではありません。 "削除済み" フラグがつけられたメッセージも引き続き [.searchMails()](#searchmails) 関数によって検索可能です。 フラグがつけられたメッセージは、[`.expunge()`](#expunge) を実行したときか、別のメールボックスを選択したとき、あるいは([IMAP New transporter](../commands/imap-new-transporter) で作成された) [transporter オブジェクト](#imap-transporter-オブジェクト) が消去されたときにのみ、IMAPサーバーから削除されます。 +この関数を実行しても、メールが実際に削除される訳ではありません。"削除済み" フラグがつけられたメッセージも引き続き [.searchMails()](#searchmails) 関数によって検索可能です。フラグがつけられたメッセージは、[`.expunge()`](#expunge) を実行したときか、別のメールボックスを選択したとき、あるいは([IMAP New transporter](../commands/imap-new-transporter) で作成された) [transporter オブジェクト](#imap-transporter-オブジェクト) が消去されたときにのみ、IMAPサーバーから削除されます。 **返されるオブジェクト** @@ -605,7 +605,7 @@ End if #### 説明 `.deleteBox()` 関数は、 -`name` に指定した名称のメールボックスを IMAPサーバーから完全に削除します。 存在しないメールボックス、または INBOX を削除しようとして場合には、エラーが生成されます。 +`name` に指定した名称のメールボックスを IMAPサーバーから完全に削除します。存在しないメールボックス、または INBOX を削除しようとして場合には、エラーが生成されます。 `name` には、削除するメールボックスの名前を渡します。 @@ -758,9 +758,9 @@ $status:=$transporter.expunge() #### 説明 -`.getBoxInfo()` 関数は、カレントメールボックス、または *name* が指定するメールボックスに対応する `boxInfo` オブジェクトを返します。 この関数は、[`.selectBox()`](#selectbox) と同じ情報を返しますが、カレントメールボックスは変えません。 +`.getBoxInfo()` 関数は、カレントメールボックス、または *name* が指定するメールボックスに対応する `boxInfo` オブジェクトを返します。この関数は、[`.selectBox()`](#selectbox) と同じ情報を返しますが、カレントメールボックスは変えません。 -任意の *name* パラメーターには、アクセスするメールボックスの名称を渡します。 この名称は明確な左から右への階層を表し、特定の区切り文字でレベルを区分けします。 この区切り文字は [`.getDelimiter()`](#getdelimiter) 関数で調べることができます。 +任意の *name* パラメーターには、アクセスするメールボックスの名称を渡します。この名称は明確な左から右への階層を表し、特定の区切り文字でレベルを区分けします。この区切り文字は [`.getDelimiter()`](#getdelimiter) 関数で調べることができます。 *name* のメールボックスが選択不可の場合、または見つからない場合には、関数はエラーを生成し、**null** を返します。 @@ -817,9 +817,9 @@ $status:=$transporter.expunge() #### 説明 -`.getBoxList()` 関数は、利用可能なメールボックスの情報を mailbox オブジェクトのコレクションとしてを返します。 この関数を使用すると、IMAPメールサーバー上にあるメッセージの一覧をローカルで管理することができるようになります。 +`.getBoxList()` 関数は、利用可能なメールボックスの情報を mailbox オブジェクトのコレクションとしてを返します。この関数を使用すると、IMAPメールサーバー上にあるメッセージの一覧をローカルで管理することができるようになります。 -任意の `parameters` パラメーターには、返されるメールボックスをフィルターするための値を格納したオブジェクトを渡すことができます。 以下のものを渡すことができます: +任意の `parameters` パラメーターには、返されるメールボックスをフィルターするための値を格納したオブジェクトを渡すことができます。以下のものを渡すことができます: | プロパティ | 型 | 説明 | | ----------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------- | @@ -832,16 +832,16 @@ $status:=$transporter.expunge() 返されるコレクションの各オブジェクトには、以下のプロパティが格納されています: -| プロパティ | 型 | 説明 | -| ------------------------------------------------------------------------------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| \[].name | Text | メールボックスの名称。 withBoxProperties=true または withBoxInfo=true の場合に返されます | -| \[].selectable | Boolean | アクセス権でメールボックスを選択できるかどうかを表します:
    • true - メールボックスは選択可能
    • false - メールボックスは選択不可能
    withBoxProperties=true の場合に返されます | -| \[].inferior | Boolean | アクセス権でメールボックス内に下の階層レベルを作成できるかどうかを表します:
    • true - 下の階層レベルは作成可能
    • false - 下の階層レベルは作成不可能
    withBoxProperties=true の場合に返されます | -| \[].interesting | Boolean | サーバーがメールボックスに “interesting” のマーク付けをしているかどうかを表します:
    • true - メールボックスはサーバーから "interesting" のマーク付けをされています。 たとえば、メールボックスには新着メッセージが入っている場合が考えられます。
    • false - メールボックスはサーバーから "interesting" のマーク付けをされていません。
    withBoxProperties=true の場合に返されます たとえば、メールボックスには新着メッセージが入っている場合が考えられます。
  • false - メールボックスはサーバーから "interesting" のマーク付けをされていません。
  • withBoxProperties=true の場合に返されます | -| [].mailCount | Number | 受信ボックス内のメッセージの数。 withBoxInfo=true の場合に返されます | -| [].mailRecent | Number | (新しいメッセージであることを表す) "recent" フラグがついたメッセージの数。 withBoxInfo=true の場合に返されます | -| [].mailUnseen | Number | "unseen" フラグがついたメッセージの数。 withBoxInfo=true の場合に返されます | -| [].id | Text | 一意のメールボックス識別子。 withBoxInfo=true の場合に返されます | +| プロパティ | 型 | 説明 | +| ------------------------------------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| \[].name | Text | メールボックスの名称。 withBoxProperties=true または withBoxInfo=true の場合に返されます | +| \[].selectable | Boolean | アクセス権でメールボックスを選択できるかどうかを表します:
    • true - メールボックスは選択可能
    • false - メールボックスは選択不可能
    withBoxProperties=true の場合に返されます | +| \[].inferior | Boolean | アクセス権でメールボックス内に下の階層レベルを作成できるかどうかを表します:
    • true - 下の階層レベルは作成可能
    • false - 下の階層レベルは作成不可能
    withBoxProperties=true の場合に返されます | +| \[].interesting | Boolean | サーバーがメールボックスに “interesting” のマーク付けをしているかどうかを表します:
    • true - メールボックスはサーバーから "interesting" のマーク付けをされています。 たとえば、メールボックスには新着メッセージが入っている場合が考えられます。
    • false - メールボックスはサーバーから "interesting" のマーク付けをされていません。
    withBoxProperties=true の場合に返されますたとえば、メールボックスには新着メッセージが入っている場合が考えられます。
  • false - メールボックスはサーバーから "interesting" のマーク付けをされていません。
  • withBoxProperties=true の場合に返されます | +| [].mailCount | Number | 受信ボックス内のメッセージの数。 withBoxInfo=true の場合に返されます | +| [].mailRecent | Number | (新しいメッセージであることを表す) "recent" フラグがついたメッセージの数。 withBoxInfo=true の場合に返されます | +| [].mailUnseen | Number | "unseen" フラグがついたメッセージの数。 withBoxInfo=true の場合に返されます | +| [].id | Text | 一意のメールボックス識別子。 withBoxInfo=true の場合に返されます | アカウントにメールボックスが一つもない場合、空のコレクションが返されます。 @@ -956,19 +956,19 @@ $status:=$transporter.expunge() #### 説明 `.getMail()` 関数は、 -`IMAP_transporter` が指定するメールボックス内の、*msgNumber* または *msgID* に対応するメールを `Email` オブジェクトとして返します。 この関数を使用すると、メールのコンテンツをローカルで管理できるようになります。 +`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) によって選択されたメールボックスがない場合、エラーが生成されます。 @@ -1044,28 +1044,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* 引数を渡すと、返されるメッセージのパートを定義することができます。 **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) で最後に指定されたメールボックスへの接続を開きます。 @@ -1149,7 +1149,7 @@ ID = 1のメッセージを取得します: - *msgNumber* に、取得するメッセージのシーケンス番号 (*倍長整数*) を渡します。 - *msgID*に、取得するメッセージの固有ID (*テキスト*) を渡します。 -任意の *updateSeen* 引数を渡すと、メールボックス内でメッセージが "既読" とマークされるかどうかを指定します。 以下のものを渡すことができます: +任意の *updateSeen* 引数を渡すと、メールボックス内でメッセージが "既読" とマークされるかどうかを指定します。以下のものを渡すことができます: - **True** - メッセージは "既読" とマークされます (このメッセージが読まれたことを表します) - **False** - メッセージの "既読" ステータスは変化しません。 @@ -1306,7 +1306,7 @@ ID = 1のメッセージを取得します: #### 説明 -`.notifier` プロパティはトランスポーターに割り当てられたIMAPNotifier オブジェクトを格納しています。 このプロパティは **読み取り専用** です。 +`.notifier` プロパティはトランスポーターに割り当てられたIMAPNotifier オブジェクトを格納しています。このプロパティは **読み取り専用** です。 詳細は [IMAPNotifier](./IMAPNotifierClass.md)を参照してください。 @@ -1343,9 +1343,9 @@ ID = 1のメッセージを取得します: `.numToID()` 関数は、現在選択されているメールボックスにおいて、*startMsg* および *endMsg* で指定された連続した範囲のメッセージのシーケンス番号を IMAP固有IDへと変換します。 -*startMsg* には、連続したレンジの最初のメッセージの番号に対応する *倍長整数* の値を渡します。 負の値 (*startMsg* <= 0) を渡した場合、メールボックスの最初のメッセージが連続レンジの先頭メッセージとして扱われます。 +*startMsg* には、連続したレンジの最初のメッセージの番号に対応する *倍長整数* の値を渡します。負の値 (*startMsg* <= 0) を渡した場合、メールボックスの最初のメッセージが連続レンジの先頭メッセージとして扱われます。 -*endMsg* には、連続レンジに含める最後のメッセージの番号に対応する *倍長整数* の値を渡します。 負の値 (*endMsg* <= 0) を渡した場合、メールボックスの最後のメッセージが連続レンジの最終メッセージとして扱われます。 +*endMsg* には、連続レンジに含める最後のメッセージの番号に対応する *倍長整数* の値を渡します。負の値 (*endMsg* <= 0) を渡した場合、メールボックスの最後のメッセージが連続レンジの最終メッセージとして扱われます。 #### 戻り値 @@ -1420,7 +1420,7 @@ ID = 1のメッセージを取得します: | -------- | - | ------------------------- | | IMAP all | 1 | 選択されたメールボックスの全メッセージを選択します | -`keywords` を使って、`msgIDs` 引数で指定したメッセージから削除するフラグを定義します。 以下の標準フラグおよびカスタムフラグを使用することができます: +`keywords` を使って、`msgIDs` 引数で指定したメッセージから削除するフラグを定義します。以下の標準フラグおよびカスタムフラグを使用することができます: | 引数 | 型 | 説明 | | --------------- | ------- | --------------------------------- | @@ -1506,7 +1506,7 @@ $status:=$transporter.removeFlags(IMAP all;$flags) #### 説明 -`.renameBox()` 関数は、IMAPサーバー上でメールボックスの名称を変更します。 存在しないメールボックスの名称を変更しようとしたり、すでに使われているメールボックス名に変更しようとしたりすると、エラーが生成されます。 +`.renameBox()` 関数は、IMAPサーバー上でメールボックスの名称を変更します。存在しないメールボックスの名称を変更しようとしたり、すでに使われているメールボックス名に変更しようとしたりすると、エラーが生成されます。 `currentName` には、名称変更するメールボックスの名前を渡します。 @@ -1591,7 +1591,7 @@ End if `.searchMails()` 関数は、カレントメールボックスにおいて *searchCriteria* の検索条件に合致するメッセージを検索します。 *searchCriteria* 引数には、一つ以上の検索キーを格納します。 -*searchCriteria* はテキスト型の引数で、一つ以上の検索キー (詳細は後述の [利用可能な検索キー](#利用可能な検索キー) 参照) を格納し、検索する値を渡します (渡さない場合もあります)。 検索キーは単一または複数の項目からなります。 例: +*searchCriteria* はテキスト型の引数で、一つ以上の検索キー (詳細は後述の [利用可能な検索キー](#利用可能な検索キー) 参照) を格納し、検索する値を渡します (渡さない場合もあります)。検索キーは単一または複数の項目からなります。例: ``` SearchKey1 = FLAGGED @@ -1638,8 +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" @@ -1652,22 +1651,18 @@ searchCriteria = CHARSET "ISO-8859" BODY "Help" 検索キーによっては、次の型の検索値が必要となる場合があります: - **日付値の検索キー**: - date は日付を指定する文字列で、以下のようにフォーマットされている必要があります: *date-day+"-"+date-month+"-"+date-year*。ここでの date-day は日付の数値 (最大2桁) を意味し、date-month は月の名前 (Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Dec) を意味し、date-year は年 (4桁) を意味します。 - 例: `searchCriteria = SENTBEFORE 1-Feb-2000` (日付は特殊文字を含まないため、通常は引用符でくくる必要はありません) + date は日付を指定する文字列で、以下のようにフォーマットされている必要があります: *date-day+"-"+date-month+"-"+date-year*。ここでの date-day は日付の数値 (最大2桁) を意味し、date-month は月の名前 (Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Dec) を意味し、date-year は年 (4桁) を意味します。例: `searchCriteria = SENTBEFORE 1-Feb-2000` (日付は特殊文字を含まないため、通常は引用符でくくる必要はありません) -- **文字列値の検索キー**: string はあらゆる文字列を含みうるため、引用符でくくらなければなりません。 文字列が特殊文字 (スペース文字など) をまったく含まない場合には、引用符で括る必要はありません。 このような文字列を引用符でくくることは、渡した文字列値が正確に解釈されることを保証します。 - 例: `searchCriteria = FROM "SMITH"`
    - 文字列を使用するすべての検索キーに対し、フィールドの文字列に検索キーが含まれる場合には検索に合致したとみなされます。 合致は文字の大小を区別しません。 +- **文字列値の検索キー**: string はあらゆる文字列を含みうるため、引用符でくくらなければなりません。文字列が特殊文字 (スペース文字など) をまったく含まない場合には、引用符で括る必要はありません。このような文字列を引用符でくくることは、渡した文字列値が正確に解釈されることを保証します。例: `searchCriteria = FROM "SMITH"`
    + 文字列を使用するすべての検索キーに対し、フィールドの文字列に検索キーが含まれる場合には検索に合致したとみなされます。合致は文字の大小を区別しません。 - **field-name 値の検索キー**: field-name はヘッダーフィールドの名称です。 例: `searchCriteria = HEADER CONTENT-TYPE "MIXED"` 例: `searchCriteria = HEADER CONTENT-TYPE "MIXED"` -- **フラグ値の検索キー**: flag は一つ以上のキーワードを (標準のフラグを含めて) 受け入れます。複数指定する場合にはスペースで区切ります。 - 例: `searchCriteria = KEYWORD \Flagged \Draft` +- **フラグ値の検索キー**: flag は一つ以上のキーワードを (標準のフラグを含めて) 受け入れます。複数指定する場合にはスペースで区切ります。例: `searchCriteria = KEYWORD \Flagged \Draft` -- **メッセージセット値の検索キー**: 複数のメッセージを識別します。 メッセージシーケンス番号は、1 から始まりメールボックスのメッセージの総数までの連続した番号です。 個別の番号はカンマで区切ります。 コロンは、その前後の番号を含めた連続した番号を指定します。 - 例:
    +- **メッセージセット値の検索キー**: 複数のメッセージを識別します。メッセージシーケンス番号は、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 フラグが設定されているメッセージを検索します。 @@ -1687,7 +1682,7 @@ searchCriteria = CHARSET "ISO-8859" BODY "Help" **OLD**: \Recent フラグが設定されていないメッセージ **SEEN**: \Seen フラグが設定されているメッセージ **UNSEEN**: \Seen フラグが設定されていないメッセージ -**NEW**: \Recent フラグが設定されているが \Seen フラグが設定されていないメッセージ。 これは機能的には “(RECENT UNSEEN)” と同じです。 +**NEW**: \Recent フラグが設定されているが \Seen フラグが設定されていないメッセージ。これは機能的には “(RECENT UNSEEN)” と同じです。 **KEYWORD* flag*\*\*: 指定されたキーワードが設定されているメッセージ **UNKEYWORD* flag*\*\*: 指定されたキーワードが設定されていないメッセージ **BEFORE* date*\*\*: 内部の日付が指定日より前のメッセージ @@ -1742,18 +1737,18 @@ 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()` は接続を開きます。 @@ -1822,7 +1817,7 @@ searchCriteria = CHARSET "ISO-8859" BODY "Help" #### 説明 -`.subscribe()` 関数は、IMAPサーバーの購読メールボックスとして任意のメールボックスを追加します。 利用可能なメールボックスが大量にある場合、すべてを取得するのを避けるため、確認したいメールボックスだけを購読することができます。 +`.subscribe()` 関数は、IMAPサーバーの購読メールボックスとして任意のメールボックスを追加します。利用可能なメールボックスが大量にある場合、すべてを取得するのを避けるため、確認したいメールボックスだけを購読することができます。 `name` には、購読するメールボックスの名前を渡します。 @@ -1898,7 +1893,7 @@ End if #### 説明 -`.unsubscribe()` 関数は、指定したメールボックスを購読メールボックスから削除します。 これにより、確認するメールボックスの数を減らせます。 +`.unsubscribe()` 関数は、指定したメールボックスを購読メールボックスから削除します。これにより、確認するメールボックスの数を減らせます。 `name` には、購読を解除するメールボックスの名前を渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md index 03c5fe3118f2c2..b4c76447c590b2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/IncomingMessageClass.md @@ -5,9 +5,9 @@ title: IncomingMessage `4D.IncomingMessage` クラスを使用すると、カスタムの [**HTTP リクエストハンドラー**](../WebServer/http-request-handler.md) が受信したオブジェクトを管理できるようになります。 HTTP リクエストおよびそのプロパティは`4D.IncomingMessage` クラスのインスタンスとして自動的に受信されます。 GET 動詞とともにリクエストに直接渡された引数は[`.urlQuery`](#urlquery) プロパティで管理される一方、リクエストの本文に渡された引数は[`.getBlob()`](#getblob) あるいは [`getText()`](#gettext) といった関数を通して利用可能です。 -HTTPリクエストハンドラーはあらゆる値を返すことが可能です(あるいは返さないことも可能です)。 通常は、[`4D.OutgoingMessage`](OutgoingMessageClass.md) クラスのインスタンスを返します。 通常は、[`4D.OutgoingMessage`](OutgoingMessageClass.md) クラスのインスタンスを返します。 +HTTPリクエストハンドラーはあらゆる値を返すことが可能です(あるいは返さないことも可能です)。 通常は、[`4D.OutgoingMessage`](OutgoingMessageClass.md) クラスのインスタンスを返します。通常は、[`4D.OutgoingMessage`](OutgoingMessageClass.md) クラスのインスタンスを返します。 -このクラスの全てのプロパティは読み出し専用です。 これらはリクエストハンドラーによって自動的に値が入れられます。 +このクラスの全てのプロパティは読み出し専用です。これらはリクエストハンドラーによって自動的に値が入れられます。
    履歴 @@ -32,7 +32,7 @@ HTTPリクエストハンドラーはあらゆる値を返すことが可能で ] ``` -`http://127.0.0.1/start/example?param=demo&name=4D` リクエストが、`GET` 動詞とともにブラウザー内で実行されます。 このリクエストは、以下の*GeneralHandling* シングルトンクラスの*gettingStarted* 関数によって管理されます: +`http://127.0.0.1/start/example?param=demo&name=4D` リクエストが、`GET` 動詞とともにブラウザー内で実行されます。このリクエストは、以下の*GeneralHandling* シングルトンクラスの*gettingStarted* 関数によって管理されます: ```4d shared singleton Class constructor() @@ -255,7 +255,7 @@ $value := $request.getHeader("content-type") `.headers` プロパティは、読み出し専用です。 -ヘッダー名(キー)は全て小文字となっています。 ヘッダー名では大文字と小文字が区別されることに注意してください。 +ヘッダー名(キー)は全て小文字となっています。ヘッダー名では大文字と小文字が区別されることに注意してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md index 4f90bec2710475..abecd7ff0205b9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md @@ -59,7 +59,7 @@ Attachment オブジェクトは、次の読み取り専用プロパティや、 #### 説明 -`4D.MailAttachment.new()` 関数は、`4D.MailAttachment` 型の新規オブジェクト作成して返します。 この関数の機能は、[`MAIL New attachment`](../commands/mail-new-attachment) コマンドと同一です。 +`4D.MailAttachment.new()` 関数は、`4D.MailAttachment` 型の新規オブジェクト作成して返します。この関数の機能は、[`MAIL New attachment`](../commands/mail-new-attachment) コマンドと同一です。 ## .cid @@ -67,7 +67,7 @@ Attachment オブジェクトは、次の読み取り専用プロパティや、 #### 説明 -`.cid` プロパティは、 添付ファイルの IDを格納します。 このプロパティは HTMLメッセージでのみ使用されます。 このプロパティがない場合、ファイルは単なる添付 (リンク) として管理されます。 +`.cid` プロパティは、 添付ファイルの IDを格納します。このプロパティは HTMLメッセージでのみ使用されます。このプロパティがない場合、ファイルは単なる添付 (リンク) として管理されます。 ## .disposition @@ -77,7 +77,7 @@ Attachment オブジェクトは、次の読み取り専用プロパティや、 `.disposition` プロパティは、`Content-Disposition` ヘッダーの値を格納します。 二つの値が利用可能です: 二つの値が利用可能です: -- "inline": 添付ファイルはメッセージコンテンツ内に、"cid"の場所にレンダリングされます。 レンダリングの結果はメールクライアントによって異なります。 +- "inline": 添付ファイルはメッセージコンテンツ内に、"cid"の場所にレンダリングされます。レンダリングの結果はメールクライアントによって異なります。 - "attachment": 添付ファイルはメッセージ内でリンクとして提供されます。 ## .getContent() diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/MethodClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/MethodClass.md index 72c7204bfca757..b8d8c005450d03 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/MethodClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/MethodClass.md @@ -3,11 +3,11 @@ id: MethodClass title: Method --- -`4D.Method` オブジェクトには、ソーステキストから作成され、実行可能なコードの一部分が格納されています。 `4D.Method` のメソッドは、プロジェクトの実行モード(インタープリター/コンパイル)に関わらず、常にインタープリターモードで実行されます。 この機能は特に、ダイナミックなコードスニペットのオン・ザ・フライな実行をサポートするように設計されてます。 +`4D.Method` オブジェクトには、ソーステキストから作成され、実行可能なコードの一部分が格納されています。 `4D.Method` のメソッドは、プロジェクトの実行モード(インタープリター/コンパイル)に関わらず、常にインタープリターモードで実行されます。この機能は特に、ダイナミックなコードスニペットのオン・ザ・フライな実行をサポートするように設計されてます。 `4D.Method` オブジェクトは、`4D.Method.new()` 関数で作成されます。 -`4D.Method` オブジェクトは、 [`4D.Function`](./FunctionClass.md) クラスを継承します。 そのため、メソッドオブジェクトを実行するためには、以下のような方法があります: +`4D.Method` オブジェクトは、 [`4D.Function`](./FunctionClass.md) クラスを継承します。そのため、メソッドオブジェクトを実行するためには、以下のような方法があります: - オブジェクトプロパティに`4D.Method` オブジェクトを入れ、プロパティ名の後に `()` 演算子を使用する - または、 [`call()`](#call) あるいは [`apply()`](#apply) 関数を使用して `4D.Method` オブジェクトを呼び出す。 @@ -111,11 +111,11 @@ End if
    -| 引数 | 型 | | 説明 | -| ------ | ------------------------- | :-------------------------: | --------------------------------------------------- | -| source | Text | -> | テキストとして表現された、オブジェクトとしてカプセル化される4D メソッド | -| name | Text | -> | デバッガーに表示するメソッド名。 省略した場合、メソッド名は "anonymous" と表示されます。 | -| 戻り値 | 4D.Method | <- | 新規メソッド共有オブジェクト | +| 引数 | 型 | | 説明 | +| ------ | ------------------------- | :-------------------------: | -------------------------------------------------- | +| source | Text | -> | テキストとして表現された、オブジェクトとしてカプセル化される4D メソッド | +| name | Text | -> | デバッガーに表示するメソッド名。省略した場合、メソッド名は "anonymous" と表示されます。 | +| 戻り値 | 4D.Method | <- | 新規メソッド共有オブジェクト |
    @@ -126,7 +126,7 @@ End if *source* 引数には、メソッドの4D ソースコードをテキストとして渡します。 [`Char`](../commands/char) コマンドまたは [エスケープシークエンス](../Concepts/quick-tour.md#エスケープシークエンス)を使用することで、全ての行末文字(LF、CR、CRLF)がサポートされています。 -オプションの *name* 引数には、4D デバッガーあるいはランタイムエクスプローラーに表示されるメソッドの名前を渡します。 この引数を省略した場合、メソッド名は、 "anonymous" として表示されます。 +オプションの *name* 引数には、4D デバッガーあるいはランタイムエクスプローラーに表示されるメソッドの名前を渡します。この引数を省略した場合、メソッド名は、 "anonymous" として表示されます。 :::tip @@ -141,7 +141,7 @@ End if :::note -命名された揮発性のメソッドオブジェクトはプロジェクトメソッドではありません。これらはディスクファイル内に保存はされず、[`EXECUTE METHOD`](../commands/execute-method) などのコマンドで呼び出すことはできません。 その一方で、これらは[`4D.Function`](./FunctionClass.md) クラスを継承するため、 `4D.Function` オブジェクトが想定されているところであればどこでも使用可能です。 +命名された揮発性のメソッドオブジェクトはプロジェクトメソッドではありません。これらはディスクファイル内に保存はされず、[`EXECUTE METHOD`](../commands/execute-method) などのコマンドで呼び出すことはできません。その一方で、これらは[`4D.Function`](./FunctionClass.md) クラスを継承するため、 `4D.Function` オブジェクトが想定されているところであればどこでも使用可能です。 ::: @@ -209,13 +209,13 @@ var $result:=$m.call(Null; 10; 5) //50 結果オブジェクトには、以下のプロパティが格納されています: -| プロパティ | | 型 | 説明 | -| ------- | --------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------ | -| success | | Boolean | シンタックスエラーが何も検出されなかった場合にはTrue、それ以外の場合にはFalse | -| errors | | Object の Collection | **以下はerror または warningの場合にのみ返されます**。 エラーまたは警告の詳細を格納したオブジェクトのコレクション | -| | [].isError | Boolean | エラーならTrue、それ以外の場合は警告 | -| | [].message | Text | エラーならTrue、それ以外の場合は警告 | -| | [].lineNumber | Integer | コード内でのエラーが発生した行番号 | +| プロパティ | | 型 | 説明 | +| ------- | --------------------------------------------------------------------------------- | ------------------- | ----------------------------------------------------------------- | +| success | | Boolean | シンタックスエラーが何も検出されなかった場合にはTrue、それ以外の場合にはFalse | +| errors | | Object の Collection | **以下はerror または warningの場合にのみ返されます**。エラーまたは警告の詳細を格納したオブジェクトのコレクション | +| | [].isError | Boolean | エラーならTrue、それ以外の場合は警告 | +| | [].message | Text | エラーならTrue、それ以外の場合は警告 | +| | [].lineNumber | Integer | コード内でのエラーが発生した行番号 | #### 例題 @@ -243,7 +243,7 @@ End if #### 説明 -`.name` プロパティには、`new()` コンストラクターの *name* 引数内で宣言されていれば、`4D.Method` オブジェクトの名前が格納されています。 それ以外の場合、プロパティは返されません。 +`.name` プロパティには、`new()` コンストラクターの *name* 引数内で宣言されていれば、`4D.Method` オブジェクトの名前が格納されています。それ以外の場合、プロパティは返されません。 このプロパティは **読み取り専用** です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md index 3a69fce39b44fc..15d7ee3e5153d3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/OutgoingMessageClass.md @@ -3,11 +3,11 @@ id: OutgoingMessageClass title: OutgoingMessage --- -`4D.OutgoingMessage` クラスを使うと、アプリケーションの関数が[REST リクエスト](../REST/REST_requests.md) に応答して返すメッセージを作成することができます。 レスポンスが`4D.OutgoingMessage` 型であった場合、REST サーバーはオブジェクトを返すのではなく、`OutgoingMessage` クラスのオブジェクトインスタンスを返します。 +`4D.OutgoingMessage` クラスを使うと、アプリケーションの関数が[REST リクエスト](../REST/REST_requests.md) に応答して返すメッセージを作成することができます。レスポンスが`4D.OutgoingMessage` 型であった場合、REST サーバーはオブジェクトを返すのではなく、`OutgoingMessage` クラスのオブジェクトインスタンスを返します。 -通常、このクラスは、カスタムの[HTTP リクエストハンドラー関数](../WebServer/http-request-handler.md#関数の設定) またはHTTP GET リクエストを管理するようにデザインされた、[`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword) キーワードで宣言された関数内で使用することができます。 このようなリクエストは、例えば、ファイルのダウンロード、画像の生成、ダウンロードなどの機能を実装するためや、ブラウザーを介して任意のコンテンツタイプを受信するために使用されます。 +通常、このクラスは、カスタムの[HTTP リクエストハンドラー関数](../WebServer/http-request-handler.md#関数の設定) またはHTTP GET リクエストを管理するようにデザインされた、[`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword) キーワードで宣言された関数内で使用することができます。このようなリクエストは、例えば、ファイルのダウンロード、画像の生成、ダウンロードなどの機能を実装するためや、ブラウザーを介して任意のコンテンツタイプを受信するために使用されます。 -このクラスのインスタンスは4D Server 上にビルドされ、[4D REST サーバー](../REST/gettingStarted.md) によってのみブラウザーに送信することができます。 このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。 +このクラスのインスタンスは4D Server 上にビルドされ、[4D REST サーバー](../REST/gettingStarted.md) によってのみブラウザーに送信することができます。このクラスを使用することで、HTTP 以外のテクノロジー(例: モバイルなど)を使用することができます。
    履歴 @@ -19,7 +19,7 @@ title: OutgoingMessage ### 例題 -この例題では、`getFile()` 関数は[Datastore クラス](../ORDA/ordaClasses.md#datastore-class) に実装されており、REST リクエストによって[呼び出すことができます](../ORDA/ordaClasses.md#onhttpget-keyword)。 ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: +この例題では、`getFile()` 関数は[Datastore クラス](../ORDA/ordaClasses.md#datastore-class) に実装されており、REST リクエストによって[呼び出すことができます](../ORDA/ordaClasses.md#onhttpget-keyword)。ここでの目的は、**testFile.pdf** ファイルをリクエストへのレスポンスとして返すことです: ```4d Class extends DataStoreImplementation @@ -84,7 +84,7 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage `.headers` プロパティには送信されるメッセージのカレントのヘッダーがキー/値のペアとして格納されてます。 -`.headers` プロパティは、読み出し専用です。 ヘッダーを設定するには、[`setHeader()`](#setheader) 関数を使用します。 +`.headers` プロパティは、読み出し専用です。ヘッダーを設定するには、[`setHeader()`](#setheader) 関数を使用します。 @@ -147,7 +147,7 @@ exposed onHTTPGet Function getFile() : 4D.OutgoingMessage #### 説明 -`.setHeader()` 関数は、送信するメッセージのヘッダーの、*key* 引数で指定したキーを、*value* 引数で指定した値で設定します。 両方の引数ともテキスト値でない場合、エラーが発生します。 +`.setHeader()` 関数は、送信するメッセージのヘッダーの、*key* 引数で指定したキーを、*value* 引数で指定した値で設定します。両方の引数ともテキスト値でない場合、エラーが発生します。 4D.OutgoingMessage オブジェクトインスタンスを返す場合、4D は一部のヘッダーを自動的に設定します(例: `Set-Cookie` を `4DSID__ProjectName_=....` で設定するなど)。 @@ -194,7 +194,7 @@ HTTP ステータスコードの一覧については、[Wikipedia のHTTP ス #### 説明 -`.status` プロパティには、送信メッセージのカレントのステータスが格納されています。 このプロパティは、[`setStatus()`](setstatus) 関数を使用して設定することができます。 +`.status` プロパティには、送信メッセージのカレントのステータスが格納されています。このプロパティは、[`setStatus()`](setstatus) 関数を使用して設定することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md index f0daae32a6ed76..3a1d979fedf3a9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md @@ -7,7 +7,7 @@ title: POP3Transporter ### POP3 Transporter オブジェクト -POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-new-transporter) コマンドによってインスタンス化されます。 これらは、次のプロパティや関数を持ちます: +POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-new-transporter) コマンドによってインスタンス化されます。これらは、次のプロパティや関数を持ちます: | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -45,7 +45,7 @@ POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-n #### 説明 -`4D.POP3Transporter.new()` 関数は、新規の `4D.POP3Transporter`型オブジェクトを作成して返します。 この関数の機能は、[`POP3 New transporter`](../commands/pop3-new-transporter) コマンドと同一です。 +`4D.POP3Transporter.new()` 関数は、新規の `4D.POP3Transporter`型オブジェクトを作成して返します。この関数の機能は、[`POP3 New transporter`](../commands/pop3-new-transporter) コマンドと同一です。 @@ -107,9 +107,9 @@ POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-n `.delete()` 関数は、*msgNumber* で指定したメールメッセージに対して、POP3サーバーから削除するためのフラグを立てます。 -*msgNumber* には、削除するメールの番号を渡します。 この番号は、[`.getMailInfoList()`](#getmailinfolist) 関数によって number プロパティに返されます。 +*msgNumber* には、削除するメールの番号を渡します。この番号は、[`.getMailInfoList()`](#getmailinfolist) 関数によって number プロパティに返されます。 -この関数を実行しても、メールが実際に削除される訳ではありません。 フラグが立てられたメールは、(`POP3 New transporter` で作成された) `POP3_transporter` オブジェクトが消去された時に初めて POP3サーバーから削除されます。 立てたフラグは、`.undeleteAll()` 関数を使用して削除することもできます。 +この関数を実行しても、メールが実際に削除される訳ではありません。フラグが立てられたメールは、(`POP3 New transporter` で作成された) `POP3_transporter` オブジェクトが消去された時に初めて POP3サーバーから削除されます。立てたフラグは、`.undeleteAll()` 関数を使用して削除することもできます。 > カレントセッションが予期せず終了して接続が閉じられた場合 (例: タイムアウト、ネットワーク問題等) にはエラーメッセージが生成され、削除フラグが立てられたメールは削除されずに POP3サーバー上に残ります。 @@ -155,7 +155,7 @@ POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-n ##### 説明 -`.getBoxInfo()` 関数は、対象の [`POP3 transporter`](#pop3-transporter-オブジェクト) が指定するメールボックスに対応する `boxInfo` オブジェクトを返します。 この関数を使用するとメールボックスに関する情報を取得することができます。 +`.getBoxInfo()` 関数は、対象の [`POP3 transporter`](#pop3-transporter-オブジェクト) が指定するメールボックスに対応する `boxInfo` オブジェクトを返します。この関数を使用するとメールボックスに関する情報を取得することができます。 返される `boxInfo` オブジェクトには、以下のプロパティが格納されています: @@ -211,11 +211,11 @@ POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-n ##### 説明 `.getMail()` 関数は、 -[`POP3 transporter`](#pop3-transporter-オブジェクト) が指定するメールボックス内の、*msgNumber* に対応するメールを `Email` オブジェクトとして返します。 この関数を使用すると、メールのコンテンツをローカルで管理できるようになります。 +[`POP3 transporter`](#pop3-transporter-オブジェクト) が指定するメールボックス内の、*msgNumber* に対応するメールを `Email` オブジェクトとして返します。この関数を使用すると、メールのコンテンツをローカルで管理できるようになります。 -*msgNumber* には、取得するメッセージの番号を渡します。 この番号は、[`.getMailInfoList()`](#getmailinfolist) 関数によって `number` プロパティに返されます。 +*msgNumber* には、取得するメッセージの番号を渡します。この番号は、[`.getMailInfoList()`](#getmailinfolist) 関数によって `number` プロパティに返されます。 -任意で、*headerOnly* に `true` を渡すと、返される `Email` オブジェクトからボディ部を除外することができます。 その場合、ヘッダープロパティ ([`headers`](EmailObjectClass.md#headers), [`to`](EmailObjectClass.md#to), [`from`](EmailObjectClass.md#from)...) のみが返されます。 サーバーにメールが大量にある場合に、このオプションでダウンロードを最適化することができます。 +任意で、*headerOnly* に `true` を渡すと、返される `Email` オブジェクトからボディ部を除外することができます。その場合、ヘッダープロパティ ([`headers`](EmailObjectClass.md#headers), [`to`](EmailObjectClass.md#to), [`from`](EmailObjectClass.md#from)...) のみが返されます。サーバーにメールが大量にある場合に、このオプションでダウンロードを最適化することができます。 :::note @@ -281,9 +281,9 @@ POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-n ##### 説明 `.getMailInfo()` 関数は、 -[`POP3 transporter`](#pop3-transporter-オブジェクト) が指定するメールボックス内の、*msgNumber* に対応するメールの `mailInfo` オブジェクトを返します。 この関数を使用するとメールに関する情報を取得することができます。 +[`POP3 transporter`](#pop3-transporter-オブジェクト) が指定するメールボックス内の、*msgNumber* に対応するメールの `mailInfo` オブジェクトを返します。この関数を使用するとメールに関する情報を取得することができます。 -*msgNumber* には、取得するメッセージの番号を渡します。 この番号は、[`.getMailInfoList()`](#getmailinfolist) 関数によって number プロパティに返されます。 +*msgNumber* には、取得するメッセージの番号を渡します。この番号は、[`.getMailInfoList()`](#getmailinfolist) 関数によって number プロパティに返されます。 返される `mailInfo` オブジェクトには、以下のプロパティが格納されています: @@ -343,7 +343,7 @@ POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-n ##### 説明 -`.getMailInfoList()` 関数は、[`POP3 transporter`](#pop3-transporter-オブジェクト) が指定するメールボックス内の全メッセージについて記述した `mailInfo` オブジェクトのコレクションを返します。 この関数を使用すると、POP3メールサーバー上にあるメッセージの一覧をローカルで管理することができるようになります。 +`.getMailInfoList()` 関数は、[`POP3 transporter`](#pop3-transporter-オブジェクト) が指定するメールボックス内の全メッセージについて記述した `mailInfo` オブジェクトのコレクションを返します。この関数を使用すると、POP3メールサーバー上にあるメッセージの一覧をローカルで管理することができるようになります。 返されるコレクションの各 `mailInfo` オブジェクトには、以下のプロパティが格納されています: @@ -357,9 +357,9 @@ POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-n #### number と id プロパティについて -*number* プロパティは、`POP3_transporter` が作成された時点でのメールボックス内にあるメッセージの数です。 *number* プロパティは、特定のメッセージと紐づいた静的な値ではなく、セッション開始時点のメールボックス内のメッセージ同士の関係に応じてセッション間で値が異なります。 メッセージに割り当てられた番号は、[`POP3_transporter`](#pop3-transporter-オブジェクト) が維持されている間のみ有効です。 `POP3_transporter` が消去されると、削除フラグが立てられていたメッセージは削除されます。 ユーザーが再度サーバーにログインした場合、メールボックス内にあるカレントメッセージに対して、1 から x までの番号が再度割り振られます。 +*number* プロパティは、`POP3_transporter` が作成された時点でのメールボックス内にあるメッセージの数です。 *number* プロパティは、特定のメッセージと紐づいた静的な値ではなく、セッション開始時点のメールボックス内のメッセージ同士の関係に応じてセッション間で値が異なります。メッセージに割り当てられた番号は、[`POP3_transporter`](#pop3-transporter-オブジェクト) が維持されている間のみ有効です。 `POP3_transporter` が消去されると、削除フラグが立てられていたメッセージは削除されます。ユーザーが再度サーバーにログインした場合、メールボックス内にあるカレントメッセージに対して、1 から x までの番号が再度割り振られます。 -これに対し、*id* プロパティは、メッセージがサーバーで受信された時に割り振られる固有の番号です。 その番号はメッセージを受信した日付と時間を使用して計算され、POP3サーバーによって値が割り当てられます。 残念ながら、POP3サーバーは *id* プロパティをメッセージに対する主な参照としては使用しません。 POP3 セッションの間、サーバー上のメッセージを参照するには *number* プロパティを指定する必要があります。 メッセージ参照をデータベース内に取得しながらメッセージ本文はサーバー上に残しておくようなソリューションを開発する場合、メッセージの指定には細心の注意を払う必要があります。 +これに対し、*id* プロパティは、メッセージがサーバーで受信された時に割り振られる固有の番号です。その番号はメッセージを受信した日付と時間を使用して計算され、POP3サーバーによって値が割り当てられます。残念ながら、POP3サーバーは *id* プロパティをメッセージに対する主な参照としては使用しません。 POP3 セッションの間、サーバー上のメッセージを参照するには *number* プロパティを指定する必要があります。メッセージ参照をデータベース内に取得しながらメッセージ本文はサーバー上に残しておくようなソリューションを開発する場合、メッセージの指定には細心の注意を払う必要があります。 ##### 例題 @@ -414,7 +414,7 @@ POP3 Transporter オブジェクトは [POP3 New transporter](../commands/pop3-n `.getMIMEAsBlob()` 関数は、[`POP3_transporter`](#pop3-transporter-オブジェクト) が指定するメールボックス内の、*msgNumber* に対応するメッセージの MIMEコンテンツを格納した BLOB を返します。 -*msgNumber* には、取得するメッセージの番号を渡します。 この番号は、[`.getMailInfoList()`](#getmailinfolist) 関数によって number プロパティに返されます。 +*msgNumber* には、取得するメッセージの番号を渡します。この番号は、[`.getMailInfoList()`](#getmailinfolist) 関数によって number プロパティに返されます。 この関数は、以下の場合には空の BLOB を返します: 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 83b465d6f38514..6a9994b2131da5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/QuotaManagerClass.md @@ -3,7 +3,7 @@ id: QuotaManagerClass title: QuotaManager --- -`4D.QuotaManager` クラスは、4D アプリケーションに適用する使用制限を設定およびモニターするためのインターフェースを提供します。 しきい値は、例えばほとんど最適化されていないリクエストやサーバーリソースの過度な使用などからサーバーを保護することなどに有用です。 一般的に、クォータマネージャーを使用することでREST サーバーセッションがアクセスできるORDA リソースに対してしきい値を儲けることができます。 +`4D.QuotaManager` クラスは、4D アプリケーションに適用する使用制限を設定およびモニターするためのインターフェースを提供します。しきい値は、例えばほとんど最適化されていないリクエストやサーバーリソースの過度な使用などからサーバーを保護することなどに有用です。一般的に、クォータマネージャーを使用することでREST サーバーセッションがアクセスできるORDA リソースに対してしきい値を儲けることができます。 `4D.QuotaManager` オブジェクトは、[セッションの`quotas` プロパティ](./SessionClass.md#quotas) オブジェクトからインスタンス化することができます。 @@ -34,7 +34,7 @@ title: QuotaManager #### 説明 -`.currentValues` プロパティには定義されたクォータプロパティに関連したカレントの値が格納されています。 このオブジェクトはサーバーによって自動できに更新されます。 +`.currentValues` プロパティには定義されたクォータプロパティに関連したカレントの値が格納されています。このオブジェクトはサーバーによって自動できに更新されます。 @@ -48,7 +48,7 @@ title: QuotaManager `.defaultEntitySetTimeout` プロパティにはカレントセッションに保存されているREST エンティティセットのデフォルトの非アクティブタイムアウト(秒単位) が格納されています。 -デフォルトでは、値は2時間(7200 秒)です。 これはまた、[`$timeout` REST API](../REST/$timeout.md) を使用してエンティティセット作成時に定義することもできます。 +デフォルトでは、値は2時間(7200 秒)です。これはまた、[`$timeout` REST API](../REST/$timeout.md) を使用してエンティティセット作成時に定義することもできます。 この値は[セッションの`quotas.defaultEntitySetTimeout` プロパティ](./SessionClass.md#quotas) を使用することで動的に変更することもできます。これらはセッション内で後で作成されたあらゆるエンティティセットに対して使用することができます(この場合既存のエンティティセットのデフォルトのタイムアウト設定は変更されません)。 @@ -58,7 +58,7 @@ title: QuotaManager ::: -負の値(<= 0)を渡すことはできません(その場合にはエラーが生成されます)。 セッションのプロパティ値をリセットするためには、*undefined* を渡してください。 +負の値(<= 0)を渡すことはできません(その場合にはエラーが生成されます)。セッションのプロパティ値をリセットするためには、*undefined* を渡してください。 #### 例題 @@ -92,7 +92,7 @@ http://127.0.0.1/rest/People?$filter=ID>=4&$method=entityset&$timeout=3000 ... リクエスト内で定義されたタイムアウトは無視され、この期間は何も使用されなかった場合には40分後にエンティティセットは解放されます。 -負の値(<= 0)を渡すことはできません(その場合にはエラーが生成されます)。 セッションのプロパティ値をリセットするためには、*undefined* を渡してください。 +負の値(<= 0)を渡すことはできません(その場合にはエラーが生成されます)。セッションのプロパティ値をリセットするためには、*undefined* を渡してください。 #### 例題 @@ -114,11 +114,11 @@ Session.quotas.maxEntitySetTimeout:=2400 `.nbEntitySets` プロパティにはカレントのセッション内においてメモリ内に許可されているREST エンティティセットの最大数 が格納されています。 -デフォルトでは、エンティティセットが[REST リクエストによってメモリに保存される数](../REST/$info.md) には制約はありません(値は 0 に設定されています)。 特定のセッションに対して、サーバーのペイロードを抑えるために、上限を設定することができます。 +デフォルトでは、エンティティセットが[REST リクエストによってメモリに保存される数](../REST/$info.md) には制約はありません(値は 0 に設定されています)。特定のセッションに対して、サーバーのペイロードを抑えるために、上限を設定することができます。 許可されているエンティティセットの最大数に達すると、エンティティセットの作成を必要とするREST リクエストは、少なくとも1つのエンティティセットが解放されるまでは[**429** HTTP ステータスコードとエラーレスポンス](../REST/REST_requests.md#restステータスとレスポンス) を受け取ります。 [`$release` REST コマンド](../REST/$entityset.md#entitysetrelease) を使用することで、キャッシュからエンティティセットを解放することができます。 -負の値(<= 0)を渡すことはできません(その場合にはエラーが生成されます)。 セッションのプロパティ値をリセットするためには、*undefined* を渡してください。 +負の値(<= 0)を渡すことはできません(その場合にはエラーが生成されます)。セッションのプロパティ値をリセットするためには、*undefined* を渡してください。 #### 例題 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 fd44294aebf264..8c135ba1e80838 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SMTPTransporterClass.md @@ -7,7 +7,7 @@ title: SMTPTransporter ### SMTP Transporter オブジェクト -SMTP Transporter オブジェクトは [SMTP New transporter](../commands/smtp-new-transporter) コマンドによってインスタンス化されます。 これらは、次のプロパティや関数を持ちます: +SMTP Transporter オブジェクトは [SMTP New transporter](../commands/smtp-new-transporter) コマンドによってインスタンス化されます。これらは、次のプロパティや関数を持ちます: | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -46,7 +46,7 @@ SMTP Transporter オブジェクトは [SMTP New transporter](../commands/smtp-n #### 説明 -`4D.SMTPTransporter.new()` 関数は、 新規の `4D.SMTPTransporter`型オブジェクトを作成して返します。 この関数の機能は、[`SMTP New transporter`](../commands/smtp-new-transporter) コマンドと同一です。 +`4D.SMTPTransporter.new()` 関数は、 新規の `4D.SMTPTransporter`型オブジェクトを作成して返します。この関数の機能は、[`SMTP New transporter`](../commands/smtp-new-transporter) コマンドと同一です。 @@ -68,9 +68,9 @@ SMTP Transporter オブジェクトは [SMTP New transporter](../commands/smtp-n #### 説明 -`.certificate` プロパティにはS/MIME (Secure/MIME) を使用してEメールを署名するのに使用される証明書を、[`4D.File`](./FileClass.md) オブジェクトまたはBlob 形式として格納 されています。 証明書には秘密鍵が含まれています。 +`.certificate` プロパティにはS/MIME (Secure/MIME) を使用してEメールを署名するのに使用される証明書を、[`4D.File`](./FileClass.md) オブジェクトまたはBlob 形式として格納 されています。証明書には秘密鍵が含まれています。 -証明書がすでに証明書ストア(*keychain*) に登録されている場合、このプロパティの代わりに[`.certificateName`](#certificatename) を使用することができます。 ただし両方のプロパティを同時に使用することはできないという点に注意してください。その場合にはエラーが返されます。 +証明書がすでに証明書ストア(*keychain*) に登録されている場合、このプロパティの代わりに[`.certificateName`](#certificatename) を使用することができます。ただし両方のプロパティを同時に使用することはできないという点に注意してください。その場合にはエラーが返されます。 :::tip 関連したblog 記事 @@ -119,9 +119,9 @@ $result:=$transporter.send($email) #### 説明 -`.certificateName` プロパティは S/MIME (Secure/MIME) を使用してEメールを署名するために使用される、システム証明書ストア(*keychain*) に登録されている証明書の名前 を格納しています。 証明書には秘密鍵が含まれています。 +`.certificateName` プロパティは S/MIME (Secure/MIME) を使用してEメールを署名するために使用される、システム証明書ストア(*keychain*) に登録されている証明書の名前 を格納しています。証明書には秘密鍵が含まれています。 -この証明書は[`.certificate`](#certificate) プロパティを使用することで、ファイルまたはblob として直接提供することもできます。 ただし両方のプロパティを同時に使用することはできないという点に注意してください。その場合にはエラーが返されます。 +この証明書は[`.certificate`](#certificate) プロパティを使用することで、ファイルまたはblob として直接提供することもできます。ただし両方のプロパティを同時に使用することはできないという点に注意してください。その場合にはエラーが返されます。 :::tip 関連したblog 記事 @@ -148,7 +148,7 @@ $result:=$transporter.send($email) #### 説明 -`.certificatePassword` プロパティはEメールを署名するのに証明書が使用するパスワード(必要であれば) を格納しています。 パスワードが何も必要ない場合には空の文字列が使用されます。 +`.certificatePassword` プロパティはEメールを署名するのに証明書が使用するパスワード(必要であれば) を格納しています。パスワードが何も必要ない場合には空の文字列が使用されます。 #### 参照 @@ -245,13 +245,13 @@ SMTP接続は、以下の場合に自動的に閉じられます: > `transporter` オブジェクトは、事前に `SMTP New transporter` コマンドによって作成されている必要があります。 -この関数は、SMTP接続が事前に開かれていなかった場合には、それを作成します。 `transporter` オブジェクトの `.keepAlive` プロパティが **false** であった場合、SMTP接続は `.send()` 実行後に自動的に閉じられます。それ以外の場合には、接続は `transporter` オブジェクトが消去されるまで開いたままになります。 詳細については、[`SMTP New transporter`](../commands/smtp-new-transporter) コマンドの説明を参照してください。 +この関数は、SMTP接続が事前に開かれていなかった場合には、それを作成します。 `transporter` オブジェクトの `.keepAlive` プロパティが **false** であった場合、SMTP接続は `.send()` 実行後に自動的に閉じられます。それ以外の場合には、接続は `transporter` オブジェクトが消去されるまで開いたままになります。詳細については、[`SMTP New transporter`](../commands/smtp-new-transporter) コマンドの説明を参照してください。 -*mail*には、送信する有効な [`Email` オブジェクト](EmailObjectClass.md#email-オブジェクト) を渡します。 メールには送信元 (メールがどこから送られるか) と送信先 (一名以上の受信者) プロパティが含まれている必要がありますが、その他のプロパティは任意です。 +*mail*には、送信する有効な [`Email` オブジェクト](EmailObjectClass.md#email-オブジェクト) を渡します。メールには送信元 (メールがどこから送られるか) と送信先 (一名以上の受信者) プロパティが含まれている必要がありますが、その他のプロパティは任意です。 #### 返されるオブジェクト -この関数は、SMTP ステータスを表すオブジェクトを返します。 このオブジェクトには、次のプロパティが格納されることがあります: +この関数は、SMTP ステータスを表すオブジェクトを返します。このオブジェクトには、次のプロパティが格納されることがあります: | プロパティ | 型 | 説明 | | ---------- | ------- | ---------------------------------------------------------- | @@ -259,7 +259,7 @@ SMTP接続は、以下の場合に自動的に閉じられます: | status | number | SMTPサーバーから返されたコード (メール処理に関係ない問題の場合には 0) | | statusText | text | SMTPから返されるステータスメッセージ | -SMTP 処理とは関係のない問題 (例: 必須プロパティがメールにない) が発生した場合、4D はエラーを生成します。 これは、`ON ERR CALL` コマンドでインストールしたメソッドでインターセプトできます。 エラー情報を取得するには、`Last errors` コマンドを使用します。 +SMTP 処理とは関係のない問題 (例: 必須プロパティがメールにない) が発生した場合、4D はエラーを生成します。 これは、`ON ERR CALL` コマンドでインストールしたメソッドでインターセプトできます。エラー情報を取得するには、`Last errors` コマンドを使用します。 この場合、結果のステータスオブジェクトには以下の値が含まれます: 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 c993199b432871..1d8b65905dc5bc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -3,7 +3,7 @@ id: SessionClass title: Session --- -Session オブジェクトは [`Session`](../commands/session) コマンドによって返されます。 このオブジェクトは、カレントセッションを管理するためのインターフェースをデベロッパーに対して提供し、コンテキストデータの保存、プロセス間の情報共有、セッションに関連したプリエンプティブプロセスの開始などのアクションの実行や、[アクセス権](../ORDA/privileges.md) の管理(web コンテキストのみ)を可能にします。 +Session オブジェクトは [`Session`](../commands/session) コマンドによって返されます。このオブジェクトは、カレントセッションを管理するためのインターフェースをデベロッパーに対して提供し、コンテキストデータの保存、プロセス間の情報共有、セッションに関連したプリエンプティブプロセスの開始などのアクションの実行や、[アクセス権](../ORDA/privileges.md) の管理(web コンテキストのみ)を可能にします。 :::tip 関連したblog 記事 @@ -18,7 +18,7 @@ Session オブジェクトは [`Session`](../commands/session) コマンドに このクラスは以下の種類のセッションをサポートしています: -- [**Webユーザーセッション**](WebServer/sessions.md): [プロジェクトにおいてスケーラブルセッションが有効化されている](WebServer/sessions.md#webセッションの有効化) 場合、Webユーザーセッションが利用可能です。 これらは(REST アクセスを含めた)Web 接続に使用され、割り当てられた[権限](../ORDA/privileges.md) によって管理されます。 +- [**Webユーザーセッション**](WebServer/sessions.md): [プロジェクトにおいてスケーラブルセッションが有効化されている](WebServer/sessions.md#webセッションの有効化) 場合、Webユーザーセッションが利用可能です。これらは(REST アクセスを含めた)Web 接続に使用され、割り当てられた[権限](../ORDA/privileges.md) によって管理されます。 - [**リモートユーザー セッション**](../Desktop/sessions.md#リモートユーザーセッション): クライアント/サーバーアプリケーションでは、リモートユーザーは、クライアントおよびサーバーから管理される独自のセッションを持ちます。 - [**ストアドプロシージャーセッション**](../Desktop/sessions.md#ストアドプロシージャーセッション): サーバー上で実行される全てのストアドプロシージャーセッションの仮想ユーザーセッション。 - [**スタンドアロンセッション**](../Desktop/sessions.md#standalone-sessions): シングルユーザーアプリケーションで返されるローカルのセッションオブジェクト(クライアント/サーバーアプリケーションの開発およびテストフェーズにおいて有用です)。 @@ -128,14 +128,14 @@ $isOK:=Session.clearPrivileges() #### 説明 -`.createOTP()` 関数は、セッションの新しいOTP(One Time Passcode、ワンタイムパスワード)を作成し、そのトークンUUID を返します。 このトークンはそれが生成されたセッションに固有のものです。 +`.createOTP()` 関数は、セッションの新しいOTP(One Time Passcode、ワンタイムパスワード)を作成し、そのトークンUUID を返します。このトークンはそれが生成されたセッションに固有のものです。 *lifespan* に秒単位の値を渡すことで、カスタムのタイムアウト時間を設定することができます。 *lifespan* 引数が省略された場合はデフォルトで: - Web セッションの場合、トークンはセッションの[`.idleTimeOut`](#idletimeout) と同じ有効期限を持って作成されます。 - リモートユーザーセッションの場合、トークンは10秒の有効期限を持って作成されます。 -Web セッションにおいては、返されたトークンは、サードパーティアプリケーションや他のWebサイトとのやり取りで使用することでセッションを安全に特定することができます。 例えば、セッションOTP トークンは支払いアプリケーションなどにおいて使用することができます。 +Web セッションにおいては、返されたトークンは、サードパーティアプリケーションや他のWebサイトとのやり取りで使用することでセッションを安全に特定することができます。例えば、セッションOTP トークンは支払いアプリケーションなどにおいて使用することができます。 リモートユーザーセッション(あるいはテスト目的でのスタンドアロンセッション)においては、返されたトークンを使用することで、4D が[セッションを共有した](../Desktop/sessions.md#sharing-a-remote-session-for-web-accesses) Web からのリクエストを特定することができます。 @@ -183,7 +183,7 @@ $token := Session.createOTP( 60 ) // トークンは1分間有効 Web プロセス内において *promoteId* で指定した権限が [`.promote()`](#promote) を使用して昇格したものではなかった場合、この関数は何もしません。 -Web プロセスに複数の権限が追加されていた場合、 `demote()` 関数はそれぞれの権限に対して適切な *promoteId* を使用して呼び出す必要があります。 権限はプロセスに対して追加された順番でスタックされているため、スタックを解除する場合にはLIFO (*Last In, First Out*) 順で解除することが推奨されます。 +Web プロセスに複数の権限が追加されていた場合、 `demote()` 関数はそれぞれの権限に対して適切な *promoteId* を使用して呼び出す必要があります。権限はプロセスに対して追加された順番でスタックされているため、スタックを解除する場合にはLIFO (*Last In, First Out*) 順で解除することが推奨されます。 :::note 注記 @@ -241,7 +241,7 @@ exposed Function search($search : Text) : Collection ::: -`.expirationDate` プロパティは、セッションcookie の有効期限を返します。 値は ISO 8601標準に従って文字列で表現されます: `YYYY-MM-DDTHH:MM:SS.mmmZ`。 +`.expirationDate` プロパティは、セッションcookie の有効期限を返します。値は ISO 8601標準に従って文字列で表現されます: `YYYY-MM-DDTHH:MM:SS.mmmZ`。 このプロパティは **読み取り専用** です。 [`.idleTimeout`](#idletimeout) プロパティ値が変更された場合、有効期限は自動的に再計算されます。 @@ -286,7 +286,7 @@ $expiration:=Session.expirationDate // 例: "2021-11-05T17:10:42Z" :::note -この関数は、 [`setPrivileges()`](#setprivileges) 関数を使用してセッションに割り当てられた権限を返します。 昇格した権限は、[roles.json](../ORDA/privileges.md#rolesjson-file) ファイルで追加されたか [`promote()`](#promote) 関数で追加されたかに関わらず、この関数によっては返されません。 +この関数は、 [`setPrivileges()`](#setprivileges) 関数を使用してセッションに割り当てられた権限を返します。昇格した権限は、[roles.json](../ORDA/privileges.md#rolesjson-file) ファイルで追加されたか [`promote()`](#promote) 関数で追加されたかに関わらず、この関数によっては返されません。 ::: @@ -436,7 +436,7 @@ End if `.id` プロパティは、ユーザーセッションの固有のID を格納しています。 -4D Server ではこの一意の文字列は、サーバーによって各セッションに対して自動的に割り当てられ、そのプロセスを識別することを可能にします。 サーバー側とクライアント側の、両方の `Session` から利用可能です。 +4D Server ではこの一意の文字列は、サーバーによって各セッションに対して自動的に割り当てられ、そのプロセスを識別することを可能にします。サーバー側とクライアント側の、両方の `Session` から利用可能です。 :::tip @@ -625,7 +625,7 @@ End if `.promote()` 関数は、*privilege* 引数で定義された権限を、呼び出し関数の実行中にカレントプロセスに追加し、昇格した権限の ID を返します。 -権限を動的に付与することは、アクセス権が実行コンテキストに依存する場合には有用です。この場合 "roles.json" ファイルだけでは完全に定義しきることはできないからです。 これは、異なるアクセスレベルのユーザーによって同じ関数が実行され得る場合に関連します。 `.promote()` を使用することで、他のプロセスに影響することなく、カレントプロセスにのみ必要な権限が与えられるようにすることができます。 +権限を動的に付与することは、アクセス権が実行コンテキストに依存する場合には有用です。この場合 "roles.json" ファイルだけでは完全に定義しきることはできないからです。これは、異なるアクセスレベルのユーザーによって同じ関数が実行され得る場合に関連します。 `.promote()` を使用することで、他のプロセスに影響することなく、カレントプロセスにのみ必要な権限が与えられるようにすることができます。 この関数は、以下の場合には何もせずに 0 を返します: @@ -647,7 +647,7 @@ End if #### 例題 -複数のユーザーが、異なるアプリケーションとして振る舞う単一のエンドポイントに接続する場合を考えます。 #1 のアプリケーションからのユーザーは、"VerySensitiveInfo" を作成しないため、 "super_admin" 権限を必要としません。 一方で#2 のアプリケーションからのユーザーは "super_admin" 権限を必要とします。 +複数のユーザーが、異なるアプリケーションとして振る舞う単一のエンドポイントに接続する場合を考えます。 #1 のアプリケーションからのユーザーは、"VerySensitiveInfo" を作成しないため、 "super_admin" 権限を必要としません。一方で#2 のアプリケーションからのユーザーは "super_admin" 権限を必要とします。 この場合、*CreateInfo* 関数内において、適切な権限を動的に適用することができます: @@ -694,7 +694,7 @@ End if #### 説明 -`.quotas` プロパティはカレントセッション内のREST リクエストに関するサーバーのしきい値に対しての現在の値と設定された値を格納した`4D.QuotaManager` オブジェクト を格納しています。 サーバーのしきい値はサーバーへのリクエストを管理するために使用され、またリソースの過剰な使用を防ぐのを助けます([`4D.QuotaManager` クラス](./QuotaManagerClass.md) を参照してください)。 +`.quotas` プロパティはカレントセッション内のREST リクエストに関するサーバーのしきい値に対しての現在の値と設定された値を格納した`4D.QuotaManager` オブジェクト を格納しています。サーバーのしきい値はサーバーへのリクエストを管理するために使用され、またリソースの過剰な使用を防ぐのを助けます([`4D.QuotaManager` クラス](./QuotaManagerClass.md) を参照してください)。 このプロパティは **読み取り専用** です。 @@ -758,7 +758,7 @@ Session.quotas.nbEntitySets:=50 #### 説明 -`.restore()` 関数は、カレントのWeb ユーザーセッションを*token* 引数のUUIDに対応したオリジナルのセッションで置き換えます。 セッションのストレージと権限は復元されます。 +`.restore()` 関数は、カレントのWeb ユーザーセッションを*token* 引数のUUIDに対応したオリジナルのセッションで置き換えます。セッションのストレージと権限は復元されます。 オリジナルのセッションが正常に復元された場合、この関数は`true` を返します。 @@ -833,15 +833,15 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage - *privileges* には、アクセス権の名称を文字列のコレクションとして渡します。 - *settings* には、以下のプロパティを持つオブジェクトを渡します: -| プロパティ | 型 | 説明 | -| ---------- | ------------------- | --------------------------------------------------------------------------------------------------------- | -| privileges | Text または Collection |
  • アクセス権名の文字列
  • アクセス権名のコレクション
  • | -| roles | Text または Collection |
  • ロールの文字列
  • ロールの文字列のコレクション
  • | -| userName | Text | セッションに関連づけるユーザー名(任意、Web セッションのみ)。 リモートクライアントセッションでは利用できません(無視されます)。 | +| プロパティ | 型 | 説明 | +| ---------- | ------------------- | -------------------------------------------------------------------------------------------------------- | +| privileges | Text または Collection |
  • アクセス権名の文字列
  • アクセス権名のコレクション
  • | +| roles | Text または Collection |
  • ロールの文字列
  • ロールの文字列のコレクション
  • | +| userName | Text | セッションに関連づけるユーザー名(任意、Web セッションのみ)。リモートクライアントセッションでは利用できません(無視されます)。 | :::note -権限とロールは、プロジェクトの [`roles.json`](../ORDA/privileges.md#rolesjson-ファイル) ファイルで定義されます。 詳細については、[**権限**](../ORDA/privileges.md) を参照してください。 +権限とロールは、プロジェクトの [`roles.json`](../ORDA/privileges.md#rolesjson-ファイル) ファイルで定義されます。詳細については、[**権限**](../ORDA/privileges.md) を参照してください。 ::: @@ -901,7 +901,7 @@ End if `.storage` プロパティは、セッションのすべてのプロセスで利用可能な情報を保存しておける共有オブジェクトを格納します。 -`Session` オブジェクトの作成時には、`.storage` プロパティは空です。 このプロパティは **読み取り専用** ですが、戻り値のオブジェクトは読み書き可能です。 +`Session` オブジェクトの作成時には、`.storage` プロパティは空です。このプロパティは **読み取り専用** ですが、戻り値のオブジェクトは読み書き可能です。 :::note 注記 @@ -961,9 +961,9 @@ End use #### 説明 -`.userName` プロパティは、セッションと紐づいたユーザー名を格納します。 このプロパティは、コード内でユーザーを確認するのに使用できます。 +`.userName` プロパティは、セッションと紐づいたユーザー名を格納します。このプロパティは、コード内でユーザーを確認するのに使用できます。 -- **Web セッション**: このプロパティはデフォルトで空の文字列です。 これは、[`setPrivileges()`](#setprivileges) 関数の `privileges` プロパティを使って設定することができます。 +- **Web セッション**: このプロパティはデフォルトで空の文字列です。これは、[`setPrivileges()`](#setprivileges) 関数の `privileges` プロパティを使って設定することができます。 - **リモート/ ストアドプロシージャーセッション**: このプロパティは [`Current user`](../commands/current-user) コマンドと同じユーザー名を返します。 - **スタンドアロンセッション**: このプロパティは"designer" または[`SET USER ALIAS`](../commands/set-user-alias) コマンドで設定された名前が格納されています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/SignalClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/SignalClass.md index 89381006515ea1..7118c084540eac 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SignalClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SignalClass.md @@ -3,11 +3,11 @@ id: SignalClass title: Signal --- -シグナルは、マルチプロセスアプリケーションにおいてプロセス間でのやり取りを管理し衝突を避けるために 4Dランゲージが提供するツールです。 シグナルは、1つ以上のプロセスが実行を一時停止し、特定のタスクが完了するまで待つようにする仕組みです。 どのプロセスもシグナルを待機またはリリースすることができます。 +シグナルは、マルチプロセスアプリケーションにおいてプロセス間でのやり取りを管理し衝突を避けるために 4Dランゲージが提供するツールです。シグナルは、1つ以上のプロセスが実行を一時停止し、特定のタスクが完了するまで待つようにする仕組みです。どのプロセスもシグナルを待機またはリリースすることができます。 :::note -相互のやり取りを管理するためには、[セマフォー](../Develop/processes.md#セマフォー) を使用することもできます。 セマフォーは、2つ以上のプロセスが同じリソース (ファイル、レコードなど) を同時に変更しないようにするための仕組みです。 セマフォーを解除できるのは、それを設定したプロセスのみです。 +相互のやり取りを管理するためには、[セマフォー](../Develop/processes.md#セマフォー) を使用することもできます。セマフォーは、2つ以上のプロセスが同じリソース (ファイル、レコードなど)を同時に変更しないようにするための仕組みです。セマフォーを解除できるのは、それを設定したプロセスのみです。 ::: @@ -15,7 +15,7 @@ title: Signal シグナルは、ワーカーやプロセスを呼び出す/作成するコマンドに対して引数として渡す必要のある共有オブジェクトです。 -シグナルの `.wait()` メソッドを呼び出したワーカーやプロセスは、`.signaled` プロパティが true になるまで実行を停止します。 シグナルを待っている間、呼び出したプロセスは CPU を消費しません。 これはマルチプロセスアプリケーションのパフォーマンスを鑑みると有意義な仕組みです。 `.signaled` プロパティは、いずれかのワーカーまたはプロセスがシグナルの `.trigger()` メソッドを呼び出した時点で true になります。 +シグナルの `.wait()` メソッドを呼び出したワーカーやプロセスは、`.signaled` プロパティが true になるまで実行を停止します。シグナルを待っている間、呼び出したプロセスは CPU を消費しません。これはマルチプロセスアプリケーションのパフォーマンスを鑑みると有意義な仕組みです。 `.signaled` プロパティは、いずれかのワーカーまたはプロセスがシグナルの `.trigger()` メソッドを呼び出した時点で true になります。 また、コードのブロックを避けるため、`.wait()` 呼び出しの際に定義したタイムアウト時間に達することでも待機状態を脱することができます。 @@ -23,14 +23,14 @@ Signal オブジェクトは、[`New signal`](../commands/new-signal) コマン ### シグナルの使い方 -4D では、[`New signal`](../commands/new-signal) コマンドを呼び出すことで新規 Signal オブジェクトを作成します。 作成したシグナルは、`New process` あるいは `CALL WORKER` コマンドに引数として渡す必要があります。それにより、プロセスやワーカーはタスクを完了した際にシグナルを書き換えることができます。 +4D では、[`New signal`](../commands/new-signal) コマンドを呼び出すことで新規 Signal オブジェクトを作成します。作成したシグナルは、`New process` あるいは `CALL WORKER` コマンドに引数として渡す必要があります。それにより、プロセスやワーカーはタスクを完了した際にシグナルを書き換えることができます。 - `signal.wait()` は、他のワーカー/プロセスのタスクが完了するまで待機するワーカー/プロセスから呼び出す必要があります。 - `signal.trigger()` は、他のワーカー/プロセスを待機状態から解放するために、タスク実行を終えたワーカー/プロセスが呼び出す必要があります。 ![](../assets/en/API/signal.png) -`signal.trigger()` の呼び出しによって解放されたシグナルは 、再利用することができません。 別のシグナルを設定するには、`New signal` コマンドをあらためて呼び出す必要があります。 +`signal.trigger()` の呼び出しによって解放されたシグナルは 、再利用することができません。別のシグナルを設定するには、`New signal` コマンドをあらためて呼び出す必要があります。 Signal オブジェクトは [共有オブジェクト](Concepts/shared.md) であるため、呼び出されたワーカー/プロセスから結果を返すために使用することもできます。 この場合、`Use...End use` 構文内で値を書き込む必要があります。 @@ -101,7 +101,7 @@ Signal オブジェクトは [共有オブジェクト](Concepts/shared.md) で `.description` プロパティは、`Signal` オブジェクトのカスタムな詳細を格納します。 -`.description` は、Signal オブジェクトの作成時、あるいはその他のタイミングでも設定することができます。 ただし、`Signal` オブジェクトは共有オブジェクトであるため、`.description` プロパティに書き込む際には必ず `Use...End use` 構文を使わなくてはならない点に留意が必要です。 +`.description` は、Signal オブジェクトの作成時、あるいはその他のタイミングでも設定することができます。ただし、`Signal` オブジェクトは共有オブジェクトであるため、`.description` プロパティに書き込む際には必ず `Use...End use` 構文を使わなくてはならない点に留意が必要です。 **読み書き可能** プロパティです。 @@ -192,7 +192,7 @@ Signal がすでにシグナルされている (つまり `signaled` プロパ `.wait( )` 関数は、シグナルオブジェクトの`.signaled` が**true** になるか、`timeout` で指定したタイムアウト時間が経過するまで、待機します。 -コード実行のブロッキングを防ぐため、*timeout* 引数に最大の待機時間を秒単位で渡すことができます。 小数点以下も指定可能です。 +コード実行のブロッキングを防ぐため、*timeout* 引数に最大の待機時間を秒単位で渡すことができます。小数点以下も指定可能です。 Signal がすでにシグナルされている (つまり `signaled` プロパティが **true** になっている) 状態であった場合、この関数は即座に戻り値を返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md index 042515879d073d..4a1ccb64ea88bd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md @@ -3,7 +3,7 @@ id: SystemWorkerClass title: SystemWorker --- -システムワーカーを使うことで、4Dコードは同じマシン上で任意の外部プロセス (シェルコマンド、PHPなど ) を呼び出すことができます。 システムワーカーは非同期で呼び出されます。 コールバックを使用することで、4D は双方向の通信を可能にします。 +システムワーカーを使うことで、4Dコードは同じマシン上で任意の外部プロセス (シェルコマンド、PHPなど ) を呼び出すことができます。システムワーカーは非同期で呼び出されます。コールバックを使用することで、4D は双方向の通信を可能にします。 `SystemWorker` クラスは、`4D` クラスストアにて提供されています。 @@ -84,29 +84,29 @@ $myMacWorker:= 4D.SystemWorker.new("chmod +x /folder/myfile.sh") プロキシオブジェクトの生成中に問題があった場合、この関数は `null` オブジェクトを返し、エラーが生成されます。 -*commandLine* には、実行するアプリケーションのファイルのフルパス (POSIX シンタックス)、および必要に応じて追加の引数を渡します。 アプリケーション名だけを渡すと、4Dは 実行ファイルを探すために `PATH` 環境変数を使用します。 +*commandLine* には、実行するアプリケーションのファイルのフルパス (POSIX シンタックス)、および必要に応じて追加の引数を渡します。アプリケーション名だけを渡すと、4Dは 実行ファイルを探すために `PATH` 環境変数を使用します。 -**警告:** この関数は、実行可能なアプリケーションを起動するだけで、シェル (コマンドインタープリター) の一部である命令を実行することはできません。 たとえば Windows で、このコマンドを使用して `dir` 命令を実行することはできません。 +**警告:** この関数は、実行可能なアプリケーションを起動するだけで、シェル (コマンドインタープリター) の一部である命令を実行することはできません。たとえば Windows で、このコマンドを使用して `dir` 命令を実行することはできません。 #### *options* オブジェクト *options* に渡すオブジェクトは、次のプロパティを持つことができます: -| プロパティ | 型 | デフォルト | 説明 | -| ---------------- | ------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| onResponse | Formula | undefined | システムワーカーメッセージ用のコールバック。 完全なレスポンスを受け取り次第、このコールバックが呼び出されます。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | -| onData | Formula | undefined | システムワーカーデータ用のコールバック。 システムワーカーがデータを受け取る度に、このコールバックが呼び出されます。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | -| onDataError | Formula | undefined | 外部プロセスエラー用のコールバック (外部プロセスの *stderr*)。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | -| onError | Formula | undefined | 外部プロセスが終了されたときのコールバック。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | -| onTerminate | Formula | undefined | 外部プロセスが終了されたときのコールバック。 コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | -| timeout | Number | undefined | プロセスが生きている場合、キルされるまでの秒数。 | -| dataType | Text | "text" | レスポンス本文のデータ型。 可能な値: "text" (デフォルト), "blob"。 | -| encoding | Text | "UTF-8" | `dataType="text"` の場合のみ。 レスポンス本文のエンコーディング。 取りうる値の一覧については、[`CONVERT FROM TEXT`](../commands/convert-from-text) コマンドの詳細を参照して下さい。 | -| variables | Object | | システムワーカー用のカスタム環境変数を設定します。 シンタックス: `variables.key=value` (`key` は変数名、`value` はその値)。 値は、可能な限り文字列に変換されます。 値に '=' を含めることはできません。 定義されていない場合、システムワーカーは 4D環境を継承します。 | -| currentDirectory | Folder | | プロセスが実行される作業ディレクトリ | -| hideWindow | Boolean | true | (Windows) アプリケーションウィンドウを隠す (可能な場合)、または Windowsコンソールを隠す | - -すべてのコールバック関数は、2つのオブジェクト引数を受け取ります。 その内容は、コールバックに依存します: +| プロパティ | 型 | デフォルト | 説明 | +| ---------------- | ------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| onResponse | Formula | undefined | システムワーカーメッセージ用のコールバック。完全なレスポンスを受け取り次第、このコールバックが呼び出されます。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | +| onData | Formula | undefined | システムワーカーデータ用のコールバック。システムワーカーがデータを受け取る度に、このコールバックが呼び出されます。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | +| onDataError | Formula | undefined | 外部プロセスエラー用のコールバック (外部プロセスの *stderr*)。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | +| onError | Formula | undefined | 外部プロセスが終了されたときのコールバック。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | +| onTerminate | Formula | undefined | 外部プロセスが終了されたときのコールバック。コールバックは 2つのオブジェクトを引数として受け取ります (後述参照) | +| timeout | Number | undefined | プロセスが生きている場合、キルされるまでの秒数。 | +| dataType | Text | "text" | レスポンス本文のデータ型。可能な値: "text" (デフォルト), "blob"。 | +| encoding | Text | "UTF-8" | `dataType="text"` の場合のみ。レスポンス本文のエンコーディング。取りうる値の一覧については、[`CONVERT FROM TEXT`](../commands/convert-from-text) コマンドの詳細を参照して下さい。 | +| variables | Object | | システムワーカー用のカスタム環境変数を設定します。シンタックス: `variables.key=value` (`key` は変数名、`value` はその値)。値は、可能な限り文字列に変換されます。値に '=' を含めることはできません。定義されていない場合、システムワーカーは 4D環境を継承します。 | +| currentDirectory | Folder | | プロセスが実行される作業ディレクトリ | +| hideWindow | Boolean | true | (Windows) アプリケーションウィンドウを隠す (可能な場合)、または Windowsコンソールを隠す | + +すべてのコールバック関数は、2つのオブジェクト引数を受け取ります。その内容は、コールバックに依存します: | 引数 | 型 | *onResponse* | *onData* | *onDataError* | *onError* | *onTerminate* | | ---------------------------- | ---------- | ------------ | ------------ | ------------- | ------------ | ------------- | @@ -193,7 +193,7 @@ End if #### macOS の例 -1. テキストファイルを編集します (`cat` はファイルを編集するための macOS コマンドです)。 この例題では、コマンドのフルアクセスパスを渡しています: +1. テキストファイルを編集します (`cat` はファイルを編集するための macOS コマンドです)。この例題では、コマンドのフルアクセスパスを渡しています: ```4d @@ -354,7 +354,7 @@ $output:=$worker.response #### 説明 -`.dataType` プロパティは、レスポンス本文のデータ型を格納します。 とりうる値: "text" または "blob"。 とりうる値: "text" または "blob"。 +`.dataType` プロパティは、レスポンス本文のデータ型を格納します。 とりうる値: "text" または "blob"。とりうる値: "text" または "blob"。 このプロパティは **読み取り専用** です。 @@ -368,7 +368,7 @@ $output:=$worker.response #### 説明 -`.encoding` プロパティは、レスポンス本文のエンコーディングを格納します。 このプロパティは [`dataType`](#datatype) が "text" のときにのみ利用できます。 このプロパティは [`dataType`](#datatype) が "text" のときにのみ利用できます。 +`.encoding` プロパティは、レスポンス本文のエンコーディングを格納します。 このプロパティは [`dataType`](#datatype) が "text" のときにのみ利用できます。このプロパティは [`dataType`](#datatype) が "text" のときにのみ利用できます。 このプロパティは **読み取り専用** です。 @@ -404,7 +404,7 @@ $output:=$worker.response #### 説明 -`.exitCode` プロパティは、外部プロセスから返される終了コードを格納します。 プロセスが正常に終了しなかった場合、`exitCode` は *undefined* です。 プロセスが正常に終了しなかった場合、`exitCode` は *undefined* です。 +`.exitCode` プロパティは、外部プロセスから返される終了コードを格納します。 プロセスが正常に終了しなかった場合、`exitCode` は *undefined* です。プロセスが正常に終了しなかった場合、`exitCode` は *undefined* です。 このプロパティは **読み取り専用** です。 @@ -578,13 +578,13 @@ $output:=$worker.response `.wait()` 関数は、`SystemWorker` の実行終了まで、または *timeout* で指定した時間に到達するまで待機します。 -`.wait()` 関数は、*timeout* 引数で指定された時間に到達するか(定義されていれば)、エラーが発生した場合を除き、`onTerminate` フォーミュラの処理が終わるまで待ちます。 タイムアウトに達した場合、`SystemWorker` はキルされません。 +`.wait()` 関数は、*timeout* 引数で指定された時間に到達するか(定義されていれば)、エラーが発生した場合を除き、`onTerminate` フォーミュラの処理が終わるまで待ちます。タイムアウトに達した場合、`SystemWorker` はキルされません。 *timeout* 引数にタイムアウト値を渡していた場合、.wait() は*timeout* 引数で定義されていた時間分だけ外部プロセスを待ちます。 :::note -`.wait()` の実行中、コールバック関数は、`SystemWorker` インスタンスから発生したものであるかどうかに関わらず、実行されます。 コールバックから [`terminate()`](#terminate) を呼び出すことで、`.wait()` を終了することができます。 +`.wait()` の実行中、コールバック関数は、`SystemWorker` インスタンスから発生したものであるかどうかに関わらず、実行されます。コールバックから [`terminate()`](#terminate) を呼び出すことで、`.wait()` を終了することができます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md index e0493a5db673bb..7265ebbfada60e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md @@ -18,13 +18,13 @@ title: TCPConnection 全ての`TCPConnection` クラス関数はスレッドセーフです。 -標準の4D オブジェクトの*refcounting* のおかげで、TCPConnection は参照されなくなったら自動的にリリースされるようになっています。 結果的に、それに関連したリソースは、明示的な終了を必要とせずに適切にクリーンアップされます。 +標準の4D オブジェクトの*refcounting* のおかげで、TCPConnection は参照されなくなったら自動的にリリースされるようになっています。結果的に、それに関連したリソースは、明示的な終了を必要とせずに適切にクリーンアップされます。 -TCPConnection オブジェクトはメモリ内にそれへの参照が存在しなくなった時にリリースされます。 これは一般的に、例えばメソッド実行の最後にローカル変数が消去されるときに発生します。 接続を"強制的に" 終了させたい場合には、[**Null** を代入することで**参照を無効化**してください](../Concepts/dt_object.md#リソース)。 +TCPConnection オブジェクトはメモリ内にそれへの参照が存在しなくなった時にリリースされます。これは一般的に、例えばメソッド実行の最後にローカル変数が消去されるときに発生します。接続を"強制的に" 終了させたい場合には、[**Null** を代入することで**参照を無効化**してください](../Concepts/dt_object.md#リソース)。 :::info 4DTCPUDPLog.txt ファイル -TCP 接続に関連したイベントを記録する[4DTCPUDPLog.txt ログファイル](../Debugging/debugLogFiles.md#4dtcpudplogtxt) を使用すると、 デバッグやモニタリングを行うことができます。 記録されるイベントには、データ送信、エラー、接続ライフサイクル情報などが含まれます。 +TCP 接続に関連したイベントを記録する[4DTCPUDPLog.txt ログファイル](../Debugging/debugLogFiles.md#4dtcpudplogtxt) を使用すると、 デバッグやモニタリングを行うことができます。記録されるイベントには、データ送信、エラー、接続ライフサイクル情報などが含まれます。 ::: @@ -34,7 +34,7 @@ TCP 接続に関連したイベントを記録する[4DTCPUDPLog.txt ログフ ### 例題 -以下の例題は、4D.TCPConnection および 4D.TCPEvent クラスを使用してどのようにTCP クライアント接続を管理し、イベントを扱い、データを送信し、そして適切に接続を閉じるかを表しています。 同期の例と非同期の例の両方が提供されています。 +以下の例題は、4D.TCPConnection および 4D.TCPEvent クラスを使用してどのようにTCP クライアント接続を管理し、イベントを扱い、データを送信し、そして適切に接続を閉じるかを表しています。同期の例と非同期の例の両方が提供されています。 #### 同期の例 @@ -176,16 +176,16 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し *options* に渡すオブジェクトは、次のプロパティを持つことができます: -| プロパティ | 型 | 説明 | デフォルト | -| ----------------- | ------- | -------------------------------------------------------------- | --------------------- | -| onConnection | Formula | 接続が確立した時にトリガーされるコールバック | 未定義 | -| onData | Formula | データが受信されたときにトリガーされるコールバック | 未定義 | -| onShutdown | Formula | 接続が適切に閉じられた時にトリガーされるコールバック | 未定義 | -| onError | Formula | エラーの場合にトリガーされるコールバック | 未定義 | -| onTerminate | Formula | TCPConnection がリリースされる直前にトリガーされるコールバック | 未定義 | -| noDelay | Boolean | **読み出し専用** `true` の場合にはNagle のアルゴリズムを無効化します | false | -| connectionTimeout | Real | 接続を確立するまでの最大時間(秒単位)。 これを超えると、接続を試みるのを中止します。 | システムによって定義、一般的には30 以上 | -| TLS | Boolean | 接続に対してTLS 暗号化を有効下します | false | +| プロパティ | 型 | 説明 | デフォルト | +| ----------------- | ------- | ------------------------------------------------------------- | --------------------- | +| onConnection | Formula | 接続が確立した時にトリガーされるコールバック | 未定義 | +| onData | Formula | データが受信されたときにトリガーされるコールバック | 未定義 | +| onShutdown | Formula | 接続が適切に閉じられた時にトリガーされるコールバック | 未定義 | +| onError | Formula | エラーの場合にトリガーされるコールバック | 未定義 | +| onTerminate | Formula | TCPConnection がリリースされる直前にトリガーされるコールバック | 未定義 | +| noDelay | Boolean | **読み出し専用** `true` の場合にはNagle のアルゴリズムを無効化します | false | +| connectionTimeout | Real | 接続を確立するまでの最大時間(秒単位)。これを超えると、接続を試みるのを中止します。 | システムによって定義、一般的には30 以上 | +| TLS | Boolean | 接続に対してTLS 暗号化を有効下します | false | #### コールバック関数 @@ -231,7 +231,7 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し #### 説明 -`.closed` プロパティには、接続が閉じられているかどうかの情報が格納されています。 エラーによって、あるいは`shutdown()` を呼び出したから、あるいはサーバーが閉じられたなどの理由で接続が閉じられている場合には`true` を返します。 +`.closed` プロパティには、接続が閉じられているかどうかの情報が格納されています。エラーによって、あるいは`shutdown()` を呼び出したから、あるいはサーバーが閉じられたなどの理由で接続が閉じられている場合には`true` を返します。 @@ -243,7 +243,7 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し #### 説明 -`.errors` プロパティには接続に関連したエラーオブジェクトのコレクションが格納されています。 各エラーオブジェクトにはエラーコード、エラーの詳細、そしてそのエラーを起こしたコンポーネントの署名が格納されています。 +`.errors` プロパティには接続に関連したエラーオブジェクトのコレクションが格納されています。各エラーオブジェクトにはエラーコード、エラーの詳細、そしてそのエラーを起こしたコンポーネントの署名が格納されています。 | プロパティ | | 型 | 説明 | | ------ | ----------------------------------------------------------------------------------------- | ---------- | ------------------- | @@ -262,7 +262,7 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し #### 説明 -`.listener` プロパティには`TCPConnection` を作成した[`TCPListener`](./TCPListenerClass.md) オブジェクト(あれば)が格納されています。 このプロパティは **読み取り専用** です。 +`.listener` プロパティには`TCPConnection` を作成した[`TCPListener`](./TCPListenerClass.md) オブジェクト(あれば)が格納されています。このプロパティは **読み取り専用** です。 @@ -274,7 +274,7 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し #### 説明 -`.noDelay` プロパティにはNagle のアルゴリズムが無効化されている(`true`) か有効かされている(`false`) かの情報が格納されています。 このプロパティは **読み取り専用** です。 +`.noDelay` プロパティにはNagle のアルゴリズムが無効化されている(`true`) か有効かされている(`false`) かの情報が格納されています。このプロパティは **読み取り専用** です。 @@ -286,7 +286,7 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し #### 説明 -`.port` プロパティには、リモートマシンのポート番号が格納されています。 このプロパティは **読み取り専用** です。 +`.port` プロパティには、リモートマシンのポート番号が格納されています。このプロパティは **読み取り専用** です。 @@ -306,7 +306,7 @@ TCPConnection オブジェクトは以下のプロパティと関数を提供し #### 説明 -`send()` 関数は、データをサーバーに送信します。 接続がまだ確立されていない場合には、データは接続が確立されたあとに送信されます。 +`send()` 関数は、データをサーバーに送信します。接続がまだ確立されていない場合には、データは接続が確立されたあとに送信されます。 @@ -350,7 +350,7 @@ The `wait()` function TCP 接続が閉 :::note -`.wait()` の実行中、コールバック関数は、`SystemWorker` インスタンスから発生したものであるかどうかに関わらず、実行されます。 コールバックから[`shutdown()`](#shutdown) を呼び出すことで、`.wait()` を終了することができます。 +`.wait()` の実行中、コールバック関数は、`SystemWorker` インスタンスから発生したものであるかどうかに関わらず、実行されます。コールバックから[`shutdown()`](#shutdown) を呼び出すことで、`.wait()` を終了することができます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPEventClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPEventClass.md index 761ef579ac856f..06544a62fc132e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPEventClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPEventClass.md @@ -3,7 +3,7 @@ id: TCPEventClass title: TCPEvent --- -`TCPEvent` クラスはTCP 接続のライフサイクル中に発生するイベントに関する情報を提供します。 これは[TCPConnection](TCPConnectionClass.md) が開いた時に生成され、一般的には`onConnection`、`onData`、`onError` などのコールバックの中で使用されます。 これは[TCPConnection](TCPConnectionClass.md) が開いた時に生成され、一般的には`onConnection`、`onData`、`onError` などのコールバックの中で使用されます。 +`TCPEvent` クラスはTCP 接続のライフサイクル中に発生するイベントに関する情報を提供します。 これは[TCPConnection](TCPConnectionClass.md) が開いた時に生成され、一般的には`onConnection`、`onData`、`onError` などのコールバックの中で使用されます。これは[TCPConnection](TCPConnectionClass.md) が開いた時に生成され、一般的には`onConnection`、`onData`、`onError` などのコールバックの中で使用されます。
    履歴 @@ -47,11 +47,11 @@ title: TCPEvent #### 説明 -`.data` プロパティには、イベントに関連づけられたデータが格納されています。 これは`"data"` 型のイベントにおいてのみ有効です。 +`.data` プロパティには、イベントに関連づけられたデータが格納されています。これは`"data"` 型のイベントにおいてのみ有効です。 :::note -ローレベルな TCP/IP 接続を扱っている場合、全てのデータが単一のパケットで到着するという保証はない、という点に留意して下さい。 データは順番通りに届きますが、複数のパケットに断片化されて届く可能性があります。 +ローレベルな TCP/IP 接続を扱っている場合、全てのデータが単一のパケットで到着するという保証はない、という点に留意して下さい。データは順番通りに届きますが、複数のパケットに断片化されて届く可能性があります。 ::: @@ -77,7 +77,7 @@ title: TCPEvent #### 説明 -`.type` プロパティには、イベントのタイプ が格納されます。 とりうる値: +`.type` プロパティには、イベントのタイプ が格納されます。とりうる値: - `"connection"`: TCPConnection が正常に確立されたことを表します。 - `"data"`: データが受信されたことを表します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPListenerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPListenerClass.md index da80564caca0a3..c3b9f33cd7ca71 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPListenerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/TCPListenerClass.md @@ -91,11 +91,11 @@ TCPListener オブジェクトは以下のプロパティや関数を提供し *options* 引数には、リスナーとそれが作成する全ての`TCPConnections` を設定するオブジェクトを渡します: -| プロパティ | 型 | 説明 | デフォルト | -| ------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | -| onConnection | Formula | 新規接続が確立した時にトリガーされるコールバック。 このフォーミュラは2つの引数(*$listener* および *$event*、以下参照)を受け取り、接続を阻止するためにnull/undefined か、または[`TCPConnection`](./TCPConnectionClass.md) を作成するのに使用される *option* オブジェクトのいずれかを返さなかればなりません。 | 未定義 | -| onError | Formula | エラーの場合にトリガーされるコールバック。 このフォーミュラは\*$listener\* に `TCPListener` オブジェクトを受け取ります。 | 未定義 | -| onTerminate | Formula | TCPListener が閉じられる直前にトリガーされるコールバック。 このフォーミュラは\*$listener\* に `TCPListener` オブジェクトを受け取ります。 このフォーミュラは\*$listener\* に `TCPListener` オブジェクトを受け取ります。 | 未定義 | +| プロパティ | 型 | 説明 | デフォルト | +| ------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | +| onConnection | Formula | 新規接続が確立した時にトリガーされるコールバック。このフォーミュラは2つの引数(*$listener* および *$event*、以下参照)を受け取り、接続を阻止するためにnull/undefined か、または[`TCPConnection`](./TCPConnectionClass.md) を作成するのに使用される *option* オブジェクトのいずれかを返さなかればなりません。 | 未定義 | +| onError | Formula | エラーの場合にトリガーされるコールバック。このフォーミュラは\*$listener\* に `TCPListener` オブジェクトを受け取ります。 | 未定義 | +| onTerminate | Formula | TCPListener が閉じられる直前にトリガーされるコールバック。 このフォーミュラは\*$listener\* に `TCPListener` オブジェクトを受け取ります。このフォーミュラは\*$listener\* に `TCPListener` オブジェクトを受け取ります。 | 未定義 | #### コールバック関数 @@ -126,7 +126,7 @@ TCPListener オブジェクトは以下のプロパティや関数を提供し #### 説明 -`.errors` プロパティには接続に関連したエラーオブジェクトのコレクションが格納されています。 各エラーオブジェクトにはエラーコード、エラーの詳細、そしてそのエラーを起こしたコンポーネントの署名が格納されています。 +`.errors` プロパティには接続に関連したエラーオブジェクトのコレクションが格納されています。各エラーオブジェクトにはエラーコード、エラーの詳細、そしてそのエラーを起こしたコンポーネントの署名が格納されています。 | プロパティ | | 型 | 説明 | | ------ | ----------------------------------------------------------------------------------------- | ---------- | ------------------- | @@ -145,7 +145,7 @@ TCPListener オブジェクトは以下のプロパティや関数を提供し #### 説明 -`.port` プロパティは、マシンのポート番号を格納します。 このプロパティは **読み取り専用** です。 +`.port` プロパティは、マシンのポート番号を格納します。このプロパティは **読み取り専用** です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/Transporter.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/Transporter.md index bcb57e5d775acf..c2475f0792997e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/Transporter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/Transporter.md @@ -213,7 +213,7 @@ title: Transporter クラス #### 説明 -`.headerCharset` プロパティは、メールヘッダーで使用される文字セットとエンコーディングを格納します。 ヘッダーにはメールの次の要素を含みます: +`.headerCharset` プロパティは、メールヘッダーで使用される文字セットとエンコーディングを格納します。ヘッダーにはメールの次の要素を含みます: - 内容 - 添付ファイル名 @@ -248,7 +248,7 @@ title: Transporter クラス #### 説明 -`.host` プロパティは、ホストサーバーの名前または IPアドレスを格納します。 この情報はメール通信 (SMTP、POP3、IMAP) に使用されます。 +`.host` プロパティは、ホストサーバーの名前または IPアドレスを格納します。この情報はメール通信 (SMTP、POP3、IMAP) に使用されます。 @@ -270,9 +270,9 @@ title: Transporter クラス #### 説明 -`.logFile` プロパティは、 メール接続に対して定義された拡張ログファイル (あれば) へのフルパスを格納します。 パスは、カレント Logs フォルダーを基準とした相対パス、あるいは絶対パスを指定できます。 +`.logFile` プロパティは、 メール接続に対して定義された拡張ログファイル (あれば) へのフルパスを格納します。パスは、カレント Logs フォルダーを基準とした相対パス、あるいは絶対パスを指定できます。 -`SET DATABASE PARAMETER` コマンドで有効化される通常のログファイルとは異なり、拡張ログファイルはすべての送信されたメールの MIMEコンテンツを保存し、サイズ制限がありません。 拡張ログファイルの詳細については、以下の章をそれぞれ参照ください: +`SET DATABASE PARAMETER` コマンドで有効化される通常のログファイルとは異なり、拡張ログファイルはすべての送信されたメールの MIMEコンテンツを保存し、サイズ制限がありません。拡張ログファイルの詳細については、以下の章をそれぞれ参照ください: - **SMTP 接続** - [4DSMTPLog.txt](../Debugging/debugLogFiles.md#4dsmtplogtxt-4dpop3logtxt-and-4dimaplogtxt) - **POP3 接続** - [4DPOP3Log.txt](../Debugging/debugLogFiles.md#4dsmtplogtxt-4dpop3logtxt-and-4dimaplogtxt) @@ -379,11 +379,11 @@ title: Transporter クラス #### 説明 -`.checkConnection()` 関数は、`transporter` オブジェクトが保存する情報を使用して接続をチェックします。必要なら再接続をし、そのステータスを返します。 この関数を使用して、ユーザーから提供された値が有効かどうかを検証することができます。 +`.checkConnection()` 関数は、`transporter` オブジェクトが保存する情報を使用して接続をチェックします。必要なら再接続をし、そのステータスを返します。この関数を使用して、ユーザーから提供された値が有効かどうかを検証することができます。 #### 返されるオブジェクト -この関数はメールサーバーにリクエストを送信し、メールステータスを表すオブジェクトを返します。 このオブジェクトには、次のプロパティが格納されることがあります: +この関数はメールサーバーにリクエストを送信し、メールステータスを表すオブジェクトを返します。このオブジェクトには、次のプロパティが格納されることがあります: | プロパティ | | 型 | 説明 | | ---------- | -------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/UDPEventClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/UDPEventClass.md index b4c3841c41697b..734b63adbc7c31 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/UDPEventClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/UDPEventClass.md @@ -3,7 +3,7 @@ id: UDPEventClass title: UDPEvent --- -`UDPEvent` クラスはUDP ソケットのライフサイクル中に発生するイベントに関する情報を提供します。 これは[UDPSocket](UDPSocketClass.md) が開いた時に生成され、`onData`、`onError`、および `onTerminate` などのコールバックの中で使用されます。 +`UDPEvent` クラスはUDP ソケットのライフサイクル中に発生するイベントに関する情報を提供します。これは[UDPSocket](UDPSocketClass.md) が開いた時に生成され、`onData`、`onError`、および `onTerminate` などのコールバックの中で使用されます。
    履歴 @@ -46,7 +46,7 @@ title: UDPEvent #### 説明 -`.data` プロパティには、イベントに関連づけられたデータ が格納されています。 これは"data" 型のイベントにおいてのみ有効です。 +`.data` プロパティには、イベントに関連づけられたデータ が格納されています。これは"data" 型のイベントにおいてのみ有効です。 @@ -70,7 +70,7 @@ title: UDPEvent #### 説明 -`.type` プロパティにはイベントのタイプ が格納されています。 とりうる値: +`.type` プロパティにはイベントのタイプ が格納されています。とりうる値: - `"data"`: データが受信されたことを表します。 - `"error"`: UDPSocket の最中にエラーが発生したことを示します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md index 435295c0358d94..90272ff54a5813 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md @@ -3,7 +3,7 @@ id: UDPSocketClass title: UDPSocket --- -`UDPSocket` クラスを使用すると、UDP パケットの送信と受信が可能になります。 UDP (User Datagram Protocol) は、データを送信するための、実装が簡単なプロトコルです。 これはTCP よりも早くてシンプル(TCP のヘッダーが最低20 バイトであるのに対してUDP はヘッダーがわずか8 バイト)ですが、信頼性のレベルは同じではありません。 これはデータが目的地に迅速に到着する必要のあるアプリケーションに有用です。 ただし、これは配信の検証も、正常に配信されなかったデータの復旧もエラーチェックも行うことはできません。 +`UDPSocket` クラスを使用すると、UDP パケットの送信と受信が可能になります。 UDP (User Datagram Protocol) は、データを送信するための、実装が簡単なプロトコルです。これはTCP よりも早くてシンプル(TCP のヘッダーが最低20 バイトであるのに対してUDP はヘッダーがわずか8 バイト)ですが、信頼性のレベルは同じではありません。これはデータが目的地に迅速に到着する必要のあるアプリケーションに有用です。ただし、これは配信の検証も、正常に配信されなかったデータの復旧もエラーチェックも行うことはできません。
    履歴 @@ -15,11 +15,11 @@ title: UDPSocket `UDPSocket` クラスは`4D` クラスストアから利用可能です。 UDP 接続は、 [UDPSocket オブジェクト](#udpsocket-object) を返す [4D.UDPSocket.new()](#4dudpsocketnew) 関数を使用することで作成することができます。 -標準の4D オブジェクトの *refcounting* のおかげで、UDPSocket はそれがもう参照されなくなったときに自動的にリリースされます。これはつまりメモリ内にUDPSocket への参照が残っていない状態になったときを意味します。 これは一般的に、例えばメソッド実行の最後にローカル変数が消去されるときに発生します。 結果として、それに関連したリソースは、明示的な終了を必要とせずに適切にクリーンアップされます。 しかしながら、ソケットを"強制的に"終了させたい場合には、[**Null** を代入することで**参照を無効化** してください](../Concepts/dt_object.md#リソース)。 +標準の4D オブジェクトの *refcounting* のおかげで、UDPSocket はそれがもう参照されなくなったときに自動的にリリースされます。これはつまりメモリ内にUDPSocket への参照が残っていない状態になったときを意味します。これは一般的に、例えばメソッド実行の最後にローカル変数が消去されるときに発生します。結果として、それに関連したリソースは、明示的な終了を必要とせずに適切にクリーンアップされます。しかしながら、ソケットを"強制的に"終了させたい場合には、[**Null** を代入することで**参照を無効化** してください](../Concepts/dt_object.md#リソース)。 :::info 4DTCPUDPLog.txt ファイル -UDP ソケットに関連したイベントを記録する[4DTCPUDPLog.txt ログファイル](../Debugging/debugLogFiles.md#4dtcpudplogtxt) を使用すると、デバッグやモニタリングを行うことができます。 記録されるイベントには、データ送信、エラー、接続ライフサイクル情報などが含まれます。 +UDP ソケットに関連したイベントを記録する[4DTCPUDPLog.txt ログファイル](../Debugging/debugLogFiles.md#4dtcpudplogtxt) を使用すると、デバッグやモニタリングを行うことができます。記録されるイベントには、データ送信、エラー、接続ライフサイクル情報などが含まれます。 ::: @@ -98,7 +98,7 @@ UDPSocket オブジェクトは以下のプロパティと関数を提供しま #### 説明 -`.errors` プロパティにはソケットに関連したエラーオブジェクトのコレクションが格納されています。 各エラーオブジェクトにはエラーコード、エラーの詳細、そしてそのエラーを起こしたコンポーネントの署名が格納されています。 +`.errors` プロパティにはソケットに関連したエラーオブジェクトのコレクションが格納されています。各エラーオブジェクトにはエラーコード、エラーの詳細、そしてそのエラーを起こしたコンポーネントの署名が格納されています。 | プロパティ | | 型 | 説明 | | ------ | ----------------------------------------------------------------------------------------- | ---------- | ------------------- | @@ -117,7 +117,7 @@ UDPSocket オブジェクトは以下のプロパティと関数を提供しま #### 説明 -`.port` プロパティにはリッスンするポート番号 が格納されています。 このプロパティは **読み取り専用** です。 +`.port` プロパティにはリッスンするポート番号 が格納されています。このプロパティは **読み取り専用** です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/VectorClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/VectorClass.md index 2d42f83abd9979..e8bb7831a9c012 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/VectorClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/VectorClass.md @@ -3,7 +3,7 @@ id: VectorClass title: Vector --- -`Vector` クラスを使用すると、**ベクトル** を扱うことができるようになり、それらの距離や類似性を計算することができます。 このクラスは `4D` クラスストアより提供されます。 +`Vector` クラスを使用すると、**ベクトル** を扱うことができるようになり、それらの距離や類似性を計算することができます。このクラスは `4D` クラスストアより提供されます。 AI の世界では、ベクトルとは、機会が複雑なデータを理解し、操作することを可能にする、一連の数字です。 AI におけるベクトルの役割の詳細な概要については、[こちらのページ](https://aiforsocialgood.ca/blog/understanding-the-role-of-vectors-in-artificial-intelligence-a-comprehensive-guide) を参照してください。 @@ -15,13 +15,13 @@ AI の世界では、ベクトルとは、機会が複雑なデータを理解 ### 様々なベクトル計算を理解する -`4D.Vector` クラスは、3種類のベクター計算を提供します。 以下の表はそれぞれの計算の主な特徴をまとめたものです: +`4D.Vector` クラスは、3種類のベクター計算を提供します。以下の表はそれぞれの計算の主な特徴をまとめたものです: -| | cosineSimilarity | dotSimilarity | euclideanDistance | -| ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 定義 | ベクトルとして表現された2つのテキストの向きを比較します。 2つが指している方向が同じであればあるほど、その2つは近いことを意味します。 | それぞれのベクトル次元の積の合計。 加重互換性スコアのようなものと考えることができます。 | 定規で測ったかのような2つのベクトル感の実際の距離。 | -| 単純な例え | 私たちは同じ話題について話していますか? | あなたは同じ主題について何度も何度も話をしていますか? | あなたは私の言っている事から本当にそんなに離れていますか? | -| 例題 | 例えば、あなたが動画オンデマンドストリーミングサービス上で次に見る映画を探している場合を考えます。 コサイン類似性は、あなたの嗜好(例えば、若干のコメディが入ったアクション映画が好きである、など)とデータベース内にある映画の説明とを比較するために使用されます。 ここではあなたが映画の"ライトな"ファンである(映画を月一回見る)か、あるいは"大"ファンである(映画を週に10本見る)かは関係ありません。大事なのは、映画の特徴があなたの好み(例:アクション+コメディ)と類似しているかどうかです。 ストリーミングサービスはこのコサイン類似性を使用して、あなたの嗜好と"同じ方向を向いている"映画を推奨します。 | 検索エンジを考えてみてください。 あなたが"チョコレートケーキのレシピ"と入力すると、アルゴリズムはあなたのクエリをWebページと比較します。 ドット積は、あるページがチョコレートケーキについて説明しているかどうか(あなたの検索と似た方向かどうか)をチェックするために使用されるだけではなく、より関連性のあるページにより重みをつけるために使用されます(例えば、チョコレートケーキについてのより詳細なコンテンツがたくさんあるページはより大きな"長さ"を与えられ、結果としてより高いスコアがつけられます)。 検索した内容について1行しか触れていないようなページは、低いスコアがつけられます。 | マッチングアプリを想像してみてください。 アルゴリズムはユークリッド距離を使用して、あなたのプロフィール(趣味、年齢、居住地など)と 他のユーザーのプロフィールを比較します。 もし二人のプロフィールがとても似通っている(例えば二人ともハイキングが趣味で、ポップミュージックが好き、そして住んでいるところが5kmしか離れていない)のであれば、二人のプロフィールのユークリッド距離は低くなり、アプリはこの人物をより"マッチしている"とサジェストしてきます。 ここでは、二人の嗜好の一般的な方向だけでなく、すべての違いも(どれだけ小さくても)考慮されます。 | +| | cosineSimilarity | dotSimilarity | euclideanDistance | +| ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 定義 | ベクトルとして表現された2つのテキストの向きを比較します。 2つが指している方向が同じであればあるほど、その2つは近いことを意味します。 | それぞれのベクトル次元の積の合計。加重互換性スコアのようなものと考えることができます。 | 定規で測ったかのような2つのベクトル感の実際の距離。 | +| 単純な例え | 私たちは同じ話題について話していますか? | あなたは同じ主題について何度も何度も話をしていますか? | あなたは私の言っている事から本当にそんなに離れていますか? | +| 例題 | 例えば、あなたが動画オンデマンドストリーミングサービス上で次に見る映画を探している場合を考えます。コサイン類似性は、あなたの嗜好(例えば、若干のコメディが入ったアクション映画が好きである、など)とデータベース内にある映画の説明とを比較するために使用されます。ここではあなたが映画の"ライトな"ファンである(映画を月一回見る)か、あるいは"大"ファンである(映画を週に10本見る)かは関係ありません。大事なのは、映画の特徴があなたの好み(例:アクション+コメディ)と類似しているかどうかです。ストリーミングサービスはこのコサイン類似性を使用して、あなたの嗜好と"同じ方向を向いている"映画を推奨します。 | 検索エンジを考えてみてください。あなたが"チョコレートケーキのレシピ"と入力すると、アルゴリズムはあなたのクエリをWebページと比較します。ドット積は、あるページがチョコレートケーキについて説明しているかどうか(あなたの検索と似た方向かどうか)をチェックするために使用されるだけではなく、より関連性のあるページにより重みをつけるために使用されます(例えば、チョコレートケーキについてのより詳細なコンテンツがたくさんあるページはより大きな"長さ"を与えられ、結果としてより高いスコアがつけられます)。検索した内容について1行しか触れていないようなページは、低いスコアがつけられます。 | マッチングアプリを想像してみてください。アルゴリズムはユークリッド距離を使用して、あなたのプロフィール(趣味、年齢、居住地など)と他のユーザーのプロフィールを比較します。もし二人のプロフィールがとても似通っている(例えば二人ともハイキングが趣味で、ポップミュージックが好き、そして住んでいるところが5kmしか離れていない)のであれば、二人のプロフィールのユークリッド距離は低くなり、アプリはこの人物をより"マッチしている"とサジェストしてきます。ここでは、二人の嗜好の一般的な方向だけでなく、すべての違いも(どれだけ小さくても)考慮されます。 | いずれの場合においても、さまざまなベクトルをテストしてどれがあなたの用途とデータに合致するか判断するのが良いと言えるでしょう。 @@ -65,7 +65,7 @@ AI の世界では、ベクトルとは、機会が複雑なデータを理解 `4D.Vector.new()` 関数は、新しい`4D.Vector`型のオブジェクト作成して返します。 -*parameter* 引数には、作成したベクトルを表す実数値のコレクションを渡します。 これらの値は人工知能によって提供されるものであり、単語やデータなどのオブジェクトを数学的に表します。 +*parameter* 引数には、作成したベクトルを表す実数値のコレクションを渡します。これらの値は人工知能によって提供されるものであり、単語やデータなどのオブジェクトを数学的に表します。 #### 例題 @@ -100,9 +100,9 @@ var $collection := $vector.toCollection() #### 説明 -`.cosineSimilarity()` 関数は、現在の4D ベクトルと*vector* 引数に渡したベクトルとの間のコサイン類似度を計算します。 両ベクトルはサイズが同じである必要があります。 +`.cosineSimilarity()` 関数は、現在の4D ベクトルと*vector* 引数に渡したベクトルとの間のコサイン類似度を計算します。両ベクトルはサイズが同じである必要があります。 -この計算は**ベクトル間の角度** を計算し、一般的にはテキスト間の意味的類似度を決定するために使用されます。 これはテキスト埋め込み、ドキュメント、文章など、データの**方向性** の方が**大きさ** より重要なデータ(例: 意味検索やテキスト分類など)に対して推奨されます。 +この計算は**ベクトル間の角度** を計算し、一般的にはテキスト間の意味的類似度を決定するために使用されます。これはテキスト埋め込み、ドキュメント、文章など、データの**方向性** の方が**大きさ** より重要なデータ(例: 意味検索やテキスト分類など)に対して推奨されます。 **戻り値** @@ -179,9 +179,9 @@ End if #### 説明 -`.dotSimilarity()` 関数は、現在の4D ベクトルと*vector* 引数に渡したベクトルとの間のドット積を計算します。 両ベクトルはサイズが同じである必要があります。 +`.dotSimilarity()` 関数は、現在の4D ベクトルと*vector* 引数に渡したベクトルとの間のドット積を計算します。両ベクトルはサイズが同じである必要があります。 -この計算は**類似度** と **大きさ** の両方を反映し、一般的にはベクトルのノルム(大きさ)が異なるモデルで使用されます。 これは、埋め込みが大きさを考慮して微調整されているようなシナリオ(例: 推薦エンジン、関連性スコアづけ)などに推奨されます。 +この計算は**類似度** と **大きさ** の両方を反映し、一般的にはベクトルのノルム(大きさ)が異なるモデルで使用されます。これは、埋め込みが大きさを考慮して微調整されているようなシナリオ(例: 推薦エンジン、関連性スコアづけ)などに推奨されます。 **戻り値** @@ -256,9 +256,9 @@ ALERT("Best answer: "+$documents[0].text) #### 説明 -`.euclideanDistance()` 関数は、現在の4D ベクトルと*vector* 引数に渡したベクトルとの間のユークリッド距離を計算します。 両ベクトルはサイズが同じである必要があります。 +`.euclideanDistance()` 関数は、現在の4D ベクトルと*vector* 引数に渡したベクトルとの間のユークリッド距離を計算します。両ベクトルはサイズが同じである必要があります。 -この計算はベクトル空間内での直線距離を計算します。 これは、数値または構造化されたデータ埋め込みや、生の空間での近似性が類似性に直接相関するモデルを使用する場合に推奨されます。 +この計算はベクトル空間内での直線距離を計算します。これは、数値または構造化されたデータ埋め込みや、生の空間での近似性が類似性に直接相関するモデルを使用する場合に推奨されます。 **戻り値** diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md index 417637724296b6..680a5bf92a230c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebFormClass.md @@ -33,7 +33,7 @@ title: WebForm Web ページのコンポーネント (構成要素) とは、これらの Web ページのプロパティとして直接利用可能なオブジェクトです。 -返されるオブジェクトは、[`4D.WebFormItem`](WebFormItemClass.md) クラスのものです。 これらのオブジェクトは、コンポーネントを動的に管理するために使用できる関数を持っています。 +返されるオブジェクトは、[`4D.WebFormItem`](WebFormItemClass.md) クラスのものです。これらのオブジェクトは、コンポーネントを動的に管理するために使用できる関数を持っています。 #### 例題 @@ -50,7 +50,7 @@ shared singleton Class constructor() :::info -`myForm` はデバッガーの中で調べる場合には一般的なオブジェクトのプロパティを表示しないかもしれませんが、実際の`webForm` オブジェクトであるかのように振る舞います。 `myForm` を通して、下地となる`webForm` オブジェクトのプロパティと関数を操作することができます。 例えば、ページのコンテンツを動的に操作したり、あるいは `myForm.setMessage()` のような特殊な関数を使用してWebページにメッセージを送信したりすることができます。 +`myForm` はデバッガーの中で調べる場合には一般的なオブジェクトのプロパティを表示しないかもしれませんが、実際の`webForm` オブジェクトであるかのように振る舞います。 `myForm` を通して、下地となる`webForm` オブジェクトのプロパティと関数を操作することができます。例えば、ページのコンテンツを動的に操作したり、あるいは `myForm.setMessage()` のような特殊な関数を使用してWebページにメッセージを送信したりすることができます。 ::: 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 e546981e69b35a..b93c6e404176fc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebServerClass.md @@ -3,7 +3,7 @@ id: WebServerClass title: WebServer --- -`WebServer` クラス API を使って、メイン (ホスト) アプリケーションおよび、各コンポーネントの Webサーバーを開始・モニターすることができます ([Webサーバーオブジェクト](WebServer/webServerObject.md) 参照)。 このクラスは `4D` クラスストアより提供されます。 +`WebServer` クラス API を使って、メイン (ホスト) アプリケーションおよび、各コンポーネントの Webサーバーを開始・モニターすることができます ([Webサーバーオブジェクト](WebServer/webServerObject.md) 参照)。このクラスは `4D` クラスストアより提供されます。 ### プロパティ @@ -64,7 +64,7 @@ Webサーバーオブジェクトは [`WEB Server`](../commands/web-server) コ **.accessKeyDefined** : Boolean -**.accessKeyDefined** プロパティは、Webサーバーの設定にアクセスキーが定義されていれば trueを格納します。 このプロパティは WebAdmin Webサーバーによって、管理インターフェースのセキュリティ設定を有効化するのに使用されます。 +**.accessKeyDefined** プロパティは、Webサーバーの設定にアクセスキーが定義されていれば trueを格納します。このプロパティは WebAdmin Webサーバーによって、管理インターフェースのセキュリティ設定を有効化するのに使用されます。 @@ -72,7 +72,7 @@ Webサーバーオブジェクトは [`WEB Server`](../commands/web-server) コ **.certificateFolder** : Text -証明書ファイルが保存されているフォルダーのパス。 パスは、ファイルシステムを使用した POSIXフルパスの形式です。 [`.start()`](#start) 関数に渡す `settings` 引数内でこのプロパティを使用する場合、[`Folder` オブジェクト](FolderClass.md) も使用可能です。 +証明書ファイルが保存されているフォルダーのパス。パスは、ファイルシステムを使用した POSIXフルパスの形式です。 [`.start()`](#start) 関数に渡す `settings` 引数内でこのプロパティを使用する場合、[`Folder` オブジェクト](FolderClass.md) も使用可能です。 @@ -82,7 +82,7 @@ Webサーバーオブジェクトは [`WEB Server`](../commands/web-server) コ **.characterSet** : Number
    **.characterSet** : Text -アプリケーションに接続してくるブラウザーとの通信に 4D Webサーバーが使用すべき文字セット。 デフォルト値は OS の言語に依存します。 値には、MIBenum 整数や名称の文字列、[IANA](http://www.iana.org/assignments/character-sets/character-sets.xhtml) が定義する識別子を使用できます。 以下は、4D Webサーバーがサポートしている文字セットに対応する識別子のリストです: +アプリケーションに接続してくるブラウザーとの通信に 4D Webサーバーが使用すべき文字セット。デフォルト値は OS の言語に依存します。値には、MIBenum 整数や名称の文字列、[IANA](http://www.iana.org/assignments/character-sets/character-sets.xhtml) が定義する識別子を使用できます。以下は、4D Webサーバーがサポートしている文字セットに対応する識別子のリストです: - 4 = ISO-8859-1 - 12 = ISO-8859-9 @@ -106,7 +106,7 @@ Webサーバーオブジェクトは [`WEB Server`](../commands/web-server) コ **.cipherSuite** : Text -保護されたプロトコルのために使用される暗号スイートリスト。 これは、4D Webサーバーが実装する暗号化アルゴリズムの優先順位を設定します。 コロン区切りの文字列として設定できます (例: "ECDHE-RSA-AES128-...")。 詳細は Open SSL サイトの [ciphers ページ](https://www.openssl.org/docs/manmaster/man1/ciphers.html) を参照ください。 +保護されたプロトコルのために使用される暗号スイートリスト。これは、4D Webサーバーが実装する暗号化アルゴリズムの優先順位を設定します。コロン区切りの文字列として設定できます (例: "ECDHE-RSA-AES128-...")。詳細は Open SSL サイトの [ciphers ページ](https://www.openssl.org/docs/manmaster/man1/ciphers.html) を参照ください。 @@ -116,7 +116,7 @@ Webサーバーオブジェクトは [`WEB Server`](../commands/web-server) コ **.CORSEnabled** : Boolean -Web サーバーの CORS (*Cross-origin resource sharing*、オリジン間リソース共有) サービス状態。 セキュリティ上の理由により、"ドメイン間" のリクエストはブラウザーレベルでデフォルトで禁止されています。 有効化されている場合 (true)、ドメイン外 Webページからの XHRコール (RESTリクエストなど) をアプリケーションにおいて許可することができます (CORSドメインリストに許可されたアドレスのリストを定義する必要があります。後述の `CORSSettings` 参照)。 無効化されている場合 (false、デフォルト) には、CORS で送信されたサイト間リクエストはすべて無視されます。 有効時 (true) に、許可されていないドメインやメソッドがサイト間リクエストを送信した場合、"403 - forbidden" エラーレスポンスによって拒否されます。 +Web サーバーの CORS (*Cross-origin resource sharing*、オリジン間リソース共有) サービス状態。セキュリティ上の理由により、"ドメイン間" のリクエストはブラウザーレベルでデフォルトで禁止されています。有効化されている場合 (true)、ドメイン外 Webページからの XHRコール (RESTリクエストなど) をアプリケーションにおいて許可することができます (CORSドメインリストに許可されたアドレスのリストを定義する必要があります。後述の `CORSSettings` 参照)。無効化されている場合 (false、デフォルト) には、CORS で送信されたサイト間リクエストはすべて無視されます。有効時 (true) に、許可されていないドメインやメソッドがサイト間リクエストを送信した場合、"403 - forbidden" エラーレスポンスによって拒否されます。 デフォルト: false (無効) @@ -130,9 +130,9 @@ CORS についての詳細は、Wikipedia の[Cross-origin resource sharing](htt **.CORSSettings** : Collection -CORSサービスに許可されたホストとメソッドの一覧 ([`CORSEnabled`](#corsenabled) プロパティ参照)。 各オブジェクトは必ず **host** プロパティを格納していなくてはなりません。 **methods** プロパティは任意です。 +CORSサービスに許可されたホストとメソッドの一覧 ([`CORSEnabled`](#corsenabled) プロパティ参照)。各オブジェクトは必ず **host** プロパティを格納していなくてはなりません。 **methods** プロパティは任意です。 -- **host** (テキスト、必須): CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 *host* が存在しない、または空の場合、当該オブジェクトは無視されます。 複数のシンタックスがサポートされています: +- **host** (テキスト、必須): CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。複数のドメインを追加してホワイトリストを作成することができます。 *host* が存在しない、または空の場合、当該オブジェクトは無視されます。複数のシンタックスがサポートされています: - 192.168.5.17:8081 - 192.168.5.17 - 192.168.\* @@ -144,7 +144,7 @@ CORS についての詳細は、Wikipedia の[Cross-origin resource sharing](htt - myProject.myDomain.com - \* -- **methods** (テキスト、任意): 対応する CORSホストに対して許可する HTTPメソッド。 メソッド名はセミコロン区切りで指定します(例: "post;get")。 *methods* が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 +- **methods** (テキスト、任意): 対応する CORSホストに対して許可する HTTPメソッド。メソッド名はセミコロン区切りで指定します(例: "post;get")。 *methods* が空、null、あるいは undefined の場合、すべてのメソッドが許可されます。 @@ -190,7 +190,7 @@ The HTTPリクエストログファ *読み取り専用プロパティ* -カスタム HTTPハンドラーオブジェクトのコレクション。 HTTPハンドラーオブジェクトには聞いている URLパターン、管理される動詞 (メソッド)、そして呼び出されるべきコードが格納されています。 HTTPハンドラーは HTTPHandlers.json ファイルまたは [`.start()`](#start) 関数の *settings* 引数で定義することができます。 詳細については [HTTPリクエストハンドラー](../WebServer/http-request-handler.md)のページを参照してください。 +カスタム HTTPハンドラーオブジェクトのコレクション。 HTTPハンドラーオブジェクトには聞いている URLパターン、管理される動詞 (メソッド)、そして呼び出されるべきコードが格納されています。 HTTPハンドラーは HTTPHandlers.json ファイルまたは [`.start()`](#start) 関数の *settings* 引数で定義することができます。詳細については [HTTPリクエストハンドラー](../WebServer/http-request-handler.md)のページを参照してください。 @@ -200,7 +200,7 @@ The HTTPリクエストログファ **.HSTSEnabled** : Boolean -HTTP Strict Transport Security (HSTS) 状態。 HSTS によって、Webサーバーはブラウザーに対し、セキュアな HTTPS接続のみを許可すると宣言できます。 Webサーバーからの初回レスポンスを受け取った際にブラウザーは HSTS情報を記録し、以降の HTTPリクエストは自動的に HTTPSリクエストに変換されます。 ブラウザー側でこの情報が保存される時間は `HSTSMaxAge` プロパティによって指定されます。 HSTS のためには、サーバー上で HTTPS が有効になっていなくてはなりません。 また、初回のクライアント接続を許可するために、HTTP も有効でなくてはなりません。 +HTTP Strict Transport Security (HSTS) 状態。 HSTS によって、Webサーバーはブラウザーに対し、セキュアな HTTPS接続のみを許可すると宣言できます。 Webサーバーからの初回レスポンスを受け取った際にブラウザーは HSTS情報を記録し、以降の HTTPリクエストは自動的に HTTPSリクエストに変換されます。ブラウザー側でこの情報が保存される時間は `HSTSMaxAge` プロパティによって指定されます。 HSTS のためには、サーバー上で HTTPS が有効になっていなくてはなりません。また、初回のクライアント接続を許可するために、HTTP も有効でなくてはなりません。 @@ -210,7 +210,7 @@ The HTTPリクエストログファ **.HSTSMaxAge** : Integer -新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位)。 この情報はクライアント側で指定された時間のあいだ保存されます。 +新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位)。この情報はクライアント側で指定された時間のあいだ保存されます。 デフォルト値: 63072000 (2年)。 @@ -222,7 +222,7 @@ The HTTPリクエストログファ **.HTTPCompressionLevel** : Integer -4D HTTPサーバーの HTTP圧縮通信 (クライアントリクエストまたはサーバーレスポンス) における圧縮レベル。 このセレクターを使って、実行速度を優先するか (圧縮少)、それとも圧縮レベルを優先するか (速度減) を指定し、通信を最適化することができます。 +4D HTTPサーバーの HTTP圧縮通信 (クライアントリクエストまたはサーバーレスポンス) における圧縮レベル。このセレクターを使って、実行速度を優先するか (圧縮少)、それとも圧縮レベルを優先するか (速度減) を指定し、通信を最適化することができます。 とりうる値: @@ -239,7 +239,7 @@ The HTTPリクエストログファ **.HTTPCompressionThreshold** : Integer -HTTP圧縮のしきい値 (バイト単位)。このサイズ未満のリクエストについては、通信が圧縮されません。 この設定は、通信サイズが小さい場合、圧縮に処理時間が費やされるのを避けるのに有用です。 +HTTP圧縮のしきい値 (バイト単位)。このサイズ未満のリクエストについては、通信が圧縮されません。この設定は、通信サイズが小さい場合、圧縮に処理時間が費やされるのを避けるのに有用です。 デフォルトのしきい値 = 1024 バイト @@ -273,7 +273,7 @@ The HTTPリクエストログファ **.HTTPTrace** : Boolean -`HTTP TRACE` の有効化状態。 セキュリティ上の理由により、Webサーバーはデフォルトで `HTTP TRACE` リクエストをエラー405 で拒否します。 有効化されている場合、`HTTP TRACE` リクエストに対して Webサーバーは、リクエスト行、ヘッダー、および本文を返します。 +`HTTP TRACE` の有効化状態。セキュリティ上の理由により、Webサーバーはデフォルトで `HTTP TRACE` リクエストをエラー405 で拒否します。有効化されている場合、`HTTP TRACE` リクエストに対して Webサーバーは、リクエスト行、ヘッダー、および本文を返します。 @@ -307,7 +307,7 @@ The HTTPリクエストログファ > [スケーラブルセッションモード](#scalablesession) の場合には、このプロパティは返されません。 -旧式セッションプロセスの非アクティブタイムアウト時間 (分単位)。 タイムアウト時間が経過すると、サーバーはプロセスを終了します。すると、`On Web Legacy Close Session` データベースメソッドが呼び出され、旧式セッションのコンテキストは削除されます。 +旧式セッションプロセスの非アクティブタイムアウト時間 (分単位)。タイムアウト時間が経過すると、サーバーはプロセスを終了します。すると、`On Web Legacy Close Session` データベースメソッドが呼び出され、旧式セッションのコンテキストは削除されます。 デフォルト = 480 分 @@ -321,7 +321,7 @@ The HTTPリクエストログファ > [スケーラブルセッションモード](#scalablesession) の場合には、このプロパティは返されません。 -旧式セッションの非アクティブタイムアウト時間 (分単位; cookie にて設定)。 タイムアウト時間が経過するとセッションcookie が無効になり、HTTPクライアントによって送信されなくなります。 +旧式セッションの非アクティブタイムアウト時間 (分単位; cookie にて設定)。タイムアウト時間が経過するとセッションcookie が無効になり、HTTPクライアントによって送信されなくなります。 デフォルト = 480 分 @@ -333,7 +333,7 @@ The HTTPリクエストログファ **.IPAddressToListen** : Text -4D Webサーバーが HTTPリクエストを受信する IPアドレス。 デフォルトでは、特定のアドレスは定義されていません。 IPv6 および IPv4 文字列形式の両方がサポートされています。 +4D Webサーバーが HTTPリクエストを受信する IPアドレス。デフォルトでは、特定のアドレスは定義されていません。 IPv6 および IPv4 文字列形式の両方がサポートされています。 @@ -385,7 +385,7 @@ The HTTPリクエストログファ **.maxConcurrentProcesses** : Integer -Webサーバーにてサポートする最大同時Webプロセス数。 この数値 (マイナス1) に達すると、4D はプロセスを作成しなくなり、新規リクエストに対して HTTPステータス 503 - Service Unavailable を返します。 +Webサーバーにてサポートする最大同時Webプロセス数。この数値 (マイナス1) に達すると、4D はプロセスを作成しなくなり、新規リクエストに対して HTTPステータス 503 - Service Unavailable を返します。 とりうる値: 10 - 32000 @@ -399,7 +399,7 @@ The HTTPリクエストログファ **.maxRequestSize** : Integer -Webサーバーが処理してよい HTTPリクエスト (POST) の最大サイズ (バイト単位)。 最大値 (2147483647) に設定した場合、実際には制限無しということになります。 制限を設けることで、サイズが非常に大きいリクエストによって Webサーバーが過負荷状態に陥ることを防ぎます。 リクエストのサイズが制限に達していると、Webサーバーによって拒否されます。 +Webサーバーが処理してよい HTTPリクエスト (POST) の最大サイズ (バイト単位)。最大値 (2147483647) に設定した場合、実際には制限無しということになります。制限を設けることで、サイズが非常に大きいリクエストによって Webサーバーが過負荷状態に陥ることを防ぎます。リクエストのサイズが制限に達していると、Webサーバーによって拒否されます。 とりうる値: 500000 - 2147483647 @@ -413,7 +413,7 @@ The HTTPリクエストログファ > [スケーラブルセッションモード](#scalablesession) の場合には、このプロパティは返されません。 -旧式セッションにおける同時セッションの最大数。 制限に達すると、Webサーバーが新規セッションを作成するときに、一番古い旧式セッションが閉じられます (`On Web Legacy Close Session` データベースメソッドが呼び出されます)。 旧式セッションの同時セッション数は、Webプロセスの合計値を超えることはできません (`maxConcurrentProcesses` プロパティ、デフォルト値は 100)。 +旧式セッションにおける同時セッションの最大数。制限に達すると、Webサーバーが新規セッションを作成するときに、一番古い旧式セッションが閉じられます (`On Web Legacy Close Session` データベースメソッドが呼び出されます)。旧式セッションの同時セッション数は、Webプロセスの合計値を超えることはできません (`maxConcurrentProcesses` プロパティ、デフォルト値は 100)。 @@ -423,7 +423,7 @@ The HTTPリクエストログファ **.minTLSVersion** : Integer -接続に必要な最低TLSバージョン。 これよりも低いバージョンのみをサポートするクライアントからの接続は拒否されます。 +接続に必要な最低TLSバージョン。これよりも低いバージョンのみをサポートするクライアントからの接続は拒否されます。 とりうる値: @@ -478,7 +478,7 @@ The HTTPリクエストログファ **.rootFolder** : Text -Webサーバーのルートフォルダーのパス。 パスは、ファイルシステムを使用した POSIXフルパスの形式です。 `settings` 引数内でこのプロパティを使用する場合、`Folder` オブジェクトも使用可能です。 +Webサーバーのルートフォルダーのパス。パスは、ファイルシステムを使用した POSIXフルパスの形式です。 `settings` 引数内でこのプロパティを使用する場合、`Folder` オブジェクトも使用可能です。 @@ -498,7 +498,7 @@ The HTTPリクエストログファ *読み取り専用プロパティ* -HTTP ヘッダーをカスタマイズするために現在管理されているルールオブジェクトのコレクション。 ルールオブジェクトには"regexPattern" プロパティに加え、アクション名と値が格納されています。 HTTP ルールはHTTPRules.json ファイルまたは[`.start()`](#start) 関数の*settings* 引数で定義することができます。 詳細については[HTTP ルール](../WebServer/http-rules.md) のページを参照してください。 +HTTP ヘッダーをカスタマイズするために現在管理されているルールオブジェクトのコレクション。ルールオブジェクトには"regexPattern" プロパティに加え、アクション名と値が格納されています。 HTTP ルールはHTTPRules.json ファイルまたは[`.start()`](#start) 関数の*settings* 引数で定義することができます。詳細については[HTTP ルール](../WebServer/http-rules.md) のページを参照してください。 @@ -522,7 +522,7 @@ The HTTPリクエストログファ **.sessionCookieDomain** : Text -セッションcookie の "path" フィールド。 セッションcookie のスコープを制御するのに使用されます。 たとえば、このセレクターに "/*.4d.fr" の値を設定した場合、リクエストの宛先が ".4d.fr" のドメインに限り、クライアントは cookie を送信します。つまり、外部の静的データをホストするサーバーは除外されます。 +セッションcookie の "path" フィールド。セッションcookie のスコープを制御するのに使用されます。たとえば、このセレクターに "/*.4d.fr" の値を設定した場合、リクエストの宛先が ".4d.fr" のドメインに限り、クライアントは cookie を送信します。つまり、外部の静的データをホストするサーバーは除外されます。 @@ -544,7 +544,7 @@ The HTTPリクエストログファ **.sessionCookiePath** : Text -セッションcookie の "path" フィールド。 セッションcookie のスコープを制御するのに使用されます。 たとえば、このセレクターに "/4DACTION" という値を設定した場合、4DACTION で始まる動的リクエストの場合にのみクライアントは cookie を送信し、ピクチャーや静的ページへのリクエストは除外されます。 +セッションcookie の "path" フィールド。セッションcookie のスコープを制御するのに使用されます。たとえば、このセレクターに "/4DACTION" という値を設定した場合、4DACTION で始まる動的リクエストの場合にのみクライアントは cookie を送信し、ピクチャーや静的ページへのリクエストは除外されます。 @@ -562,7 +562,7 @@ The HTTPリクエストログファ **.sessionCookieSameSite** : Text -セッションcookie の "SameSite" 属性の値。 とりうる値 (定数使用): +セッションcookie の "SameSite" 属性の値。とりうる値 (定数使用): | 定数 | 値 | 説明 | | ------------------- | -------- | --------------------------------------------------------------- | @@ -582,7 +582,7 @@ The HTTPリクエストログファ > [スケーラブルセッションモード](#scalablesession) の場合には、このプロパティは使用されません (IPアドレスを検証しません)。 -セッションcookie の IP アドレス検証。 セキュリティ上の理由により、セッションcookie を持つ各リクエストに対して Webサーバーはデフォルトで IPアドレスを検証します。 アプリケーションによっては、この検証機能を無効化し、IPアドレスが合致しなくてもセッションcookie を受け入れるようにしたいかもしれません。 たとえば、モバイルデバイスが WiFi と 3G/4G ネットワークを切り替えた場合、IPアドレスが変更されます。 このように IPアドレスが変更しても、クライアントによる Webセッションの継続を許可できます (アプリケーションのセキュリティレベルは下がります)。 +セッションcookie の IP アドレス検証。セキュリティ上の理由により、セッションcookie を持つ各リクエストに対して Webサーバーはデフォルトで IPアドレスを検証します。アプリケーションによっては、この検証機能を無効化し、IPアドレスが合致しなくてもセッションcookie を受け入れるようにしたいかもしれません。たとえば、モバイルデバイスが WiFi と 3G/4G ネットワークを切り替えた場合、IPアドレスが変更されます。このように IPアドレスが変更しても、クライアントによる Webセッションの継続を許可できます (アプリケーションのセキュリティレベルは下がります)。 @@ -614,7 +614,7 @@ The HTTPリクエストログファ `.start()` 関数は、任意の *settings* オブジェクト引数に設定したプロパティを使用して、対象の Webサーバーを開始させます。 -プロジェクトの設定ファイルに定義されているデフォルトの設定、または `WEB SET OPTION` コマンドで定義された設定 (ホストデータベースのみ) を使用して、Webサーバーは開始されます。 しかし、*settings* 引数を渡せば、Webサーバーセッションにおいてカスタマイズされた設定を定義することができます。 +プロジェクトの設定ファイルに定義されているデフォルトの設定、または `WEB SET OPTION` コマンドで定義された設定 (ホストデータベースのみ) を使用して、Webサーバーは開始されます。しかし、*settings* 引数を渡せば、Webサーバーセッションにおいてカスタマイズされた設定を定義することができます。 [Web Server オブジェクト](../commands/web-server) の設定は、読み取り専用プロパティ ([.isRunning](#isrunning), [.name](#name)、 [.openSSLVersion](#opensslversion)、 [.perfectForwardSecrecy](#perfectforwardsecrecy)、および [.sessionCookieName](#sessioncookiename)) を除いて、すべてカスタマイズ可能です。 @@ -622,7 +622,7 @@ The HTTPリクエストログファ #### 返されるオブジェクト -関数は Webサーバーの開始ステータスを表すオブジェクトを返します。 このオブジェクトには、次のプロパティが格納されることがあります: +関数は Webサーバーの開始ステータスを表すオブジェクトを返します。このオブジェクトには、次のプロパティが格納されることがあります: | プロパティ | | 型 | 説明 | | ------- | ------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md index f23289a5a02ede..30d480594da00e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketClass.md @@ -105,14 +105,14 @@ WebSocketオブジェクトは、以下のプロパティと機能を提供し - コールバックは、接続を開始したフォームまたはワーカーのコンテキストで自動的に呼び出されます。 - フォームまたはワーカーが閉じられていない限り、WebSocket は有効です。 -| プロパティ | 型 | 説明 | -| ----------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| onMessage | [Function](FunctionClass.md) | WebSocket データ用のコールバック関数。 WebSocket がデータを受信するたびに呼び出されます。 WebSocket データ用のコールバック関数。 WebSocket がデータを受信するたびに呼び出されます。 コールバックは以下の引数を受け取ります:
  • `$1`: WebSocket オブジェクト
  • `$2`: Object
    • `$2.type` (text): 常に "message"
    • `$2.data` (text, BLOB, または object。`dataType` 参照): 受信データ
    | -| onError | [Function](FunctionClass.md) | 実行エラー用のコールバック関数。 実行エラー用のコールバック関数。 コールバックは以下の引数を受け取ります:
  • `$1`: WebSocket オブジェクト
  • `$2`: Object
    • `$2.type` (text): 常に "error"
    • `$2.errors`: 実行エラーの場合、4Dエラースタックのコレクション。
      • [].errCode (number): 4Dエラーコード
      • [].message (text): 4Dエラーの説明
      • [].componentSignature (text) - エラーを返した内部コンポーネントの署名
    | -| onTerminate | [Function](FunctionClass.md) | WebSocket が終了した時のコールバック関数。 コールバックは以下の引数を受け取ります:
  • `$1`: WebSocket オブジェクト
  • `$2`: Object
    • `$2.code` (number、読み取り専用): 符号なし短整数型で、サーバーから送られたクローズコードを格納します。
    • `$2.reason` (text、読み取り専用): サーバーが接続を切断した理由。 これは、対象のサーバーとサブプロトコルに固有のものです。
    | -| onOpen | [Function](FunctionClass.md) | WebSocket が開始した時のコールバック関数。 コールバックは以下の引数を受け取ります:
  • `$1`: WebSocket オブジェクト
  • `$2`: Object
    • `$2.type` (text): 常に "open"
    | -| dataType | Text | 受信または送信されたデータの型。 可能な値: "text" (デフォルト), "blob", "object"。 "text" = utf-8 | -| headers | Object | WebSocket のヘッダー。
  • 標準的な key 割り当てのシンタックス:` headers.*key*:=*value*` (同じ key を複数指定する場合、*value* にコレクションを使用できます)
  • Cookie割り当てのシンタックス (特定の場合): `headers.Cookie:="*name*=*value* {; *name2*=*value2*{; ... } }"`
  • | +| プロパティ | 型 | 説明 | +| ----------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| onMessage | [Function](FunctionClass.md) | WebSocket データ用のコールバック関数。 WebSocket がデータを受信するたびに呼び出されます。 WebSocket データ用のコールバック関数。 WebSocket がデータを受信するたびに呼び出されます。 コールバックは以下の引数を受け取ります:
  • `$1`: WebSocket オブジェクト
  • `$2`: Object
    • `$2.type` (text): 常に "message"
    • `$2.data` (text, BLOB, または object。`dataType` 参照): 受信データ
    | +| onError | [Function](FunctionClass.md) | 実行エラー用のコールバック関数。実行エラー用のコールバック関数。 コールバックは以下の引数を受け取ります:
  • `$1`: WebSocket オブジェクト
  • `$2`: Object
    • `$2.type` (text): 常に "error"
    • `$2.errors`: 実行エラーの場合、4Dエラースタックのコレクション。
      • [].errCode (number): 4Dエラーコード
      • [].message (text): 4Dエラーの説明
      • [].componentSignature (text) - エラーを返した内部コンポーネントの署名
    | +| onTerminate | [Function](FunctionClass.md) | WebSocket が終了した時のコールバック関数。コールバックは以下の引数を受け取ります:
  • `$1`: WebSocket オブジェクト
  • `$2`: Object
    • `$2.code` (number、読み取り専用): 符号なし短整数型で、サーバーから送られたクローズコードを格納します。
    • `$2.reason` (text、読み取り専用): サーバーが接続を切断した理由。これは、対象のサーバーとサブプロトコルに固有のものです。
    | +| onOpen | [Function](FunctionClass.md) | WebSocket が開始した時のコールバック関数。コールバックは以下の引数を受け取ります:
  • `$1`: WebSocket オブジェクト
  • `$2`: Object
    • `$2.type` (text): 常に "open"
    | +| dataType | Text | 受信または送信されたデータの型。可能な値: "text" (デフォルト), "blob", "object"。 "text" = utf-8 | +| headers | Object | WebSocket のヘッダー。
  • 標準的な key 割り当てのシンタックス:` headers.*key*:=*value*` (同じ key を複数指定する場合、*value* にコレクションを使用できます)
  • Cookie割り当てのシンタックス (特定の場合): `headers.Cookie:="*name*=*value* {; *name2*=*value2*{; ... } }"`
  • | 以下は、コールバック呼び出しの流れです: @@ -206,7 +206,7 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" | 型 | 内容 | | ------ | ------------------------------------------------------------------------------------------------ | | Text | UTF-8 のテキスト | -| BLOB | バイナリデータ | +| BLOB | バイナリーデータ | | Object | JSON UTF-8 形式のテキスト([`JSON Stringify`](../commands/json-stringify) と同じ結果になります) | @@ -250,7 +250,7 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" *code* には、接続を閉じる理由を説明するステータスコードを渡すことができます ([RFC6455 の WebSocket Connection Close Code](https://www.rfc-editor.org/rfc/rfc6455.html#section-7.1.5) も参照ください): - 指定しなかった場合、接続のクローズコードは自動的に設定されます: 通常終了の場合は 1000、そうでない場合は、接続が切断された実際の理由を示す 1001〜1015 の標準値。 -- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。 値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 +- 指定された場合、この code パラメーターの値は自動設定の値をオーバーライドします。値は整数でなくてはなりません。 1000、または 3000-4999 の範囲のカスタムコードが利用できます。 *code* を指定する場合は、*reason* の値も指定する必要があります。 *reason* には、接続を閉じる理由を説明するテキストを渡すことができます。 @@ -264,7 +264,7 @@ This.headers.Cookie:="yummy_cookie=choco; tasty_cookie=strawberry" #### 説明 -`.url` プロパティは、WebSocket が接続した URL を格納します。 これは、[`new()`](#4dwebsocketnew) 関数に渡した URL と同じです。 +`.url` プロパティは、WebSocket が接続した URL を格納します。これは、[`new()`](#4dwebsocketnew) 関数に渡した URL と同じです。 このプロパティは 読み取り専用 です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketConnectionClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketConnectionClass.md index bf17b67f879d83..29db72ee0b860a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketConnectionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketConnectionClass.md @@ -86,7 +86,7 @@ WebSocketConnection オブジェクトは、次のプロパティと関数を提 | 型 | 内容 | | ------ | ------------------------------------------------------------------------------------------------ | | Text | UTF-8 のテキスト | -| BLOB | バイナリデータ | +| BLOB | バイナリーデータ | | Object | JSON UTF-8 形式のテキスト([`JSON Stringify`](../commands/json-stringify) と同じ結果になります) | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md index 74e93433ec9842..80c0e06aa26048 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md @@ -126,7 +126,7 @@ WebSocketサーバーオブジェクトは、以下のプロパティと機能 ### *WSSHandler* 引数 -*WSSHandler* 引数には、WebSocketサーバーでイベント (主に接続イベント) が発生するたびに呼び出されるユーザークラスのインスタンスを渡します。 このクラスでは、以下のコールバック関数を定義します (`onConnection` のみ必須): +*WSSHandler* 引数には、WebSocketサーバーでイベント (主に接続イベント) が発生するたびに呼び出されるユーザークラスのインスタンスを渡します。このクラスでは、以下のコールバック関数を定義します (`onConnection` のみ必須): | プロパティ | 型 | 説明 | デフォルト | | ------------ | ---------------------------- | ------------------------------------------------------------------------- | --------- | @@ -137,13 +137,13 @@ WebSocketサーバーオブジェクトは、以下のプロパティと機能 **WSHandler.onConnection**(*WSServer* : Object ; *event* : Object) : Object | null -| 引数 | | 型 | | 説明 | -| -------- | ------- | ---------------------------------- | :-------------------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| WSServer | | 4D.WebSocketServer | <- | カレントの WebSocketサーバーオブジェクト | -| event | | Object | <- | 引数 | -| | type | Text | | "connection" | -| | request | Object | | `request` オブジェクト。 接続要求に関する情報を格納します (後述参照) | -| 戻り値 | | Object | -> | [`connectionHandler` オブジェクト](#connectionhandler-オブジェクト) (後述参照)。 この関数が `connectionHandler` オブジェクトを返す場合、[`4D.WebSocketConnection` オブジェクト](WebSocketConnectionClass.md#websocketconnection-オブジェクト) が自動的に作成され、[カレント接続のコレクション](#connections) に追加されます。 その後、このオブジェクトは `connectionHandler` オブジェクトの各関数に引数として受け取られます。 戻り値が null または undefined の場合、接続は解除されます。 | +| 引数 | | 型 | | 説明 | +| -------- | ------- | ---------------------------------- | :-------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| WSServer | | 4D.WebSocketServer | <- | カレントの WebSocketサーバーオブジェクト | +| event | | Object | <- | 引数 | +| | type | Text | | "connection" | +| | request | Object | | `request` オブジェクト。接続要求に関する情報を格納します (後述参照) | +| 戻り値 | | Object | -> | [`connectionHandler` オブジェクト](#connectionhandler-オブジェクト) (後述参照)。この関数が `connectionHandler` オブジェクトを返す場合、[`4D.WebSocketConnection` オブジェクト](WebSocketConnectionClass.md#websocketconnection-オブジェクト) が自動的に作成され、[カレント接続のコレクション](#connections) に追加されます。その後、このオブジェクトは `connectionHandler` オブジェクトの各関数に引数として受け取られます。戻り値が null または undefined の場合、接続は解除されます。 | このコールバックは、ハンドシェイクが完了したときに呼び出されます。 WebSocket 接続を作成するためには、有効な [`connectionHandler` オブジェクト](#connectionhandler-オブジェクト) を指定して呼び出す必要があり、そうでない場合は接続がキャンセルされます。 @@ -214,16 +214,16 @@ LogFile("!!! サーバーエラー: "+$event.errors.first().message) `request` オブジェクトには、次のプロパティが格納されています: -| 引数 | 型 | 説明 | -| ------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- | -| headers | Object | クライアントの HTTP GET リクエスト。 `headers.key=value` (同じ key を複数指定する場合、value にコレクションを使用できます) | -| query | Object | URL 引数を含むオブジェクト。 たとえば、引数が以下のような場合: `?key1=value1&key2=value2` -> `query.key1=value1`, `query.key2=value2`。 | -| url | Text | 実際の HTTPリクエストにおける URL の部分を格納します。 例: `GET /status?name=ryan HTTP/1.1` -> url="/status?name=ryan" | -| remoteAddress | Text | クライアントの IPアドレス | +| 引数 | 型 | 説明 | +| ------------- | ------ | ------------------------------------------------------------------------------------------------------------------------- | +| headers | Object | クライアントの HTTP GET リクエスト。 `headers.key=value` (同じ key を複数指定する場合、value にコレクションを使用できます) | +| query | Object | URL 引数を含むオブジェクト。たとえば、引数が以下のような場合: `?key1=value1&key2=value2` -> `query.key1=value1`, `query.key2=value2`。 | +| url | Text | 実際の HTTPリクエストにおける URL の部分を格納します。例: `GET /status?name=ryan HTTP/1.1` -> url="/status?name=ryan" | +| remoteAddress | Text | クライアントの IPアドレス | ### `connectionHandler` オブジェクト -`WSHandler.onConnection` コールバックの結果として、`connectionHandler` オブジェクトを渡します。これは、WebSocket 接続でイベントが発生するたび (主にメッセージが受信されるたび) に呼び出されるユーザークラスのインスタンスです。 このクラスでは、以下のコールバック関数を定義します (`onMessage` のみ必須): +`WSHandler.onConnection` コールバックの結果として、`connectionHandler` オブジェクトを渡します。これは、WebSocket 接続でイベントが発生するたび (主にメッセージが受信されるたび) に呼び出されるユーザークラスのインスタンスです。このクラスでは、以下のコールバック関数を定義します (`onMessage` のみ必須): | 引数 | 型 | 説明 | | ----------- | ---------------------------- | ------------------------------------------------------ | @@ -313,10 +313,10 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) 任意の *options* 引数には、以下のプロパティを持つオブジェクトを渡します: -| プロパティ | 型 | 説明 | デフォルト | -| -------- | ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -| path | Text | WebSocketサーバーにアクセスするためのパス。 パスが定義されていない場合、WebSocketサーバーはすべての接続を管理します | undefined | -| dataType | Text | `connectionHandler.onMessage` で受信するデータ、および [`WebSocketConnection.send()`](WebSocketConnectionClass.md#send) 関数で送信するデータの型。 値: "text", "blob", "object"。 "object" の場合: (送信) object を json形式に変換して送信します; (受信) json形式を受信して object に変換します | text | +| プロパティ | 型 | 説明 | デフォルト | +| -------- | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | +| path | Text | WebSocketサーバーにアクセスするためのパス。パスが定義されていない場合、WebSocketサーバーはすべての接続を管理します | undefined | +| dataType | Text | `connectionHandler.onMessage` で受信するデータ、および [`WebSocketConnection.send()`](WebSocketConnectionClass.md#send) 関数で送信するデータの型。値: "text", "blob", "object"。 "object" の場合: (送信) object を json形式に変換して送信します; (受信) json形式を受信して object に変換します | text | @@ -326,7 +326,7 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) #### 説明 -`.connections` プロパティは、WebSocketサーバーが処理しているカレントの接続をすべて格納します。 コレクションの各要素が [`WebSocketConnection` オブジェクト](WebSocketConnectionClass.md) です。 +`.connections` プロパティは、WebSocketサーバーが処理しているカレントの接続をすべて格納します。コレクションの各要素が [`WebSocketConnection` オブジェクト](WebSocketConnectionClass.md) です。 接続が終了すると、このオブジェクトの [`status`](WebSocketConnectionClass.md#status) は "Closed" に変わり、コレクションから削除されます。 @@ -366,7 +366,7 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) #### 説明 -`.path` プロパティは、WebSocketサーバーにアクセスするためのパスのパターンです。 パスが定義されなかった場合、WebSocketサーバーはすべての接続を管理します。 +`.path` プロパティは、WebSocketサーバーにアクセスするためのパスのパターンです。パスが定義されなかった場合、WebSocketサーバーはすべての接続を管理します。 このプロパティは 読み取り専用 です。 @@ -393,7 +393,7 @@ Function broadcast($ws : 4D.WebSocketConnection; $message:text) `.terminate()` 関数は、WebSocketサーバーを終了します。 -*timeout* 値が設定されていない場合のデフォルトでは、関数はクローズハンドシェイクを初期化し、相手からクローズフレームを受信するのを待ちます。 その後、FINパケットを送信し、クリーンにソケットを閉じます。 応答を受け取ると、ソケットは破棄されます。 +*timeout* 値が設定されていない場合のデフォルトでは、関数はクローズハンドシェイクを初期化し、相手からクローズフレームを受信するのを待ちます。 その後、FINパケットを送信し、クリーンにソケットを閉じます。応答を受け取ると、ソケットは破棄されます。 *timeout* 値が設定されている場合: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/ZipArchiveClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/ZipArchiveClass.md index 12a1ce14c4cee3..72e3800f4804f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/ZipArchiveClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/ZipArchiveClass.md @@ -3,7 +3,7 @@ id: ZipArchiveClass title: ZIPArchive --- -4D ZIP アーカイブは、一つ以上のファイルまたはフォルダーを格納している `File` または `Folder` オブジェクトで、元のサイズより小さくなるように圧縮されているものをいいます。 これらのアーカイブは ".zip" 拡張子を持つように作成され、ディスクスペースの確保や、サイズ制限があるメディア (例: メールまたはネットワークなど) 経由のファイル転送を容易にする用途に使用できます。 +4D ZIP アーカイブは、一つ以上のファイルまたはフォルダーを格納している `File` または `Folder` オブジェクトで、元のサイズより小さくなるように圧縮されているものをいいます。これらのアーカイブは ".zip" 拡張子を持つように作成され、ディスクスペースの確保や、サイズ制限があるメディア (例: メールまたはネットワークなど) 経由のファイル転送を容易にする用途に使用できます。 - 4D ZIPアーカイブは [`ZIP Create archive`](../commands/zip-create-archive) コマンドで作成します。 - 4D [`ZIPFile`](ZipFileClass.md) および [`ZIPFolder`](ZipFolderClass.md) インスタンスは、[`ZIP Read archive`](../commands/zip-read-archive) コマンドによって返されるオブジェクトの [`root`](#root) プロパティ (`ZIPFolder`) を通して利用可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/ZipFolderClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/ZipFolderClass.md index 919ba88120d9d6..3bd41bceb15589 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/ZipFolderClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/ZipFolderClass.md @@ -5,28 +5,28 @@ title: ZIPFolder [Folder](FolderClass.md) クラスの次のプロパティや関数は `ZIPFolder` オブジェクトにおいて利用可能です: -| ZIPFolder で利用可能な [Folder](FolderClass.md) API | 説明 | -| -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | -| [](FolderClass.md#copyto) | | -| [](FolderClass.md#creationdate) | アーカイブ内のフォルダーと `root` フォルダーの日付が異なる場合があります | -| [](FolderClass.md#creationtime) | アーカイブ内のフォルダーと `root` フォルダーの時刻が異なる場合があります | -| [](FolderClass.md#exists) | | -| [](FolderClass.md#extension) | | -| [](FolderClass.md#file) | | -| [](FolderClass.md#files) | | -| [](FolderClass.md#folder) | | -| [](FolderClass.md#folders) | | -| [](FolderClass.md#fullname) | | -| [](FolderClass.md#geticon) | | -| [](FolderClass.md#hidden) | | -| [](FolderClass.md#isalias) | | -| [](FolderClass.md#isfile) | | -| [](FolderClass.md#isfolder) | | -| [](FolderClass.md#ispackage) | | -| [](FolderClass.md#modificationdate) | アーカイブ内のフォルダーと `root` フォルダーの日付が異なる場合があります | -| [](FolderClass.md#modificationtime) | アーカイブ内のフォルダーと `root` フォルダーの時刻が異なる場合があります | -| [](FolderClass.md#name) | | -| [](FolderClass.md#original) | | -| [](FolderClass.md#parent) | アーカイブの仮想 `root` フォルダーは親を持ちません。 しかしながら、アーカイブ内のフォルダーは root 以外の親を持つ場合があります。 | -| [](FolderClass.md#path) | アーカイブを起点とした相対パスを返します | -| [](FolderClass.md#platformpath) | | +| ZIPFolder で利用可能な [Folder](FolderClass.md) API | 説明 | +| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| [](FolderClass.md#copyto) | | +| [](FolderClass.md#creationdate) | アーカイブ内のフォルダーと `root` フォルダーの日付が異なる場合があります | +| [](FolderClass.md#creationtime) | アーカイブ内のフォルダーと `root` フォルダーの時刻が異なる場合があります | +| [](FolderClass.md#exists) | | +| [](FolderClass.md#extension) | | +| [](FolderClass.md#file) | | +| [](FolderClass.md#files) | | +| [](FolderClass.md#folder) | | +| [](FolderClass.md#folders) | | +| [](FolderClass.md#fullname) | | +| [](FolderClass.md#geticon) | | +| [](FolderClass.md#hidden) | | +| [](FolderClass.md#isalias) | | +| [](FolderClass.md#isfile) | | +| [](FolderClass.md#isfolder) | | +| [](FolderClass.md#ispackage) | | +| [](FolderClass.md#modificationdate) | アーカイブ内のフォルダーと `root` フォルダーの日付が異なる場合があります | +| [](FolderClass.md#modificationtime) | アーカイブ内のフォルダーと `root` フォルダーの時刻が異なる場合があります | +| [](FolderClass.md#name) | | +| [](FolderClass.md#original) | | +| [](FolderClass.md#parent) | アーカイブの仮想 `root` フォルダーは親を持ちません。しかしながら、アーカイブ内のフォルダーは root 以外の親を持つ場合があります。 | +| [](FolderClass.md#path) | アーカイブを起点とした相対パスを返します | +| [](FolderClass.md#platformpath) | | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/cli.md b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/cli.md index 306823cb79aeeb..fbbaf9fa5b206d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/cli.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/cli.md @@ -3,7 +3,7 @@ id: cli title: コマンドライン・インターフェース --- -macOS のターミナルまたは Windows のコンソールを使用して、コマンドラインによる 4Dアプリケーション (4D および 4D Server、組み込みアプリケーション、[tool4d](#tool4d)) の起動ができます。 この機能により、以下のことが可能になります: +macOS のターミナルまたは Windows のコンソールを使用して、コマンドラインによる 4Dアプリケーション (4D および 4D Server、組み込みアプリケーション、[tool4d](#tool4d)) の起動ができます。この機能により、以下のことが可能になります: - リモートからのデータベース起動。これは特に Webサーバーとして動作する 4D の管理に便利です。 - アプリケーションの自動テストの実行 @@ -15,7 +15,7 @@ macOS のターミナルまたは Windows のコンソールを使用して、 - macOS では、`open` コマンドを使用します。 - Windows では、引数を直接渡すことができます。 -> macOS でも、パッケージ内のアプリケーションがあるフォルダー (Contents/MacOS パス) に移動することによって、引数を直接渡すことができ、エラーストリーム (stderr) にアクセスできるようになります。 たとえば、4Dパッケージが `MyFolder` フォルダーにある場合、次のようにコマンドラインを書く必要があります: `/MyFolder/4D.app/Contents/MacOS/4D`。 しかしながら、エラーストリーム(stderr) にアクセスする必要がない場合には、`open` コマンドの使用が推奨されます。 +> macOS でも、パッケージ内のアプリケーションがあるフォルダー (Contents/MacOS パス) に移動することによって、引数を直接渡すことができ、エラーストリーム (stderr) にアクセスできるようになります。たとえば、4Dパッケージが `MyFolder` フォルダーにある場合、次のようにコマンドラインを書く必要があります: `/MyFolder/4D.app/Contents/MacOS/4D`。しかしながら、エラーストリーム(stderr) にアクセスする必要がない場合には、`open` コマンドの使用が推奨されます。 ## 4Dアプリケーションの起動 @@ -30,27 +30,27 @@ macOS のターミナルまたは Windows のコンソールを使用して、 [--utility] [--skip-onstartup] [--startup-method ] ``` -| 引数 | 値 | 説明 | -| :-------------------------- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `applicationPath` | 4D、4D Server、組み込みアプリケーション、または tool4d へのパス。 |
    ヘッドレスでない場合: アプリケーションをダブルクリックするのとおなじです。 ストラクチャーファイルを指定する引数なしで呼び出された場合、アプリケーションが実行され、データベースを選択するためのダイアログボックスが表示されます。 | -| `--version` | | アプリケーションのバージョンを表示して終了します。 | -| `--help` | | ヘルプを表示して終了します。 代替引数: -?, -h | -| `--project` | projectPath | packagePath | 4dlinkPath | カレントデータファイルを開くプロジェクトファイル。 ダイアログボックスは表示されません。 | -| `--data` | dataPath | 指定されたプロジェクトファイルで開くデータファイル。 指定しない場合、最後に開いたデータファイルが使用されます。 | -| `--opening-mode` | interpreted | compiled | データベースをインタープリタモードまたはコンパイルモードで開くように指示します。 指定のモードが利用できない場合でも、エラーは発生しません。 | -| `--create-data` | | 有効なデータファイルが見つからない場合、新しいデータファイルを自動的に作成します。 ダイアログボックスは表示されません。 "-data" 引数で渡されたファイルがあれば、4D はそれを使用します (同じ名前のファイルが既に存在する場合にはエラーが生成されます)。 | -| `--user-param` | カスタムのユーザー文字列 | [`Get database parameter`](../commands/get-database-parameter) コマンドを通してアプリケーションで利用可能な任意の文字列 (ただし文字列は予約文字である "-" から始まってはいけません)。 | -| `--headless` | | 4D、4D Server、または組み込みアプリケーションをインターフェースなし (ヘッドレスモード) で起動します。 このモードでは:
  • デザインモードは利用できません。データベースはアプリケーションモードで開始されます。
  • ツールバー、メニューバー、MDI ウィンドウ、スプラッシュスクリーンは表示されません。
  • Dock またはタスクバーにはアイコンは何も表示されません
  • 開かれたデータベースは"最近使用したデータベース"メニューには登録されません
  • 4D 診断ログが自動的に開始されます([SET DATABASE PARAMETER](../commands/set-database-parameter) のセレクター79を参照してください)
  • ダイアログボックスへの呼び出しは全てインターセプトされ、自動的にレスポンスが返されます(例: [ALERT](../commands/alert) コマンドにはOK 、エラーダイアログにはAbortなど)。 インターセプトされたコマンド (\*) は、診断ファイルに記録されます。

  • 保守上の理由から、[LOG EVENT](../commands/log-event) コマンドを使用して任意のテキストを標準の出力ストリームに送ることができます。 ヘッドレスモードの 4Dアプリケーションは、[QUIT 4D](../commands/quit-4d) を呼び出すか OSタスクマネージャーを使用することでしか終了できない点に注意が必要です。 | -| `--dataless` | | 4D、4D Server、組み込みアプリケーション、または tood4d をデータレスモードで起動します。 データレスモードは、4D がデータを必要としないタスク (プロジェクトのコンパイルなど) を実行する場合に便利です。 このモードでは:
  • コマンドラインや `.4DLink` ファイルで指定されていても、また `CREATE DATA FILE` や `OPEN DATA FILE` コマンドを使用していても、データを含むファイルは開かれません。
  • データを操作するコマンドはエラーを生成します。 たとえば、`CREATE RECORD` は "このコマンドの対象となるテーブルがありません" というエラーを生成します。

  • **注記**:
  • コマンドラインで引数が渡された場合、アプリケーションを終了しない限り、4D で開かれているすべてのデータベースにデータレスモードが適用されます。
  • `.4DLink` ファイルを使って引数が渡された場合には、データレスモードは `.4DLink` ファイルで指定されたデータベースにのみ適用されます。 `.4DLink` ファイルの詳細については、[プロジェクトを開く (その他の方法)](../GettingStarted/creating.md#プロジェクトを開く-その他の方法) を参照ください。
  • | -| `--webadmin-settings-file` | ファイルパス | [WebAdmin Webサーバー](webAdmin.md) 用のカスタム WebAdmin `.4DSettings` ファイルのパス。 [tool4d](#tool4d) の場合には利用できません。 | -| `--webadmin-access-key` | Text | [WebAdmin Webサーバー](webAdmin.md) 用のアクセスキー。 [tool4d](#tool4d) の場合には利用できません。 | -| `--webadmin-auto-start` | Boolean | [WebAdmin Webサーバー](webAdmin.md) 用の自動スタートアップ設定の状態。 [tool4d](#tool4d) の場合には利用できません。 | -| `--webadmin-store-settings` | | アクセスキーと自動スタートアップパラメーターを、現在使用している設定ファイル (デフォルトの [`WebAdmin.4DSettings`](webAdmin.md#settings) ファイル、または `--webadmin-settings-path` パラメーターで指定されたカスタムファイル) に保存します。 必要に応じて `--webadmin-store-settings` 引数を使用して、これらの設定を保存します。 [tool4d](#tool4d) の場合には利用できません。 | -| `--utility` | | 4D Server の場合のみ利用可能です。 [4D Server をユーティリティモードで起動](#ユーティリティモードの-4d-server) します。 | -| `--skip-onstartup` | | `On Startup` および `On Exit` データベースメソッドを含む "自動" メソッドを一切実行せずにプロジェクトを起動します。 | -| `--startup-method` | プロジェクトメソッド名 (文字列) | (`--skip-onstartup` でスキップされていない場合) `On Startup` データベースメソッドの直後に実行するプロジェクトメソッドです。 | - -(\*) 一部のダイアログはデータベースを開く前に表示されるため、[診断ログファイル](Debugging/debugLogFiles.md#4ddiagnosticlogtxt) に記録することができません (ライセンス警告、変換ダイアログ、データベース選択、データファイル選択)。 このような場合、エラーストリーム (stderr) とシステムのイベントログにエラーが投げられ、アプリケーションが終了します。 +| 引数 | 値 | 説明 | +| :-------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `applicationPath` | 4D、4D Server、組み込みアプリケーション、または tool4d へのパス。 |
    ヘッドレスでない場合: アプリケーションをダブルクリックするのとおなじです。 ストラクチャーファイルを指定する引数なしで呼び出された場合、アプリケーションが実行され、データベースを選択するためのダイアログボックスが表示されます。 | +| `--version` | | アプリケーションのバージョンを表示して終了します。 | +| `--help` | | ヘルプを表示して終了します。代替引数: -?, -h | +| `--project` | projectPath | packagePath | 4dlinkPath | カレントデータファイルを開くプロジェクトファイル。ダイアログボックスは表示されません。 | +| `--data` | dataPath | 指定されたプロジェクトファイルで開くデータファイル。指定しない場合、最後に開いたデータファイルが使用されます。 | +| `--opening-mode` | interpreted | compiled | データベースをインタープリターモードまたはコンパイルモードで開くように指示します。指定のモードが利用できない場合でも、エラーは発生しません。 | +| `--create-data` | | 有効なデータファイルが見つからない場合、新しいデータファイルを自動的に作成します。ダイアログボックスは表示されません。 "-data" 引数で渡されたファイルがあれば、4D はそれを使用します (同じ名前のファイルが既に存在する場合にはエラーが生成されます)。 | +| `--user-param` | カスタムのユーザー文字列 | [`Get database parameter`](../commands/get-database-parameter) コマンドを通してアプリケーションで利用可能な任意の文字列 (ただし文字列は予約文字である "-" から始まってはいけません)。 | +| `--headless` | | 4D、4D Server、または組み込みアプリケーションをインターフェースなし (ヘッドレスモード) で起動します。このモードでは:
  • デザインモードは利用できません。データベースはアプリケーションモードで開始されます。
  • ツールバー、メニューバー、MDI ウィンドウ、スプラッシュスクリーンは表示されません。
  • Dock またはタスクバーにはアイコンは何も表示されません
  • 開かれたデータベースは"最近使用したデータベース"メニューには登録されません
  • 4D 診断ログが自動的に開始されます([SET DATABASE PARAMETER](../commands/set-database-parameter) のセレクター79を参照してください)
  • ダイアログボックスへの呼び出しは全てインターセプトされ、自動的にレスポンスが返されます(例: [ALERT](../commands/alert) コマンドにはOK 、エラーダイアログにはAbortなど)。インターセプトされたコマンド (\*) は、診断ファイルに記録されます。

  • 保守上の理由から、[LOG EVENT](../commands/log-event) コマンドを使用して任意のテキストを標準の出力ストリームに送ることができます。ヘッドレスモードの 4Dアプリケーションは、[QUIT 4D](../commands/quit-4d) を呼び出すか OSタスクマネージャーを使用することでしか終了できない点に注意が必要です。 | +| `--dataless` | | 4D、4D Server、組み込みアプリケーション、または tood4d をデータレスモードで起動します。データレスモードは、4D がデータを必要としないタスク (プロジェクトのコンパイルなど) を実行する場合に便利です。このモードでは:
  • コマンドラインや `.4DLink` ファイルで指定されていても、また `CREATE DATA FILE` や `OPEN DATA FILE` コマンドを使用していても、データを含むファイルは開かれません。
  • データを操作するコマンドはエラーを生成します。たとえば、`CREATE RECORD` は "このコマンドの対象となるテーブルがありません" というエラーを生成します。

  • **注記**:
  • コマンドラインで引数が渡された場合、アプリケーションを終了しない限り、4D で開かれているすべてのデータベースにデータレスモードが適用されます。
  • `.4DLink` ファイルを使って引数が渡された場合には、データレスモードは `.4DLink` ファイルで指定されたデータベースにのみ適用されます。 `.4DLink` ファイルの詳細については、[プロジェクトを開く (その他の方法)](../GettingStarted/creating.md#プロジェクトを開く-その他の方法) を参照ください。
  • | +| `--webadmin-settings-file` | ファイルパス | [WebAdmin Webサーバー](webAdmin.md) 用のカスタム WebAdmin `.4DSettings` ファイルのパス。 [tool4d](#tool4d) の場合には利用できません。 | +| `--webadmin-access-key` | Text | [WebAdmin Webサーバー](webAdmin.md) 用のアクセスキー。 [tool4d](#tool4d) の場合には利用できません。 | +| `--webadmin-auto-start` | Boolean | [WebAdmin Webサーバー](webAdmin.md) 用の自動スタートアップ設定の状態。 [tool4d](#tool4d) の場合には利用できません。 | +| `--webadmin-store-settings` | | アクセスキーと自動スタートアップパラメーターを、現在使用している設定ファイル (デフォルトの [`WebAdmin.4DSettings`](webAdmin.md#settings) ファイル、または `--webadmin-settings-path` パラメーターで指定されたカスタムファイル) に保存します。必要に応じて `--webadmin-store-settings` 引数を使用して、これらの設定を保存します。 [tool4d](#tool4d) の場合には利用できません。 | +| `--utility` | | 4D Server の場合のみ利用可能です。 [4D Server をユーティリティモードで起動](#ユーティリティモードの-4d-server) します。 | +| `--skip-onstartup` | | `On Startup` および `On Exit` データベースメソッドを含む "自動" メソッドを一切実行せずにプロジェクトを起動します。 | +| `--startup-method` | プロジェクトメソッド名 (文字列) | (`--skip-onstartup` でスキップされていない場合) `On Startup` データベースメソッドの直後に実行するプロジェクトメソッドです。 | + +(\*) 一部のダイアログはデータベースを開く前に表示されるため、[診断ログファイル](Debugging/debugLogFiles.md#4ddiagnosticlogtxt) に記録することができません (ライセンス警告、変換ダイアログ、データベース選択、データファイル選択)。このような場合、エラーストリーム (stderr) とシステムのイベントログにエラーが投げられ、アプリケーションが終了します。 ### 例題 @@ -179,7 +179,7 @@ tool4dは、次のことをおこなう場合に適したツールです: tool4d は、4D [製品ダウンロードページ](https://product-download.4d.com/) から入手することができます。 -tool4d を使うには、[コマンドライン](#4dアプリケーションの起動) を実行して起動し、標準的な 4Dプロジェクトを開きます。 上表に記載されている引数は、--`webadmin` を除いてすべて使用することができます。`WebAdmin` コンポーネントは [tool4d で無効化](#無効化されている-4d機能) されているため、使用できません。 tool4d では、次の実行シーケンスが起動されます: +tool4d を使うには、[コマンドライン](#4dアプリケーションの起動) を実行して起動し、標準的な 4Dプロジェクトを開きます。上表に記載されている引数は、--`webadmin` を除いてすべて使用することができます。`WebAdmin` コンポーネントは [tool4d で無効化](#無効化されている-4d機能) されているため、使用できません。 tool4d では、次の実行シーケンスが起動されます: 1. tool4d は、`On Startup` データベースメソッド (および [ユーザー開始メソッド](../Users/handling_users_groups.md#ユーザープロパティ) などのすべての "自動" メソッド) を実行します。ただし、`--skip-onstartup` 引数が渡された場合を除きます。 2. tool4d は、`--startup-method` の引数で指定されたメソッドがあれば、それを実行します。 @@ -198,7 +198,7 @@ Windows では、tool4d はコンソールアプリケーションであるた ### 無効化されている 4D機能 -tool4d は自動的に **ヘッドレスモード** で実行され ([引数一覧](#4dアプリケーションの起動) の `--headless` 参照)、4D IDE やそのサーバーにアクセスすることはできないことに留意してください。 具体的には、以下の機能が無効になっています: +tool4d は自動的に **ヘッドレスモード** で実行され ([引数一覧](#4dアプリケーションの起動) の `--headless` 参照)、4D IDE やそのサーバーにアクセスすることはできないことに留意してください。具体的には、以下の機能が無効になっています: - アプリケーションサーバー、Webサーバー、SQLサーバー - バックアップスケジューラー @@ -213,7 +213,7 @@ tool4d は自動的に **ヘッドレスモード** で実行され ([引数一 ## ユーティリティモードの 4D Server -CLIオプションの `--utility` を使用すると、4D Server インスタンスをユーティリティモード (ヘッドレス) で起動することができます。 この場合、以下の実行シーケンスが起動されます: +CLIオプションの `--utility` を使用すると、4D Server インスタンスをユーティリティモード (ヘッドレス) で起動することができます。この場合、以下の実行シーケンスが起動されます: 1. 4D Server は、`On Startup` データベースメソッド (および [ユーザー開始メソッド](../Users/handling_users_groups.md#ユーザープロパティ) などのすべての "自動" メソッド) を実行します。ただし、`--skip-onstartup` 引数が渡された場合を除きます。 2. 4D Server は、`--startup-method` で指定されたメソッドがあれば、それを実行します。 @@ -222,7 +222,7 @@ CLIオプションの `--utility` を使用すると、4D Server インスタン :::info -tool4d とは異なり、ユーティリティモードの 4D Server では、すべての機能が有効になっています。 ただし、アプリケーションサーバーなど、すべてのサーバーは起動しません。 +tool4d とは異なり、ユーティリティモードの 4D Server では、すべての機能が有効になっています。ただし、アプリケーションサーバーなど、すべてのサーバーは起動しません。 ::: 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 735ffdf7bb2b7a..69ec92bcae96f5 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 if the Volume Shadow Copy feature is enabled (Windows only) | +| isShadowCopyActivated | Boolean | ボリュームシャドウコピー機能が有効化されている場合にはTrue (Windows のみ) | | LDAPLogin | Number | `LDAP LOGIN` の呼び出し回数 | | license.sffPrimaryKey | Number | サーバーのマスタープロダクト番号 | | machine.CPU | Text | プロセッサーの名前、種類、および速度 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/dataExplorer.md b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/dataExplorer.md index cabcb6b7695df3..64cfc420b27f04 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/dataExplorer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/dataExplorer.md @@ -3,7 +3,7 @@ id: dataExplorer title: データエクスプローラー --- -データエクスプローラーは、プロジェクトのデータストアにあるデータを表示・クエリ・編集するための Webインターフェースを提供します。 このツールを使用すると、すべてのエンティティを簡単に照会し、属性値に基づいて検索・並べ替え・フィルターすることができます。 このツールは、開発プロセスのどの段階においても問題を迅速に特定するだけでなく、データを管理・編集するのにも役立ちます。 +データエクスプローラーは、プロジェクトのデータストアにあるデータを表示・クエリ・編集するための Webインターフェースを提供します。このツールを使用すると、すべてのエンティティを簡単に照会し、属性値に基づいて検索・並べ替え・フィルターすることができます。このツールは、開発プロセスのどの段階においても問題を迅速に特定するだけでなく、データを管理・編集するのにも役立ちます。 ![alt-text](../assets/en/Admin/dataExplorer1.png) @@ -12,7 +12,7 @@ title: データエクスプローラー データエクスプローラーの設定や認証は [`WebAdmin`](webAdmin.md) Webサーバーコンポーネントに依存しています。 - **設定**: データエクスプローラーの設定は、[`WebAdmin` Webサーバーの設定](webAdmin.md#settings) を再利用します。 -- **認証**: データエクスプローラーへのアクセスは、[認証されたセッションユーザー](webAdmin.md#認証) が、"WebAdmin" 権限を持っている場合に許可されます。 **データエクスプローラー** のメニュー項目 (後述参照) からデータエクスプローラーにアクセスした場合、認証は自動的におこなわれます。 +- **認証**: データエクスプローラーへのアクセスは、[認証されたセッションユーザー](webAdmin.md#認証) が、"WebAdmin" 権限を持っている場合に許可されます。**データエクスプローラー** のメニュー項目 (後述参照) からデータエクスプローラーにアクセスした場合、認証は自動的におこなわれます。 > データエクスプローラーへのアクセスは、[`.setAdminProtection()`](API/DataStoreClass.md#setadminprotection) 関数を使って無効化できます。 @@ -47,7 +47,7 @@ title: データエクスプローラー - Edge - FireFox -データエクスプローラーを使用するための最小解像度は 1280x720 です。 推奨解像度は 1920x1080 です。 +データエクスプローラーを使用するための最小解像度は 1280x720 です。推奨解像度は 1920x1080 です。 ## データの閲覧 @@ -71,18 +71,18 @@ title: データエクスプローラー このページにはいくつかのエリアがあります: -- 左側には **データクラスエリア** と **属性エリア** があり、表示するデータクラスおよび属性を選択できます。 属性は、ストラクチャーにおける作成順にしたがって並べられます。 プライマリーキーおよびインデックス付きの属性には、専用アイコンが表示されます。 表示されているデータクラス名と属性名のリストは、それぞれの検索エリアを使ってフィルターできます。 +- 左側には **データクラスエリア** と **属性エリア** があり、表示するデータクラスおよび属性を選択できます。属性は、ストラクチャーにおける作成順にしたがって並べられます。プライマリーキーおよびインデックス付きの属性には、専用アイコンが表示されます。表示されているデータクラス名と属性名のリストは、それぞれの検索エリアを使ってフィルターできます。 ![alt-text](../assets/en/Admin/dataExplorer3.png) -- 中央部には、**検索エリア** と **データグリッド** (選択されたデータクラスのエンティティのリスト) があります。 グリッドの各列は、データストアの属性を表します。 - - デフォルトでは、すべてのエンティティが表示されます。 検索エリアを使用して、表示されるエンティティをフィルターできます。 クエリには2つのクエリモードがあります: [属性に基づくクエリ](#属性に基づくクエリ) (デフォルト)、および [式による高度なクエリ](#式による高度なクエリ) です。 対応するボタンをクリックして、クエリモードを選択します (**X** ボタンは、クエリエリアをリセットして、フィルターを停止します): +- 中央部には、**検索エリア** と **データグリッド** (選択されたデータクラスのエンティティのリスト) があります。グリッドの各列は、データストアの属性を表します。 + - デフォルトでは、すべてのエンティティが表示されます。検索エリアを使用して、表示されるエンティティをフィルターできます。クエリには2つのクエリモードがあります: [属性に基づくクエリ](#属性に基づくクエリ) (デフォルト)、および [式による高度なクエリ](#式による高度なクエリ) です。対応するボタンをクリックして、クエリモードを選択します (**X** ボタンは、クエリエリアをリセットして、フィルターを停止します): ![alt-text](../assets/en/Admin/dataExplorer4b.png) - - 選択されたデータクラスの名前は、データグリッドの上にタブとして追加されます。 これらのタブを使って、選択されたデータクラスを切り替えることができます。 参照されているデータクラスを削除するには、データクラス名の右に表示される "削除" アイコンをクリックします。 - - 左側の属性のチェックを外すことで、表示されている列数を減らせます。 また、ドラッグ&ドロップでデータグリッドの列の位置を入れ替えることができます。 列のヘッダーをクリックすると、値に応じて [エンティティを並べ替える](#エンティティの並べ替え) ことができます (可能な場合)。 - - 処理に時間がかかる場合は、進捗バーが表示されます。 赤いボタンをクリックすると、いつでも実行中の処理を停止できます:
    + - 選択されたデータクラスの名前は、データグリッドの上にタブとして追加されます。これらのタブを使って、選択されたデータクラスを切り替えることができます。参照されているデータクラスを削除するには、データクラス名の右に表示される "削除" アイコンをクリックします。 + - 左側の属性のチェックを外すことで、表示されている列数を減らせます。また、ドラッグ&ドロップでデータグリッドの列の位置を入れ替えることができます。列のヘッダーをクリックすると、値に応じて [エンティティを並べ替える](#エンティティの並べ替え) ことができます (可能な場合)。 + - 処理に時間がかかる場合は、進捗バーが表示されます。赤いボタンをクリックすると、いつでも実行中の処理を停止できます:
    ![alt-text](../assets/en/Admin/dataExplorer5.png) -- 右側には **詳細エリア** があり、選択されているエンティティおよび **リレートデータ** (あれば) の属性値が表示されます。 エリア下部にある **First** / **Previous** / **Next** / **Last** のリンクをクリックすることで、データクラスのエンティティ間を移動することができます。 +- 右側には **詳細エリア** があり、選択されているエンティティおよび **リレートデータ** (あれば) の属性値が表示されます。エリア下部にある **First** / **Previous** / **Next** / **Last** のリンクをクリックすることで、データクラスのエンティティ間を移動することができます。 - すべての属性タイプが表示されます (画像、オブジェクト (json で表現) や、[計算属性](../ORDA/ordaClasses.md#計算属性-1) と [エイリアス属性](../ORDA/ordaClasses.md#エイリアス属性-1) も含む)。 - リレートデータ (N対1 および 1対Nリレーション) は、展開/折りたたみ可能なエリアで表示できます:
    ![alt-text](../assets/en/Admin/dataExplorerRelated.png) @@ -91,21 +91,21 @@ title: データエクスプローラー ### エンティティの並べ替え -表示されているエンティティのリストを、属性値に応じて並べ替えることができます。 並べ替えには、ピクチャーとオブジェクトを除くすべての属性を使用できます。 +表示されているエンティティのリストを、属性値に応じて並べ替えることができます。並べ替えには、ピクチャーとオブジェクトを除くすべての属性を使用できます。 -- 列のヘッダーをクリックすると、その列の属性値に応じてエンティティを並べ替えます。 デフォルトでは、昇順でソートされます。 2回クリックすると、降順でソートされます。 並べ替えの基準となる列には小さなアイコンが付き、属性名が *イタリック* で表示されます。 +- 列のヘッダーをクリックすると、その列の属性値に応じてエンティティを並べ替えます。デフォルトでは、昇順でソートされます。 2回クリックすると、降順でソートされます。並べ替えの基準となる列には小さなアイコンが付き、属性名が *イタリック* で表示されます。 ![alt-text](../assets/en/Admin/dataExplorer7.png) -- 属性を基準に複数のレベルでソートできます。 たとえば、従業員を都市別にソートした後、給与別にソートすることができます。 これには、**Shift** キーを押しながら、ソート基準とする各列のヘッダーを順にクリックします。 +- 属性を基準に複数のレベルでソートできます。たとえば、従業員を都市別にソートした後、給与別にソートすることができます。これには、**Shift** キーを押しながら、ソート基準とする各列のヘッダーを順にクリックします。 ### 属性に基づくクエリ -このモードでは、データグリッドの属性名の上のエリアに検索 (または除外) する値を入力して、エンティティをフィルターします。 1つまたは複数の属性でフィルター可能です。 入力すると、エンティティリストは自動的に更新されます。 +このモードでは、データグリッドの属性名の上のエリアに検索 (または除外) する値を入力して、エンティティをフィルターします。 1つまたは複数の属性でフィルター可能です。入力すると、エンティティリストは自動的に更新されます。 ![alt-text](../assets/en/Admin/dataExplorer6.png) -複数の属性を指定した場合は、自動的に AND が適用されます。 たとえば次のフィルターでは、*firstname* 属性が "flo" で始まり、*salary* 属性値が >50000であるエンティティが表示されます: +複数の属性を指定した場合は、自動的に AND が適用されます。たとえば次のフィルターでは、*firstname* 属性が "flo" で始まり、*salary* 属性値が >50000であるエンティティが表示されます: ![alt-text](../assets/en/Admin/dataExplorer9.png) @@ -117,7 +117,7 @@ title: データエクスプローラー #### 比較演算子 -数値、日付、時間型の属性では、デフォルトで "=" 演算子が選択されています。 ただし、演算子のリストから別の演算子を選択することができます ("=" アイコンをクリックするとリストが表示されます)。 +数値、日付、時間型の属性では、デフォルトで "=" 演算子が選択されています。ただし、演算子のリストから別の演算子を選択することができます ("=" アイコンをクリックするとリストが表示されます)。 ![alt-text](../assets/en/Admin/DEFilter1.png) @@ -140,9 +140,9 @@ title: データエクスプローラー テキストフィルターは、文字の大小を区別しません (a = A)。 -フィルターは "~で始まる" タイプです。 たとえば、"Jim" と入力すると、"Jim" と "Jimmy" が表示されます。 +フィルターは "~で始まる" タイプです。たとえば、"Jim" と入力すると、"Jim" と "Jimmy" が表示されます。 -ワイルドカード文字 (@) を使って、1つ以上の開始文字を置き換えることもできます。 例: +ワイルドカード文字 (@) を使って、1つ以上の開始文字を置き換えることもできます。例: | フィルター文字列 | 検出結果 | | ------------------- | ------------------------ | @@ -158,7 +158,7 @@ title: データエクスプローラー ![alt-text](../assets/en/Admin/dataExplorer8.png) -属性クエリでは利用できない高度なクエリを入力することができます。 たとえば、*firstname* 属性に "Jim" が含まれ、"Jimmy" が含まれていないエンティティを探すには、次のように記述します: +属性クエリでは利用できない高度なクエリを入力することができます。たとえば、*firstname* 属性に "Jim" が含まれ、"Jimmy" が含まれていないエンティティを探すには、次のように記述します: ``` firstname=="Jim" @@ -176,7 +176,7 @@ firstname=="Jim" firstname = "Marie Sophie" AND manager.lastname = "@th" ``` -[`queryPlan`](API/EntitySelectionClass.md#queryplan) と [`queryPath`](API/EntitySelectionClass.md#querypath) を両方表示するには `v` アイコンをクリックします。 このエリアでは、サブクエリのブロックにカーソルを合わせると、サブクエリごとの詳細情報が表示されます。 +[`queryPlan`](API/EntitySelectionClass.md#queryplan) と [`queryPath`](API/EntitySelectionClass.md#querypath) を両方表示するには `v` アイコンをクリックします。このエリアでは、サブクエリのブロックにカーソルを合わせると、サブクエリごとの詳細情報が表示されます。 ![alt-text](../assets/en/Admin/dataExplorer12.png) @@ -186,11 +186,11 @@ firstname = "Marie Sophie" AND manager.lastname = "@th" ## データの編集 -データエクスプローラーでは、属性値の変更や、エンティティの追加または削除をおこなうことができます。 これらは、たとえば実装をテストしたり、無効データの問題を解決したりするための、管理者用の機能です。 +データエクスプローラーでは、属性値の変更や、エンティティの追加または削除をおこなうことができます。これらは、たとえば実装をテストしたり、無効データの問題を解決したりするための、管理者用の機能です。 ### Allow editing (編集を許可する) -セキュリティ上の理由から、データエクスプローラーを介してデータを編集するには、まず **Allow editing** セレクターを使用して編集モードを有効にする必要があります。 有効にすると、編集アクションボタンが右側に表示されます: +セキュリティ上の理由から、データエクスプローラーを介してデータを編集するには、まず **Allow editing** セレクターを使用して編集モードを有効にする必要があります。有効にすると、編集アクションボタンが右側に表示されます: ![allow-editing](../assets/en/Admin/editing.png) @@ -222,7 +222,7 @@ Blob属性は変更できません。 ### エンティティの作成 -作成ボタン ![new-entity](../assets/en/Admin/data-explorer-new.png) をクリックすると、選択したテーブルに新しい空のエンティティを作成できます。 作成後、このエンティティに対して [値を入力](#値の入力) することができます。 +作成ボタン ![new-entity](../assets/en/Admin/data-explorer-new.png) をクリックすると、選択したテーブルに新しい空のエンティティを作成できます。作成後、このエンティティに対して [値を入力](#値の入力) することができます。 新しいエンティティは、ローカルキャッシュに保存されます。データに反映するには、[明示的に保存](#編集の保存) する必要があります。 @@ -234,7 +234,7 @@ Blob属性は変更できません。 ### 値のリロード -**リロード** ボタン ![reload](../assets/en/Admin/data-explorer-reload.png) は、エンティティの属性値をデータファイルから再ロードします。 このボタンは、最新の値を表示させたい場合などに便利です。 +**リロード** ボタン ![reload](../assets/en/Admin/data-explorer-reload.png) は、エンティティの属性値をデータファイルから再ロードします。このボタンは、最新の値を表示させたい場合などに便利です。 ### 編集の保存 @@ -248,7 +248,7 @@ Blob属性は変更できません。 ::: -競合の場合 (例: 別のユーザーが同じエンティティの同じ属性値を変更した)、データエクスプローラーの下部にエラーメッセージが表示されます。 その場合は、[**リロード**ボタン](#値のリロード) をクリックして、データの最新の値を取得してから、変更を適用して保存することができます。 +競合の場合 (例: 別のユーザーが同じエンティティの同じ属性値を変更した)、データエクスプローラーの下部にエラーメッセージが表示されます。その場合は、[**リロード**ボタン](#値のリロード) をクリックして、データの最新の値を取得してから、変更を適用して保存することができます。 ### エンティティの削除 @@ -264,6 +264,6 @@ Blob属性は変更できません。 :::caution -エンティティを削除する際に確認ダイアログは表示されません。 選択したエンティティは、データから即時に削除されます。 +エンティティを削除する際に確認ダイアログは表示されません。選択したエンティティは、データから即時に削除されます。 ::: \ No newline at end of file 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 1a5eec2bdb3794..2d74917e1c8b2d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/licenses.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/licenses.md @@ -12,7 +12,7 @@ title: ライセンスリスト ### 開発ライセンス -開発ライセンスは、4D のデザインモードや機能にアクセスするために必要です。 例えば、*4D Developer Pro* はシングルユーザー向け開発ライセンスです。 登録された開発ライセンスはウェルカムウィザードから[ログイン](GettingStarted/Installation.md) すれば自動的にインストールされます。またそれ以外にも[オンラインアクティベーション](#オンラインアクティベーション) ダイアログボックスを使用して追加することもできます。 +開発ライセンスは、4D のデザインモードや機能にアクセスするために必要です。例えば、*4D Developer Pro* はシングルユーザー向け開発ライセンスです。登録された開発ライセンスはウェルカムウィザードから[ログイン](GettingStarted/Installation.md) すれば自動的にインストールされます。またそれ以外にも[オンラインアクティベーション](#オンラインアクティベーション) ダイアログボックスを使用して追加することもできます。 ### 運用ライセンス @@ -30,13 +30,13 @@ title: ライセンスリスト ### 期限切れ -一部の4D ライセンスには有効期限があり、それを過ぎた場合には更新する必要があります。 ライセンスのサブスクリプションが4D ストア上で更新されると、ウェルカムウィザードから[ログイン](GettingStarted/Installation.md)すると、お使いの4D アプリケーション内のライセンスは自動的に更新されます。 +一部の4D ライセンスには有効期限があり、それを過ぎた場合には更新する必要があります。ライセンスのサブスクリプションが4D ストア上で更新されると、ウェルカムウィザードから[ログイン](GettingStarted/Installation.md)すると、お使いの4D アプリケーション内のライセンスは自動的に更新されます。 一部のケースにおいては、ライセンスマネージャダイアログボックス内の[**更新** ボタン](#更新) をクリックする必要があるものもあります。 ## ライセンスの有効化 -ディスクへのインストール終了後、4D 製品を利用するためにはアクティベーションをおこないます。 通常、[4D アカウントでサインイン](GettingStarted/Installation.md) した場合、アクティベーションは自動的におこなわれます。 +ディスクへのインストール終了後、4D 製品を利用するためにはアクティベーションをおこないます。通常、[4D アカウントでサインイン](GettingStarted/Installation.md) した場合、アクティベーションは自動的におこなわれます。 しかし、場合によってはライセンスを手動でアクティベーションする必要があります。 たとえば: @@ -50,21 +50,21 @@ title: ライセンスリスト ### 初回のアクティベーション -4D でおこなう場合は、**ヘルプ** メニューから **ライセンスマネージャー...** を選択します。 4D Server でおこなう場合は、4D Server アプリケーションを起動します。 アクティベーションモードを選択するダイアログボックスが表示されます。 +4D でおこなう場合は、**ヘルプ** メニューから **ライセンスマネージャー...** を選択します。 4D Server でおこなう場合は、4D Server アプリケーションを起動します。アクティベーションモードを選択するダイアログボックスが表示されます。 ![](../assets/en/getStart/server1.png) -4D は 3つのアクティベーションモードを用意しています。 推奨されるのは **オンラインアクティベーション** です。 +4D は 3つのアクティベーションモードを用意しています。推奨されるのは **オンラインアクティベーション** です。 ### オンラインアクティベーション -ユーザーID (メールアドレスまたは 4Dアカウント) とパスワードを入力します。 既存のユーザーアカウントが無い場合、まず以下のアドレスから作成する必要があります: +ユーザーID (メールアドレスまたは 4Dアカウント) とパスワードを入力します。既存のユーザーアカウントが無い場合、まず以下のアドレスから作成する必要があります: [https://account.4d.com/us/login.shtml](https://account.4d.com/us/login.shtml/ja) ![](../assets/en/getStart/activ1.png) -その後、アクティベーションする製品のプロダクト番号を入力します。 このプロダクト番号は製品購入後にメールまたは郵送で提供されています。 +その後、アクティベーションする製品のプロダクト番号を入力します。このプロダクト番号は製品購入後にメールまたは郵送で提供されています。 ![](../assets/en/getStart/activ2.png) @@ -93,13 +93,13 @@ title: ライセンスリスト ![](../assets/en/getStart/activ6.png) -9. 他のライセンスを追加するためには **番号追加** ボタンをクリックします。 これらの手順を、手順6のライセンスがすべて追加されるまで繰り返します。 +9. 他のライセンスを追加するためには **番号追加** ボタンをクリックします。これらの手順を、手順6のライセンスがすべて追加されるまで繰り返します。 これで、お使いの4Dアプリケーションのアクティベーションが完了しました。 ### 緊急アクティベーション -このモードは、特別に一時的な4Dのアクティベーションをおこなうために使用します。 このアクティベーションを行うと、4Dインターネットサイトに接続せずに、最大5日間4Dを利用できます。 このアクティベーションは一回のみ使用することができます。 +このモードは、特別に一時的な4Dのアクティベーションをおこなうために使用します。 このアクティベーションを行うと、4Dインターネットサイトに接続せずに、最大5日間4Dを利用できます。このアクティベーションは一回のみ使用することができます。 ## 更新 @@ -114,14 +114,14 @@ title: ライセンスリスト ![](../assets/en/getStart/licens1.png) -このボタンを押すと 4D カスタマーデータベースに接続し、利用中のライセンスに紐付いている新しい、あるいは更新されたライセンスの自動アクティベーションがおこなわれます (利用中のライセンスは "有効なライセンス" 一覧内で **太字** で表示されているものです)。 その際、4D アカウントとパスワードの入力が必要です。 +このボタンを押すと 4D カスタマーデータベースに接続し、利用中のライセンスに紐付いている新しい、あるいは更新されたライセンスの自動アクティベーションがおこなわれます (利用中のライセンスは "有効なライセンス" 一覧内で **太字** で表示されているものです)。その際、4D アカウントとパスワードの入力が必要です。 - 4D Server に追加のエクスパンションを購入した場合、ライセンス番号は一切入力する必要がありません。**更新** ボタンをクリックすれば、すべて完了します。 - 4D Server の初回アクティベーション時のみ、サーバーのライセンス番号を入力すれば、購入した他のエクスパンションもすべて自動的に有効化されます。 ## 4D オンラインストア -4D ストアでは、4D製品の注文、アップグレード、延長、管理等をおこなうことができます。 ストアは以下のアドレスからアクセス可能です: [https://store.4d.com/jp/](https://store.4d.com/jp/) +4D ストアでは、4D製品の注文、アップグレード、延長、管理等をおこなうことができます。ストアは以下のアドレスからアクセス可能です: [https://store.4d.com/jp/](https://store.4d.com/jp/) 既存アカウントで **ログイン** するか、または **新規アカウント** を作成し、画面上の指示に従ってください。

    **注:** パスワードを忘れてしまった場合、"パスワードをお忘れの方" をクリックして下さい (ログイン画面右側のヘルプメニューにあります)。数分後に指定されたアドレスへ、パスワードリセット用の自動メールが送信されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/tls.md b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/tls.md index 573061199676e4..711fc31f90e993 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/tls.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/tls.md @@ -13,7 +13,7 @@ title: TLSプロトコル (HTTPS) ## 概要 -TLSプロトコル (SSLプロトコルの後継版) は 2つのアプリケーション、主に Webサーバーとブラウザー間でのデータ交換を保護するために設計されています。 このプロトコルは幅広く使用されていて、多くの Webブラウザーとの互換性があります。 +TLSプロトコル (SSLプロトコルの後継版) は 2つのアプリケーション、主に Webサーバーとブラウザー間でのデータ交換を保護するために設計されています。このプロトコルは幅広く使用されていて、多くの Webブラウザーとの互換性があります。 ネットワークレベルにおいては、TLSプロトコルは TCP/IPレイヤー (低レベル) とHTTP高レベルプロトコルとの間に挿入されます。 TLS は主に HTTP で動作するように設計されました。 @@ -27,9 +27,9 @@ TLSプロトコルは、送信者と受信者を認証するために設計さ - **機密性**: 送信データを暗号化します。そのため第三者はメッセージを解読することができません。 - **整合性**: 受信データが偶発的にまたは故意に修正されることはありません。 -TLS は公開鍵暗号化技術を用います。 これは、暗号化と復号化の非対称鍵のペアである公開鍵と秘密鍵に基づいています。 秘密鍵はデータを暗号化するために使用されます。 送信者 (Webサイト) は、それを誰にも渡しません。 +TLS は公開鍵暗号化技術を用います。 これは、暗号化と復号化の非対称鍵のペアである公開鍵と秘密鍵に基づいています。秘密鍵はデータを暗号化するために使用されます。送信者 (Webサイト) は、それを誰にも渡しません。 -公開鍵は情報を復号化するために使用され、**証明書** を通して受信者 (Webブラウザー) へ送信されます。 証明書は認証機関を通して発行されます。 Webサイトは証明書を認証プロバイダーから購入します。この証明書はサーバー認証を保証し、保護モードでのデータ交換を許可する公開鍵を格納しています。 +公開鍵は情報を復号化するために使用され、**証明書** を通して受信者 (Webブラウザー) へ送信されます。証明書は認証機関を通して発行されます。 Webサイトは証明書を認証プロバイダーから購入します。この証明書はサーバー認証を保証し、保護モードでのデータ交換を許可する公開鍵を格納しています。 :::note @@ -39,7 +39,7 @@ TLS は公開鍵暗号化技術を用います。 これは、暗号化と復号 ## 最低バージョン -デフォルトで、4D のサーバーでサポートされている最低限のバージョンは TLS 1.3 です。 この値は `SET DATABASE PARAMETER` コマンドで `Min TLS version` セレクターを使用することで変更可能です。 +デフォルトで、4D のサーバーでサポートされている最低限のバージョンは TLS 1.3 です。この値は `SET DATABASE PARAMETER` コマンドで `Min TLS version` セレクターを使用することで変更可能です。 :::note @@ -59,7 +59,7 @@ TLS は公開鍵暗号化技術を用います。 これは、暗号化と復号 #### 形式 -4D が管理する TLS証明書は **PEM形式** でなければなりません。 証明書プロバイダーから .crt、.pfx、.p12 などのバイナリー形式の証明書が送られてきた場合、それらを使うためには PEM形式に変換する必要があります。 この変換をオンラインですることができる Webサイトがあります。 +4D が管理する TLS証明書は **PEM形式** でなければなりません。証明書プロバイダーから .crt、.pfx、.p12 などのバイナリー形式の証明書が送られてきた場合、それらを使うためには PEM形式に変換する必要があります。この変換をオンラインですることができる Webサイトがあります。 #### 暗号化 @@ -84,7 +84,7 @@ TLS は公開鍵暗号化技術を用います。 これは、暗号化と復号 **key.pem** と **cert.pem** は次の場所に保存する必要があります: - 4D Server およびローカルモードの 4D では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 -- 4D のリモートモードでは、これらのファイルはリモートマシンの 4D Client Database フォルダーに置かれなければなりません。 このフォルダーの場所に関する情報は、[`Get 4D Folder`](../commands/get-4d-folder) コマンドの説明を参照ください。 これらのファイルはリモートマシンに手動でコピーする必要があります。 +- 4D のリモートモードでは、これらのファイルはリモートマシンの 4D Client Database フォルダーに置かれなければなりません。 このフォルダーの場所に関する情報は、[`Get 4D Folder`](../commands/get-4d-folder) コマンドの説明を参照ください。これらのファイルはリモートマシンに手動でコピーする必要があります。 ### TLSを有効にする @@ -98,9 +98,9 @@ HTTPサーバーで TLS接続を受け入れるには、HTTPS を有効化しな ### Perfect Forward Secrecy (PFS) -[PFS](https://ja.wikipedia.org/wiki/Forward_secrecy) は通信の中に新たなレイヤーのセキュリティを追加します。 事前準備された交換鍵を使用する代わりに、PFS は Diffie-Hellman (DH) アルゴリズムを用いて通信相手同士で協同的にセッションキーを作成します。 このように協同で鍵を作成することで "共有の秘密" が作成され、外部への漏洩を防ぐことができます。 +[PFS](https://ja.wikipedia.org/wiki/Forward_secrecy) は通信の中に新たなレイヤーのセキュリティを追加します。事前準備された交換鍵を使用する代わりに、PFS は Diffie-Hellman (DH) アルゴリズムを用いて通信相手同士で協同的にセッションキーを作成します。このように協同で鍵を作成することで "共有の秘密" が作成され、外部への漏洩を防ぐことができます。 -サーバー上で TLS が有効化されているとき、PFS は自動的に有効されます。 *dhparams.pem* ファイル (サーバーの DH非公開鍵を含むドキュメント) がまだ存在していない場合、4D は 2048 の鍵サイズで自動的にそれを生成します。 このファイルの生成には数分間かかる可能性があります。 このファイルは、[*key.pem* および *cert.pem* ファイル](#証明書ファイルのインストール)と同じ場所に置きます。 +サーバー上で TLS が有効化されているとき、PFS は自動的に有効されます。 *dhparams.pem* ファイル (サーバーの DH非公開鍵を含むドキュメント) がまだ存在していない場合、4D は 2048 の鍵サイズで自動的にそれを生成します。このファイルの生成には数分間かかる可能性があります。このファイルは、[*key.pem* および *cert.pem* ファイル](#証明書ファイルのインストール)と同じ場所に置きます。 [カスタムの暗号リスト](WebServer/webServerConfig.md#暗号リスト) を使用していて、PFS を有効化したい場合、DH あるいは ECDH (Elliptic-curve Diffie–Hellman) アルゴリズムのエントリーがそのリストに含まれている必要があります。 @@ -111,34 +111,32 @@ HTTPサーバーで TLS接続を受け入れるには、HTTPS を有効化しな - アプリケーションサーバーにて[QUIC ネットワークレイヤー](../settings/client-server.md#network-layer) が有効化された場合、やるべきことは何もありません。QUIC 通信は必ずTLS で行われるからです。 ServerNet ネットワークレイヤーが有効化されている場合には、[ストラクチャー設定ダイアログボックスの "C/S (クライアントサーバー)" ページ](../settings/client-server#クライアント-サーバー通信の暗号化) で **クライアント-サーバー通信の暗号化** オプションを選択します。 - SQLサーバーの場合は、[ストラクチャー設定ダイアログボックスの "SQL" ページ](../settings/sql#sqlサーバー公開) で **TLSを有効にする** オプションを選択します。 -## RSA証明書の取得方法 (チュートリアル) +## RSA証明書の取得方法(チュートリアル) -サーバーを保護モードで起動させるには、認証機関の電子証明書が必要です。 この証明書には、サイトID や、サーバーとの通信に使用する公開鍵など、様々な情報が格納されます。 そのサーバーに接続した際に、証明書がクライアント (例: Webブラウザー) へ送られます。 証明書が識別され受け入れられると、保護モードで通信が開始されます。 +サーバーを保護モードで起動させるには、認証機関の電子証明書が必要です。この証明書には、サイトID や、サーバーとの通信に使用する公開鍵など、様々な情報が格納されます。そのサーバーに接続した際に、証明書がクライアント (例: Webブラウザー) へ送られます。証明書が識別され受け入れられると、保護モードで通信が開始されます。 > ブラウザーは、ルート証明書がインストールされた認証機関によって発行された証明書のみを許可します。 ![](../assets/en/WebServer/tls2.png) -認証機関は複数の条件によって選択されます。 認証機関が一般によく知られていると、証明書は多くのブラウザーによって許可されます。ただし、費用は高くなるかもしれません。 +認証機関は複数の条件によって選択されます。認証機関が一般によく知られていると、証明書は多くのブラウザーによって許可されます。ただし、費用は高くなるかもしれません。 デジタル証明書の取得: 1. `GENERATE ENCRYPTION KEYPAIR` コマンドを使用して、秘密鍵を作成します。 -> **警告**: セキュリティ上の理由により、秘密鍵は常に機密でなければなりません。 実際、秘密鍵は常にサーバーマシンと一緒に存在しているべきです。 Webサーバーの場合、Key.pem ファイルは Projectフォルダーに保存されていなければなりません。 +> **警告**: セキュリティ上の理由により、秘密鍵は常に機密でなければなりません。実際、秘密鍵は常にサーバーマシンと一緒に存在しているべきです。 Webサーバーの場合、Key.pem ファイルは Projectフォルダーに保存されていなければなりません。 2. 証明書のリクエストを発行するために `GENERATE CERTIFICATE REQUEST` コマンドを使用します。 -3. その証明書リクエストを選択された認証機関へ送ります。 - 証明書リクエストを記入する際、認証機関への問い合わせが必要となる場合があります。 認証機関は送信されてきた情報が正確なものかを確認します。 その証明書リクエストは base64 で暗号化された PKCSフォーマット (PEMフォーマット) を用いて BLOB に作成さ れます。 この原理を使用すると、テキストとしてキーをコピー&ペーストできます。 キーの内容を修正せずに認証機関に提出します。 たとえば、テキストドキュメントに証明書リクエストを含んでいる BLOB を保存します (`BLOB TO DOCUMENT` コマンドを使用)。そして、コンテンツを開き、それをコピーして、認証機関へ送信するメールまたは Webフォームにペーストします。 +3. その証明書リクエストを選択された認証機関へ送ります。証明書リクエストを記入する際、認証機関への問い合わせが必要となる場合があります。認証機関は送信されてきた情報が正確なものかを確認します。その証明書リクエストは base64 で暗号化された PKCSフォーマット (PEMフォーマット) を用いて BLOB に作成さ れます。この原理を使用すると、テキストとしてキーをコピー&ペーストできます。 キーの内容を修正せずに認証機関に提出します。たとえば、テキストドキュメントに証明書リクエストを含んでいる BLOB を保存します (`BLOB TO DOCUMENT` コマンドを使用)。そして、コンテンツを開き、それをコピーして、認証機関へ送信するメールまたは Webフォームにペーストします。 -4. 証明書を取得したら、"cert.pem" という名前でテキストファイルを作成し、その証明書の内容をそのファイルへコピーします。 - 証明書は様々な方法で受け取ることができます (通常は Eメールまたは HTML形式で受け取ります)。 証明書を取得したら、"cert.pem" という名前でテキストファイルを作成し、その証明書の内容をそのファイルへコピーします。 +4. 証明書を取得したら、"cert.pem" という名前でテキストファイルを作成し、その証明書の内容をそのファイルへコピーします。証明書は様々な方法で受け取ることができます (通常は Eメールまたは HTML形式で受け取ります)。証明書を取得したら、"cert.pem" という名前でテキストファイルを作成し、その証明書の内容をそのファイルへコピーします。 証明書は様々な方法で受け取ることができます (通常は Eメールまたは HTML形式で受け取ります)。 4D accepts all platform-related text formats for certificates (macOS, PC, Linux, etc.). ただし、証明書は [PEMフォーマット](#形式)、*つまり* base64 で PKCSエンコードされている必要があります。 > CR改行コードは、それ単体ではサポートされていません。 改行コードは CRLF または LF を使用してください。 5. "cert.pem" ファイルを [適切な場所](#証明書ファイルのインストール) に保存します。 -4Dサーバーが保護モードで動作するようになります。 証明書は通常、3ヶ月から1年間の間で有効です。 +4Dサーバーが保護モードで動作するようになります。証明書は通常、3ヶ月から1年間の間で有効です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md index d27965b28aee13..9e66108a3bc339 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -17,7 +17,7 @@ Web 管理サーバーは、 `WebAdmin` 権限を持つユーザーの認証を ## Web管理サーバーの起動 -デフォルトでは、Web 管理サーバーは起動していません。 起動時に開始するように設定するか、(インターフェース付きの場合は) メニューから手動で開始する必要があります。 +デフォルトでは、Web 管理サーバーは起動していません。起動時に開始するように設定するか、(インターフェース付きの場合は) メニューから手動で開始する必要があります。 ### 自動スタートアップ @@ -37,7 +37,7 @@ Web管理設定ダイアログボックスで、**WebAdmin サーバーをスタ open ~/Desktop/4D.app --webadmin-auto-start true ``` -> Web 管理サーバーが使用する TCPポート (設定により、[HTTPS](#https-port) または [HTTP](#http-port)) が開始時に空いていない場合、4D は次の 20個のポートを順に試し、利用できる最初のポートを使用します。 利用可能なポートがない場合、Webサーバーは開始せず、エラーが表示されるか、(ヘッドレスアプリケーションの場合は) コンソールのログに記録されます。 +> Web 管理サーバーが使用する TCPポート (設定により、[HTTPS](#https-port) または [HTTP](#http-port)) が開始時に空いていない場合、4D は次の 20個のポートを順に試し、利用できる最初のポートを使用します。利用可能なポートがない場合、Webサーバーは開始せず、エラーが表示されるか、(ヘッドレスアプリケーションの場合は) コンソールのログに記録されます。 ### 開始と停止 @@ -51,11 +51,11 @@ open ~/Desktop/4D.app --webadmin-auto-start true ## 設定 {#settings} -[**アクセスキー**](#access-key) を定義するには、Web 管理サーバーの設定は必須です。 デフォルトで、アクセスキーが設定されていない場合は、URL経由のアクセスは許可されません。 +[**アクセスキー**](#access-key) を定義するには、Web 管理サーバーの設定は必須です。デフォルトで、アクセスキーが設定されていない場合は、URL経由のアクセスは許可されません。 Web 管理サーバーの設定は、[Web管理設定ダイアログボックス](#settings-dialog-box) (後述参照) でおこないます。 -> ヘッドレス4Dアプリケーションを使用している場合は、[*コマンドライン・インターフェース* の引数](#headless-configuration) を使用して基本的な設定を定義できます。 高度なパラメーターを定義するには、設定ファイルをカスタマイズする必要があります。 +> ヘッドレス4Dアプリケーションを使用している場合は、[*コマンドライン・インターフェース* の引数](#headless-configuration) を使用して基本的な設定を定義できます。高度なパラメーターを定義するには、設定ファイルをカスタマイズする必要があります。 ### 設定ダイアログボックス @@ -69,11 +69,11 @@ Web管理の設定ダイアログボックスを開くには、**ファイル #### WebAdmin サーバーをスタートアップ時に起動 -4D または 4D Server アプリケーションの起動時に Web 管理サーバーを自動的に開始させるには、このオプションをチェックします ([前述参照](#自動スタートアップ))。 デフォルトでは、このオプションはチェックされていません。 +4D または 4D Server アプリケーションの起動時に Web 管理サーバーを自動的に開始させるには、このオプションをチェックします ([前述参照](#自動スタートアップ))。デフォルトでは、このオプションはチェックされていません。 #### ローカルホストでHTTP接続を受け入れる -このオプションを有効にすると、4Dアプリケーションと同じマシン上で HTTP を介して Web 管理サーバーに接続できます。 デフォルトでは、このオプションはチェックされています。 +このオプションを有効にすると、4Dアプリケーションと同じマシン上で HTTP を介して Web 管理サーバーに接続できます。デフォルトでは、このオプションはチェックされています。 :::note 注記 @@ -84,23 +84,23 @@ Web管理の設定ダイアログボックスを開くには、**ファイル #### HTTP ポート -**ローカルホストでHTTP接続を受け入れる** オプションが有効な場合、Web 管理サーバーへの HTTP接続に使用するポート番号です。 デフォルト値は 7080 です。 +**ローカルホストでHTTP接続を受け入れる** オプションが有効な場合、Web 管理サーバーへの HTTP接続に使用するポート番号です。デフォルト値は 7080 です。 #### HTTPSを受け入れる -このオプションを有効にすると、Web 管理サーバーに HTTPS を介して接続できます。 デフォルトでは、このオプションはチェックされています。 +このオプションを有効にすると、Web 管理サーバーに HTTPS を介して接続できます。デフォルトでは、このオプションはチェックされています。 #### HTTPS ポート -**HTTPSを受け入れる** オプションが有効な場合、Web 管理サーバーへの HTTPS接続に使用するポート番号です。 デフォルト値は 7443 です。 +**HTTPSを受け入れる** オプションが有効な場合、Web 管理サーバーへの HTTPS接続に使用するポート番号です。デフォルト値は 7443 です。 #### 認証フォルダーパス -TLS証明書ファイルが置かれているフォルダーのパスです。 デフォルトでは認証フォルダーパスは空で、4D または 4D Server は 4Dアプリケーションに組み込まれた証明書ファイルを使用します (カスタム証明書はプロジェクトフォルダーの隣に保存する必要があります)。 +TLS証明書ファイルが置かれているフォルダーのパスです。デフォルトでは認証フォルダーパスは空で、4D または 4D Server は 4Dアプリケーションに組み込まれた証明書ファイルを使用します (カスタム証明書はプロジェクトフォルダーの隣に保存する必要があります)。 #### デバッグログモード -HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。 次のオプションから選択することができます: +HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている HTTPDebugLog_*nn*.txt (nn はファイル番号)) の状態やフォーマットを指定します。次のオプションから選択することができます: - **無効化** (デフォルト) - **bodyパーツを全て** - レスポンスおよびリクエストのボディパーツを含める形で有効化。 @@ -110,13 +110,13 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ #### アクセスキー -Web 管理サーバーへの URL経由アクセスのロックを解除するには、アクセスキーの定義は必須です (4Dメニューコマンドによるアクセスにはアクセスキーは必要ありません)。 アクセスキーが定義されていない場合、[データエクスプローラーページ](dataExplorer.md) などの Web管理インターフェースに Webクライアントを使って URLを介した接続はできません。 接続リクエストがあった場合には、エラーページが返されます: +Web 管理サーバーへの URL経由アクセスのロックを解除するには、アクセスキーの定義は必須です (4Dメニューコマンドによるアクセスにはアクセスキーは必要ありません)。アクセスキーが定義されていない場合、[データエクスプローラーページ](dataExplorer.md) などの Web管理インターフェースに Webクライアントを使って URLを介した接続はできません。接続リクエストがあった場合には、エラーページが返されます: ![alt-text](../assets/en/Admin/accessKey.png) アクセスキーはパスワードに似ていますが、ログインとは関係ありません。 -- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。 すると、ボタンラベルが **編集** に変わります。 +- 新しいアクセスキーを定義するには、**定義** ボタンをクリックし、ダイアログボックスにアクセスキーの文字列を入力して **OK** をクリックします。すると、ボタンラベルが **編集** に変わります。 - アクセスキーを編集するには、**編集** ボタンをクリックし、ダイアログボックスに新しいアクセスキーの文字列を入力して **OK** をクリックします。 - アクセスキーを削除するには、**編集** ボタンをクリックし、ダイアログボックスのアクセスキー欄を空にして **OK** をクリックします。 @@ -128,7 +128,7 @@ Web 管理サーバーへの URL経由アクセスのロックを解除するに ::: -このオプションにより、4Dアプリケーションレベルでの [Qodly Studio](developer.4d.com/qodly/) へのユーザーアクセスができるようになります。 また、[各プロジェクトレベルでもアクセスを有効](../settings/web.md#qodly-studio-へのアクセスを有効化する) にする必要があることに注意してください。 +このオプションにより、4Dアプリケーションレベルでの [Qodly Studio](developer.4d.com/qodly/) へのユーザーアクセスができるようになります。また、[各プロジェクトレベルでもアクセスを有効](../settings/web.md#qodly-studio-へのアクセスを有効化する) にする必要があることに注意してください。 :::note @@ -142,9 +142,9 @@ Web 管理サーバーへの URL経由アクセスのロックを解除するに 4D および 4D Server アプリケーションをヘッドレスで実行している場合、デフォルトの `WebAdmin.4DSettings` ファイルを設定して使用するか、カスタムの `.4DSettings` ファイルを指定することができます。 -ファイルの内容を設定するには、インターフェースを持つ 4Dアプリケーションの[WebAdmin設定ダイアログ](#設定ダイアログボックス) を使用し、その後ヘッドレスで実行します。 このとき、デフォルトの `WebAdmin.4DSettings` ファイルが使用されます。 +ファイルの内容を設定するには、インターフェースを持つ 4Dアプリケーションの[WebAdmin設定ダイアログ](#設定ダイアログボックス) を使用し、その後ヘッドレスで実行します。このとき、デフォルトの `WebAdmin.4DSettings` ファイルが使用されます。 -また、カスタムの `.4DSettings` ファイル (xml形式) を設定し、デフォルトファイルの代わりに使用することもできます。 この機能をサポートするために、[コマンドライン・インターフェース](cli.md) ではいくつかの専用の引数が用意されています。 +また、カスタムの `.4DSettings` ファイル (xml形式) を設定し、デフォルトファイルの代わりに使用することもできます。この機能をサポートするために、[コマンドライン・インターフェース](cli.md) ではいくつかの専用の引数が用意されています。 > `.4DSettings` ファイルにおいて、アクセスキーは平文では保存されません。 @@ -159,7 +159,7 @@ Web 管理サーバーへの URL経由アクセスのロックを解除するに ## 認証 -事前に本人確認せずに、 Web 管理サーバーによって管理されている Web ページにURL経由でアクセスした場合、認証が必要になります。 ユーザーは認証ダイアログボックス内にて[アクセスキー](#アクセスキー) を入力する必要があります: +事前に本人確認せずに、 Web 管理サーバーによって管理されている Web ページにURL経由でアクセスした場合、認証が必要になります。ユーザーは認証ダイアログボックス内にて[アクセスキー](#アクセスキー) を入力する必要があります: ![alt-text](../assets/en/Admin/accessKeyEnter.png) @@ -169,7 +169,7 @@ Web 管理サーバーへの URL経由アクセスのロックを解除するに :::note -アクセスが許可されると、Web 管理サーバーによって "WebAdmin" 権限を持つ [Web セッション](WebServer/sessions.md) が作成されます。 この権限は[リソースに対して特定の許可が適用](../ORDA/privileges.md) されていない限り、Web プロセスを通して全てのデータへのオープンなアクセスを提供します。 +アクセスが許可されると、Web 管理サーバーによって "WebAdmin" 権限を持つ [Web セッション](WebServer/sessions.md) が作成されます。この権限は[リソースに対して特定の許可が適用](../ORDA/privileges.md) されていない限り、Web プロセスを通して全てのデータへのオープンなアクセスを提供します。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/backup.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/backup.md index 82795319cb8eae..5db8d6c9a24bc5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/backup.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/backup.md @@ -10,14 +10,13 @@ title: バックアップ - 自動的に行う方法: ストラクチャー設定からスケジューラーを使用します。 - プログラムによる方法: `BACKUP` コマンドを使用します。 -> 4D Server: リモートマシンから `BACKUP` を呼び出すメソッドを使用して、手動でバックアップを開始することができます。 いかなる場合でも、このコマンドはサーバー上で実行されます。 +> 4D Server: リモートマシンから `BACKUP` を呼び出すメソッドを使用して、手動でバックアップを開始することができます。いかなる場合でも、このコマンドはサーバー上で実行されます。 ## 手動バックアップ -1. 4D の **ファイル** メニューから **バックアップ...** を選択します。 - バックアップウインドウが表示されます: +1. 4D の **ファイル** メニューから **バックアップ...** を選択します。バックアップウインドウが表示されます: ![](../assets/en/Backup/backup01.png) - "バックアップファイルの保存先" エリアの隣のポップアップメニューを使用して、バックアップファイルの保存場所を確認することができます。 この場所はデータベース設定の **バックアップ/設定** ページにて、設定されています。 + "バックアップファイルの保存先" エリアの隣のポップアップメニューを使用して、バックアップファイルの保存場所を確認することができます。この場所はデータベース設定の **バックアップ/設定** ページにて、設定されています。 - 4D の [Maintenance & Security Center (MSC)](MSC/overview.md) を開いて、[バックアップページ](MSC/backup.md) から操作することもできます。 @@ -27,13 +26,13 @@ title: バックアップ ## 定期的な自動バックアップ -自動バックアップは指定されたスケジュールに基づいて自動的に実行されます。 バックアップの周期は、**ストラクチャー設定** の **バックアップ/スケジューラー** ページにて設定します。 +自動バックアップは指定されたスケジュールに基づいて自動的に実行されます。バックアップの周期は、**ストラクチャー設定** の **バックアップ/スケジューラー** ページにて設定します。 -ユーザーが一切操作しなくても、このページで指定された時間にバックアップが自動実行されます。 このダイアログボックスに関する詳細は、[バックアップ設定のスケジューラー](settings.md#スケジューラー) の項目を参照してください。 +ユーザーが一切操作しなくても、このページで指定された時間にバックアップが自動実行されます。このダイアログボックスに関する詳細は、[バックアップ設定のスケジューラー](settings.md#スケジューラー) の項目を参照してください。 ## BACKUP コマンド -任意のメソッドにて `BACKUP` 4Dランゲージコマンドを実行すると、ストラクチャー設定に定義されている現在のパラメーターを用いてバックアップを開始します。 バックアッププロセスを処理するため、`On Backup Startup` および `On Backup Shutdown` データベースメソッド使用することができます (詳細は、*4Dランゲージリファレンス* マニュアルを参照ください)。 +任意のメソッドにて `BACKUP` 4Dランゲージコマンドを実行すると、ストラクチャー設定に定義されている現在のパラメーターを用いてバックアップを開始します。バックアッププロセスを処理するため、`On Backup Startup` および `On Backup Shutdown` データベースメソッド使用することができます (詳細は、*4Dランゲージリファレンス* マニュアルを参照ください)。 ## バックアップ処理の管理 @@ -45,48 +44,47 @@ MSC を使用している場合、この進捗インジケーターは [MSC の **中止** ボタンをクリックすると、いつでもバックアップを中断することができます ([バックアップ中に問題が発生した場合](backup.md#バックアップ中に問題が発生した場合) 参照)。 -前回のバックアップの結果 (成功または不成功) は、[MSC のバックアップページ](MSC/backup.md) の "前回のバックアップの情報" エリア、または 4D Server の **メンテナンスページ** で確認できます。 また、データベースの **バックアップジャーナル** (Backup Journal.txt) にも記録されます。 +前回のバックアップの結果 (成功または不成功) は、[MSC のバックアップページ](MSC/backup.md) の "前回のバックアップの情報" エリア、または 4D Server の **メンテナンスページ** で確認できます。また、データベースの **バックアップジャーナル** (Backup Journal.txt) にも記録されます。 ### バックアップ中のアプリケーションへのアクセス バックアップ実行中のアプリケーションへのアクセスは、4D によって制限されます。 4D は、バックアップに含まれたファイルタイプに関連するプロセスはすべてロックします: プロジェクトファイルだけがバックアップされている場合、ストラクチャーにはアクセスできませんが、データにはアクセス可能です。 -反対に、データだけがバックアップされているのであれば、ストラクチャーへのアクセスは許可されます。 この場合に、アプリケーションへのアクセスが可能かどうかを次に示します: +反対に、データだけがバックアップされているのであれば、ストラクチャーへのアクセスは許可されます。この場合に、アプリケーションへのアクセスが可能かどうかを次に示します: -- シングルユーザー版の 4D の場合、アプリケーションは読み込み、書き込みともにロックされ、すべてのプロセスが停止します。 実行できるアクションはありません。 -- 4D Server の場合、アプリケーションへの書き込みだけがロックされ、クライアントマシンはデータを照会することができます。 クライアントマシンからサーバーへ追加・削除・変更のリクエストが送信されると、ウィンドウが表示され、バックアップの終了まで待機するよう要求されます。 アプリケーションが保存されるとウィンドウが閉じられ、要求したアクションが実行されます。 バックアップの終了まで待機せずに、処理中のリクエストをキャンセルするには、**処理をキャンセル** ボタンをクリックします。 ただし、バックアップ前に開始したメソッドから要求されたアクションが実行待機中である場合、このアクションをキャンセルすべきではありません。 しかも、メソッドの一部は実行済みなので、データにおいて論理上の不整合が生じる可能性があります。 +- シングルユーザー版の 4D の場合、アプリケーションは読み込み、書き込みともにロックされ、すべてのプロセスが停止します。実行できるアクションはありません。 +- 4D Server の場合、アプリケーションへの書き込みだけがロックされ、クライアントマシンはデータを照会することができます。クライアントマシンからサーバーへ追加・削除・変更のリクエストが送信されると、ウィンドウが表示され、バックアップの終了まで待機するよう要求されます。アプリケーションが保存されるとウィンドウが閉じられ、要求したアクションが実行されます。バックアップの終了まで待機せずに、処理中のリクエストをキャンセルするには、**処理をキャンセル** ボタンをクリックします。ただし、バックアップ前に開始したメソッドから要求されたアクションが実行待機中である場合、このアクションをキャンセルすべきではありません。しかも、メソッドの一部は実行済みなので、データにおいて論理上の不整合が生じる可能性があります。 > 実行待機中のアクションが、メソッドから要求されたものである場合に、ユーザーが **処理をキャンセル** ボタンをクリックすると、4D Server はエラー -9976 (データベースのバックアップが進行中なので、このコマンドは実行されません) を返します。 ### バックアップ中に問題が発生した場合 -バックアップが正常に実行されない場合もあります。 バックアップが不成功に終わる原因としては、ユーザーによる中断、添付ファイルが見つからない場合、保存先ディスクのトラブル、不完全なトランザクションなど、いくつか考えられます。 4D は原因に応じて問題に対処します。 +バックアップが正常に実行されない場合もあります。バックアップが不成功に終わる原因としては、ユーザーによる中断、添付ファイルが見つからない場合、保存先ディスクのトラブル、不完全なトランザクションなど、いくつか考えられます。 4D は原因に応じて問題に対処します。 すべての場合において、前回のバックアップのステータス (成功または不成功) は、[MSC のバックアップページ](MSC/backup.md)の "前回のバックアップの情報" エリア、4D Server の **メンテナンスページ**、および **バックアップジャーナル** (Backup Journal.txt) に表示されます。 -- **ユーザーによる中断**: 進捗ダイアログボックスの **中止** ボタンをクリックすると、いつでもバックアップを中断することができます。 この場合、各項目のコピーが中止されてエラー 1406 が生成されます。 このエラーは `On Backup Shutdown` データベースメソッドで遮ることができます。 +- **ユーザーによる中断**: 進捗ダイアログボックスの **中止** ボタンをクリックすると、いつでもバックアップを中断することができます。この場合、各項目のコピーが中止されてエラー 1406 が生成されます。このエラーは `On Backup Shutdown` データベースメソッドで遮ることができます。 - **添付ファイルが見つからない**: 添付ファイルが見つからない場合、4D はバックアップを部分的に実行し (アプリケーションファイルおよびアクセス可能な添付ファイルのバックアップ)、エラーを返します。 -- **バックアップ不可能** (ディスクフル、ディスクの書き込み保護、ディスクが見つからない、ディスク障害、不完全なトランザクション、定期的な自動バックアップ時にアプリケーションが起動されていない、など): 初回のエラーの場合には、4D はもう一度バックアップの実行を試みます。 この 2回のバックアップ間の待機時間は、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで指定します。 - 再試行にも失敗した場合、システムの警告ダイアログボックスが表示されてエラーが生成されます。 このエラーは `On Backup Shutdown` データベースメソッドで遮ることができます。 +- **バックアップ不可能** (ディスクフル、ディスクの書き込み保護、ディスクが見つからない、ディスク障害、不完全なトランザクション、定期的な自動バックアップ時にアプリケーションが起動されていない、など): 初回のエラーの場合には、4D はもう一度バックアップの実行を試みます。この 2回のバックアップ間の待機時間は、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで指定します。再試行にも失敗した場合、システムの警告ダイアログボックスが表示されてエラーが生成されます。このエラーは `On Backup Shutdown` データベースメソッドで遮ることができます。 ## バックアップジャーナル -バックアップの追跡や検証を容易にするため、バックアップモジュールは実行された各処理の概要を特別なファイルに書き込みます。このファイルは、いわゆる活動記録のようなものです。 処理が定期的または手動のいずれでおこなわれていても、すべてのデータベース操作 (バックアップ、復元、ログファイルの統合) がこのファイルに、日誌のごとく記録されます。 これらの処理が実行された日付と時刻もこのジャーナルに記述されます。 +バックアップの追跡や検証を容易にするため、バックアップモジュールは実行された各処理の概要を特別なファイルに書き込みます。このファイルは、いわゆる活動記録のようなものです。処理が定期的または手動のいずれでおこなわれていても、すべてのデータベース操作 (バックアップ、復元、ログファイルの統合) がこのファイルに、日誌のごとく記録されます。これらの処理が実行された日付と時刻もこのジャーナルに記述されます。 -バックアップジャーナルには "Backup Journal[001].txt"という名前が付けられ、プロジェクトの "Logs" フォルダーに配置されます。 バックアップジャーナルは、任意のテキストエディターで開くことができます。 +バックアップジャーナルには "Backup Journal[001].txt"という名前が付けられ、プロジェクトの "Logs" フォルダーに配置されます。バックアップジャーナルは、任意のテキストエディターで開くことができます。 #### バックアップジャーナルのサイズ管理 -バックアップ方法によっては、バックアップジャーナルのサイズがすぐに大きくなってしまうことがあります (たとえば、添付ファイルが一緒にバックアップされる場合)。 このサイズを管理するには、2つの方法があります: +バックアップ方法によっては、バックアップジャーナルのサイズがすぐに大きくなってしまうことがあります (たとえば、添付ファイルが一緒にバックアップされる場合)。このサイズを管理するには、2つの方法があります: -- **自動バックアップ**: 4D はバックアップを実行する前にカレントバックアップジャーナルファイルのサイズを確認します。 10MB よりも大きい場合、カレントファイルはアーカイブされ、[xxx] の番号がインクリメントされた新しいファイルを作成します (例: "Backup Journal[002].txt”)。 ファイル番号が 999 を超えると、ナンバリングは 1 に戻り、既存ファイルが置換されます。 -- **記録する情報量を削減する**: このためには、プロジェクトの *backup.4DSettings* ファイルの `VerboseMode` キーの値を変更します。 デフォルトでは、true の値が設定されています。 この値を false に変更すると、バックアップジャーナルには主要な情報のみが記録されます (スタート時の日付と時刻、そしてエラーの有無)。 バックアップ設定に使われる XMLキーについての説明は [バックアップ設定ファイル](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-Backup.100-4673706.ja.html) マニュアルを参照ください。 +- **自動バックアップ**: 4D はバックアップを実行する前にカレントバックアップジャーナルファイルのサイズを確認します。 10MB よりも大きい場合、カレントファイルはアーカイブされ、[xxx] の番号がインクリメントされた新しいファイルを作成します (例: "Backup Journal[002].txt”)。ファイル番号が 999 を超えると、ナンバリングは 1 に戻り、既存ファイルが置換されます。 +- **記録する情報量を削減する**: このためには、プロジェクトの *backup.4DSettings* ファイルの `VerboseMode` キーの値を変更します。デフォルトでは、true の値が設定されています。この値を false に変更すると、バックアップジャーナルには主要な情報のみが記録されます (スタート時の日付と時刻、そしてエラーの有無)。バックアップ設定に使われる XMLキーについての説明は [バックアップ設定ファイル](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-Backup.100-4673706.ja.html) マニュアルを参照ください。 ## backupHistory.json -最新のバックアップと復元処理についての情報はすべて、アプリケーションの **backupHistory.json** ファイルに記録されます。 記録されるのは、保存されたファイル (添付含む) のパスのほか、回数、日付、時刻、所要時間、各処理のステータスです。 ファイルサイズを制限するため、バックアップ&復旧ページの一般設定にある "最新のバックアップのみ保存 X バックアップファイル" に指定した数と同じ分だけ、処理のログを保持します。 +最新のバックアップと復元処理についての情報はすべて、アプリケーションの **backupHistory.json** ファイルに記録されます。記録されるのは、保存されたファイル (添付含む) のパスのほか、回数、日付、時刻、所要時間、各処理のステータスです。ファイルサイズを制限するため、バックアップ&復旧ページの一般設定にある "最新のバックアップのみ保存 X バックアップファイル" に指定した数と同じ分だけ、処理のログを保持します。 -**backupHistory.json** ファイルはカレントのバックアップ保存先フォルダーに作成されます。 以下のコードを実行することで、このファイルの実際のパスを取得することができます: +**backupHistory.json** ファイルはカレントのバックアップ保存先フォルダーに作成されます。以下のコードを実行することで、このファイルの実際のパスを取得することができます: ```4d $backupHistory:=Get 4D file(Backup history file) @@ -95,4 +93,4 @@ $backupHistory:=Get 4D file(Backup history file) > **警告**: > **backupHistory.json** ファイルを削除または移動した場合、次のバックアップ番号はリセットされるという点に注意してください。 -> **backupHistory.json** ファイルは 4D用にフォーマットされています。 バックアップ処理のレポートを直接読んで確認するには、バックアップジャーナルの方が適切です。 +> **backupHistory.json** ファイルは 4D用にフォーマットされています。バックアップ処理のレポートを直接読んで確認するには、バックアップジャーナルの方が適切です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/log.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/log.md index cf0afde71dd2a6..a53d3ef6ef1a45 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/log.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/log.md @@ -3,17 +3,17 @@ id: log title: ログファイル (.journal) --- -継続的に使用されるアプリケーションでは、変更・追加・削除の操作は常に記録されます。 定期的にデータをバックアップすることは重要ですが、バックアップだけでは (予期しない障害の場合に)、前回のバックアップ以降に入力されたデータを回復することができません。 この必要性に対応するため、4D は専用ツールであるログファイルを提供しています。 このファイルを使用すると、データのセキュリティが常に保証されます。 +継続的に使用されるアプリケーションでは、変更・追加・削除の操作は常に記録されます。定期的にデータをバックアップすることは重要ですが、バックアップだけでは (予期しない障害の場合に)、前回のバックアップ以降に入力されたデータを回復することができません。この必要性に対応するため、4D は専用ツールであるログファイルを提供しています。このファイルを使用すると、データのセキュリティが常に保証されます。 -また、4D は常にメモリ上のデータキャッシュを使用して作業をおこなっています。 アプリケーションのデータへの変更はすべて、ハードディスクへ書き込む前に、キャッシュへ一時的に保存されます。 これにより、アプリケーションの処理速度が向上します。 実際、メモリへのアクセスは、ハードディスクへのアクセスよりも高速です。 キャッシュに保存したデータをディスクへ書き込む前に障害が発生した場合は、カレントログファイルを組み込んでアプリケーションを完全に復旧しなくてはなりません。 +また、4D は常にメモリ上のデータキャッシュを使用して作業をおこなっています。アプリケーションのデータへの変更はすべて、ハードディスクへ書き込む前に、キャッシュへ一時的に保存されます。これにより、アプリケーションの処理速度が向上します。 実際、メモリへのアクセスは、ハードディスクへのアクセスよりも高速です。キャッシュに保存したデータをディスクへ書き込む前に障害が発生した場合は、カレントログファイルを組み込んでアプリケーションを完全に復旧しなくてはなりません。 -さらに 4D には、カレントログファイルの内容を解析する機能が組み込まれており、これによってアプリケーションのデータ上で実行されたすべての処理をさかのぼることができます。 これらの機能は MSC にて提供されています ([ログ解析](MSC/analysis.md) ページおよび [ロールバック](MSC/rollback.md) ページ参照)。 +さらに 4D には、カレントログファイルの内容を解析する機能が組み込まれており、これによってアプリケーションのデータ上で実行されたすべての処理をさかのぼることができます。これらの機能は MSC にて提供されています ([ログ解析](MSC/analysis.md) ページおよび [ロールバック](MSC/rollback.md) ページ参照)。 ## ログファイルについて -4D が生成するログファイルには、アプリケーション上でおこなわれた操作がすべて順次記録されています。 デフォルトでは、すべてのテーブルのデータログが取られています (つまりログファイルに含まれています)。しかし、**ログファイルに含める** のプロパティを選択解除することによって特定のテーブルをログに含めないようにすることもできます。 +4D が生成するログファイルには、アプリケーション上でおこなわれた操作がすべて順次記録されています。デフォルトでは、すべてのテーブルのデータログが取られています (つまりログファイルに含まれています)。しかし、**ログファイルに含める** のプロパティを選択解除することによって特定のテーブルをログに含めないようにすることもできます。 -したがって、ユーザーが実行した各操作により、2つのアクションが同時におこなわれます。 1つは、データファイルに対するアクション (命令を通常どおりに実行)、もう1つはログファイルに対するアクション (処理の説明を記録) です。 ログファイルは個別に作成され、ユーザーの作業を妨げたり作業速度を低下させることはありません。 1つのアプリケーションでは、一度に 1つのログファイルだけを扱うことができます。 ログファイルには、次の操作が記録されます: +したがって、ユーザーが実行した各操作により、2つのアクションが同時におこなわれます。 1つは、データファイルに対するアクション (命令を通常どおりに実行)、もう1つはログファイルに対するアクション (処理の説明を記録) です。ログファイルは個別に作成され、ユーザーの作業を妨げたり作業速度を低下させることはありません。 1つのアプリケーションでは、一度に 1つのログファイルだけを扱うことができます。ログファイルには、次の操作が記録されます: - データファイルの開閉 - プロセス (コンテキスト) の開閉 @@ -24,33 +24,31 @@ title: ログファイル (.journal) これらのアクションについての詳細は、MSC の [ログ解析](MSC/analysis.md) ページを参照ください。 -ログファイルは 4D により管理されます。 ログファイルは、データファイルに影響を与えるすべての操作を区別なく盛り込み、ユーザーがおこなった操作や 4Dメソッド、SQLエンジン、プラグイン、Webブラウザーやモバイルアプリなどによる処理など、あらゆる操作を記録します。 +ログファイルは 4D により管理されます。ログファイルは、データファイルに影響を与えるすべての操作を区別なく盛り込み、ユーザーがおこなった操作や 4Dメソッド、SQLエンジン、プラグイン、Webブラウザーやモバイルアプリなどによる処理など、あらゆる操作を記録します。 ログファイルの機能をまとめた図を次に示します: ![](../assets/en/Backup/backup05.png) -カレントログファイルはカレントデータファイルと一緒に自動保存されます。 このメカニズムには、2つの際立った利点があります: +カレントログファイルはカレントデータファイルと一緒に自動保存されます。このメカニズムには、2つの際立った利点があります: -- ログファイルが保存されるディスクの容量が一杯にならないようにします。 バックアップを実行しない場合、ログファイルは使用するにつれて徐々に大きくなり、 いずれはディスクの空き容量をすべて使い果たしてしまいます。 データファイルをバックアップするたびに、4D や 4D Server はカレントログファイルをクローズし、その直後に空ファイルを新たに開くため、ディスクフルになる危険を避けることができます。 この後、古いログファイルはアーカイブに保存され、バックアップのセット (世代) を管理するメカニズムに従って最終的には破棄されます。 -- 後からアプリケーションの解析や修復をおこなえるように、各バックアップに対応するログファイルを保管します。 ログファイルの統合は、それが対応するアプリケーションからのみ実行できます。 バックアップに正しくログファイルを統合するため、バックアップとアーカイブ化されたログファイルは一緒に保管することが重要です。 +- ログファイルが保存されるディスクの容量が一杯にならないようにします。バックアップを実行しない場合、ログファイルは使用するにつれて徐々に大きくなり、 いずれはディスクの空き容量をすべて使い果たしてしまいます。データファイルをバックアップするたびに、4D や 4D Server はカレントログファイルをクローズし、その直後に空ファイルを新たに開くため、ディスクフルになる危険を避けることができます。この後、古いログファイルはアーカイブに保存され、バックアップのセット (世代) を管理するメカニズムに従って最終的には破棄されます。 +- 後からアプリケーションの解析や修復をおこなえるように、各バックアップに対応するログファイルを保管します。ログファイルの統合は、それが対応するアプリケーションからのみ実行できます。バックアップに正しくログファイルを統合するため、バックアップとアーカイブ化されたログファイルは一緒に保管することが重要です。 ## ログファイルの作成 -デフォルトでは、4D で作成されたすべてのアプリケーションでログファイルが使用されます (環境設定の **一般** ページ内でチェックされているオプションです)。 ログファイルには *data.journal* のように名前が付けられ、Data フォルダー内に置かれます。 +デフォルトでは、4D で作成されたすべてのアプリケーションでログファイルが使用されます (環境設定の **一般** ページ内でチェックされているオプションです)。ログファイルには *data.journal* のように名前が付けられ、Data フォルダー内に置かれます。 -アプリケーションでログファイルが使用されているかどうかは、いつでも調べることができます。これには、ストラクチャー設定の **バックアップ/設定** ページで **ログを使用** オプションが選択されているか確認します。 このオプションの選択が解除されていた場合、またはログファイルなしでアプリケーションを使用している場合で、ログファイルを用いたバックアップ方法を導入するには、ログファイルを作成する必要があります。 +アプリケーションでログファイルが使用されているかどうかは、いつでも調べることができます。これには、ストラクチャー設定の **バックアップ/設定** ページで **ログを使用** オプションが選択されているか確認します。このオプションの選択が解除されていた場合、またはログファイルなしでアプリケーションを使用している場合で、ログファイルを用いたバックアップ方法を導入するには、ログファイルを作成する必要があります。 ログファイルを作成するには、次の手順に従ってください: -1. ストラクチャー設定の **バックアップ/設定** ページで、**ログを使用** オプションを選択します。 - 標準の "ファイルを開く/新規作成" ダイアログボックスが表示されます。 ログファイルにはデフォルトで *data.journal* という名前が付けられます。 +1. ストラクチャー設定の **バックアップ/設定** ページで、**ログを使用** オプションを選択します。標準の "ファイルを開く/新規作成" ダイアログボックスが表示されます。ログファイルにはデフォルトで *data.journal* という名前が付けられます。 2. デフォルトの名前を使用するか、またはその名前を変更し、次にファイルの保管場所を選択します。 - 2つ以上のハードドライブが存在する場合は、アプリケーションプロジェクトが保管されているディスク以外の場所にログファイルを保存することをお勧めします。 これにより、アプリケーションが保管されているハードドライブが破損した場合でも、ログファイルを呼び出すことができます。 + 2つ以上のハードドライブが存在する場合は、アプリケーションプロジェクトが保管されているディスク以外の場所にログファイルを保存することをお勧めします。これにより、アプリケーションが保管されているハードドライブが破損した場合でも、ログファイルを呼び出すことができます。 -3. **保存** をクリックします。 - 開いたログファイルのアクセスパスと名前がダイアログボックスの **ログを使用** エリアに表示されます。 このエリアをクリックすると、ポップアップメニューが表示され、ディスク上のフォルダーを確認できます。 +3. **保存** をクリックします。開いたログファイルのアクセスパスと名前がダイアログボックスの **ログを使用** エリアに表示されます。このエリアをクリックすると、ポップアップメニューが表示され、ディスク上のフォルダーを確認できます。 4. ストラクチャー設定ダイアログボックスを確定します。 @@ -59,19 +57,19 @@ title: ログファイル (.journal) - データファイルが空である。 - バックアップを実行した直後であり、データへの変更がまだおこなわれていない。 -いずれの条件も満たしていない場合は、バックアップを実行する必要がある旨を知らせる警告ダイアログボックスが表示されます。 **OK** をクリックするとバックアップが開始され、その後にログファイルが作成されます。 **キャンセル** をクリックした場合には、ログファイル作成の要求は保存され、次回アプリケーションをバックアップする時までログファイルの作成は延期されます。 このような安全対策が不可欠な理由は、障害の発生後にアプリケーションを復元するために、ログファイルへ記録された処理を統合するアプリケーションのコピーが必要となるからです。 +いずれの条件も満たしていない場合は、バックアップを実行する必要がある旨を知らせる警告ダイアログボックスが表示されます。 **OK** をクリックするとバックアップが開始され、その後にログファイルが作成されます。**キャンセル** をクリックした場合には、ログファイル作成の要求は保存され、次回アプリケーションをバックアップする時までログファイルの作成は延期されます。このような安全対策が不可欠な理由は、障害の発生後にアプリケーションを復元するために、ログファイルへ記録された処理を統合するアプリケーションのコピーが必要となるからです。 これ以外に何もおこなわなくても、データ上で実行されたすべての処理がこのファイルに記録され、その後アプリケーションを開いたときにこのファイルが使用されます。 -新規データファイルを作成したら、別のログファイルを作成しなくてはなりません。 また、ログファイルに関連付けられていない (あるいはログファイルが見つからない) 別のデータファイルを開いた場合、他のログファイルを設定するか、作成しなくてはなりません。 +新規データファイルを作成したら、別のログファイルを作成しなくてはなりません。また、ログファイルに関連付けられていない (あるいはログファイルが見つからない) 別のデータファイルを開いた場合、他のログファイルを設定するか、作成しなくてはなりません。 ## ログファイル設定 [ログファイル設定](settings.md#ログ管理) は、ブール値とパスという 2つの情報に基づいています。 -1. **ブール値**: アプリケーション内で "ログを使用" 機能が有効か無効かを示します。 デフォルトで、このブール値は *catalog.4DCatalog* に格納されます。 ただし、[ユーザー設定](../settings/overview.md#user-settings) が有効化されると、*catalog.4DCatalog* ファイルの構成がオーバーライドされます。その場合、[データファイルの隣](../Project/architecture.md#settings-ユーザーデータ) にある *Backup.4DSettings* ファイル、または、[プロジェクトのフォルダー>Settingsフォルダー](../Project/architecture.md#settings-ユーザー) 内の *Backup.4DSettings* ファイルにて、このブール値を設定できるようになります ([doc.4d.com](https://doc.4d.com) の `JournalFileEnabled` xmlバックアップキーのドキュメントも参照ください)。 +1. **ブール値**: アプリケーション内で "ログを使用" 機能が有効か無効かを示します。デフォルトで、このブール値は *catalog.4DCatalog* に格納されます。ただし、[ユーザー設定](../settings/overview.md#user-settings) が有効化されると、*catalog.4DCatalog* ファイルの構成がオーバーライドされます。その場合、[データファイルの隣](../Project/architecture.md#settings-ユーザーデータ) にある *Backup.4DSettings* ファイル、または、[プロジェクトのフォルダー>Settingsフォルダー](../Project/architecture.md#settings-ユーザー) 内の *Backup.4DSettings* ファイルにて、このブール値を設定できるようになります ([doc.4d.com](https://doc.4d.com) の `JournalFileEnabled` xmlバックアップキーのドキュメントも参照ください)。 -2. **パス**: ログファイルの場所を指し示す文字列。 ログファイルのパスは、リンクされたデータファイル内に保存されます。 +2. **パス**: ログファイルの場所を指し示す文字列。ログファイルのパスは、リンクされたデータファイル内に保存されます。 ## ログファイルを中止する @@ -85,5 +83,4 @@ title: ログファイル (.journal) カレントログファイルが大きすぎるため、それをクローズしたい場合は、データファイルのバックアップを実行してください。 これにより、ログファイルのバックアップが作成されます。 -> **4D Server:** `New log file` コマンドはカレントログファイルを自動的に閉じて、新しいログファイルを開始します。 -> 実行中に何らかの理由でログファイルが利用不能になった場合、エラー 1274 が生成され、4D Server は一切のデータ書き込みを許可しなくなります。 再びログファイルが利用可能になったらフルバックアップを実行しなければなりません。 \ No newline at end of file +> **4D Server:** `New log file` コマンドはカレントログファイルを自動的に閉じて、新しいログファイルを開始します。実行中に何らかの理由でログファイルが利用不能になった場合、エラー 1274 が生成され、4D Server は一切のデータ書き込みを許可しなくなります。再びログファイルが利用可能になったらフルバックアップを実行しなければなりません。 \ No newline at end of file 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 c2c6c00bb32cd4..dfbdd4d0ed7bf2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/mirror.md @@ -9,19 +9,19 @@ title: 論理ミラー 論理ミラーは洗練されたバックアップモードで、クリティカルあるいはハイロードのデータベースで主に使⽤されます。 -論理ミラーは、あるマシンで動作中のデータベースのコピーを別のマシン上に作成し、定期的に更新することで構成されます。 両マシンはネットワークを経由して通信を⾏い、動作中のマシンはデータに対して⾏われたすべての更新を、ログファイルの形で定期的にミラーマシンに送信します。 +論理ミラーは、あるマシンで動作中のデータベースのコピーを別のマシン上に作成し、定期的に更新することで構成されます。両マシンはネットワークを経由して通信を⾏い、動作中のマシンはデータに対して⾏われたすべての更新を、ログファイルの形で定期的にミラーマシンに送信します。 -この方法であれば、動作中のデータベースに影響する事故が発⽣しても、ミラーデータベースを使⽤して素早く、またデータを失うことなく元に戻すことができます。 さらに、動作中のデータベースはバックアップにより"ブロック"されることはありません。 +この方法であれば、動作中のデータベースに影響する事故が発⽣しても、ミラーデータベースを使⽤して素早く、またデータを失うことなく元に戻すことができます。さらに、動作中のデータベースはバックアップにより"ブロック"されることはありません。 ## なぜ論理ミラーによるバックアップを選択するのか -論理ミラーの使⽤は特定のニーズに応えるものです。 定期的なバックアップとログファイルの使⽤に基づく標準の⽅法は、ほとんどの場合簡単で信頼性があり、コストのかからない⽅法です。 データベースは定期的 (通常24時間ごと) にバックアップされます。 バックアップ中は、全てのプロセスがフリーズされます。 この⼀時的な書き込み不可の時間は、(2GBを超えるような)⼤きなデータベースであってもとても短いもので、5分もかかりません。 この動作を、データベースが利⽤されていない時間帯に⾏うよう設定することも可能です。 +論理ミラーの使⽤は特定のニーズに応えるものです。定期的なバックアップとログファイルの使⽤に基づく標準の⽅法は、ほとんどの場合簡単で信頼性があり、コストのかからない⽅法です。データベースは定期的 (通常24時間ごと) にバックアップされます。バックアップ中は、全てのプロセスがフリーズされます。この⼀時的な書き込み不可の時間は、(2GBを超えるような)⼤きなデータベースであってもとても短いもので、5分もかかりません。この動作を、データベースが利⽤されていない時間帯に⾏うよう設定することも可能です。 -にもかかわらず、特定の種類の組織、例えば病院などでは、クリティカルなデータベースを24時間完全に動作させなければなりません。 データベースをたとえ短時間でも"バックアップ中"(で結果的にアクセス不可)にすることはできません。 この場合、論理ミラーの設定が適切なソリューションとなります。 +にもかかわらず、特定の種類の組織、例えば病院などでは、クリティカルなデータベースを24時間完全に動作させなければなりません。データベースをたとえ短時間でも"バックアップ中"(で結果的にアクセス不可)にすることはできません。この場合、論理ミラーの設定が適切なソリューションとなります。 :::note -ミラーデータベースは**データ**に対して⾏われた変更のみを反映します。 このバックアップモードは開発途中のデータベースには適しません。しばしばストラクチャーに対する変更が⾏われ、それはミラーを無効なものとし、ミラーデータベースストラクチャーの交換を必要としてしまいます。 +ミラーデータベースは**データ**に対して⾏われた変更のみを反映します。このバックアップモードは開発途中のデータベースには適しません。しばしばストラクチャーに対する変更が⾏われ、それはミラーを無効なものとし、ミラーデータベースストラクチャーの交換を必要としてしまいます。 ::: @@ -33,7 +33,7 @@ title: 論理ミラー - アプリケーションはメインの4D Server マシン(動作マシン) にインストールされ、その全く同じコピーが4D Server ミラーマシンにインストールされます。 - 起動時にアプリケーションのテストを⾏い (例えば4D Server アプリケーションのサブフォルダー内で特定のファイルが存在するかどうかをチェックするなど)、動作マシンかミラーマシンかの区別をして、適切な動作を実⾏します。 -- 動作マシンの4D Server では [`New log file`](../commands/new-log-file) コマンドによって、定期的にログファイルは"分割"されます。 メインサーバー上ではバックアップを⾏いませんので、データベースは常に読み書き可能です。 +- 動作マシンの4D Server では [`New log file`](../commands/new-log-file) コマンドによって、定期的にログファイルは"分割"されます。メインサーバー上ではバックアップを⾏いませんので、データベースは常に読み書き可能です。 - 分割されたログファイルをミラーマシンに送信して、[`INTEGRATE MIRROR LOG FILE`](../commands/integrate-mirror-log-file) コマンドを使⽤してミラーデータベースに統合します。 このシステムの設定には、コードのプログラムが必要です。具体的には以下の様なものが必要です: @@ -45,7 +45,7 @@ title: 論理ミラー :::warning -論理ミラーを使⽤したバックアップシステムを使⽤するときは、動作マシン中のマシン上で[標準のバックアップ](./backup.md) を⾏うことはできません。これら2つのバックアップモードを両⽅使⽤すると、動作中のデータベースとミラーデータベースの間で同期のズレが発⽣します。 動作データベースでは⾃動マニュアル問わず、バックアップが実⾏されないようにしてください。 他⽅、ミラーデータベースのバックアップ、またはミラーデータベースのミラーを設定することは可能です。 +論理ミラーを使⽤したバックアップシステムを使⽤するときは、動作マシン中のマシン上で[標準のバックアップ](./backup.md) を⾏うことはできません。これら2つのバックアップモードを両⽅使⽤すると、動作中のデータベースとミラーデータベースの間で同期のズレが発⽣します。動作データベースでは⾃動マニュアル問わず、バックアップが実⾏されないようにしてください。他⽅、ミラーデータベースのバックアップ、またはミラーデータベースのミラーを設定することは可能です。 ::: @@ -60,26 +60,26 @@ title: 論理ミラー - ログファイルの統合処理中、バックアップを⾏うことはできません。 [`BACKUP`](../commands/backup) コマンドを使⽤すると、エラー1417 が⽣成されます。 - バックアップの実⾏中は、すべてのプロセスが停⽌され、ログファイルの統合を開始することはできません。 -カレントのログファイルをミラーマシンでも有効化することも出来ます。これはつまり"ミラーのミラー" (またはそれのさらなるミラー) や、"ハブ&スポーク"型のミラーアーキテクチャー (⼀つのオペレーショナルデータベースに対して複数のミラーを⽴てる構造) を設定できる、という事です。 前者の場合、ミラーのカレントログファイルは順番に次のミラー(ミラーのミラー)へと送られ統合され、それ以降のミラーを使⽤していた場合に関しても同様に送られます。 後者の場合、複数の同⼀のミラーに対してカレントログファイルが直接送付されます。 この予備を⽤意する⽅法を使⽤すれば、サーバーとメインのミラーが同時に落ちた場合でも、サーバーを継続して利⽤する事ができます。 +カレントのログファイルをミラーマシンでも有効化することも出来ます。これはつまり"ミラーのミラー" (またはそれのさらなるミラー) や、"ハブ&スポーク"型のミラーアーキテクチャー (⼀つのオペレーショナルデータベースに対して複数のミラーを⽴てる構造) を設定できる、という事です。前者の場合、ミラーのカレントログファイルは順番に次のミラー(ミラーのミラー)へと送られ統合され、それ以降のミラーを使⽤していた場合に関しても同様に送られます。後者の場合、複数の同⼀のミラーに対してカレントログファイルが直接送付されます。この予備を⽤意する⽅法を使⽤すれば、サーバーとメインのミラーが同時に落ちた場合でも、サーバーを継続して利⽤する事ができます。 ## 論理ミラーのオペレーションシナリオ それぞれの4D Serverマシンの視点から⾒た以下のシナリオは、ミラーを使⽤したバックアップシステムの設定とオペレーションを⽰します: -| ステップ | 本番環境 | ミラーマシン | -| ---- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | アプリケーションを開始。データファイルをバックアップ。 ログファイルはデフォルトで有効化されています。より安全性を求める場合、このファイルは他のハードディスクに保存しましょう。 | | -| | 4D はMyDatabase.journal ファイルを作成。 | | -| | アプリケーションを終了。 | | -| | (ログファイルを含む) すべてのデータベースファイルをミラーマシンにコピー。 | | -| 2 | アプリケーションを再起動 (フルバックアップがプログラムされていないことを確認)。 | ミラーアプリケーションを開始。 4D Server はカレントログファイルを要求: 本番環境から転送したMyDatabase.journal ファイルを選択します。 このファイルはミラーのミラーを設定するときに使⽤されます。 | -| 3 | ミラーの更新を決定する (例えば特定の時間経過後、など)。 | | -| | `New log file` コマンドを含むメソッドを実⾏。 保存されるファイル名は MyDatabase[0001-0001].journal 。 | | -| | プログラムを使用してMyDatabase[0001-0001].journal ファイルをミラーマシンに送信。 | | -| | アプリケーションを実⾏。 | | -| 4 | | 統合待ちのファイルを検知。 `INTEGRATE MIRROR LOG FILE` コマンドを含むメソッドを実⾏してMyDatabase[0001-0000].journal ファイルを統合。 ミラーのミラーを使⽤している場合、ステップ3とほぼ同様のプロシージャをミラーマシンで実⾏します(これはログが統合されるたびに繰り返します)。 | -| 5 | マシン上で事故発⽣。データファイルが利⽤不可になる。 ミラーマシンへの移⾏を決定。 | | -| | MyDatabase.journal カレントログファイルをミラーマシンのいつもの送信先フォルダーにコピー。 | | -| 6 | 事故を分析して、修復。 | 統合待ちのファイルを検知。 `INTEGRATE MIRROR LOG FILE` コマンドを含むメソッ ドを実⾏して MyDatabase[0001-0001].journal ファイルを統合。 | -| | | アプリケーションを実⾏。 | -| 7 | マシンが復旧。 データベースファイルをミラーデータベースのものと⼊れ替える。 アプリケーションを開始。 4D Serverがログファイルを要求。ミラーデータベースから転送したログファイルを選択する。 | アプリケーションを終了。 ステップ2 に戻る。 | \ No newline at end of file +| ステップ | 本番環境 | ミラーマシン | +| ---- | --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | アプリケーションを開始。データファイルをバックアップ。ログファイルはデフォルトで有効化されています。より安全性を求める場合、このファイルは他のハードディスクに保存しましょう。 | | +| | 4D はMyDatabase.journal ファイルを作成。 | | +| | アプリケーションを終了。 | | +| | (ログファイルを含む) すべてのデータベースファイルをミラーマシンにコピー。 | | +| 2 | アプリケーションを再起動 (フルバックアップがプログラムされていないことを確認)。 | ミラーアプリケーションを開始。 4D Server はカレントログファイルを要求: 本番環境から転送したMyDatabase.journal ファイルを選択します。このファイルはミラーのミラーを設定するときに使⽤されます。 | +| 3 | ミラーの更新を決定する (例えば特定の時間経過後、など)。 | | +| | `New log file` コマンドを含むメソッドを実⾏。保存されるファイル名は MyDatabase[0001-0001].journal 。 | | +| | プログラムを使用してMyDatabase[0001-0001].journal ファイルをミラーマシンに送信。 | | +| | アプリケーションを実⾏。 | | +| 4 | | 統合待ちのファイルを検知。 `INTEGRATE MIRROR LOG FILE` コマンドを含むメソッドを実⾏してMyDatabase[0001-0000].journal ファイルを統合。ミラーのミラーを使⽤している場合、ステップ3とほぼ同様のプロシージャをミラーマシンで実⾏します(これはログが統合されるたびに繰り返します)。 | +| 5 | マシン上で事故発⽣。データファイルが利⽤不可になる。ミラーマシンへの移⾏を決定。 | | +| | MyDatabase.journal カレントログファイルをミラーマシンのいつもの送信先フォルダーにコピー。 | | +| 6 | 事故を分析して、修復。 | 統合待ちのファイルを検知。 `INTEGRATE MIRROR LOG FILE` コマンドを含むメソッ ドを実⾏して MyDatabase[0001-0001].journal ファイルを統合。 | +| | | アプリケーションを実⾏。 | +| 7 | マシンが復旧。データベースファイルをミラーデータベースのものと⼊れ替える。アプリケーションを開始。 4D Serverがログファイルを要求。ミラーデータベースから転送したログファイルを選択する。 | アプリケーションを終了。ステップ2 に戻る。 | \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/overview.md index 5ee2bb94f077d5..ed91166f034eee 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/overview.md @@ -5,13 +5,13 @@ title: バックアップと復元 4Dには、アプリケーションのフルバックアップと復元用のモジュールが組み込まれています。 -このモジュールにより、現在使用中のアプリケーションを終了しなくても、そのバックアップを作成することができます。 各バックアップには、プロジェクトフォルダー、データファイルのほか、任意の追加ファイルやフォルダーを含められます。 これらのパラメーターの指定は、最初にストラクチャー設定にておこないます。 +このモジュールにより、現在使用中のアプリケーションを終了しなくても、そのバックアップを作成することができます。各バックアップには、プロジェクトフォルダー、データファイルのほか、任意の追加ファイルやフォルダーを含められます。これらのパラメーターの指定は、最初にストラクチャー設定にておこないます。 -バックアップは手動で実行するか、またはユーザーが操作しなくても定期的に自動実行することができます。 特定のランゲージコマンドやデータベースメソッドを使用すると、独自のインタフェースにバックアップ機能を統合することができます。 +バックアップは手動で実行するか、またはユーザーが操作しなくても定期的に自動実行することができます。特定のランゲージコマンドやデータベースメソッドを使用すると、独自のインタフェースにバックアップ機能を統合することができます。 損傷したアプリケーションが開かれた場合には、自動的にアプリケーションを復元することができます。 -また、この統合バックアップモジュールでは、[ログファイル](log.md) (.journal 拡張子のジャーナルファイル) を利用することができます。 このファイルは、データ上で実行された全操作の記録を保管し、2回のバックアップ間の安全性を完全に保証します。 使用中のアプリケーションに問題が発生した場合は、次回そのアプリケーションを開いたときに、データファイルから失われた操作が自動的に再統合されます。 ログファイルの内容はいつでも確認することができます。 +また、この統合バックアップモジュールでは、[ログファイル](log.md) (.journal 拡張子のジャーナルファイル) を利用することができます。このファイルは、データ上で実行された全操作の記録を保管し、2回のバックアップ間の安全性を完全に保証します。使用中のアプリケーションに問題が発生した場合は、次回そのアプリケーションを開いたときに、データファイルから失われた操作が自動的に再統合されます。ログファイルの内容はいつでも確認することができます。 4D Server では、常に複数の完全一致するアプリケーションを管理したい場合には、バックアップを目的にデータを複製・同期するために、[論理ミラー](./mirror.md) を実装することもできます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md index a5aa9d4766ffb1..526a7d34c1a598 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/restore.md @@ -3,46 +3,40 @@ id: restore title: 復元 --- -問題が発生したときは、一連のアプリケーションファイル全体を復元することができます。 主に 2つのカテゴリの問題が発生する可能性があります: +問題が発生したときは、一連のアプリケーションファイル全体を復元することができます。主に 2つのカテゴリの問題が発生する可能性があります: -- アプリケーションが使用中に予期せず終了された。 この問題は電力の切断、システムのエラー等により発生する可能性があります。 この場合、問題が発生した瞬間のデータキャッシュの状態により、アプリケーションの復旧には異なる手順が必要となります: - - キャッシュが空の場合、アプリケーションを問題なく開くことができます。 アプリケーションに対しておこなわれた変更はデータファイルに記録されています。 この場合には、特別な手順は必要ありません。 +- アプリケーションが使用中に予期せず終了された。この問題は電力の切断、システムのエラー等により発生する可能性があります。この場合、問題が発生した瞬間のデータキャッシュの状態により、アプリケーションの復旧には異なる手順が必要となります: + - キャッシュが空の場合、アプリケーションを問題なく開くことができます。アプリケーションに対しておこなわれた変更はデータファイルに記録されています。この場合には、特別な手順は必要ありません。 - キャッシュに未保存の処理が含まれている場合、データファイルは損傷していませんが、カレントのログファイルを統合する必要があります。 - - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 + - キャッシュの内容をデータファイルに書き込み中だった場合、データファイルはおそらく損傷しています。最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 -- アプリケーションファイルを失った。 この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。 最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。 問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。 自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。 定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 +- アプリケーションファイルを失った。この問題はアプリケーションが配置されたディスク上のセクターが読み書き不能になった、あるいはウィルス、操作ミス等により発生します。最新のバックアップから復元をおこない、カレントのログファイルを統合する必要があります。問題発生後にアプリケーションが損傷しているかどうかを見分けるには、4D でアプリケーションを起動します。 4Dは自己検証をおこない、必要な復元処理手順を示します。自動モードの場合、この処理はユーザーのアクションなしで直接実行されます。定期的なバックアップがおこなわれていれば、4D の復元ツールを使用して (ほとんどの場合) 問題が発生する直前の状態までアプリケーションを復旧することができます。 -> 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。 このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。 詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 -> 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。 この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 +> 問題発生後に、自動で 4Dのアプリケーション復旧処理を起動することができます。このメカニズムは、ストラクチャー設定の **バックアップ/バックアップ&復旧** ページで利用できるオプションを使用して管理します。詳細は [自動復元](settings.md#自動復元とログの統合) を参照してください。 +> 問題が、データに対しておこなわれた不適切な処理の結果引き起こされた場合 (たとえば誤ってレコードを削除した等)、ログファイルの "ロールバック" 機能を使用してデータファイルを復旧できます。この機能は MSC の [ロールバック](MSC/rollback.md) ページから利用できます。 ## 手動でバックアップから復元する (標準ダイアログ) -バックアップモジュールを使用して生成されたアーカイブの内容を、手動で復元することができます。 手動による復元は、たとえばアーカイブ全体 (ストラクチャーファイルや添付されたファイル) を再生成したい場合や、アーカイブの内容を見たい場合などに必要となります。 手動復元の際に、カレントログファイルを統合することもできます。 +バックアップモジュールを使用して生成されたアーカイブの内容を、手動で復元することができます。手動による復元は、たとえばアーカイブ全体 (ストラクチャーファイルや添付されたファイル) を再生成したい場合や、アーカイブの内容を見たい場合などに必要となります。手動復元の際に、カレントログファイルを統合することもできます。 -バックアップの手動復元は、標準のファイルを開くダイアログボックス、あるいは Maintenance and Security Center (MSC) の [復元](../MSC/restore.md) ページからおこなうことができます。 MSC を使用した復元では詳細なオプション設定をおこなったり、アーカイブの内容をプレビューしたりすることができます。 他方、開かれているアプリケーションに関連したアーカイブのみを復元できます。 +バックアップの手動復元は、標準のファイルを開くダイアログボックス、あるいは Maintenance and Security Center (MSC) の [復元](../MSC/restore.md) ページからおこなうことができます。 MSC を使用した復元では詳細なオプション設定をおこなったり、アーカイブの内容をプレビューしたりすることができます。他方、開かれているアプリケーションに関連したアーカイブのみを復元できます。 標準ダイアログボックスを使用してアプリケーションを手動復元するには: -1. 4Dアプリケーションを開始し、**ファイル** メニューから **復元...** を選択します。 - アプリケーションプロジェクトが開かれている必要はありません。 - または
    - 4Dメソッドから `RESTORE` コマンドを実行します。 - 標準のファイルを開くダイアログボックスが表示されます。 -2. 復元するバックアップファイル (.4bk) またはログバックアップファイル (.4bl) を選択し、**開く** をクリックします。 - 復元したファイルを配置する場所を指定するために、以下のダイアログボックスが表示されます: デフォルトで 4Dは アーカイブと同階層にアーカイブ名と同じ名前 (拡張子なし) のフォルダーを作成し、ファイルを復元します。 場所が表示されているエリアをクリックして、パスを確認することができます: +1. 4Dアプリケーションを開始し、**ファイル** メニューから **復元...** を選択します。アプリケーションプロジェクトが開かれている必要はありません。または
    + 4Dメソッドから `RESTORE` コマンドを実行します。標準のファイルを開くダイアログボックスが表示されます。 +2. 復元するバックアップファイル (.4bk) またはログバックアップファイル (.4bl) を選択し、**開く** をクリックします。復元したファイルを配置する場所を指定するために、以下のダイアログボックスが表示されます: デフォルトで 4Dは アーカイブと同階層にアーカイブ名と同じ名前 (拡張子なし) のフォルダーを作成し、ファイルを復元します。場所が表示されているエリアをクリックして、パスを確認することができます: ![](../assets/en/Backup/backup07.png) **[...]** ボタンをクリックして異なる場所を指定することもできます。 3. **復元** ボタンをクリックします。 -4D は指定されたすべてのバックアップファイルを展開します。 -カレントログファイル、または、バックアップファイルと同じ番号を持つログバックアップファイルが同じフォルダーに存在する場合、4D はその内容を検証します。 データファイル中に無い処理がログファイルに含まれていれば、その処理を統合するかどうか 4D が尋ねてきます。 **データベースが完全でない場合、最新のログを統合する** オプションが選択されている場合、統合処理は自動でおこなわれます ([自動復元](settings.md#自動復元とログの統合) 参照)。 +4D は指定されたすべてのバックアップファイルを展開します。カレントログファイル、または、バックアップファイルと同じ番号を持つログバックアップファイルが同じフォルダーに存在する場合、4D はその内容を検証します。データファイル中に無い処理がログファイルに含まれていれば、その処理を統合するかどうか 4D が尋ねてきます。**データベースが完全でない場合、最新のログを統合する** オプションが選択されている場合、統合処理は自動でおこなわれます ([自動復元](settings.md#自動復元とログの統合) 参照)。 -4. (任意) **OK** をクリックして、復元したアプリケーションにログファイルを統合します。 - 復元と統合が正しく実行されると、4D は処理が成功したことを通知するダイアログを表示します。 +4. (任意) **OK** をクリックして、復元したアプリケーションにログファイルを統合します。復元と統合が正しく実行されると、4D は処理が成功したことを通知するダイアログを表示します。 5. **OK** をクリックします。 -保存先フォルダーが表示されます。 バックアップ時のファイルの位置にかかわらず、4D はすべてのバックアップファイルをこのフォルダーに配置します。 これにより、ファイルを探す手間が省けます。 +保存先フォルダーが表示されます。バックアップ時のファイルの位置にかかわらず、4D はすべてのバックアップファイルをこのフォルダーに配置します。これにより、ファイルを探す手間が省けます。 > データファイルの関連要素 (ファイルや `Settings` フォルダー) は保存先フォルダー内の `Data` サブフォルダー内に自動的に復元されます。 @@ -58,4 +52,4 @@ MSC の復元ページでログファイルの自動統合を選択していな > このメカニズムを機能させるために、4D はカレントの場所にあるログファイルにアクセスできなければなりません。 -カレントログファイルを統合するかしないかを選択することができます。 カレントログファイルを統合しないことにより、データ中に作成されたエラーを再生成しないようにすることもできます。 \ No newline at end of file +カレントログファイルを統合するかしないかを選択することができます。カレントログファイルを統合しないことにより、データ中に作成されたエラーを再生成しないようにすることもできます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md index 141f4053026fe0..f7315817fe92e7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Backup/settings.md @@ -3,7 +3,7 @@ id: settings title: バックアップ設定 --- -バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。 次の設定がおこなえます: +バックアップ設定の定義は、[ストラクチャー設定ダイアログボックス](../settings/overview.md) 内で 3ページにわたっています。次の設定がおこなえます: - 自動バックアップ用のスケジューラー設定 - 各バックアップに含めるファイル @@ -13,7 +13,7 @@ title: バックアップ設定 ## スケジューラー -4D や 4D Server で開かれているアプリケーションのバックアップを自動化することができます (クライアントマシンが接続されている必要はありません)。 これはバックアップ周期 (時間、日、週、月単位等) を設定することによりおこないます。 現在のバックアップ設定に基づき、4D は自動でバックアップを実行します。 +4D や 4D Server で開かれているアプリケーションのバックアップを自動化することができます (クライアントマシンが接続されている必要はありません)。これはバックアップ周期 (時間、日、週、月単位等) を設定することによりおこないます。 現在のバックアップ設定に基づき、4D は自動でバックアップを実行します。 バックアップが実行されるべきときにアプリケーションが起動されていなかった場合には、次に起動されたとき 4D はバックアップが失敗したものと認識し、ストラクチャー設定の再試行設定を適用します ([バックアップ中に問題が発生した場合](backup.md#バックアップ中に問題が発生した場合) 参照)。 @@ -21,24 +21,24 @@ title: バックアップ設定 ![](../assets/en/Backup/backup02.png) -このページにあるオプションを使用して、アプリケーションの自動バックアップのスケジュールを設定できます。 標準のクイック設定、または完全なカスタマイズを選択できます。 **自動バックアップ** メニューでの選択に基づき、さまざまなオプションが表示されます: +このページにあるオプションを使用して、アプリケーションの自動バックアップのスケジュールを設定できます。標準のクイック設定、または完全なカスタマイズを選択できます。**自動バックアップ** メニューでの選択に基づき、さまざまなオプションが表示されます: - **しない**: スケジュールに基づくバックアップは無効となります。 - **毎時**: 次の時間以降、毎時間ごとに自動バックアップをおこないます。 -- **毎日**: 日に一回自動バックアップをおこないます。 バックアップを何時に開始するかを設定します。 -- **毎週**: 週に一回自動バックアップをおこないます。 バックアップを開始する曜日と時刻を入力するエリアが表示されます。 -- **毎月**: 月に一回自動バックアップをおこないます。 バックアップを開始する日付と時刻を入力するエリアが表示されます。 -- **カスタマイズ**: 自動バックアップを詳細にスケジュールする場合に使用します。 このオプションを選択すると、複数の入力エリアが表示されます: +- **毎日**: 日に一回自動バックアップをおこないます。バックアップを何時に開始するかを設定します。 +- **毎週**: 週に一回自動バックアップをおこないます。バックアップを開始する曜日と時刻を入力するエリアが表示されます。 +- **毎月**: 月に一回自動バックアップをおこないます。バックアップを開始する日付と時刻を入力するエリアが表示されます。 +- **カスタマイズ**: 自動バックアップを詳細にスケジュールする場合に使用します。このオプションを選択すると、複数の入力エリアが表示されます: - **X 時間ごと**: 時間単位でバックアップの間隔をスケジュールできます。 1から24までの値を設定できます。 - * **X 日ごと**: 日単位でバックアップの間隔をスケジュールできます。 たとえば、毎日バックアップをおこなうには 1 と設定します。 このオプションを選択した場合、バックアップが開始される時刻を設定しなければなりません。 - * **X 週ごと**: 週単位でバックアップの間隔をスケジュールできます。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションを選択した場合、バックアップを開始する曜日と時刻を設定しなければなりません。 複数の曜日を選択することもできます。 たとえば、毎週水曜日と金曜日にバックアップをするようプログラムできます。 - * **X 月ごと**: 月単位でバックアップの間隔をスケジュールできます。 たとえば、毎月バックアップをおこなうには 1 と設定します。 このオプションを選択した場合、バックアップを開始する日付と時刻を設定しなければなりません。 + * **X 日ごと**: 日単位でバックアップの間隔をスケジュールできます。たとえば、毎日バックアップをおこなうには 1 と設定します。このオプションを選択した場合、バックアップが開始される時刻を設定しなければなりません。 + * **X 週ごと**: 週単位でバックアップの間隔をスケジュールできます。たとえば、毎週バックアップをおこなうには 1 と設定します。このオプションを選択した場合、バックアップを開始する曜日と時刻を設定しなければなりません。複数の曜日を選択することもできます。たとえば、毎週水曜日と金曜日にバックアップをするようプログラムできます。 + * **X 月ごと**: 月単位でバックアップの間隔をスケジュールできます。たとえば、毎月バックアップをおこなうには 1 と設定します。このオプションを選択した場合、バックアップを開始する日付と時刻を設定しなければなりません。 -> 夏時間と標準時の切り替えがある場合にはスケジューラーが一時的に影響され、次のバックアップ実行が 1時間ずれる場合があります。 このずれは一回限りであり、その後のバックアップはスケジュール時間どおりに実行されます。 +> 夏時間と標準時の切り替えがある場合にはスケジューラーが一時的に影響され、次のバックアップ実行が 1時間ずれる場合があります。このずれは一回限りであり、その後のバックアップはスケジュール時間どおりに実行されます。 ## 設定 -ストラクチャー設定のバックアップ/設定ページではバックアップやログファイルの有効化/無効化、および保存先を設定できます。 これらのパラメーターは、4D や 4D Server で開かれる各アプリケーションごとに設定されます。 +ストラクチャー設定のバックアップ/設定ページではバックアップやログファイルの有効化/無効化、および保存先を設定できます。これらのパラメーターは、4D や 4D Server で開かれる各アプリケーションごとに設定されます。 ![](../assets/en/Backup/backup032.png) @@ -48,14 +48,14 @@ title: バックアップ設定 このエリアでは、次回のバックアップ時にコピー対象とするファイルやフォルダーを指定します。 -- **データ**: アプリケーションのデータファイル。 このオプションが選択されている場合、次のものがデータとともにバックアップされます: +- **データ**: アプリケーションのデータファイル。このオプションが選択されている場合、次のものがデータとともにバックアップされます: - データベースのカレントログファイル (あれば) - [データファイルの隣に置かれた](../Project/architecture.md#settings-フォルダー) `Settings` フォルダー (あれば)。これは *データファイル用のユーザー設定* を格納しています。 -- **ストラクチャー**: アプリケーションの Project フォルダーとファイル。 プロジェクトがコンパイルされている場合には、このオプションは .4dz ファイルをバックアップします。 このオプションがチェックされていると、[Project フォルダーと同階層に置かれた](../Project/architecture.mdsettings-ユーザー) `Settings` フォルダーが自動でバックアップされます。これは、*ユーザー設定* を格納しています。 +- **ストラクチャー**: アプリケーションの Project フォルダーとファイル。プロジェクトがコンパイルされている場合には、このオプションは .4dz ファイルをバックアップします。このオプションがチェックされていると、[Project フォルダーと同階層に置かれた](../Project/architecture.mdsettings-ユーザー) `Settings` フォルダーが自動でバックアップされます。これは、*ユーザー設定* を格納しています。 - **ユーザーストラクチャー(バイナリデータベースのみ)**: *廃止予定* -- **添付**: このエリアでは、アプリケーションと同時にバックアップの対象とするファイルやフォルダーを指定します。 ここではどのようなタイプのファイル (ドキュメントやプラグイン、テンプレート、ラベル、レポート、ピクチャーなど) でも指定できます。 個々のファイル、または丸ごとバックアップするフォルダーを個々に設定できます。 添付エリアには、設定されたファイルのパスが表示されます。 +- **添付**: このエリアでは、アプリケーションと同時にバックアップの対象とするファイルやフォルダーを指定します。ここではどのようなタイプのファイル (ドキュメントやプラグイン、テンプレート、ラベル、レポート、ピクチャーなど) でも指定できます。個々のファイル、または丸ごとバックアップするフォルダーを個々に設定できます。添付エリアには、設定されたファイルのパスが表示されます。 - **削除**: 選択したファイルを添付エリアから取り除きます。 - - **フォルダー追加...**: バックアップに追加するフォルダーを選択するダイアログボックスを表示します。 復元の場合、フォルダーがその内容物とともに復元されます。 アプリケーションファイルを含むフォルダーを除き、すべてのフォルダーやマシンに接続されたボリュームを選択できます。 + - **フォルダー追加...**: バックアップに追加するフォルダーを選択するダイアログボックスを表示します。復元の場合、フォルダーがその内容物とともに復元されます。アプリケーションファイルを含むフォルダーを除き、すべてのフォルダーやマシンに接続されたボリュームを選択できます。 - **ファイル追加...**: バックアップに追加するファイルを選択するダイアログボックスを表示します。 ### バックアップファイル保存先 @@ -64,41 +64,38 @@ title: バックアップ設定 エリアをクリックすると、ファイルの場所がポップアップで表示されます。 -バックアップファイルの格納場所を変更するには、**[...]** ボタンをクリックします。 選択ダイアログが表示され、バックアップファイルを配置するフォルダーやディスクを選択できます。 "使用状況" と "空き容量" エリアは、選択したフォルダーが存在するディスクの状態を自動で表示します。 +バックアップファイルの格納場所を変更するには、**[...]** ボタンをクリックします。選択ダイアログが表示され、バックアップファイルを配置するフォルダーやディスクを選択できます。"使用状況" と "空き容量" エリアは、選択したフォルダーが存在するディスクの状態を自動で表示します。 ### ログ管理 -**ログを使用** オプションが選択されていると、アプリケーションはログファイルを使用します。 カレントデータファイル用のログファイルのパス名は、オプションの下にて指定します。 このオプションが選択されている場合、ログファイルなしでアプリケーションを開くことはできません。 ログファイルの詳細については、[ログファイル](log.md) を参照ください。 +**ログを使用** オプションが選択されていると、アプリケーションはログファイルを使用します。カレントデータファイル用のログファイルのパス名は、オプションの下にて指定します。このオプションが選択されている場合、ログファイルなしでアプリケーションを開くことはできません。ログファイルの詳細については、[ログファイル](log.md) を参照ください。 -デフォルトでは、4D で作成されたすべてのプロジェクトでログファイルが使用されます (**環境設定** の **一般ページ** 内でチェックされている **ログを使用** オプションです)。 ログファイルには *data.journal* のように名前が付けられ、Data フォルダー内に置かれます。 +デフォルトでは、4D で作成されたすべてのプロジェクトでログファイルが使用されます (**環境設定** の **一般ページ** 内でチェックされている **ログを使用** オプションです)。ログファイルには *data.journal* のように名前が付けられ、Data フォルダー内に置かれます。 -> 新しいログファイルを有効にするには、その前にアプリケーションのデータをバックアップしなければなりません。 現在使用しているデータファイルについてこのオプションをチェックすると、バックアップが必要である旨の警告メッセージが表示されます。 ログファイルの作成は延期され、実際には次のバックアップの後にログファイルが作成されます。 +> 新しいログファイルを有効にするには、その前にアプリケーションのデータをバックアップしなければなりません。現在使用しているデータファイルについてこのオプションをチェックすると、バックアップが必要である旨の警告メッセージが表示されます。ログファイルの作成は延期され、実際には次のバックアップの後にログファイルが作成されます。 ## バックアップ & 復元 -バックアップ&復旧の設定は必要に応じて変更します。 デフォルトの設定は、標準的なバックアップ動作をおこないます。 +バックアップ&復旧の設定は必要に応じて変更します。デフォルトの設定は、標準的なバックアップ動作をおこないます。 ![](../assets/en/Backup/backup04.png) ### 一般設定 -- **最新のバックアップのみ保存 X バックアップファイル**: このパラメーターを有効にすると、指定された数の最新バックアップファイルだけが保持され、古いバックアップファイルは削除されます。 この機能は以下のように動作します: バックアップ処理が完了したら、アーカイブが作成されたのと同じ場所、同じ名前のもっとも古いアーカイブを削除します。ディスクスペースを確保するため、バックアップ前に削除するよう、削除のタイミングを変更することもできます。 - たとえば、3世代のファイルを保持するよう設定している場合、最初の 3回のバックアップで MyBase-0001、MyBase-0002、MyBase-0003 が作成され、 4回目のバックアップで MyBase-0004 が作成されたのちに MyBase-0001 が削除されます。 この設定はデフォルトで有効になっており、4D は 3世代のバックアップを保持します。 - このメカニズムを無効にするには、チェックボックスの選択を外します。 +- **最新のバックアップのみ保存 X バックアップファイル**: このパラメーターを有効にすると、指定された数の最新バックアップファイルだけが保持され、古いバックアップファイルは削除されます。この機能は以下のように動作します: バックアップ処理が完了したら、アーカイブが作成されたのと同じ場所、同じ名前のもっとも古いアーカイブを削除します。ディスクスペースを確保するため、バックアップ前に削除するよう、削除のタイミングを変更することもできます。たとえば、3世代のファイルを保持するよう設定している場合、最初の 3回のバックアップで MyBase-0001、MyBase-0002、MyBase-0003 が作成され、 4回目のバックアップで MyBase-0004 が作成されたのちに MyBase-0001 が削除されます。この設定はデフォルトで有効になっており、4D は 3世代のバックアップを保持します。このメカニズムを無効にするには、チェックボックスの選択を外します。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。 そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。 エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。 このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。 ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 +- **データファイルが更新された場合のみバックアップを行う**: このオプションが選択された場合、前回のバックアップ以降にデータが追加・変更・削除された場合のみ、4D は定期的なバックアップを開始します。そうでない場合、定期的なバックアップはキャンセルされ、次回のスケジュールまで延期されます。エラーは生成されませんが、バックアップジャーナルにはバックアップが延期された旨記録されます。このオプションを使用すれば、主に参照目的で使用されているアプリケーションのバックアップに消費されるマシン時間を節約できます。ストラクチャーや添付ファイルに対して変更がおこなわれていても、データファイルの更新としては扱われない旨注意してください。 > このパラメーターは、アプリケーションおよびログファイル両方のバックアップに影響します。 -- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。 このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。 このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 +- **最も古いバックアップファイルを削除**: このオプションは "最新のバックアップのみ保存 X バックアップファイル" が有効になっている場合のみ使用されます。このオプションを使用して、最も古いバックアップファイルを削除するタイミングを設定します。選択肢は **バックアップ前**、あるいは **バックアップ後** です。このオプションが機能するには、バックアップファイルが名称変更されたり、移動されたりしていてはなりません。 -- **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。 バックアップが実行できなかった場合、4D では再試行することが可能です。 - - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。 失敗したバックアップはキャンセルされます。 エラーが生成されます。 - - **指定時間経過後に再試行**: このオプションが選択されていると、設定された待ち時間経過後にバックアップを再試行します。 このメカニズムを使用すると、バックアップをブロックするような特定の状況に対応することが可能となります。 秒、分、あるいは時間単位で待ち時間を設定できます。 次のバックアップ試行にも失敗するとエラーが生成され、ステータスエリアに失敗状況が表示され、バックアップジャーナルにも記録されます。 - - **操作をキャンセル X 試行後**: このパラメーターを使用して、バックアップ試行の失敗最大数を設定できます。 この最大数に達してもバックアップが正しく実行できなかった場合、バックアップはキャンセルされ、エラー 1401 ("バックアップ試行の最大数に達しました。 自動バックアップは無効になります") が生成されます。 この場合、データベースを再起動するか、手動バックアップが成功するまで自動バックアップはおこなわれません。 - このパラメーターは、人による介入が必要となるような問題があり、バックアップ試行が自動的に繰り返されることにより全体的なパフォーマンスに影響するようなケースで使用できます。 デフォルトでこのオプションは選択されていません。 +- **バックアップ失敗時**: このオプションを使用して、バックアップ失敗時の処理を設定できます。バックアップが実行できなかった場合、4D では再試行することが可能です。 + - **次回の予定された日付と時刻に再試行する**: このオプションは、定期的な自動バックアップを設定されている場合にのみ意味があります。失敗したバックアップはキャンセルされます。エラーが生成されます。 + - **指定時間経過後に再試行**: このオプションが選択されていると、設定された待ち時間経過後にバックアップを再試行します。このメカニズムを使用すると、バックアップをブロックするような特定の状況に対応することが可能となります。秒、分、あるいは時間単位で待ち時間を設定できます。次のバックアップ試行にも失敗するとエラーが生成され、ステータスエリアに失敗状況が表示され、バックアップジャーナルにも記録されます。 + - **操作をキャンセル X 試行後**: このパラメーターを使用して、バックアップ試行の失敗最大数を設定できます。この最大数に達してもバックアップが正しく実行できなかった場合、バックアップはキャンセルされ、エラー 1401 ("バックアップ試行の最大数に達しました。 自動バックアップは無効になります") が生成されます。この場合、データベースを再起動するか、手動バックアップが成功するまで自動バックアップはおこなわれません。このパラメーターは、人による介入が必要となるような問題があり、バックアップ試行が自動的に繰り返されることにより全体的なパフォーマンスに影響するようなケースで使用できます。デフォルトでこのオプションは選択されていません。 > 定期的なバックアップが実行される予定時刻にアプリケーションが起動されていなかった場合、4D はバックアップが失敗したものとして扱います。 @@ -107,37 +104,37 @@ title: バックアップ設定 これらのオプションはメインのバックアップファイルとログバックアップファイルに適用されます。 - **セグメントサイズ (MB)**: - 4D ではアーカイブをセグメントに分割することができます。 この振る舞いにより、たとえばバックアップファイルを複数の異なるディスク (DVDやUSBデバイス等) に格納できます。 復元時、4D はセグメントを自動的に統合します。 各セグメントには MyApplication[xxxx-yyyy].4BK といった名称がつけられます (xxxx はバックアップ番号、yyyy はセグメント番号)。 たとえば、MyApplication のバックアップが 3つのセグメントに分割されると、次のような名前になります: MyApplication[0006-0001].4BK、MyApplication[0006-0002].4BK、MyApplication[0006-0003].4BK - **セグメントサイズ** はコンボボックスであり、各セグメントのサイズを MB単位で設定できます。 メニューから定義済み値を選択するか、0~2048 の値を入力できます。 0 を指定するとセグメント化はされません (**なし** を指定したのと同じ)。 + 4D ではアーカイブをセグメントに分割することができます。この振る舞いにより、たとえばバックアップファイルを複数の異なるディスク (DVDやUSBデバイス等) に格納できます。復元時、4D はセグメントを自動的に統合します。各セグメントには MyApplication[xxxx-yyyy].4BK といった名称がつけられます (xxxx はバックアップ番号、yyyy はセグメント番号)。たとえば、MyApplication のバックアップが 3つのセグメントに分割されると、次のような名前になります: MyApplication[0006-0001].4BK、MyApplication[0006-0002].4BK、MyApplication[0006-0003].4BK + **セグメントサイズ** はコンボボックスであり、各セグメントのサイズを MB単位で設定できます。メニューから定義済み値を選択するか、0~2048 の値を入力できます。 0 を指定するとセグメント化はされません (**なし** を指定したのと同じ)。 - **圧縮率**: - デフォルトで 4D はバックアップファイルを圧縮してディスクスペースを節約します。 しかし大量のデータがある場合、ファイルの圧縮処理はバックアップにかかる時間を長くします。 **圧縮率** オプションを使用してファイルの圧縮モードを調整できます: - - **なし**: ファイルの圧縮はおこなわれません。 バックアップは早くおこなわれますが、ファイルサイズは大きくなります。 + デフォルトで 4D はバックアップファイルを圧縮してディスクスペースを節約します。しかし大量のデータがある場合、ファイルの圧縮処理はバックアップにかかる時間を長くします。**圧縮率** オプションを使用してファイルの圧縮モードを調整できます: + - **なし**: ファイルの圧縮はおこなわれません。バックアップは早くおこなわれますが、ファイルサイズは大きくなります。 - **速度** (デフォルト): このオプションはバックアップの速度とアーカイブサイズのバランスが考慮されたものです。 - - **圧縮**: アーカイブに最大の圧縮率が適用されます。 アーカイブファイルはディスク上で最小のサイズとなりますが、バックアップの速度は低下します。 + - **圧縮**: アーカイブに最大の圧縮率が適用されます。アーカイブファイルはディスク上で最小のサイズとなりますが、バックアップの速度は低下します。 - **インターレース率と冗長率**: - 4D は、最適化 (インターレース) とセキュリティ (冗長) メカニズムに基づく特定のアルゴリズムを使用してアーカイブを生成します。 これらのメカニズムを必要に応じて設定できます。 これらのオプションのメニューには低・中・高・なし (デフォルト) の選択肢があります。 - - **インターレース率**: インターレースとはデータを連続しない領域に書き込むことにより、セクター損傷の際のリスクを低減させるものです。 率を上げることでリスクがより低減されますが、データの処理により多くのメモリが必要となります。 - - **冗長率**: 冗長は同じ情報を複数回繰り返すことで、ファイル中のデータを保護するものです。 冗長率を高くするとよりファイルが保護されます。 しかし書き込みは遅くなり、ファイルサイズも増大します。 + 4D は、最適化 (インターレース) とセキュリティ (冗長) メカニズムに基づく特定のアルゴリズムを使用してアーカイブを生成します。これらのメカニズムを必要に応じて設定できます。これらのオプションのメニューには低・中・高・なし (デフォルト) の選択肢があります。 + - **インターレース率**: インターレースとはデータを連続しない領域に書き込むことにより、セクター損傷の際のリスクを低減させるものです。率を上げることでリスクがより低減されますが、データの処理により多くのメモリが必要となります。 + - **冗長率**: 冗長は同じ情報を複数回繰り返すことで、ファイル中のデータを保護するものです。冗長率を高くするとよりファイルが保護されます。 しかし書き込みは遅くなり、ファイルサイズも増大します。 ### 自動復元とログの統合 #### データベースが壊れていたら、最新のバックアップから復元する -このオプションが選択されていると、ファイル破損などの異常が検知された場合、4D は起動時にアプリケーションの有効な最新のバックアップからのデータの復旧を自動で開始します。 ユーザーによる介入は必要ありませんが、処理はバックアップジャーナルに記録されます。 +このオプションが選択されていると、ファイル破損などの異常が検知された場合、4D は起動時にアプリケーションの有効な最新のバックアップからのデータの復旧を自動で開始します。ユーザーによる介入は必要ありませんが、処理はバックアップジャーナルに記録されます。 #### データベースが完全でない場合、最新のログを統合する -このオプションがチェックされていると、データファイルに存在しない操作がカレントログファイルに含まれている場合、プログラムは自動的にそれを統合します。 同じリポジトリに連続した有効な .journal ファイルがある場合、プログラムは必要な .journal ファイルを古いものから最新のものまで、あらかじめ統合しておきます。 このようなケースは、ディスクに書き込まれていないデータがまだキャッシュ中に存在する状態で、電力の切断が起きた場合や、データファイルを開いた時に異常が検知されて復元処理がおこなわれた場合に発生します。 +このオプションがチェックされていると、データファイルに存在しない操作がカレントログファイルに含まれている場合、プログラムは自動的にそれを統合します。同じリポジトリに連続した有効な .journal ファイルがある場合、プログラムは必要な .journal ファイルを古いものから最新のものまで、あらかじめ統合しておきます。このようなケースは、ディスクに書き込まれていないデータがまだキャッシュ中に存在する状態で、電力の切断が起きた場合や、データファイルを開いた時に異常が検知されて復元処理がおこなわれた場合に発生します。 :::note -この機能は、カレントログファイルフォルダーにある全ログファイルがプログラムにより起動時に解析されることを意味します。 したがって、パフォーマンス上の理由から、不要なログファイルがフォルダーに保存されたままにしておかないことが推奨されます。 +この機能は、カレントログファイルフォルダーにある全ログファイルがプログラムにより起動時に解析されることを意味します。したがって、パフォーマンス上の理由から、不要なログファイルがフォルダーに保存されたままにしておかないことが推奨されます。 ::: -ユーザーにダイアログボックスが提示されることはありません。 処理は完全に自動です。 処理はバックアップジャーナルに記録されます。 +ユーザーにダイアログボックスが提示されることはありません。処理は完全に自動です。処理はバックアップジャーナルに記録されます。 > 自動復元の場合、復元されるのは次の要素に限られます: > @@ -151,6 +148,6 @@ title: バックアップ設定 :::caution -[データファイルが暗号化](../MSC/encrypt.md)されている場合、[データ暗号化キー](../MSC/encrypt#暗号化キーを保存する) を `.4DKeyChain` ファイルに保存し、自動復元機能が発動した場合に 4D がアクセスできるよう、ドライブの一番上の階層に保存します。 そうでない場合は、復元中にエラーが返されます。 +[データファイルが暗号化](../MSC/encrypt.md)されている場合、[データ暗号化キー](../MSC/encrypt#暗号化キーを保存する) を `.4DKeyChain` ファイルに保存し、自動復元機能が発動した場合に 4D がアクセスできるよう、ドライブの一番上の階層に保存します。そうでない場合は、復元中にエラーが返されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/about.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/about.md index ff5c1c84252f26..96236d111fcf81 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/about.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/about.md @@ -3,7 +3,7 @@ id: about title: 4Dは独自のプログラミング言語を持っています。 --- -1300を超えるこのビルトインの言語により、4Dは Web、モバイル、およびデスクトップアプリケーションを作成する、パワフルな開発ツールとなっています。 単純な計算から複雑なカスタムインターフェースの作成まで、4D 言語は様々なタスクに使用することができます。 たとえば、以下のようなことが可能です: +1300を超えるこのビルトインの言語により、4Dは Web、モバイル、およびデスクトップアプリケーションを作成する、パワフルな開発ツールとなっています。単純な計算から複雑なカスタムインターフェースの作成まで、4D 言語は様々なタスクに使用することができます。たとえば、以下のようなことが可能です: - クエリや並べ替えなどのレコード管理エディターにプログラムでアクセスする - データベースの情報をもとに複雑なレポートやラベルを作成・印刷する @@ -13,22 +13,22 @@ title: 4Dは独自のプログラミング言語を持っています。 - 4D アプリケーションと他のアプリケーションの間で、データの書き出しや読み込みをおこなう - 4D のプログラミング言語に、他の言語で書かれたプロシージャーを組み込む -4D のプログラミング言語は柔軟性とパワーを備え、あらゆるレベルのユーザーやデベロッパーにとって多種多様な情報管理業務を達成するための理想的なツールです。 初心者のユーザーであっても、計算処理を手早く実行できます。 ある程度コンピューターの知識を持っているユーザーであれば、プログラミング経験がなくてもアプリケーションをカスタマイズできます。 熟練したデベロッパーであれば、4D の強力なプログラミング言語を駆使して、ファイル転送や通信、モニタリングなどの高度な機能をアプリケーションに組み込むことができます。 他言語でプログラミング経験がある開発者は、独自のコマンドを 4D に追加することができます。 +4D のプログラミング言語は柔軟性とパワーを備え、あらゆるレベルのユーザーやデベロッパーにとって多種多様な情報管理業務を達成するための理想的なツールです。初心者のユーザーであっても、計算処理を手早く実行できます。ある程度コンピューターの知識を持っているユーザーであれば、プログラミング経験がなくてもアプリケーションをカスタマイズできます。熟練したデベロッパーであれば、4D の強力なプログラミング言語を駆使して、ファイル転送や通信、モニタリングなどの高度な機能をアプリケーションに組み込むことができます。他言語でプログラミング経験がある開発者は、独自のコマンドを 4D に追加することができます。 ## 4D ランゲージとは -4D ランゲージは、私たちが日ごろ話している言語とさして変わりありません。 アイデアの表現や、伝達、指示をおこなうためのコミュニケーションの一形態です。 話し言葉と同様に、4D は独自の語彙・文法・構文を持っています。 このランゲージを使用して、アプリケーションやデータをどのように扱うのかを 4D に伝えます。 +4D ランゲージは、私たちが日ごろ話している言語とさして変わりありません。アイデアの表現や、伝達、指示をおこなうためのコミュニケーションの一形態です。話し言葉と同様に、4D は独自の語彙・文法・構文を持っています。 このランゲージを使用して、アプリケーションやデータをどのように扱うのかを 4D に伝えます。 -4D を効果的に使用する目的では、ランゲージのすべてを知っている必要はありません。 言葉を交わすために言語のすべてを知る必要がないのと同じです。 言葉を交わすために言語のすべてを知る必要がないのと同じです。実際、少ない語彙でも雄弁に語ることはできるものです。 4D ランゲージも、創造性を発揮するのに必要となるのはほんの一部で、残りは必要に応じて覚えればよいのです。 +4D を効果的に使用する目的では、ランゲージのすべてを知っている必要はありません。 言葉を交わすために言語のすべてを知る必要がないのと同じです。言葉を交わすために言語のすべてを知る必要がないのと同じです。実際、少ない語彙でも雄弁に語ることはできるものです。 4D ランゲージも、創造性を発揮するのに必要となるのはほんの一部で、残りは必要に応じて覚えればよいのです。 ## なぜランゲージを使用するのか -4D を使いはじめると、最初はプログラミング言語があまり必要ないように思えるかもしれません。 プログラミングせずとも広範囲のデータ管理タスクをおこなうことのできる自由度の高いツールを、4D はデザインモードにおいて提供しています。 データ入力やクエリ、並べ替え、レポート作成などの基本的なタスクは簡単に処理できます。 それだけでなく、データ検証や入力補助、グラフ作成、ラベルの生成など、多くの追加機能も提供されています。 +4D を使いはじめると、最初はプログラミング言語があまり必要ないように思えるかもしれません。プログラミングせずとも広範囲のデータ管理タスクをおこなうことのできる自由度の高いツールを、4D はデザインモードにおいて提供しています。データ入力やクエリ、並べ替え、レポート作成などの基本的なタスクは簡単に処理できます。それだけでなく、データ検証や入力補助、グラフ作成、ラベルの生成など、多くの追加機能も提供されています。 -では、なぜ 4D ランゲージが必要なのでしょうか。 たとえば、以下のような用途が考えられます: +では、なぜ 4D ランゲージが必要なのでしょうか。たとえば、以下のような用途が考えられます: - 自動的な繰り返しタスク: データの更新、複雑なレポートの生成、長い一連の操作などを全自動でおこなうことができます。 -- ユーザーインタフェースのコントロール: ウィンドウおよびメニューの管理、フォームやインタフェースオブジェクトの制御ができます。 +- ユーザーインターフェースのコントロール: ウィンドウおよびメニューの管理、フォームやインターフェースオブジェクトの制御ができます。 - 高度なデータ管理: トランザクション処理、複雑なデータ検証、マルチユーザー管理、セットや命名セレクションの処理などが含まれます。 - コンピューターのコントロール: シリアルポート通信やドキュメント管理、エラー管理が可能です。 - アプリケーションの作成: ダブルクリックで起動する、カスタマイズされたアプリケーションをビルドできます。 @@ -38,25 +38,24 @@ title: 4Dは独自のプログラミング言語を持っています。 ## データ制御 -4D ランゲージを使用すれば、パワフルでエレガントに、データをコントロールできます。 4D ランゲージは初心者にも使いやすく、経験豊かなデベロッパーの利用に耐えるほど高度です。 ランゲージの利用により、ビルトインのデータベース機能から、完全にカスタマイズされたアプリケーションにスムーズに移行できます。 +4D ランゲージを使用すれば、パワフルでエレガントに、データをコントロールできます。 4D ランゲージは初心者にも使いやすく、経験豊かなデベロッパーの利用に耐えるほど高度です。ランゲージの利用により、ビルトインのデータベース機能から、完全にカスタマイズされたアプリケーションにスムーズに移行できます。 -4D ランゲージのコマンドを使用して標準のレコード管理エディターにアクセスできます。 たとえば、デザインモードにおいて「クエリ」ツールバーボタンを使って開けるクエリエディターは、`QUERY` コマンドを使用することでも表示されます。 さらに、QUERY コマンドを使用すれば、エディターを開かなくても指定したデータを検索できるのです。 たとえば `QUERY ([People];[People]Last Name="Smith")` と記述すると、データベースから "Smith" という名前の人物をすべて検索します。 +4D ランゲージのコマンドを使用して標準のレコード管理エディターにアクセスできます。たとえば、デザインモードにおいて「クエリ」ツールバーボタンを使って開けるクエリエディターは、`QUERY` コマンドを使用することでも表示されます。さらに、QUERY コマンドを使用すれば、エディターを開かなくても指定したデータを検索できるのです。たとえば `QUERY ([People];[People]Last Name="Smith")` と記述すると、データベースから "Smith" という名前の人物をすべて検索します。 -ひとつのコマンドが、従来のプログラム言語で書かれた数百行あるいは数千行にも及ぶコードに相当することもしばしばです。 このパワーを持ちながら、コマンドにはシンプルな英語の名称がつけられています。 たとえば、クエリをおこなうには `QUERY` コマンドを、レコードを追加するには `ADD RECORD` コマンドを使用します。 +ひとつのコマンドが、従来のプログラム言語で書かれた数百行あるいは数千行にも及ぶコードに相当することもしばしばです。このパワーを持ちながら、コマンドにはシンプルな英語の名称がつけられています。たとえば、クエリをおこなうには `QUERY` コマンドを、レコードを追加するには `ADD RECORD` コマンドを使用します。 -4D ランゲージは、ほとんどのタスクを簡単に実行できるようデザインされています。 レコードの追加、並べ替え、データの検索などの操作がシンプルなコマンドで提供されています。 さらにコマンドを使用してシリアルポートのコントロール、ディスク上のドキュメントの読み込み、高度なトランザクション処理等を行うこともできるのです。 +4D ランゲージは、ほとんどのタスクを簡単に実行できるようデザインされています。レコードの追加、並べ替え、データの検索などの操作がシンプルなコマンドで提供されています。さらにコマンドを使用してシリアルポートのコントロール、ディスク上のドキュメントの読み込み、高度なトランザクション処理等を行うこともできるのです。 -4D ランゲージは非常に高度なタスクをも比較的簡単におこないます。 このようなタスクをランゲージなしでおこなうことはほとんど想像できません。 -ランゲージのパワフルなコマンドを使用したとしても、タスクによっては複雑で難しいものとなることがあります。 ツール自身はタスクを処理しませんが、困難なタスクの処理を助けてくれます。 たとえば、ワープロを使用すれば早く簡単に文章を書くことができますが、ワープロ自体が文章を代わりに考えてくれるわけではありません。 4D ランゲージの使用はデータ管理を楽にし、複雑なタスクにも自信を持って取り掛かれるようにします。 +4D ランゲージは非常に高度なタスクをも比較的簡単におこないます。このようなタスクをランゲージなしでおこなうことはほとんど想像できません。ランゲージのパワフルなコマンドを使用したとしても、タスクによっては複雑で難しいものとなることがあります。ツール自身はタスクを処理しませんが、困難なタスクの処理を助けてくれます。たとえば、ワープロを使用すれば早く簡単に文章を書くことができますが、ワープロ自体が文章を代わりに考えてくれるわけではありません。 4D ランゲージの使用はデータ管理を楽にし、複雑なタスクにも自信を持って取り掛かれるようにします。 -## 4D ランゲージは従来のコンピュータ言語ですか +## 4Dランゲージは従来のコンピューター言語ですか -従来のコンピュータ言語に馴れ親しんでいる方は、本節を参照してください。 それ以外の方は、この章を読みとばしても構いません。 +従来のコンピューター言語に馴れ親しんでいる方は、本節を参照してください。それ以外の方は、この章を読みとばしても構いません。 -4D ランゲージは従来のコンピュータ言語とは異なります。 4D ランゲージは、今日のコンピュータで使用できる最も先進的で柔軟性のある言語の1つです。 4D ランゲージは、人が作業をおこなうように処理するよう設計されています。 +4Dランゲージは従来のコンピューター言語とは異なります。 4Dランゲージは、今日のコンピューターで使用できる最も先進的で柔軟性のある言語の1つです。 4D ランゲージは、人が作業をおこなうように処理するよう設計されています。 -従来の言語を使用して開発を行う場合、まず念入りに計画を立てる必要があります。 実際、計画の立案は開発の重要な工程の1つです。 4D においては、プロジェクトのあらゆる部分でいつでもランゲージを使いはじめることができます。 たとえば、初めにフォームにメソッドを追加し、いくつかのメソッドをあとから追加することができます。 アプリケーションがより高度になったら、メニューから実行するプロジェクトメソッドを追加することもできます。 4D ランゲージは好きなだけ利用することができます。 他の多くのデータベースのような "すべてか無か" ではありません。 +従来の言語を使用して開発を行う場合、まず念入りに計画を立てる必要があります。実際、計画の立案は開発の重要な工程の1つです。 4D においては、プロジェクトのあらゆる部分でいつでもランゲージを使いはじめることができます。たとえば、初めにフォームにメソッドを追加し、いくつかのメソッドをあとから追加することができます。アプリケーションがより高度になったら、メニューから実行するプロジェクトメソッドを追加することもできます。 4D ランゲージは好きなだけ利用することができます。他の多くのデータベースのような "すべてか無か" ではありません。 -従来の言語では、インターフェースオブジェクトをあらかじめ正式な記述法で宣言・定義しなければなりません。 しかし、4D ではボタンなどのオブジェクトを作成し、そのまま使用することができます。 作成したオブジェクトは自動的に 4D によって管理されます。 たとえば、ボタンを使用するためには、ボタンをフォーム上に作成して名前を指定します。 ユーザーがボタンをクリックした時点で、ランゲージが自動的にメソッドに通知します。 +従来の言語では、インターフェースオブジェクトをあらかじめ正式な記述法で宣言・定義しなければなりません。しかし、4D ではボタンなどのオブジェクトを作成し、そのまま使用することができます。 作成したオブジェクトは自動的に 4D によって管理されます。たとえば、ボタンを使用するためには、ボタンをフォーム上に作成して名前を指定します。ユーザーがボタンをクリックした時点で、ランゲージが自動的にメソッドに通知します。 従来の言語は、コマンドの記述方法を制限するなどして、融通性に欠けることが多いのに対し、 4D ランゲージは伝統に縛られることなく進化していきます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/arrays.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/arrays.md index e33f6eb36ec8c9..f7776999dbd998 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/arrays.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/arrays.md @@ -3,17 +3,17 @@ id: arrays title: 配列 --- -**配列** とは、同じタイプの **変数** を番号付きで並べたものです。 各変数は、配列の **要素** といいます。 配列は作成時にサイズが与えられ、要素の追加・挿入・削除によって、または作成時に使用したコマンドの再使用によって、何度でもサイズを変更することができます。 配列要素には、1 から N の番号が付けられます (N は配列のサイズ)。 配列は必ず、特別な [要素ゼロ](#配列の要素ゼロ) を持ちます。 配列は 4D の変数です。 他の変数と同様、配列にもスコープがあり、4D ランゲージの規則に従いますが、他と異なるところがいくつかあります。 +**配列** とは、同じタイプの **変数** を番号付きで並べたものです。各変数は、配列の **要素** といいます。配列は作成時にサイズが与えられ、要素の追加・挿入・削除によって、または作成時に使用したコマンドの再使用によって、何度でもサイズを変更することができます。配列要素には、1 から N の番号が付けられます (N は配列のサイズ)。配列は必ず、特別な [要素ゼロ](#配列の要素ゼロ) を持ちます。配列は 4D の変数です。他の変数と同様、配列にもスコープがあり、4D ランゲージの規則に従いますが、他と異なるところがいくつかあります。 :::tip -ほとんどの場合において、**配列** より **コレクション** の利用が推奨されます。 コレクションは配列より柔軟なだけでなく、たくさんの専用メソッドを持ちます。 詳細については、[コレクション](Concepts/dt_collection.md) を参照してください。 +ほとんどの場合において、**配列** より **コレクション** の利用が推奨されます。コレクションは配列より柔軟なだけでなく、たくさんの専用メソッドを持ちます。詳細については、[コレクション](Concepts/dt_collection.md) を参照してください。 ::: ## 配列の作成 -配列は、"配列" テーマの配列宣言コマンドのいずれかを使用して作成します。 配列宣言コマンドは、一次元または 二次元の配列の作成やサイズ変更をすることができます。 二次元配列の詳細については [二次元配列](#二次元配列) を参照してください。 +配列は、"配列" テーマの配列宣言コマンドのいずれかを使用して作成します。配列宣言コマンドは、一次元または 二次元の配列の作成やサイズ変更をすることができます。二次元配列の詳細については [二次元配列](#二次元配列) を参照してください。 次のコードは、10個の要素からなる整数配列を作成 (宣言) します: @@ -35,7 +35,7 @@ ARRAY INTEGER(aiAnArray;0) ## 配列要素への値の代入 -配列中の要素は中カッコ ({… }) を使用して参照します。 中カッコの中には数字を入れて特定の要素を指定します。この数字を要素番号といいます。 次のコードは、5つの名前を atNames という配列に入れ、それらを警告ウィンドウに表示します: +配列中の要素は中カッコ ({… }) を使用して参照します。中カッコの中には数字を入れて特定の要素を指定します。この数字を要素番号といいます。次のコードは、5つの名前を atNames という配列に入れ、それらを警告ウィンドウに表示します: ```4d ARRAY TEXT(atNames;5) @@ -49,19 +49,19 @@ ARRAY INTEGER(aiAnArray;0) End for ``` -atNames{$vlElem} というシンタックスに注目してください。 atNames{3} のように数値リテラルを使うだけでなく、数値変数によって配列の要素番号を指定することができます。 ループ構造による反復を使用すると (`For...End for`, `Repeat...Until` または `While...End while`)、短いコードで配列の全要素、または一部の要素を対象とした処理をおこなうことができます。 +atNames{$vlElem} というシンタックスに注目してください。 atNames{3} のように数値リテラルを使うだけでなく、数値変数によって配列の要素番号を指定することができます。ループ構造による反復を使用すると (`For...End for`, `Repeat...Until` または `While...End while`)、短いコードで配列の全要素、または一部の要素を対象とした処理をおこなうことができます。 -**重要:** 代入演算子 (:=) と比較演算子 (=) とを混同しないように注意してください。 代入と比較は、まったく異なった性質の処理です。 +**重要:** 代入演算子 (:=) と比較演算子 (=) とを混同しないように注意してください。代入と比較は、まったく異なった性質の処理です。 ### 配列への配列の代入 -文字列やテキスト変数と違って、配列に配列を代入することはできません。 配列をそっくりそのまま別の配列にコピーするには `COPY ARRAY` コマンドを使います。 +文字列やテキスト変数と違って、配列に配列を代入することはできません。配列をそっくりそのまま別の配列にコピーするには `COPY ARRAY` コマンドを使います。 ## 配列の要素ゼロ -配列は必ず、要素ゼロを持ちます。 ドロップダウンリストなどのフォームオブジェクトに配列が設定されていた場合、要素ゼロが表示されることはありませんが、ランゲージでの利用に制限はありません (\*)。 +配列は必ず、要素ゼロを持ちます。ドロップダウンリストなどのフォームオブジェクトに配列が設定されていた場合、要素ゼロが表示されることはありませんが、ランゲージでの利用に制限はありません (\*)。 -例として、デフォルト値を指定せずにフォームオブジェクトを初期化したいとします。 このような場合に配列の要素ゼロが利用できます: +例として、デフォルト値を指定せずにフォームオブジェクトを初期化したいとします。このような場合に配列の要素ゼロが利用できます: ```4d // atName 配列と紐づいているコンボボックスまたはドロップダウンリストの @@ -86,7 +86,7 @@ atNames{$vlElem} というシンタックスに注目してください。 atNam ## 二次元配列 -配列宣言コマンドはそれぞれ、1次元および 2次元の配列を作成、またはサイズ変更ができます。 例: +配列宣言コマンドはそれぞれ、1次元および 2次元の配列を作成、またはサイズ変更ができます。例: ```4d ARRAY TEXT(atTopics;100;50) // 100行と 50列からなるテキスト配列を作成します @@ -151,7 +151,7 @@ atNames{$vlElem} というシンタックスに注目してください。 atNam テーブルやレコードを使用してディスク上に格納するデータと異なり、配列は常に全体がメモリに保持されます。 -たとえば、米国内の郵便番号がすべて [Zip Codes] テーブルに入力されている場合、約100,000件のレコードになります。 加えて、そのテーブルには郵便番号のほかに、対応する市・郡・州という複数のフィールドがあるとします。 カリフォルニアの郵便番号を選択した場合、4D データベースエンジンは [Zip Codes] テーブルから該当するレコードセレクションを作成して、必要な場合にのみ各レコードをロードします (たとえば表示や印刷時)。 つまり、4Dのデータベースエンジンによってディスクからメモリに部分的にロードされた (フィールドごとに同じタイプの) 順序づけられた一連の値で作業するということです。 +たとえば、米国内の郵便番号がすべて [Zip Codes] テーブルに入力されている場合、約100,000件のレコードになります。加えて、そのテーブルには郵便番号のほかに、対応する市・郡・州という複数のフィールドがあるとします。カリフォルニアの郵便番号を選択した場合、4D データベースエンジンは [Zip Codes] テーブルから該当するレコードセレクションを作成して、必要な場合にのみ各レコードをロードします (たとえば表示や印刷時)。つまり、4Dのデータベースエンジンによってディスクからメモリに部分的にロードされた (フィールドごとに同じタイプの) 順序づけられた一連の値で作業するということです。 同じことを配列で実行するのは、次の理由で禁止すべきです: @@ -159,9 +159,9 @@ atNames{$vlElem} というシンタックスに注目してください。 atNam - 配列は、常に全体がメモリ内に維持されるため、常時使用しない場合でも、作業セッションの間すべてのデータをメモリに置いておく必要があります。 - 配列全体が常にメモリ内に維持されることから、アプリケーションが開始されるたびに 4つの配列をディスクからロードして、終了時にはディスクに保存する必要があります。 当該データが作業セッション中に使用・変更されない場合もこれを省略することができません。 -**結論:** 配列は、ほどよい量のデータを短時間維持するためのものです。 他方、配列はメモリ内に置かれるため、扱いやすく高速操作が可能です。 +**結論:** 配列は、ほどよい量のデータを短時間維持するためのものです。他方、配列はメモリ内に置かれるため、扱いやすく高速操作が可能です。 -しかし、状況によっては何百、何千という要素を持った配列で作業する必要があります。 次の表に、各配列タイプがメモリ上に占めるバイト数を求めるための計算式を示します: +しかし、状況によっては何百、何千という要素を持った配列で作業する必要があります。次の表に、各配列タイプがメモリ上に占めるバイト数を求めるための計算式を示します: | 配列タイプ | メモリ使用量の計算式 (バイト単位) | | ------------ | ------------------------------------------------------------------------ | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/classes.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/classes.md index e9976dbcc2e70f..2375f6c79435d7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/classes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/classes.md @@ -5,9 +5,9 @@ title: クラス ## 概要 -4D ランゲージでは **クラス** の概念がサポートされています 。 プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 +4D ランゲージでは **クラス** の概念がサポートされています 。プログラミング言語では、クラスを利用することによって、属性やメソッドなどを持つ特定のオブジェクト種を定義することができます。 -ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。 各オブジェクトは、それ自身が属するクラスのインスタンスです。 クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 +ユーザークラスが定義されていれば、そのクラスのオブジェクトをコード内で **インスタンス化** することができます。各オブジェクトは、それ自身が属するクラスのインスタンスです。クラスは、別のクラスを [継承](#class-extends-classname) することで、その [関数](#function) と、([宣言された](#property) および [計算された](#function-get-と-function-set)) プロパティを受け継ぐことができます。 > 4D におけるクラスモデルは JavaScript のクラスに類似しており、プロトタイプチェーンに基づきます。 @@ -47,7 +47,7 @@ $hello:=$person.sayHello() // "Hello John Doe" ## クラスストア -定義されたクラスには、クラスストアよりアクセスすることができます。 クラスストアには次の二つが存在します: +定義されたクラスには、クラスストアよりアクセスすることができます。クラスストアには次の二つが存在します: - ユーザークラスとコンポーネントクラスストアのための [`cs`](../commands/cs) - ビルトインクラスのための [`4D`](../commands/4d) @@ -67,7 +67,7 @@ $hello:=$person.sayHello() // "Hello John Doe" -`cs` コマンドは、カレントプロジェクトまたはコンポーネントのユーザークラスストアを返します。 開いているプロジェクトまたはコンポーネント内で[定義されている](../Project/code-overview.md#クラスの作成) 全てのユーザークラスを返します。 デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 +`cs` コマンドは、カレントプロジェクトまたはコンポーネントのユーザークラスストアを返します。開いているプロジェクトまたはコンポーネント内で[定義されている](../Project/code-overview.md#クラスの作成) 全てのユーザークラスを返します。デフォルトでは、 [ORDAクラス](ORDA/ordaClasses.md) のみ利用可能です。 #### 例題 @@ -112,7 +112,7 @@ $key:=4D.CryptoKey.new(New object("type";"ECDSA";"curve";"prime256v1")) ## Class オブジェクト -クラスがプロジェクト内で[定義されて](../Project/code-overview.md#クラスの作成) いれば、それは4D ランゲージ環境に読み込まれます。 クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: +クラスがプロジェクト内で[定義されて](../Project/code-overview.md#クラスの作成) いれば、それは4D ランゲージ環境に読み込まれます。クラスとは、それ自身が ["Class" クラス](API/ClassClass.md) のオブジェクトです。 Class オブジェクトは次のプロパティや関数を持ちます: - [`name`](API/ClassClass.md#name) 文字列 - [`superclass`](API/ClassClass.md#superclass) オブジェクト (無い場合は null) @@ -158,11 +158,11 @@ Class オブジェクトそのものは [共有オブジェクト](shared.md) ::: -クラス関数とは、当該クラスのプロパティです。 クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです 。 クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 +クラス関数とは、当該クラスのプロパティです。クラス関数は [`4D.Function`](API/FunctionClass.md) クラスのオブジェクトです 。クラス定義ファイルでは、`Function` キーワードに続けて関数名を指定して宣言をおこないます。 -[共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` 構文](shared.md#useend-use) なしで関数を呼び出せるようにできます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 +[共有クラス](#共有クラス) 内で関数が宣言されている場合は、`shared` キーワードを使用することによって、[`Use...End use` 構文](shared.md#useend-use) なしで関数を呼び出せるようにできます。詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 -クライアント/サーバーアプリケーションのコンテキストにおいては、 `local` または `server` キーワードを使用することで、どちらのマシン上で関数を実行すべきかを指定することができます。 これらのキーワードはORDA データモデル関数と共有シングルトン/セッションシングルトン関数でのみ使用することができます。 詳細については、後述の [local および server 関数](#local-および-server) の項目を参照ください。 +クライアント/サーバーアプリケーションのコンテキストにおいては、 `local` または `server` キーワードを使用することで、どちらのマシン上で関数を実行すべきかを指定することができます。これらのキーワードはORDA データモデル関数と共有シングルトン/セッションシングルトン関数でのみ使用することができます。詳細については、後述の [local および server 関数](#local-および-server) の項目を参照ください。 関数名は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 @@ -174,17 +174,17 @@ Class オブジェクトそのものは [共有オブジェクト](shared.md) :::tip -アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。 たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass."` とタイプしても、この関数は候補として提示されません 。 +アンダースコア ("_") 文字で関数名を開始すると、その関数は 4Dコードエディターの自動補完機能から除外されます。たとえば、`MyClass` に `Function _myPrivateFunction` を宣言した場合、コードエディターにおいて `"cs.MyClass."` とタイプしても、この関数は候補として提示されません。 ::: -関数名のすぐ後に、名前とデータ型を指定して [引数](#引数) を宣言します (戻り値の宣言も可)。 例: +関数名のすぐ後に、名前とデータ型を指定して [引数](#引数) を宣言します (戻り値の宣言も可)。例: ```4d Function computeArea($width : Integer; $height : Integer)->$area : Integer ``` -クラスメソッド内でオブジェクトインスタンスを参照するには `This` コマンドを使います。 例: +クラスメソッド内でオブジェクトインスタンスを参照するには `This` コマンドを使います。例: ```4d Function setFullname($firstname : Text; $lastname : Text) @@ -197,9 +197,9 @@ Function getFullname()->$fullname : Text クラス関数の場合には、`Current method name` コマンドは次を返します: `.` (例: "MyClass.myFunction")。 -アプリケーションのコード内では、クラス関数はオブジェクトインスタンスのメンバーメソッドとして呼び出され、[引数](#引数) を受け取ることができます。 以下のシンタックスがサポートされています: +アプリケーションのコード内では、クラス関数はオブジェクトインスタンスのメンバーメソッドとして呼び出され、[引数](#引数) を受け取ることができます。以下のシンタックスがサポートされています: -- `()` 演算子の使用 。 例: `myObject.methodName("hello") ` +- `()` 演算子の使用 。例: `myObject.methodName("hello") ` - "4D.Function" クラスメンバーメソッドの使用: - [`apply()`](API/FunctionClass.md#apply) - [`call()`](API/FunctionClass.md#call) @@ -215,7 +215,7 @@ Function getFullname()->$fullname : Text #### 引数 -関数の引数は、引数名とデータ型をコロンで区切って宣言します。 パラメーター名は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 複数のパラメーター (およびその型) を宣言する場合は、それらをセミコロン (;) で区切ります。 +関数の引数は、引数名とデータ型をコロンで区切って宣言します。パラメーター名は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。複数のパラメーター (およびその型) を宣言する場合は、それらをセミコロン (;) で区切ります。 ```4d Function add($x; $y : Variant; $z : Integer; $xy : Object) @@ -229,14 +229,14 @@ Function add($x; $y : Variant; $z : Integer; $xy : Object) #### 戻り値 -関数の戻り値を宣言するには (任意)、入力パラメーターリストに矢印 (`->`) と戻り値の定義を追加します。または、コロン(`:`) と戻り値の型のみを定義します。 例: +関数の戻り値を宣言するには (任意)、入力パラメーターリストに矢印 (`->`) と戻り値の定義を追加します。または、コロン(`:`) と戻り値の型のみを定義します。例: ```4d Function add($x : Variant; $y : Integer)->$result : Integer $result:=$x+$y ``` -コロン (`:`) 記号の後に戻り値のデータ型だけを指定し、そのうえで [`return 文`](parameters.md#return-expression) を使って戻り値を返すこともできます (これは関数の実行を終了します)。 例: +コロン (`:`) 記号の後に戻り値のデータ型だけを指定し、そのうえで [`return 文`](parameters.md#return-expression) を使って戻り値を返すこともできます (これは関数の実行を終了します)。例: ```4d Function add($x : Variant; $y : Integer): Integer @@ -306,15 +306,15 @@ Function getRectArea($width : Integer; $height : Integer) : Integer コンストラクター関数は、1つのクラスに 1つしか存在できません (そうでない場合はエラーが返されます)。 [`Super`](#super) キーワードを使用することで、コンストラクターはスーパークラス (親クラス) のコンストラクターを呼び出すことができます。 -コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。 また、インスタンスプロパティの値が、コンストラクターに渡される引数に依存しない場合は、 [`property`](#property) キーワードを使用して定義することができます。 +コンストラクター内でインスタンスのプロパティを作成し、型宣言することができます (例題参照)。また、インスタンスプロパティの値が、コンストラクターに渡される引数に依存しない場合は、 [`property`](#property) キーワードを使用して定義することができます。 -`shared` キーワードを使うと**共有クラス** が作成されます。共有クラスは、共有オブジェクトのインスタンス化にのみ使われます。 詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 +`shared` キーワードを使うと**共有クラス** が作成されます。共有クラスは、共有オブジェクトのインスタンス化にのみ使われます。詳細については、後述の [共有クラス](#共有クラス) の項目を参照ください。 -`singleton` キーワードを使うと **シングルトン** が作成されます。シングルトンクラスは、クラスインスタンスを一つに限定する場合に使われます。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。 詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 +`singleton` キーワードを使うと **シングルトン** が作成されます。シングルトンクラスは、クラスインスタンスを一つに限定する場合に使われます。 `session singleton` キーワードを使うと、セッションごとに 1つのインスタンスを作成します。詳細については、後述の [シングルトンクラス](#シングルトンクラス) の項目を参照ください。 :::note -[ORDA エンティティクラス](../ORDA/ordaClasses.md#entity-class) も`Class constructor` 機能の恩恵を受けることができます。 実装は通常のクラスと同様ですが、[一部に違いがあります](../ORDA/ordaClasses.md#class-constructor-1)。 +[ORDA エンティティクラス](../ORDA/ordaClasses.md#entity-class) も`Class constructor` 機能の恩恵を受けることができます。実装は通常のクラスと同様ですが、[一部に違いがあります](../ORDA/ordaClasses.md#class-constructor-1)。 ::: @@ -342,7 +342,7 @@ $o:=cs.MyClass.new("John";42) `property {; ;...}{ : }` -`property` キーワードを使用して、ユーザークラス内のプロパティを宣言することができます。 クラスプロパティには、名前と型があります。 +`property` キーワードを使用して、ユーザークラス内のプロパティを宣言することができます。クラスプロパティには、名前と型があります。 クラスプロパティを宣言することで、コードエディターの自動補完機能とエラー検出機能を強化します。 @@ -392,7 +392,7 @@ $o:=cs.MyClass.new("John";42) #### 宣言と同時にプロパティを初期化する -プロパティを宣言する際には、1つのステートメントでデータ型と初期値の両方を指定することができます。 シンタックスは次の通りです: +プロパティを宣言する際には、1つのステートメントでデータ型と初期値の両方を指定することができます。シンタックスは次の通りです: `property { : } := ` @@ -402,7 +402,7 @@ $o:=cs.MyClass.new("John";42) ::: -宣言の際には型を省略することができます。その場合、可能な限り型は推論されます。 例: +宣言の際には型を省略することができます。その場合、可能な限り型は推論されます。例: ```4d // クラス: MyClass @@ -465,7 +465,7 @@ $o.age:="Smith" // シンタックスチェックでエラー // コード ``` -`Function get` と `Function set` は、クラスの **計算プロパティ** を定義するアクセサーです 。 計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。 計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: +`Function get` と `Function set` は、クラスの **計算プロパティ** を定義するアクセサーです 。計算プロパティとは、計算をマスクするデータ型を持つ命名プロパティです。計算プロパティの値にアクセスすると、4D は対応するアクセサーのコードを実行します: - プロパティを読み取るときには `Function get` が実行されます。 - プロパティに書き込むときには `Function set` が実行されます。 @@ -478,25 +478,25 @@ $o.age:="Smith" // シンタックスチェックでエラー ::: -計算プロパティは、メモリ上に保持する必要のないデータを処理するために設計されています。 計算プロパティは通常、永続的なプロパティに基づいています。 たとえば、クラスオブジェクトの永続的なプロパティとして、*税込価格* と *消費税率* が含まれている場合、*税抜価格* は計算プロパティで処理することができます。 +計算プロパティは、メモリ上に保持する必要のないデータを処理するために設計されています。計算プロパティは通常、永続的なプロパティに基づいています。たとえば、クラスオブジェクトの永続的なプロパティとして、*税込価格* と *消費税率* が含まれている場合、*税抜価格* は計算プロパティで処理することができます。 -クラス定義ファイルでは、計算プロパティの宣言には、`Function get` (*ゲッター*) と `Function set` (*セッター*) のキーワードを使い、その後にプロパティ名を記述します。 名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 +クラス定義ファイルでは、計算プロパティの宣言には、`Function get` (*ゲッター*) と `Function set` (*セッター*) のキーワードを使い、その後にプロパティ名を記述します。名称は [プロパティ名の命名規則](Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 -`Function get` はプロパティの型の値を返し、`Function set` はプロパティの型の引数を受け取ります 。 どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 +`Function get` はプロパティの型の値を返し、`Function set` はプロパティの型の引数を受け取ります 。どちらも、標準的な [関数の引数](#引数) のルールに準拠する必要があります。 -両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは**read-only** です。 この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 +両方の関数が定義されている場合、計算プロパティは **read-write** となります。 `Function get` のみが定義されている場合、計算プロパティは**read-only** です。この場合、コードがプロパティを変更しようとするとエラーが返されます。 `Function set` のみが定義されている場合、4D はプロパティの読み取り時に *undefined* を返します。 -関数が[共有クラス](#共有クラス)で宣言されている場合、`shared` キーワードを使用することで、[`Use...End use` 構文](shared.md#useend-use)なしで呼び出せるようにすることができます。 詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 +関数が[共有クラス](#共有クラス)で宣言されている場合、`shared` キーワードを使用することで、[`Use...End use` 構文](shared.md#useend-use)なしで呼び出せるようにすることができます。詳細については、後述の [共有関数](#共有関数) の項目を参照ください。 -クライアント/サーバーアプリケーションのコンテキストにおいては、 `local` または `server` キーワードを使用することで、どちらのマシン上で関数を実行すべきかを指定することができます。 これらのキーワードはORDA データモデル関数と共有シングルトン/セッションシングルトン関数でのみ使用することができます。 詳細については、後述の [local および server 関数](#local-および-server) の項目を参照ください。 +クライアント/サーバーアプリケーションのコンテキストにおいては、 `local` または `server` キーワードを使用することで、どちらのマシン上で関数を実行すべきかを指定することができます。これらのキーワードはORDA データモデル関数と共有シングルトン/セッションシングルトン関数でのみ使用することができます。詳細については、後述の [local および server 関数](#local-および-server) の項目を参照ください。 -計算プロパティの型は、*ゲッター* の `$return` の型宣言によって定義されます。 [有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 +計算プロパティの型は、*ゲッター* の `$return` の型宣言によって定義されます。[有効なプロパティタイプ](dt_object.md) であれば、いずれも使用可能です。 -> オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。 このためには、まず `Function get` を呼び出して値の型を取得し、 次にその型の空の値で `Function set` を呼び出します。 +> オブジェクトプロパティに *undefined* を代入すると、型を保持したまま値がクリアされます。このためには、まず `Function get` を呼び出して値の型を取得し、 次にその型の空の値で `Function set` を呼び出します。 :::note -ORDA エンティティクラス も`Class constructor` 機能の恩恵を受けることができます。 実装は通常のクラスと同様ですが、[一部に違いがあります](../ORDA/ordaClasses.md#class-constructor-1)。 +ORDA エンティティクラス も`Class constructor` 機能の恩恵を受けることができます。実装は通常のクラスと同様ですが、[一部に違いがあります](../ORDA/ordaClasses.md#class-constructor-1)。 ::: @@ -549,7 +549,7 @@ Function get fullAddress()->$result : Object Class extends ``` -クラス宣言において `Class extends` キーワードを使うと、別のユーザークラスの子ユーザークラスを作成することができます 。 この子クラスは、親クラスのすべての機能を継承します。 +クラス宣言において `Class extends` キーワードを使うと、別のユーザークラスの子ユーザークラスを作成することができます 。この子クラスは、親クラスのすべての機能を継承します。 クラス継承は次のルールに沿っている必要があります: @@ -596,13 +596,13 @@ Class constructor ($side : Integer) ### `Super` -[`Super`](../commands/super) コマンドを使用すると、[`スーパークラス`](../API/ClassClass#superclass)、つまり関数の親クラスを呼び出すことができます。 これは[Class constructor](#class-constructor) またはクラス関数コード内で呼び出すことができます。 +[`Super`](../commands/super) コマンドを使用すると、[`スーパークラス`](../API/ClassClass#superclass)、つまり関数の親クラスを呼び出すことができます。これは[Class constructor](#class-constructor) またはクラス関数コード内で呼び出すことができます。 詳細な情報については、[`Super`](../commands/super) コマンドの説明を参照してください。 ### `This` -[`This`](../commands/this) コマンドは現在処理されているオブジェクトへの参照を返します。 多くの場合、`This` の値はクラス関数がどのように呼ばれたかによって決まります。 通常、`This` は、まるでその関数がオブジェクト上にあるかのように、関数が呼ばれたオブジェクトを参照します。 +[`This`](../commands/this) コマンドは現在処理されているオブジェクトへの参照を返します。多くの場合、`This` の値はクラス関数がどのように呼ばれたかによって決まります。通常、`This` は、まるでその関数がオブジェクト上にあるかのように、関数が呼ばれたオブジェクトを参照します。 例: @@ -638,7 +638,7 @@ $val:=$o.f() //8 ## 共有クラス -**共有クラス** を作成することができます。 共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。 共有クラスは共有オブジェクトしか作れません。 +**共有クラス** を作成することができます。共有クラスとは、クラスの [`new()`](../API/ClassClass.md#new) 関数が呼び出されたときに、[共有オブジェクト](shared.md) をインスタンス化するユーザークラスのことを指します。共有クラスは共有オブジェクトしか作れません。 共有クラスは **共有関数** をサポートしています。共有関数は、[`Use...End use`](shared.md#useend-use) 構文なしで呼び出すことができます。 @@ -653,7 +653,7 @@ $val:=$o.f() //8 ### 共有クラスの作成 -共有クラスを作成するには、[Class constructor](#class-constructor) の前に `shared` キーワードを追加します。 例: +共有クラスを作成するには、[Class constructor](#class-constructor) の前に `shared` キーワードを追加します。例: ```4d //共有クラス: Person @@ -672,9 +672,9 @@ cs.Person.isShared // true ### 共有関数 -共有クラス内で定義された関数が、そのクラスのオブジェクトを変更する場合には、共有オブジェクトへのアクセスを保護するために、[`Use...End use`](shared.md#useend-use) 構文を呼び出す必要があります。 しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 +共有クラス内で定義された関数が、そのクラスのオブジェクトを変更する場合には、共有オブジェクトへのアクセスを保護するために、[`Use...End use`](shared.md#useend-use) 構文を呼び出す必要があります。しかし、**shared** として関数を定義することで、実行時には内部的な `Use...End use` を自動でトリガーするようにし、コードを簡略化することができます。 -共有クラス内で共有関数を作成するには、[Function](#function) キーワードの前に `shared` キーワードを追加します 。 例: +共有クラス内で共有関数を作成するには、[Function](#function) キーワードの前に `shared` キーワードを追加します 。例: ```4d //共有クラス Foo @@ -693,7 +693,7 @@ shared Function Bar($value : Integer) ## シングルトンクラス -**シングルトンクラス** とは、インスタンスを一つのみ作成するユーザークラスです。 シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 +**シングルトンクラス** とは、インスタンスを一つのみ作成するユーザークラスです。シングルトンのコンセプトに関する詳細については、[シングルトンに関する Wikipedia のページ](https://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3) を参照ください。 ### シングルトンの種類 @@ -703,7 +703,7 @@ shared Function Bar($value : Integer) - **プロセスシングルトン** は、自身がインスタンス化されたプロセス内において、インスタンスを一つのみ持つことができます。 - **共有シングルトン** は、マシン上のすべてのプロセスにおいて、共通のインスタンスを一つのみ持つことができます。 -- **セッションシングルトン** も共有シングルトンですが、特定の [セッション](../API/SessionClass.md) 内のすべてのプロセスにおいて、共通のインスタンスを一つのみ持つことができます。 セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。 クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。 セッションシングルトンは特に [Qodly アプリケーション](https://developer.4d.com/qodly/) において適切といえます。 +- **セッションシングルトン** も共有シングルトンですが、特定の [セッション](../API/SessionClass.md) 内のすべてのプロセスにおいて、共通のインスタンスを一つのみ持つことができます。セッションシングルトンは、セッション内で全体的に共有されますが、セッションごとに異なります。クライアントサーバーまたは Webアプリケーションのコンテキストで セッションシングルトンを使用すると、各セッションごと (つまり各ユーザーごと) に異なるインスタンスを作成して使用することができます。セッションシングルトンは特に [Qodly アプリケーション](https://developer.4d.com/qodly/) において適切といえます。 :::info @@ -736,9 +736,9 @@ shared Function Bar($value : Integer) ::: -クラスのシングルトンは、初回の [`cs..me`](../API/ClassClass.md#me) プロパティの呼び出し時にインスタンス化されます。 インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 +クラスのシングルトンは、初回の [`cs..me`](../API/ClassClass.md#me) プロパティの呼び出し時にインスタンス化されます。インスタンス化されたクラスのシングルトンはその後、[`me`](../API/ClassClass.md#me) プロパティの使用により常に返されます。 -シングルトンを引数付きでインスタンス化する必要がある場合には、[`new()`](../API/ClassClass.md#new) 関数を呼び出すこともできます。 この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 +シングルトンを引数付きでインスタンス化する必要がある場合には、[`new()`](../API/ClassClass.md#new) 関数を呼び出すこともできます。この場合、アプリケーションの起動時に実行されるコードでシングルトンをインスタンス化することが推奨されます。 クラスがシングルトンクラスかどうかは、Classオブジェクトの .[`.isSingleton`](../API/ClassClass.md#issingleton)プロパティで確認できます。 @@ -746,7 +746,7 @@ shared Function Bar($value : Integer) ### 公開されたシングルトン関数 -共有関数およびセッションシングルトン関数は[`exposed` キーワード](../ORDA/ordaClasses.md#公開関数vs非公開関数)をサポートします。 公開されたシングルトン関数はREST リクエストから直接呼び出すことが可能です。 この機能は[4D 関数を呼び出すQodly ページ](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/events/bindingActionToEvents#class-functions) をデザインするために有用です。 +共有関数およびセッションシングルトン関数は[`exposed` キーワード](../ORDA/ordaClasses.md#公開関数vs非公開関数)をサポートします。公開されたシングルトン関数はREST リクエストから直接呼び出すことが可能です。この機能は[4D 関数を呼び出すQodly ページ](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/events/bindingActionToEvents#class-functions) をデザインするために有用です。 ### 例題 @@ -829,7 +829,7 @@ shared function addItem($item:object) This.itemList.push($item) ``` -ItemInventory クラスをセッションシングルトンとして定義することで、各セッションと各ユーザーが独自の在庫を持つことができます。 ユーザー在庫へのアクセスは以下のように簡単です: +ItemInventory クラスをセッションシングルトンとして定義することで、各セッションと各ユーザーが独自の在庫を持つことができます。ユーザー在庫へのアクセスは以下のように簡単です: ```4d // ユーザーセッションにおいて @@ -847,7 +847,7 @@ $myList := cs.ItemInventory.me.itemList ## `local` および `server` -[クライアント/サーバーアーキテクチャー](../Desktop/clientServer.md) におていは、`local` および `server` キーワードを使用することで関数を実行する場所を指定することができます: クライアント側、またはサーバー側です。 実行場所をコントロールすることは、パフォーマンス上の理由から、またビジネスロジック機能を実装する観点からも有用といえます。 +[クライアント/サーバーアーキテクチャー](../Desktop/clientServer.md) におていは、`local` および `server` キーワードを使用することで関数を実行する場所を指定することができます: クライアント側、またはサーバー側です。実行場所をコントロールすることは、パフォーマンス上の理由から、またビジネスロジック機能を実装する観点からも有用といえます。 シンタックスは次の通りです: @@ -874,12 +874,12 @@ server Function ### 概要 -サポートされる関数には、ロケーションキーワードが何も使用されていない場合の **デフォルトの実行場所** があります。 それに加えて、`local` あるいは `server` キーワードを挿入することで実行場所を変更したり、あるいはコードをより明示的にすることができます。 +サポートされる関数には、ロケーションキーワードが何も使用されていない場合の **デフォルトの実行場所** があります。それに加えて、`local` あるいは `server` キーワードを挿入することで実行場所を変更したり、あるいはコードをより明示的にすることができます。 -| サポートされる関数 | デフォルトの実行場所 | `local` キーワードを使用した場合 | `server` キーワードを使用した場合 | -| ------------------------------------- | ---------- | ----------------------------------- | ------------------------------------------------------------------------ | -| [ORDA データモデル](../ORDA/ordaClasses.md) | サーバー上 | 関数は、クライアント上で呼ばれた場合にはクライアント上で実行されます。 | | -| [共有シングルトンまたはセッションシングルトン](#シングルトンクラス) | ローカル | | 関数はシングルトンのサーバーインスタンスのサーバー上で実行されます。
    サーバー上にシングルトンのインスタンスがない場合、作成されます。 | +| サポートされる関数 | デフォルトの実行場所 | `local` キーワードを使用した場合 | `server` キーワードを使用した場合 | +| ------------------------------------- | ---------- | ----------------------------------- | ----------------------------------------------------------------------- | +| [ORDA データモデル](../ORDA/ordaClasses.md) | サーバー上 | 関数は、クライアント上で呼ばれた場合にはクライアント上で実行されます。 | | +| [共有シングルトンまたはセッションシングルトン](#シングルトンクラス) | ローカル | | 関数はシングルトンのサーバーインスタンスのサーバー上で実行されます。
    サーバー上にシングルトンのインスタンスがない場合、作成されます。 | `local` および `server` キーワードがこれ以外のコンテキストで使用された場合、エラーが返されます。 @@ -899,11 +899,11 @@ server Function ::: -デフォルトで、 [ORDA データモデル関数](../ORDA/ordaClasses.md) はサーバー上で実行されます。 関数リクエストとその結果だけが通信されるため、通常はベストパフォーマンスが提供されます。 しかしながら、[最適化のために](../ORDA/client-server-optimization.md#local-キーワードの使用) 、データモデル関数をクライアント上で実行したい様な場合があるかもしれません。 その場合は `local` キーワードを使用することができます。 +デフォルトで、 [ORDA データモデル関数](../ORDA/ordaClasses.md) はサーバー上で実行されます。関数リクエストとその結果だけが通信されるため、通常はベストパフォーマンスが提供されます。しかしながら、[最適化のために](../ORDA/client-server-optimization.md#local-キーワードの使用) 、データモデル関数をクライアント上で実行したい様な場合があるかもしれません。その場合は `local` キーワードを使用することができます。 #### 例: 年齢を計算する -*birthDate* (生年月日) 属性を持つエンティティがある場合に、リストボックス内で呼び出すための `age()` 関数を定義します。 この関数をクライアントサイドで実行することで、リストボックスの各行がサーバーへのリクエストを生成するのを防ぎます。 +*birthDate* (生年月日) 属性を持つエンティティがある場合に、リストボックス内で呼び出すための `age()` 関数を定義します。この関数をクライアントサイドで実行することで、リストボックスの各行がサーバーへのリクエストを生成するのを防ぎます。 *StudentsEntity* クラス: @@ -929,11 +929,11 @@ End if ::: -`server` の関数の引数と戻り値は、[**ストリーム可能**](./dt_object.md#ストリーミングサポート) ストリーム可能でなければなりません。 例えば、[4D.Datastore](../API/DataStoreClass.md)、[File handle](../API/FileHandleClass.md)、あるいは [WebServer](../API/WebServerClass.md) などはストリーム不可能なクラスですが、 [4D.File](../API/FileClass.md) クラスはストリーム可能です。 +`server` の関数の引数と戻り値は、[**ストリーム可能**](./dt_object.md#ストリーミングサポート) ストリーム可能でなければなりません。例えば、[4D.Datastore](../API/DataStoreClass.md)、[File handle](../API/FileHandleClass.md)、あるいは [WebServer](../API/WebServerClass.md) などはストリーム不可能なクラスですが、 [4D.File](../API/FileClass.md) クラスはストリーム可能です。 -この機能は、特に[リモートユーザーセッション](../Desktop/sessions.md#リモートユーザーセッション) のコンテキストにおいて有用で、これを使用することでビジネスロジックを[セッションシングルトン](../Concepts/classes.md#session-singleton) に実装することでセッションの全てのプロセス間でこれを共有することができ、結果として[`Session`](../commands/session) コマンドの機能を拡張することが可能になります。 この場合、全てのセッション情報がサーバーに集められる様に、関連するビジネスロジックが**サーバー上で**実行されるようにしたい場合があるかもしれません。 +この機能は、特に[リモートユーザーセッション](../Desktop/sessions.md#リモートユーザーセッション) のコンテキストにおいて有用で、これを使用することでビジネスロジックを[セッションシングルトン](../Concepts/classes.md#session-singleton) に実装することでセッションの全てのプロセス間でこれを共有することができ、結果として[`Session`](../commands/session) コマンドの機能を拡張することが可能になります。この場合、全てのセッション情報がサーバーに集められる様に、関連するビジネスロジックが**サーバー上で**実行されるようにしたい場合があるかもしれません。 -デフォルトで、共有シングルトンまたはセッションシングルトンの関数はローカルに実行されます。 `server` キーワードをクラス関数定義に追加することで、4D はシングルトンインスタンスをサーバー上で使用します。 この場合、まだインスタンスが存在していない場合、サーバー上でシングルトンのインスタンス化が起こりうることに注意してください。 +デフォルトで、共有シングルトンまたはセッションシングルトンの関数はローカルに実行されます。 `server` キーワードをクラス関数定義に追加することで、4D はシングルトンインスタンスをサーバー上で使用します。この場合、まだインスタンスが存在していない場合、サーバー上でシングルトンのインスタンス化が起こりうることに注意してください。 [セッションシングルトン](#シングルトンクラス) においては、関数は対応するシングルトンインスタンス(つまりカレントセッションのシングルトンのインスタンス)内においてサーバー上で実行されます。 @@ -944,13 +944,13 @@ End if - シングルトン *S1* はクライアント上でインスタンス化されます(名前は *s1* ) - *s1.function()* はクライアント上で実行されます。 -その時にサーバー上で *S1* のインスタンスが存在しない場合、*S1* はサーバー上でインスタンス化され(コンストラクターが実行されます)、*function()* 関数はサーバーインスタン上で実行されます。 結果として、それぞれ異なるプロパティ値をもつ、二つの *S1* のインスタンスが(クライアント側とサーバー側で)共存することが有り得ます。 この場合、 *s1.property* は常にローカルにアクセス可能です。 これはサーバーからはアクセスすることはできません。例えば、サーバー側のコードで直接ドット記法からアクセスするなどです(エラーが返されます)。 +その時にサーバー上で *S1* のインスタンスが存在しない場合、*S1* はサーバー上でインスタンス化され(コンストラクターが実行されます)、*function()* 関数はサーバーインスタン上で実行されます。結果として、それぞれ異なるプロパティ値をもつ、二つの *S1* のインスタンスが(クライアント側とサーバー側で)共存することが有り得ます。この場合、 *s1.property* は常にローカルにアクセス可能です。これはサーバーからはアクセスすることはできません。例えば、サーバー側のコードで直接ドット記法からアクセスするなどです(エラーが返されます)。 ::: #### 例: Administration シングルトン -*Administration* 共有シングルトンは[`Process activity`](../commands/process-activity) コマンドを実行する "server" 関数を持っています。 このシングルトンはリモート4D でインスタンス化されますが関数はサーバー上でのサーバーのアクティビティを返します。 +*Administration* 共有シングルトンは[`Process activity`](../commands/process-activity) コマンドを実行する "server" 関数を持っています。このシングルトンはリモート4D でインスタンス化されますが関数はサーバー上でのサーバーのアクティビティを返します。 ```4d // Administration クラス @@ -985,7 +985,7 @@ $serverActivity:=$administration.processActivity() #### 例題: セッションシングルトン -ユーザーをUsers テーブルに保存し、カスタムの認証を管理します。 このとき認証にセッションシングルトンを使用します: +ユーザーをUsers テーブルに保存し、カスタムの認証を管理します。このとき認証にセッションシングルトンを使用します: ```4d // UserSession セッションシングルトンクラス 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 695a26f5b3ad21..038574b53c76d9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/components.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/components.md @@ -3,13 +3,13 @@ id: components title: コンポーネント --- -4D のコンポーネントとは、プロジェクトにインストール可能な、1つ以上の機能を持つ 4Dコードやフォームの一式です。 たとえば、[4D SVG コンポーネント](https://github.com/4d/4D-SVG) は、SVGファイルの表示するための高度なコマンドと統合されたレンダリングエンジンを追加します。 +4D のコンポーネントとは、プロジェクトにインストール可能な、1つ以上の機能を持つ 4Dコードやフォームの一式です。たとえば、[4D SVG コンポーネント](https://github.com/4d/4D-SVG) は、SVGファイルの表示するための高度なコマンドと統合されたレンダリングエンジンを追加します。 ## コンポーネントのインストール 4D プロジェクト内へのコンポーネントのインストールとロードは、[4D 依存関係マネージャー](../Project/components.md) を通して管理されます。 -いくつかのコンポーネントが[4D によって開発](../Extensions/overview.md#components-developed-by-4d)されていますが、それ以外にも4D コミュニティによるたくさんの4D コンポーネントが提供されています。 利用可能なすべての4D コンポーネントの詳細なリストを取得するには、[4D Corner platform](https://corner.4d.com/) を使用してください。 +いくつかのコンポーネントが[4D によって開発](../Extensions/overview.md#components-developed-by-4d)されていますが、それ以外にも4D コミュニティによるたくさんの4D コンポーネントが提供されています。利用可能なすべての4D コンポーネントの詳細なリストを取得するには、[4D Corner platform](https://corner.4d.com/) を使用してください。 また、[独自の 4Dコンポーネントを開発](../Extensions/develop-components.md) することもできます。 @@ -23,7 +23,7 @@ title: コンポーネント :::note -コンポーネントがコンパイルされている場合、その [名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) はコンポーネント名の後に括弧で表示されます。 この名前空間を使用して、コンポーネントの関数にアクセスします。 +コンポーネントがコンパイルされている場合、その [名前空間](../Extensions/develop-components.md#コンポーネント名前空間の宣言) はコンポーネント名の後に括弧で表示されます。この名前空間を使用して、コンポーネントの関数にアクセスします。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/data-types.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/data-types.md index f19101accd7268..a1fece272d07bb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/data-types.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/data-types.md @@ -5,7 +5,7 @@ title: データタイプの概要 4D においてデータは、主にデータベースフィールドと 4D ランゲージという2つの場所で、そのタイプに応じて扱われます。 -この2つはおおよそ同じものですが、データベースレベルで提供されているいくつかのデータタイプはランゲージにおいては直接利用可能ではなく、自動的に適宜変換されます。 同様に、いくつかのデータタイプはランゲージでしか利用できません。 各場所で利用可能なデータタイプと、ランゲージでの宣言の仕方の一覧です: +この2つはおおよそ同じものですが、データベースレベルで提供されているいくつかのデータタイプはランゲージにおいては直接利用可能ではなく、自動的に適宜変換されます。同様に、いくつかのデータタイプはランゲージでしか利用できません。各場所で利用可能なデータタイプと、ランゲージでの宣言の仕方の一覧です: | データタイプ | データベース | ランゲージ | [`var` 宣言](variables.md) | [`ARRAY` 宣言](arrays.md) | | ----------------------------------------------------- | -------------------------- | -------- | ------------------------ | ----------------------- | @@ -27,7 +27,7 @@ title: データタイプの概要 | [コレクション](Concepts/dt_collection.md) | - | ◯ | `Collection` | | | [バリアント](Concepts/dt_variant.md)(2) | - | ◯ | `Variant` | | -(1) ORDA では、オブジェクト (エンティティ) を介してデータベースフィールドを扱うため、オブジェクトにおいて利用可能なデータタイプのみがサポートされます。 詳細については [オブジェクト](Concepts/dt_object.md) のデータタイプの説明を参照ください。 +(1) ORDA では、オブジェクト (エンティティ) を介してデータベースフィールドを扱うため、オブジェクトにおいて利用可能なデータタイプのみがサポートされます。詳細については [オブジェクト](Concepts/dt_object.md) のデータタイプの説明を参照ください。 (2) バリアントは実際のところ *データ* タイプではなく、あらゆるデータタイプの値を格納することのできる *変数* タイプです。 @@ -63,11 +63,11 @@ 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/current/Concepts/dt_blob.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_blob.md index 0af4caa4e20770..a4cae4143f8677 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_blob.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_blob.md @@ -7,16 +7,16 @@ BLOB (Binary Large OBject) フィールド・変数・式とは、連続した BLOB は全体がメモリにロードされます。 BLOB変数はメモリ内にだけ保持され、存在します。 BLOBフィールドは、レコードの他フィールドと同様に、ディスクからメモリにロードされます。 -大量のデータを保持できる他のフィールドタイプ (ピクチャーなど) と同様に、レコードを更新しても BLOBフィールドはメモリに複製されません。 したがって、`Old` および `Modified` コマンドを BLOBフィールドに適用しても、返される結果は意味を持ちません。 +大量のデータを保持できる他のフィールドタイプ (ピクチャーなど) と同様に、レコードを更新しても BLOBフィールドはメモリに複製されません。したがって、`Old` および `Modified` コマンドを BLOBフィールドに適用しても、返される結果は意味を持ちません。 ## BLOB の種類 4Dランゲージでは、BLOB を扱う方法が 2つあります: - **スカラー値として**: BLOB は BLOB変数またはフィールドに格納され、変更することができます。 -- **オブジェクト (`4D.Blob`)** として: `4D.Blob` は BLOBオブジェクトです。 オリジナルの BLOB を変更することなく、BLOBそのもの、またはその一部を `4D.Blob` に格納できます。 この方法を [ボクシング](https://ja.wikipedia.org/wiki/%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E5%8C%96) と呼びます。 `4D.Blob` をインスタンス化する方法については、[Blobクラス](../API/BlobClass.md) を参照ください。 +- **オブジェクト (`4D.Blob`)** として: `4D.Blob` は BLOBオブジェクトです。オリジナルの BLOB を変更することなく、BLOBそのもの、またはその一部を `4D.Blob` に格納できます。この方法を [ボクシング](https://ja.wikipedia.org/wiki/%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E5%8C%96) と呼びます。 `4D.Blob` をインスタンス化する方法については、[Blobクラス](../API/BlobClass.md) を参照ください。 -各 BLOBタイプには、それぞれ利点があります。 次の表を参考にして、どちらがニーズに合うかを確認してください: +各 BLOBタイプには、それぞれ利点があります。次の表を参考にして、どちらがニーズに合うかを確認してください: | | BLOB | 4D.Blob | | ------------------- | :--: | :---------------------: | @@ -26,7 +26,7 @@ BLOB は全体がメモリにロードされます。 BLOB変数はメモリ内 | バイトにアクセスする際のパフォーマンス | + | - | | 最大サイズ | 2GB | メモリ | -参照で渡される BLOBオブジェクトとは異なり、スカラーBLOB はメソッドに渡されるとメモリ内で複製されることに注意してください。 メソッドを使用する場合は、参照によって渡される BLOBオブジェクト (`4D.Blob`) を使用する方が効率的です。 +参照で渡される BLOBオブジェクトとは異なり、スカラーBLOB はメソッドに渡されるとメモリ内で複製されることに注意してください。メソッドを使用する場合は、参照によって渡される BLOBオブジェクト (`4D.Blob`) を使用する方が効率的です。 > デフォルトで、4D はスカラーBLOB の最大サイズを 2GB に設定していますが、OSや空き容量によっては、この制限サイズが小さくなる場合があります。 @@ -34,8 +34,7 @@ BLOB に演算子を適用することはできません。 ## 変数がスカラーBLOB と `4D.Blob` のどちらを格納しているかの確認 -値がBLOB なのかオブジェクトなのかを判断するためには、[Value type](../commands/value-type) コマンドを使用します。 -オブジェクトがBlob オブジェクト(`4D.Blob`) であるかどうかをチェックするためには、[OB instance of](../commands/ob-instance-of) コマンドを使用します: +値がBLOB なのかオブジェクトなのかを判断するためには、[Value type](../commands/value-type) コマンドを使用します。オブジェクトがBlob オブジェクト(`4D.Blob`) であるかどうかをチェックするためには、[OB instance of](../commands/ob-instance-of) コマンドを使用します: ```4d var $myBlob: Blob @@ -76,7 +75,7 @@ $myText:= BLOB to text( $myBlob ; UTF8 text without length ) ### BLOB および BLOBオブジェクトのメソッドへの受け渡し -BLOB や BLOBオブジェクト (`4D.Blob`) は、メソッドに渡すことができます。 参照で渡される BLOBオブジェクトとは異なり、スカラーBLOB はメソッドに渡されるとメモリ内で複製されることに注意してください。 +BLOB や BLOBオブジェクト (`4D.Blob`) は、メソッドに渡すことができます。参照で渡される BLOBオブジェクトとは異なり、スカラーBLOB はメソッドに渡されるとメモリ内で複製されることに注意してください。 ### ポインターを使ったスカラーBLOB の参照渡し @@ -126,7 +125,7 @@ BLOB変数は相互に代入することができます: ## BLOB の自動変換 -スカラーBLOB が BLOBオブジェクトに (またはその逆) 割り当てられると、4Dはそれらを自動的に変換します。 例: +スカラーBLOB が BLOBオブジェクトに (またはその逆) 割り当てられると、4Dはそれらを自動的に変換します。例: ```4d // BLOB型の変数とオブジェクト変数を作成します @@ -144,12 +143,11 @@ $myBlob:= $myObject.blob $type:= ``` -> `4D.Blob` をスカラーBLOB に変換する際に、`4D.Blob` のサイズがスカラーBLOB の最大サイズを超える場合、結果のスカラーBLOB は空になります。 -> たとえば、スカラーBLOB の最大サイズが 2GB の場合、2.5GB の `4D.Blob` をスカラーBLOB に変換すると、空の BLOB が得られます。 +> `4D.Blob` をスカラーBLOB に変換する際に、`4D.Blob` のサイズがスカラーBLOB の最大サイズを超える場合、結果のスカラーBLOB は空になります。たとえば、スカラーBLOB の最大サイズが 2GB の場合、2.5GB の `4D.Blob` をスカラーBLOB に変換すると、空の BLOB が得られます。 ## スカラーBLOB の変更 -BLOBオブジェクトとは異なり、スカラーBLOB は変更することができます。 例: +BLOBオブジェクトとは異なり、スカラーBLOB は変更することができます。例: ```4d var $myBlob : Blob diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_boolean.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_boolean.md index c188c10e0107df..a43fa87dd4188d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_boolean.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_boolean.md @@ -7,11 +7,11 @@ title: Boolean ## ブール関数 -4Dにはブール演算に使用することのできる、ブール関数があります: `True`, `False`, `Not`。 詳細については、これらのコマンドの説明を参照ください。 +4Dにはブール演算に使用することのできる、ブール関数があります: `True`, `False`, `Not`。詳細については、これらのコマンドの説明を参照ください。 ### 例題 -ボタンの値に基づいて、ブール変数に値を設定します。 myButton ボタンがクリックされたら myBoolean に true を、クリックされていなければ false を設定します。 ボタンがクリックされるとボタン変数の値は1になります。 +ボタンの値に基づいて、ブール変数に値を設定します。 myButton ボタンがクリックされたら myBoolean に true を、クリックされていなければ false を設定します。ボタンがクリックされるとボタン変数の値は1になります。 ```4d If(myButton=1) // ボタンがクリックされたら @@ -29,7 +29,7 @@ myBoolean:=(myButton=1) ## 論理演算子 -4Dは、ブール式に対して機能する次の論理演算子をサポートしています: 論理積 (AND) と論理和 (OR)。 論理積 (AND) は両方の式が true である場合に true を返します。 論理和 (OR) は少なくとも一方の式が true の時に true を返します。 次の表に、論理演算子を示します: +4Dは、ブール式に対して機能する次の論理演算子をサポートしています: 論理積 (AND) と論理和 (OR)。論理積 (AND) は両方の式が true である場合に true を返します。論理和 (OR) は少なくとも一方の式が true の時に true を返します。次の表に、論理演算子を示します: | 演算 | シンタックス | 戻り値 | 式 | 値 | | --- | ------------------------------------------- | ------- | -------------------------------------------------------------------------------------- | ----- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_collection.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_collection.md index be777dc30a5c57..dc0d88d78a6b15 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_collection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_collection.md @@ -13,7 +13,7 @@ title: Collection collectionRef[expression] ``` -*expression* には正の整数を返す有効な 4D 式であればどんなものでも渡すことができます。 例: +*expression* には正の整数を返す有効な 4D 式であればどんなものでも渡すことができます。例: ```4d myCollection[5] // コレクションの 6番目の要素にアクセス @@ -51,7 +51,7 @@ collectionRef[expression] :::info -いくつかの 4Dコマンドや関数はコレクションを返します。たとえば、 [`Monitored Activity`](../commands/monitored-activity) や [`collection.copy`](../API/CollectionClass.md#copy) などです。 この場合、コレクションを明示的にインスタンス化する必要はなく、4Dランゲージが代わりにおこなってくれます。 +いくつかの 4Dコマンドや関数はコレクションを返します。たとえば、 [`Monitored Activity`](../commands/monitored-activity) や [`collection.copy`](../API/CollectionClass.md#copy) などです。この場合、コレクションを明示的にインスタンス化する必要はなく、4Dランゲージが代わりにおこなってくれます。 ::: @@ -71,9 +71,9 @@ collectionRef[expression] ### `[]` 演算子 -`[]` 演算子を使って、**コレクションリテラル** を作成することができます。 コレクションリテラルとは、コレクション要素を表す式が 0個以上含まれたセミコロン区切りのリストを大括弧 `[]` で囲んだものです。 コレクションリテラルを使ってコレクションを作成すると、指定された値を要素としてインスタンス化され、その長さは指定された要素の数になります。 +`[]` 演算子を使って、**コレクションリテラル** を作成することができます。コレクションリテラルとは、コレクション要素を表す式が 0個以上含まれたセミコロン区切りのリストを大括弧 `[]` で囲んだものです。コレクションリテラルを使ってコレクションを作成すると、指定された値を要素としてインスタンス化され、その長さは指定された要素の数になります。 -要素は式とみなされるため、要素に `[]` を使ってサブコレクションを作成することができます。 また、**オブジェクトリテラル** を作成し、参照することもできます。 +要素は式とみなされるため、要素に `[]` を使ってサブコレクションを作成することができます。また、**オブジェクトリテラル** を作成し、参照することもできます。 要素が未定義の場合、コレクションにおいては Null となります。 @@ -105,14 +105,14 @@ $users:=[{name: "Alice"; \ 二種類のコレクションを作成することができます: -- [`New collection`](../../commands/new-collection) コマンド、またはコレクションリテラルのシンタックス `[]` を使用して作成する通常 (非共有) コレクション。 通常のコレクションは特別なアクセスコントロールをせずに編集可能ですが、プロセス間で共有することはできません。 -- [`New shared collection`](../../commands/new-shared-collection) コマンドを使用して作成する共有コレクション。 共有コレクションはプロセス間 (プリエンティブ・スレッド含む) で共有可能なコレクションです。 共有コレクションへのアクセスは [`Use...End use`](Concepts/shared.md#useend-use) 構造によって管理されています。 +- [`New collection`](../../commands/new-collection) コマンド、またはコレクションリテラルのシンタックス `[]` を使用して作成する通常 (非共有) コレクション。通常のコレクションは特別なアクセスコントロールをせずに編集可能ですが、プロセス間で共有することはできません。 +- [`New shared collection`](../../commands/new-shared-collection) コマンドを使用して作成する共有コレクション。共有コレクションはプロセス間 (プリエンティブ・スレッド含む) で共有可能なコレクションです。共有コレクションへのアクセスは [`Use...End use`](Concepts/shared.md#useend-use) 構造によって管理されています。 詳細な情報については、[共有オブジェクトと共有コレクション](shared.md) を参照ください。 ## 代入 -コレクションと[オブジェクト](./dt_object.md) データ型は、スカラーデータ型(数値、日付、など)とは異なり、4D ランゲージ内においては**参照** (つまり内部的なポインター) を通して管理されます。 結果として、変数へコレクションを代入する場合(例' `$myVar:=[1;2;3]`)、代入されているのは値自身ではなく、**参照** が代入されています。 そのため *$myVar* 変数にそのあと加えた変更は、元のコレクションが参照されている箇所全てにおいて反映されてしまうことになります。 これは[ポインター](./dt_collection.md) と同じ原理に基づいていますが、*$myVar* 変数は逆参照する必要がないという点において異なります。 +コレクションと[オブジェクト](./dt_object.md) データ型は、スカラーデータ型(数値、日付、など)とは異なり、4D ランゲージ内においては**参照** (つまり内部的なポインター) を通して管理されます。結果として、変数へコレクションを代入する場合(例' `$myVar:=[1;2;3]`)、代入されているのは値自身ではなく、**参照** が代入されています。そのため *$myVar* 変数にそのあと加えた変更は、元のコレクションが参照されている箇所全てにおいて反映されてしまうことになります。これは[ポインター](./dt_collection.md) と同じ原理に基づいていますが、*$myVar* 変数は逆参照する必要がないという点において異なります。 例: @@ -149,7 +149,7 @@ ASSERT($col1=$col2) // True になる ## コレクション関数 -4D コレクションへの参照は、コレクションの *メンバー関数* と呼ばれる特別なクラス関数を利用することができます。 コレクション関数は [クラス API リファレンス](../API/CollectionClass.md) にまとめられています。 +4D コレクションへの参照は、コレクションの *メンバー関数* と呼ばれる特別なクラス関数を利用することができます。コレクション関数は [クラス API リファレンス](../API/CollectionClass.md) にまとめられています。 例: @@ -167,7 +167,7 @@ $col.push(10;100) // 10 と 100 をコレクションに追加 ### propertyPath 引数 -いくつかのコレクション関数は引数として *propertyPath* を受け入れます。 この引数は以下のように用いることができます: +いくつかのコレクション関数は引数として *propertyPath* を受け入れます。この引数は以下のように用いることができます: - オブジェクトプロパティ名、 例えば "lastName" - オブジェクトプロパティパス (ドット文字で繋げられたサブプロパティの階層シーケンスなど)。 例: "employee.children.firstName" @@ -244,6 +244,6 @@ Blob オブジェクト(4D.Blob) は、必要であれば[自動的にスカラ - [`ARRAY TO COLLECTION`](../commands/array-to-collection) - [`OB SET ARRAY`](../commands/ob-set-array) -| | [`ARRAY TEXT`](../commands/array-text) | [`ARRAY LONGINT`](../commands/array-longint) | [`ARRAY REAL`](../commands/array-real) | [`ARRAY INTEGER`](../commands/array-integer) | [`ARRAY BOOLEAN`](../commands/array-boolean) | [`ARRAY OBJECT`](../commands/array-object) | [`ARRAY PICTURE`](../commands/array-picture) | [`ARRAY DATE`](../commands/array-date) | [`ARRAY TIME`](../commands/array-time) | [`ARRAY BLOB`](../commands/array-blob) | -| --------- | -------------------------------------- | -------------------------------------------- | -------------------------------------- | -------------------------------------------- | -------------------------------------------- | ------------------------------------------ | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | -------------------------------------- | -| コレクション要素型 | text | number | number | number | boolean | オブジェクトあるいはnull | picture | text or date according to the [Dates inside objects](../commands/set-database-parameter#dates-inside-objects-85) parameter | 秒数 | 4D.Blob | \ No newline at end of file +| | [`ARRAY TEXT`](../commands/array-text) | [`ARRAY LONGINT`](../commands/array-longint) | [`ARRAY REAL`](../commands/array-real) | [`ARRAY INTEGER`](../commands/array-integer) | [`ARRAY BOOLEAN`](../commands/array-boolean) | [`ARRAY OBJECT`](../commands/array-object) | [`ARRAY PICTURE`](../commands/array-picture) | [`ARRAY DATE`](../commands/array-date) | [`ARRAY TIME`](../commands/array-time) | [`ARRAY BLOB`](../commands/array-blob) | +| --------- | -------------------------------------- | -------------------------------------------- | -------------------------------------- | -------------------------------------------- | -------------------------------------------- | ------------------------------------------ | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | -------------------------------------- | +| コレクション要素型 | text | number | number | number | boolean | オブジェクトあるいはnull | picture | SET DATABASE PARAMETERコマンドの[Dates inside objects](../commands/set-database-parameter#dates-inside-objects-85) 引数に従ったテキストまたは日付 | 秒数 | 4D.Blob | \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_date.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_date.md index 8a9c4a2d93015b..f2a035f22c1012 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_date.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_date.md @@ -11,7 +11,7 @@ C_DATE によって宣言された日付は 32767年までの範囲に対応し ## 日付リテラル -日付リテラル定数は、エクスクラメーションマークで囲んで表します (! ... !)。 日付は ISOフォーマット (!YYYY-MM-DD!) 下記に、日付定数の例を示します: +日付リテラル定数は、エクスクラメーションマークで囲んで表します (! ... !)。日付は ISOフォーマット (!YYYY-MM-DD!) 下記に、日付定数の例を示します: ```4d !1976-01-01! @@ -21,12 +21,12 @@ C_DATE によって宣言された日付は 32767年までの範囲に対応し 空の日付は、 *!00-00-00!* のように指定します。 -**Tip:** コードエディターでは空の日付を入力するためのショートカットが提供されています。 空の日付を入力するには、エクスクラメーションマーク (!) の入力後に Enterキーを押します。 +**Tip:** コードエディターでは空の日付を入力するためのショートカットが提供されています。空の日付を入力するには、エクスクラメーションマーク (!) の入力後に Enterキーを押します。 **注:** -- 互換性の理由から、4D はシステムフォーマットに準じた二桁の年次の入力を受け付けます (例: !98/04/20!)。 数字が 30以上の場合は 20世紀 (1900年代)、30未満の場合は 21世紀 (2000年代) であると認識します (ただしデフォルト設定が `SET DEFAULT CENTURY` コマンドを使用して変更されていない場合に限ります)。 -- "地域特有のシステム設定を使う" オプション (メソッドページ 参照) にチェックがされている場合、システムで定義されている日付フォーマットを使用する必要があります。 一般的に、US環境においては、日付は月/日/年の形式で入力され、値はスラッシュ "/" で区切られます。 +- 互換性の理由から、4D はシステムフォーマットに準じた二桁の年次の入力を受け付けます (例: !98/04/20!)。数字が 30以上の場合は 20世紀 (1900年代)、30未満の場合は 21世紀 (2000年代) であると認識します (ただしデフォルト設定が `SET DEFAULT CENTURY` コマンドを使用して変更されていない場合に限ります)。 +- "地域特有のシステム設定を使う" オプション (メソッドページ 参照) にチェックがされている場合、システムで定義されている日付フォーマットを使用する必要があります。一般的に、US環境においては、日付は月/日/年の形式で入力され、値はスラッシュ "/" で区切られます。 ## 日付演算子 @@ -50,9 +50,9 @@ C_DATE によって宣言された日付は 32767年までの範囲に対応し ## JavaScriptからの日付の変換 -JavaScript 内での日付はオブジェクトであるため、他のオブジェクト同様、4D に対して日付のJSON 形式を格納したテキストとして送信されます。 この原則は、特に[JSON コマンド](../commands/theme/JSON) あるいは [Web エリア](../FormObjects/webArea_overview.md) を使用した場合に実装されます。 +JavaScript 内での日付はオブジェクトであるため、他のオブジェクト同様、4D に対して日付のJSON 形式を格納したテキストとして送信されます。この原則は、特に[JSON コマンド](../commands/theme/JSON) あるいは [Web エリア](../FormObjects/webArea_overview.md) を使用した場合に実装されます。 -JavaScript 日付オブジェクトのJSON 形式は、ISO 8601 標準に準拠しています。例: "2013-08-23T00:00:00Z"。 このテキストを4D 日付に変換するのはデベロッパーの責任です。 これには2つの解決策が利用可能です: +JavaScript 日付オブジェクトのJSON 形式は、ISO 8601 標準に準拠しています。例: "2013-08-23T00:00:00Z"。このテキストを4D 日付に変換するのはデベロッパーの責任です。これには2つの解決策が利用可能です: [`JSON Parse`](../commands/json-parse) コマンドを使用する: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_null_undefined.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_null_undefined.md index 879a6f1de42053..00cb15c3e76501 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_null_undefined.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_null_undefined.md @@ -7,9 +7,9 @@ Null および未定義は、式の値が未知のケースを扱うデータ型 ## Null -Null は **null** の値のみをとることのできる特殊なデータタイプです。 この値は、値を持たない式によって返されます。 **null** 値のプロパティを読み取ろうとするとエラーが返されます。 +Null は **null** の値のみをとることのできる特殊なデータタイプです。この値は、値を持たない式によって返されます。 **null** 値のプロパティを読み取ろうとするとエラーが返されます。 -4D ランゲージやオブジェクトフィールド属性においては、`Null` 関数を使ってnull値を扱います。 この関数をつぎの式と組み合わせて使うことで、null値の設定や比較をおこなうことができます: +4D ランゲージやオブジェクトフィールド属性においては、`Null` 関数を使ってnull値を扱います。この関数をつぎの式と組み合わせて使うことで、null値の設定や比較をおこなうことができます: - オブジェクトの属性 - コレクションの要素 @@ -17,7 +17,7 @@ Null は **null** の値のみをとることのできる特殊なデータタ ## 未定義 -未定義 (undefined) は、実際にはデータタイプではありません。 未定義は、まだ定義されていない変数を示します。 オブジェクトプロパティを評価した結果、未定義の値が生成されることがあります。 未定義の値のプロパティを読み取ると、**undefined** が返されます。 +未定義 (undefined) は、実際にはデータタイプではありません。未定義は、まだ定義されていない変数を示します。オブジェクトプロパティを評価した結果、未定義の値が生成されることがあります。未定義の値のプロパティを読み取ると、**undefined** が返されます。 バリアント型変数は **undefined** が [デフォルト値](data-types.md#デフォルト値)となっています。 @@ -77,7 +77,7 @@ Null は **null** の値のみをとることのできる特殊なデータタ :::tip -4Dコード内の式に対して特定の型であることが要求される場合、その式を適切な 4Dキャストコマンド (`String`、`Num`、`Date`、`Time`、`Bool`) で囲うことで、たとえ未定義に評価されたとしても正しい型を確実に得ることができます。 これらのコマンドは式が未定義と評価された場合に、指定された型の空の値を返します。 例: +4Dコード内の式に対して特定の型であることが要求される場合、その式を適切な 4Dキャストコマンド (`String`、`Num`、`Date`、`Time`、`Bool`) で囲うことで、たとえ未定義に評価されたとしても正しい型を確実に得ることができます。これらのコマンドは式が未定義と評価された場合に、指定された型の空の値を返します。例: ```4d $myString:=Lowercase(String($o.a.b)) // 未定義の場合でも文字列の値を取得し、 @@ -97,7 +97,7 @@ Null は **null** の値のみをとることのできる特殊なデータタ | | Null `#` Undefined | Boolean | a.nullProp `#` b.undefinedProp | false | | | Null `#` *scalar value* | Boolean | a.nullProp `#` 42 | true | -*スカラー値* は、文字列、日付、時間、ブール、数値、BLOB のいずれかの型の値です。 スカラー値が宣言されている場合、その [デフォルト値](data-types.md#デフォルト値) は未定義でもnull でもありません。 それ以外のデータ型 (ポインター、ピクチャー、オブジェクト、コレクション) の場合、デフォルト値は未定義または null となります。 例: +*スカラー値* は、文字列、日付、時間、ブール、数値、BLOB のいずれかの型の値です。スカラー値が宣言されている場合、その [デフォルト値](data-types.md#デフォルト値) は未定義でもnull でもありません。それ以外のデータ型 (ポインター、ピクチャー、オブジェクト、コレクション) の場合、デフォルト値は未定義または null となります。例: ```4d var $object : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_number.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_number.md index f4ce48e9f4c113..1520c851a41f4f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_number.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_number.md @@ -5,12 +5,12 @@ title: Number (実数、整数) 数値とは、以下を示す総称です: -- 実数のフィールド、変数、または式。 実数型の範囲は ±1.7e±308 です([倍精度浮動小数点数 のIEEE 754 標準](https://ja.wikipedia.org/wiki/%E5%80%8D%E7%B2%BE%E5%BA%A6%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0) に準拠します)。 -- 整数の変数または式。 整数データタイプの範囲は -2^31..(2^31)-1 です(4-バイト整数、別名*Long* または *Longint*)。 +- 実数のフィールド、変数、または式。実数型の範囲は ±1.7e±308 です([倍精度浮動小数点数 のIEEE 754 標準](https://ja.wikipedia.org/wiki/%E5%80%8D%E7%B2%BE%E5%BA%A6%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0) に準拠します)。 +- 整数の変数または式。整数データタイプの範囲は -2^31..(2^31)-1 です(4-バイト整数、別名*Long* または *Longint*)。 :::info 互換性 -通常、整数を使用する場合には、*Long* を扱います(4-バイト整数)。 しかしながら、整数が*Shots* 値(2-バイト整数)として保存される場合が二つあります。その際、範囲は-32,768..32,767 (2^15..(2^15)-1) となります: +通常、整数を使用する場合には、*Long* を扱います(4-バイト整数)。しかしながら、整数が*Shots* 値(2-バイト整数)として保存される場合が二つあります。その際、範囲は-32,768..32,767 (2^15..(2^15)-1) となります: - `Integer` 型のデータベースフィールド - [`ARRAY INTEGER`](../commands/array-integer) として宣言した配列の要素 @@ -19,11 +19,11 @@ title: Number (実数、整数) ::: -数値データタイプは、異なる数値データタイプに代入することができます。このとき、4Dが必要に応じて変換、切り捨て、丸め処理をおこないます。 ただし、値が範囲外の場合には、変換は正しい値を返しません。 数値データタイプは式の中において混在させて使用することができます。 +数値データタイプは、異なる数値データタイプに代入することができます。このとき、4Dが必要に応じて変換、切り捨て、丸め処理をおこないます。ただし、値が範囲外の場合には、変換は正しい値を返しません。数値データタイプは式の中において混在させて使用することができます。 ## 数値リテラル -数値リテラル定数は、実数として記述します。 下記に数値定数の例をいくつか示します: +数値リテラル定数は、実数として記述します。下記に数値定数の例をいくつか示します: ```4d 27 @@ -33,7 +33,7 @@ title: Number (実数、整数) > デフォルトの小数点はシステム言語に関係なくピリオド (.) "地域特有のシステム設定を使う" オプション (メソッドページ 参照) にチェックがされている場合、システムで定義されている小数点を使用する必要があります。 -負の数値は、マイナス記号 (-) を付けて指定します。 例: +負の数値は、マイナス記号 (-) を付けて指定します。例: ```4d -27 @@ -67,7 +67,7 @@ title: Number (実数、整数) ### モジューロ -モジューロ演算子 % は最初の数値を 2番目の数値で除算し、その余りの整数を返します。 次に例を示します: +モジューロ演算子 % は最初の数値を 2番目の数値で除算し、その余りの整数を返します。次に例を示します: - 10 % 2は、0を返します。 10 は 2 で割り切れるからです。 - 10 % 3は、1を返します。 余りが 1 だからです。 @@ -75,17 +75,17 @@ title: Number (実数、整数) :::warning -モジューロ演算子 % は倍長整数の範囲内 (-2^31 から (2^31)-1 まで) の数値に対して有効な値を返します。 範囲外の数値に対してモジューロを計算したい場合には、[`Mod`](../commands/mod) コマンドを使用してください。 +モジューロ演算子 % は倍長整数の範囲内 (-2^31 から (2^31)-1 まで) の数値に対して有効な値を返します。範囲外の数値に対してモジューロを計算したい場合には、[`Mod`](../commands/mod) コマンドを使用してください。 ::: ### 整数除算 -整数除算演算子は、ある数値を別の数値で割り算をし、その結果の整数部分を返し余りについては無視します。 つまり `a\b` は `Int(a/b)` と等価であると言えます。 この演算子は、整数値のみの有効値を返します。 +整数除算演算子は、ある数値を別の数値で割り算をし、その結果の整数部分を返し余りについては無視します。つまり `a\b` は `Int(a/b)` と等価であると言えます。この演算子は、整数値のみの有効値を返します。 ### 実数の比較 -2つの実数が等しいかどうかを比較するために、4Dランゲージは実際には差の絶対値を *イプシロン値* と比較します。 詳細関しては[`SET REAL COMPARISON LEVEL`](../commands/set-real-comparison-level) コマンドを参照してください。 +2つの実数が等しいかどうかを比較するために、4Dランゲージは実際には差の絶対値を *イプシロン値* と比較します。詳細関しては[`SET REAL COMPARISON LEVEL`](../commands/set-real-comparison-level) コマンドを参照してください。 :::note @@ -95,7 +95,7 @@ title: Number (実数、整数) ### 優先順位 -式を評価する順番を優先順位と呼びます。 4D における優先順位は厳密に左から右で、代数的順序は採用されていません。 例: +式を評価する順番を優先順位と呼びます。 4D における優先順位は厳密に左から右で、代数的順序は採用されていません。例: ```4d 3+4*5 @@ -103,15 +103,15 @@ title: Number (実数、整数) これは 35 を返します。 最初に式 3+4 の結果 7 を求め、それに 5 を乗じるので、結果は 35 になります。 -左から右の優先順位を変更するには、必ずカッコを使用します。 例: +左から右の優先順位を変更するには、必ずカッコを使用します。例: ```4d 3+(4*5) ``` -この式は、23 を返します。 カッコがあるため、最初に式 (4\*5) の結果 20 を求め、 それに 3 を加えて、結果は 23 になります。 +この式は、23 を返します。カッコがあるため、最初に式 (4\*5) の結果 20 を求め、 それに 3 を加えて、結果は 23 になります。 -カッコは、他のカッコの組の内側にネストすることができます。 式の評価が正しくおこなわれるように、必ず各左カッコに対応する右カッコを指定してください。 カッコの不足または誤用は、予測できない結果や、式の無効化につながります。 またコンパイルする場合は、左カッコと右カッコは同じ数でなければなりません。組になっていないカッコはシンタックスエラーとして検出されます。 +カッコは、他のカッコの組の内側にネストすることができます。式の評価が正しくおこなわれるように、必ず各左カッコに対応する右カッコを指定してください。カッコの不足または誤用は、予測できない結果や、式の無効化につながります。またコンパイルする場合は、左カッコと右カッコは同じ数でなければなりません。組になっていないカッコはシンタックスエラーとして検出されます。 ## ビットワイズ演算子 @@ -119,11 +119,11 @@ title: Number (実数、整数) > ビットワイズ演算子に(ショート)整数値または実数値を渡すと、4Dは値を倍長整数値として評価してから、ビットワイズ演算子を使用した式を計算します。 -ビットワイズ演算子を使用する場合、倍長整数値を32ビットの配列と考える必要があります。 これらのビットには、右から左に0~31の番号が付けられます。 +ビットワイズ演算子を使用する場合、倍長整数値を32ビットの配列と考える必要があります。これらのビットには、右から左に0~31の番号が付けられます。 それぞれのビットは0か1なので、倍長整数値は32のブール値を格納できる値と考えることもできます。 1に等しいビットは**True** 、0に等しいビットは**False** を意味します。 -ビットワイズ演算子を使用する式は倍長整数値を返します。 Bit Test 演算子の場合、式は例外的にブール値を返します。 次の表にビットワイズ演算子とそのシンタックスを示します: +ビットワイズ演算子を使用する式は倍長整数値を返します。 Bit Test 演算子の場合、式は例外的にブール値を返します。次の表にビットワイズ演算子とそのシンタックスを示します: | 演算 | 演算子 | シンタックス | 戻り値 | | ----------------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------- | @@ -138,21 +138,21 @@ title: Number (実数、整数) #### 注記 -1. `Left Bit Shift` および`Right Bit Shift` 演算では、2番目のオペランドは、結果値において1番目のオペランドのビットがシフトされるビット数を示します。 したがって、この2番目のオペランドは、0~31の間でなければなりません。 また、31ビットより多くシフトするとすべてのビットがなくなるので、0x00000000が返されます。 それ以外の値を2番目のオペランドとして渡した場合、結果は意味のない値になります。 -2. `Bit Set`、`Bit Clear`、`Bit Test` 演算では、2番目のオペランドは、作用の対象となるビット番号を示します。 したがって、この2番目のオペランドは0 ~ 31の間です。そうでない場合、式の結果は意味のないものになります。 +1. `Left Bit Shift` および`Right Bit Shift` 演算では、2番目のオペランドは、結果値において1番目のオペランドのビットがシフトされるビット数を示します。したがって、この2番目のオペランドは、0~31の間でなければなりません。また、31ビットより多くシフトするとすべてのビットがなくなるので、0x00000000が返されます。それ以外の値を2番目のオペランドとして渡した場合、結果は意味のない値になります。 +2. `Bit Set`、`Bit Clear`、`Bit Test` 演算では、2番目のオペランドは、作用の対象となるビット番号を示します。したがって、この2番目のオペランドは0 ~ 31の間です。そうでない場合、式の結果は意味のないものになります。 次の表は、ビットワイズ演算子とその効果を示します: -| 演算 | 説明 | -| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Bitwise AND | それぞれの結果ビットは2つのオペランドのビットの論理ORです。 論理AND の表は以下のようになります:
  • 1 & 1 --> 1
  • 0 & 1 --> 0
  • 1 & 0 --> 0
  • 0 & 0 --> 0
  • 言い換えると、結果のビットは両方のオペランドが1であれば1となり、それ以外の場合には結果のビットは0 となります。 | -| Bitwise OR (inclusive) | それぞれの結果ビットは2つのオペランドのビットの論理OR です。論理OR の表は以下のようになります。:
  • 1 \\ | -| Bitwise OR (exclusive) | それぞれの結果ビットは2つのオペランドの論理XOR です。論理XOR の表は以下のようになります:
  • 1 ^ \\ | -| Left Bit Shift | 左側のビットがなくなり、右側の新しいビットは0に設定されます。 最初のオペランド値が結果値に設定され、次に結果ビットが2番目のオペランドで示されたビット数だけ左にシフトします。 **注記:** 正の数だけを考えると、Nビット左にシフトすることは、2^N を掛けることと同じです。 | -| Right Bit Shift | 最初のオペランド値が結果値に設定され、次に結果ビットが2番目のオペランドで示されたビット数だけ右にシフトします。 右側のビットがなくなり、左側の新しいビットは 0 に設定されます。 **注記:** 正の数だけを考えると、Nビット右にシフトすることは、2^Nで割ることと同じです。 | -| Bit Set | 最初のオペランド値が結果値に設定され、次に結果ビットのうち2番目のオペランドで示されたビットが1に設定されます。 他のビットはそのままです。 | -| Bit Clear | 最初のオペランド値が結果値に設定され、次に結果ビットのうち2番目のオペランドで示されたビットが0に設定されます。 他のビットはそのままです。 | -| Bit Test | 最初のオペランドのうち、2番目のビットで示されたビットが1の場合、trueが返されます。 最初のオペランドのうち、2番目のビットで示されたビットが0の場合、falseが返されます。 | +| 演算 | 説明 | +| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Bitwise AND | それぞれの結果ビットは2つのオペランドのビットの論理ORです。論理AND の表は以下のようになります:
  • 1 & 1 --> 1
  • 0 & 1 --> 0
  • 1 & 0 --> 0
  • 0 & 0 --> 0
  • 言い換えると、結果のビットは両方のオペランドが1であれば1となり、それ以外の場合には結果のビットは0 となります。 | +| Bitwise OR (inclusive) | それぞれの結果ビットは2つのオペランドのビットの論理OR です。論理OR の表は以下のようになります。:
  • 1 \\ | +| Bitwise OR (exclusive) | それぞれの結果ビットは2つのオペランドの論理XOR です。論理XOR の表は以下のようになります:
  • 1 ^ \\ | +| Left Bit Shift | 左側のビットがなくなり、右側の新しいビットは0に設定されます。最初のオペランド値が結果値に設定され、次に結果ビットが2番目のオペランドで示されたビット数だけ左にシフトします。**注記:** 正の数だけを考えると、Nビット左にシフトすることは、2^N を掛けることと同じです。 | +| Right Bit Shift | 最初のオペランド値が結果値に設定され、次に結果ビットが2番目のオペランドで示されたビット数だけ右にシフトします。右側のビットがなくなり、左側の新しいビットは 0 に設定されます。 **注記:** 正の数だけを考えると、Nビット右にシフトすることは、2^Nで割ることと同じです。 | +| Bit Set | 最初のオペランド値が結果値に設定され、次に結果ビットのうち2番目のオペランドで示されたビットが1に設定されます。他のビットはそのままです。 | +| Bit Clear | 最初のオペランド値が結果値に設定され、次に結果ビットのうち2番目のオペランドで示されたビットが0に設定されます。他のビットはそのままです。 | +| Bit Test | 最初のオペランドのうち、2番目のビットで示されたビットが1の場合、trueが返されます。最初のオペランドのうち、2番目のビットで示されたビットが0の場合、falseが返されます。 | ### 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_object.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_object.md index 0d37916b0e7d56..8ca41e53f6267f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_object.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_object.md @@ -3,9 +3,9 @@ id: object title: Object --- -オブジェクト型の変数・フィールド・式にはさまざまなデータを格納することができます。 4D のネイティブなオブジェクトの構造は、よくある "プロパティ/値" (または "属性/値") というペア (連想配列) に基づいています。 これらオブジェクトの記法は JSON をもとにしていますが、完全に同じというわけではありません。 +オブジェクト型の変数・フィールド・式にはさまざまなデータを格納することができます。 4D のネイティブなオブジェクトの構造は、よくある "プロパティ/値" (または "属性/値") というペア (連想配列) に基づいています。これらオブジェクトの記法は JSON をもとにしていますが、完全に同じというわけではありません。 -- プロパティ名は必ずテキストで表現されます。 プロパティ名には [命名規則](identifiers.md#オブジェクトプロパティ) があります。 +- プロパティ名は必ずテキストで表現されます。プロパティ名には [命名規則](identifiers.md#オブジェクトプロパティ) があります。 - プロパティ値は以下のどれかの型で表現されます: - 数値 (実数、整数、等) @@ -18,7 +18,7 @@ title: Object - ピクチャー(2) - コレクション -(1) [\*\* ストリーム不可能なオブジェクト\*\*](#ストリーミングサポート) である [エンティティ](ORDA/dsMapping.md#エンティティ) や [エンティティセレクション](ORDA/dsMapping.md#エンティティセレクション) などの ORDAオブジェクト、[FileHandle](../API/FileHandleClass.md)、[Webサーバー](../API/WebServerClass.md)... は **オブジェクトフィールド** には保存できません。 保存しようとするとエラーが返されます。しかし、メモリ内の **オブジェクト変数** に保存することは可能です。 +(1) [\*\* ストリーム不可能なオブジェクト\*\*](#ストリーミングサポート) である [エンティティ](ORDA/dsMapping.md#エンティティ) や [エンティティセレクション](ORDA/dsMapping.md#エンティティセレクション) などの ORDAオブジェクト、[FileHandle](../API/FileHandleClass.md)、[Webサーバー](../API/WebServerClass.md)... は **オブジェクトフィールド** には保存できません。保存しようとするとエラーが返されます。しかし、メモリ内の **オブジェクト変数** に保存することは可能です。 (2) デバッガー内でテキストとして表示したり、JSON へと書き出されたりした場合、ピクチャー型のオブジェクトプロパティは "[object Picture]" と表されます。 @@ -47,7 +47,7 @@ title: Object :::info -いくつかの 4Dコマンドや関数はオブジェクトを返します。たとえば、[`Database measures`](../commands/database-measures) や [`File`](../commands/file) などです。 この場合、オブジェクトを明示的にインスタンス化する必要はなく、4Dランゲージが代わりにおこなってくれます。 +いくつかの 4Dコマンドや関数はオブジェクトを返します。たとえば、[`Database measures`](../commands/database-measures) や [`File`](../commands/file) などです。この場合、オブジェクトを明示的にインスタンス化する必要はなく、4Dランゲージが代わりにおこなってくれます。 ::: @@ -67,9 +67,9 @@ title: Object ### `{}` 演算子 -`{}` 演算子を使って、**オブジェクトリテラル** を作成することができます。 オブジェクトリテラルとは、オブジェクトのプロパティ名とその値のペアが 0組以上含まれたセミコロン区切りのリストを中括弧 `{}` で囲んだものです。 オブジェクトリテラルのシンタックスは、空の、またはプロパティが格納されたオブジェクトを作成します。 +`{}` 演算子を使って、**オブジェクトリテラル** を作成することができます。オブジェクトリテラルとは、オブジェクトのプロパティ名とその値のペアが 0組以上含まれたセミコロン区切りのリストを中括弧 `{}` で囲んだものです。オブジェクトリテラルのシンタックスは、空の、またはプロパティが格納されたオブジェクトを作成します。 -プロパティの値は式とみなされるため、プロパティ値に `{}` を使ってサブオブジェクトを作成することができます。 また、**コレクションリテラル** を作成し、参照することもできます。 +プロパティの値は式とみなされるため、プロパティ値に `{}` を使ってサブオブジェクトを作成することができます。また、**コレクションリテラル** を作成し、参照することもできます。 例: @@ -110,13 +110,12 @@ $col:=$o.col[5] // 6 二種類のオブジェクトを作成することができます: -- [`New object`](../commands/new-object) コマンド、またはオブジェクトリテラルのシンタックス (`{}`) を使用して作成する通常 (非共有) コレクション。 通常のオブジェクトは特別なアクセスコントロールをせずに編集可能ですが、プロセス間で共有することはできません。 -- [`New shared object`](../commands/new-shared-object) コマンドを使用して作成する共有コレクション。 共有オブジェクトはプロセス間 (プリエンティブ・スレッド含む) で共有可能なオブジェクトです。 共有オブジェクトへのアクセスは `Use...End use` 構造によって管理されています。 - 詳細な情報については、[共有オブジェクトと共有コレクション](shared.md) を参照ください。 +- [`New object`](../commands/new-object) コマンド、またはオブジェクトリテラルのシンタックス (`{}`) を使用して作成する通常 (非共有) コレクション。通常のオブジェクトは特別なアクセスコントロールをせずに編集可能ですが、プロセス間で共有することはできません。 +- [`New shared object`](../commands/new-shared-object) コマンドを使用して作成する共有コレクション。共有オブジェクトはプロセス間 (プリエンティブ・スレッド含む) で共有可能なオブジェクトです。共有オブジェクトへのアクセスは `Use...End use` 構造によって管理されています。詳細な情報については、[共有オブジェクトと共有コレクション](shared.md) を参照ください。 ## 代入 -オブジェクトと[コレクション](./dt_collection.md) データ型は、スカラーデータ型(数値、日付、など)とは異なり、4D ランゲージ内においては**参照** (つまり内部的なポインター) を通して管理されます。 結果として、変数へオブジェクトを代入する場合(例' `$myVar:={ a:2 }`)、代入されているのは値自身ではなく、**参照** が代入されています。 そのため *$myVar* 変数にそのあと加えた変更は、元のオブジェクトが参照されている箇所全てにおいて反映されてしまうことになります。 これは[ポインター](./dt_collection.md) と同じ原理に基づいていますが、*$myVar* 変数は逆参照する必要がないという点において異なります。 +オブジェクトと[コレクション](./dt_collection.md) データ型は、スカラーデータ型(数値、日付、など)とは異なり、4D ランゲージ内においては**参照** (つまり内部的なポインター) を通して管理されます。結果として、変数へオブジェクトを代入する場合(例' `$myVar:={ a:2 }`)、代入されているのは値自身ではなく、**参照** が代入されています。そのため *$myVar* 変数にそのあと加えた変更は、元のオブジェクトが参照されている箇所全てにおいて反映されてしまうことになります。これは[ポインター](./dt_collection.md) と同じ原理に基づいていますが、*$myVar* 変数は逆参照する必要がないという点において異なります。 例: @@ -146,7 +145,7 @@ ASSERT($o1=$o2) // True ## プロパティ{#properties} -オブジェクトのプロパティ値には、トークンのチェーンを通してアクセスします。 オブジェクトプロパティは二通りの方法でアクセスすることができます: +オブジェクトのプロパティ値には、トークンのチェーンを通してアクセスします。オブジェクトプロパティは二通りの方法でアクセスすることができます: - "ドット"記号を使用する方法: > object.propertyName @@ -178,8 +177,7 @@ ASSERT($o1=$o2) // True オブジェクトを格納、あるいは返すあらゆるランゲージ要素に対してオブジェクト記法を使用できます。たとえば: -- **オブジェクト** 自身 (変数、フィールド、オブジェクトプロパティ、オブジェクト配列、コレクション要素などに保存されているもの)。 - 例: +- **オブジェクト** 自身 (変数、フィールド、オブジェクトプロパティ、オブジェクト配列、コレクション要素などに保存されているもの)。例: ```4d $age:=$myObjVar.employee.age // 変数 @@ -189,15 +187,13 @@ ASSERT($o1=$o2) // True $val:=$myCollection[3].subvalue // コレクション要素 ``` -- オブジェクトを返す **4D コマンド**。 - 例: +- オブジェクトを返す **4D コマンド**。例: ```4d $measures:=Database measures.DB.tables ``` -- オブジェクトを返す **プロジェクトメソッド** または **関数**。 - 例: +- オブジェクトを返す **プロジェクトメソッド** または **関数**。例: ```4d // MyMethod1 @@ -217,7 +213,7 @@ ASSERT($o1=$o2) // True ### Null 値 -オブジェクトを使用するにあたって、**null** 値は **Null** コマンドを通してサポートされています。 このコマンドを使用すると、null 値をオブジェクトプロパティに割り当てたり、それらと比較したりすることができます。 例: +オブジェクトを使用するにあたって、**null** 値は **Null** コマンドを通してサポートされています。このコマンドを使用すると、null 値をオブジェクトプロパティに割り当てたり、それらと比較したりすることができます。 例: ```4d myObject.address.zip:=Null @@ -228,13 +224,13 @@ ASSERT($o1=$o2) // True ### 未定義の値 -オブジェクトプロパティを評価した結果、未定義の値が生成されることがあります。 未定義の値を存在しないオブジェクトのプロパティへと代入した場合は、何も起こりません。 未定義の値を既存のオブジェクトプロパティに代入した場合、その値は初期化、あるいは消去されます。 +オブジェクトプロパティを評価した結果、未定義の値が生成されることがあります。未定義の値を存在しないオブジェクトのプロパティへと代入した場合は、何も起こりません。未定義の値を既存のオブジェクトプロパティに代入した場合、その値は初期化、あるいは消去されます。 詳細については [Null と 未定義](dt_null_undefined.md) を参照ください。 ### ポインター -**注**: オブジェクトは常に参照として渡されるため、通常はポインターを使用する必要はありません。 オブジェクトを引数として渡す際、4D 内部では自動的にポインターに類似したメカニズムを使うことでメモリの消費を最小限に抑え、引数を編集して返すことを可能にします。 つまり、ポインターは必要ないということです。 それでもポインターを使用したい場合には、プロパティ値はポインターを通してアクセスすることができます。 +**注**: オブジェクトは常に参照として渡されるため、通常はポインターを使用する必要はありません。オブジェクトを引数として渡す際、4D 内部では自動的にポインターに類似したメカニズムを使うことでメモリの消費を最小限に抑え、引数を編集して返すことを可能にします。つまり、ポインターは必要ないということです。それでもポインターを使用したい場合には、プロパティ値はポインターを通してアクセスすることができます。 ポインターを使ってオブジェクトプロパティにアクセスするには、直接オブジェクトを使用する場合と方法が似ていますが、"ドット" 記号は省略する必要があります。 @@ -278,11 +274,11 @@ var $o3:=$o1 // 同じインスタンスへの参照 ## リソース -オブジェクトは、ドキュメント、エンティティロック、そしてメモリなどの *リソース* を使用します。 オブジェクトが必要とする限り、これらのリソースは保持されます。 変数や他のオブジェクトから参照されなくなったことを検知すると、4D はその参照されなくなったオブジェクトが使用していたリソースをすべて自動的に解放するため、通常はこの処理を意識することはありません。 +オブジェクトは、ドキュメント、エンティティロック、そしてメモリなどの *リソース* を使用します。オブジェクトが必要とする限り、これらのリソースは保持されます。変数や他のオブジェクトから参照されなくなったことを検知すると、4D はその参照されなくなったオブジェクトが使用していたリソースをすべて自動的に解放するため、通常はこの処理を意識することはありません。 たとえば、[`$entity.lock()`](../API/EntityClass.md#lock) でロックしたエンティティへの参照がなくなると、4D はメモリを解放すると同時に、関連するロックも自動で解放するため、[`$entity.unlock()`](../API/EntityClass.md#unlock) の呼び出しは不要です。 -オブジェクトが占有しているすべてのリソースについて、4D による自動解放 (メソッド実行終了時のローカル変数など) を待たずに、すぐに解放したい場合、オブジェクトの **参照をすべて無効化** することができます。 例: +オブジェクトが占有しているすべてのリソースについて、4D による自動解放 (メソッド実行終了時のローカル変数など) を待たずに、すぐに解放したい場合、オブジェクトの **参照をすべて無効化** することができます。例: ```4d @@ -295,9 +291,9 @@ $doc:=Null // $docが占有するリソースを解放します ## クラス -オブジェクトは特定のクラスに所属することができます。 クラスを使用することで、オブジェクトの振る舞いと構造を、関連するプロパティと関数で事前に定義することができます。 +オブジェクトは特定のクラスに所属することができます。クラスを使用することで、オブジェクトの振る舞いと構造を、関連するプロパティと関数で事前に定義することができます。 -4D ランゲージでは、オブジェクトを管理するための複数の [ネイティブなクラス](../category/class-API-reference/) が提供されています。 またコードを整理するために独自の [ユーザークラス](./classes.md) を定義して使用することもできます。 +4D ランゲージでは、オブジェクトを管理するための複数の [ネイティブなクラス](../category/class-API-reference/) が提供されています。またコードを整理するために独自の [ユーザークラス](./classes.md) を定義して使用することもできます。 ## ストリーミングサポート @@ -305,7 +301,7 @@ $doc:=Null // $docが占有するリソースを解放します ### テキストストリーミング(`JSON Stringify`) -[`JSON Stringify`](../commands/json-stringify) などの、コンテンツを文字列化するJSON コマンドと [`Execute on server`](../commands/execute-on-server) コマンドを使用することで、オブジェクトをJSON (テキスト)へと変換することができます。 これらのコマンドはオブジェクト、コレクション、そしてユーザークラスをサポートします。 +[`JSON Stringify`](../commands/json-stringify) などの、コンテンツを文字列化するJSON コマンドと [`Execute on server`](../commands/execute-on-server) コマンドを使用することで、オブジェクトをJSON (テキスト)へと変換することができます。これらのコマンドはオブジェクト、コレクション、そしてユーザークラスをサポートします。 しかしながら、オブジェクトのテキストストリーミングには、以下の様な制約があります: @@ -315,16 +311,16 @@ $doc:=Null // $docが占有するリソースを解放します ### バイナリーストリーミング(`VARIABLE TO BLOB`) -4D では、 [`VARIABLE TO BLOB`](../commands/variable-to-blob) コマンドを通して、ビルトインのバイナリーストリーミング機能を実装しています。 この機能を使用することで、テキストストリーミングにおける制約の大部分を回避することができます(上記参照): +4D では、 [`VARIABLE TO BLOB`](../commands/variable-to-blob) コマンドを通して、ビルトインのバイナリーストリーミング機能を実装しています。この機能を使用することで、テキストストリーミングにおける制約の大部分を回避することができます(上記参照): - 循環参照はサポートされます - オブジェクトはどのクラスであるかを維持します - 幅広いタイプのオブジェクトがストリーム可能です: [4D Write Pro](../WritePro/user-legacy/presentation.md) ドキュメント、オブジェクトのピクチャー、[オブジェクトのBLOB](dt_blob.md#blob-types)、およびオブジェクトのポインターなど -- いくつかのネイティブな4D クラスオブジェクトもストリーム可能です。例えば、 [`File`](../API/FileClass.md)、[`Folder`](../API/FolderClass.md)、あるいは [`Vector`](../API/VectorClass.md) など。 しかしながら、ストリーム可能なネイティブ4D クラスは限られています。 明示的に"このクラスはバイナリー形式で **ストリーム可能** です" と明示されていない限り、そのネイティブ4D クラスはストリーム可能**ではない**ものだと考えてください。 +- いくつかのネイティブな4D クラスオブジェクトもストリーム可能です。例えば、 [`File`](../API/FileClass.md)、[`Folder`](../API/FolderClass.md)、あるいは [`Vector`](../API/VectorClass.md) など。しかしながら、ストリーム可能なネイティブ4D クラスは限られています。明示的に"このクラスはバイナリー形式で **ストリーム可能** です" と明示されていない限り、そのネイティブ4D クラスはストリーム可能**ではない**ものだと考えてください。 ## 例題 -オブジェクト記法を使用すると、オブジェクトを扱う際の 4Dコードを単純化することができます。 同時に、コマンドベースの記法も引き続き完全にサポートされています。 +オブジェクト記法を使用すると、オブジェクトを扱う際の 4Dコードを単純化することができます。同時に、コマンドベースの記法も引き続き完全にサポートされています。 - オブジェクトの読み書き (この例題ではオブジェクト記法とコマンド記法を比較します): diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_picture.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_picture.md index 6af89b8fb7ed09..d401064c25c817 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_picture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_picture.md @@ -3,9 +3,9 @@ id: picture title: Picture --- -ピクチャーのフィールド・変数・式に格納されるデータは、任意の Windows または Macintosh の画像です。 これらの画像には、ペーストボード上に置いたり、4Dコマンドやプラグインコマンド (`READ PICTURE FILE` など) を使用してディスクから読み出すことのできる画像を含みます。 +ピクチャーのフィールド・変数・式に格納されるデータは、任意の Windows または Macintosh の画像です。これらの画像には、ペーストボード上に置いたり、4Dコマンドやプラグインコマンド (`READ PICTURE FILE` など) を使用してディスクから読み出すことのできる画像を含みます。 -4D は Windows と macOS の両方においてネイティブな API を使用してフィールドや変数のピクチャーをエンコード (書き込み) およびデコード (読み込み) します。 これらの実装は現在デジタルカメラで使用されている RAW フォーマット含め、数多くのネイティブなフォーマットへのアクセスを提供します。 +4D は Windows と macOS の両方においてネイティブな API を使用してフィールドや変数のピクチャーをエンコード (書き込み) およびデコード (読み込み) します。これらの実装は現在デジタルカメラで使用されている RAW フォーマット含め、数多くのネイティブなフォーマットへのアクセスを提供します。 - Windows では、4DはWIC (Windows Imaging Component) を使用します。 - macOS では、4D は ImageIO を使用します。 @@ -16,14 +16,14 @@ WIC および ImageIO はピクチャー内のメタデータの書き込みを 4D は多様な [ピクチャーフォーマット](FormEditor/pictures.md#native-formats-supported) をネイティブにサポートします: .jpeg, .png, .svg 等。 -4D が認識するピクチャーフォーマットは `PICTURE CODEC LIST` コマンドからピクチャー Codec IDとして返されます。 これは以下の形式で返されます: +4D が認識するピクチャーフォーマットは `PICTURE CODEC LIST` コマンドからピクチャー Codec IDとして返されます。これは以下の形式で返されます: - 拡張子 (例: “.gif”) - MIME タイプ (例: “image/jpeg”) -それぞれのピクチャーフォーマットに対して返される形式は、当該 Codec が OS レベルで記録されている方法に基づきます。 エンコーディング (書き込み) 用コーデックにはライセンスが必要な場合があるため、利用できるコーデックの一覧は、読み込み用と書き込み用で異なる可能性があることに注意してください。 +それぞれのピクチャーフォーマットに対して返される形式は、当該 Codec が OS レベルで記録されている方法に基づきます。エンコーディング (書き込み) 用コーデックにはライセンスが必要な場合があるため、利用できるコーデックの一覧は、読み込み用と書き込み用で異なる可能性があることに注意してください。 -多くの [4D ピクチャー管理コマンド](../commands/theme/Pictures) は Codec ID を引数として受けとることができます。 したがって、`PICTURE CODEC LIST` から返されるシステムIDを使用しなければなりません。 +多くの [4D ピクチャー管理コマンド](../commands/theme/Pictures) は Codec ID を引数として受けとることができます。したがって、`PICTURE CODEC LIST` から返されるシステムIDを使用しなければなりません。 4D が認識するピクチャーフォーマットは `PICTURE CODEC LIST` コマンドによって返されます。 ## ピクチャー演算子 @@ -43,7 +43,7 @@ WIC および ImageIO はピクチャー内のメタデータの書き込みを **注 :** -- \| 演算子を使用するためには、Pict1 と Pict2 が完全に同一のサイズでなければなりません。 二つのピクチャーサイズに違いがある場合、Pict1 | Pict2 は空のピクチャーを生成します。 +- \| 演算子を使用するためには、Pict1 と Pict2 が完全に同一のサイズでなければなりません。二つのピクチャーサイズに違いがある場合、Pict1 | Pict2 は空のピクチャーを生成します。 - `COMBINE PICTURES` コマンドは、それぞれのソースピクチャーの特性を結果ピクチャーに保持しつつ、ピクチャーの重ね合わせをおこないます。 - `TRANSFORM PICTURE` コマンドを使って、さらなる画像処理をおこなうことができます。 - ピクチャー用の比較演算子はありませんが、`Equal picture` コマンドを使って 2つのピクチャーを比較することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_pointer.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_pointer.md index c8c4df3be4fde1..1d9ba198b3a121 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_pointer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_pointer.md @@ -3,15 +3,15 @@ id: pointer title: Pointer --- -ポインターの変数や式は、別の変数 (配列、配列要素を含む) 、テーブル、またはフィールドへの参照です。 ポインタータイプのフィールドは、存在しません。 +ポインターの変数や式は、別の変数 (配列、配列要素を含む) 、テーブル、またはフィールドへの参照です。ポインタータイプのフィールドは、存在しません。 -ポインターは、(プログラミングにおける) データを参照するための高度な方法を提供します。 4D ランゲージ使用時にテーブル・フィールド・変数・配列等にアクセスするには、単純に名前を用います。 ですが、名前を使用しないでデータを参照する、またはアクセスした方が便利な場合もあります。 ポインターを使うとこれが実現できます。 +ポインターは、(プログラミングにおける) データを参照するための高度な方法を提供します。 4D ランゲージ使用時にテーブル・フィールド・変数・配列等にアクセスするには、単純に名前を用います。ですが、名前を使用しないでデータを参照する、またはアクセスした方が便利な場合もあります。ポインターを使うとこれが実現できます。 -ポインターの背景にある概念は、日常生活でもよく使われています。 対象物を正確に知らないまま、それを示すことがあります。 たとえば、友人に対して "登録番号123ABDの車に乗ろう" と言わずに "君の車に乗ろう" と言う場合です。 つまり、"登録番号123ABDの車" を "君の車" で示したわけです。 この場合、"登録番号123ABDの車" はオブジェクトの名前で、"君の車" はオブジェクトを参照するためのポインターと考えることができます。 +ポインターの背景にある概念は、日常生活でもよく使われています。対象物を正確に知らないまま、それを示すことがあります。たとえば、友人に対して "登録番号123ABDの車に乗ろう" と言わずに "君の車に乗ろう" と言う場合です。つまり、"登録番号123ABDの車" を "君の車" で示したわけです。この場合、"登録番号123ABDの車" はオブジェクトの名前で、"君の車" はオブジェクトを参照するためのポインターと考えることができます。 -対象物を明示しないで参照できると、非常に便利です。 たとえば、友人が新しい車に買い替えても、同じく "君の車" と言うことができます。 ポインターも同じように機能します。 たとえば、同じポインターがある時は数値フィールド "Age" を参照し、別の時には数値変数 "Old Age" を参照することもできます。 いずれの場合にもポインターは数値データを参照しており、それは計算に使用することができます。 +対象物を明示しないで参照できると、非常に便利です。たとえば、友人が新しい車に買い替えても、同じく "君の車" と言うことができます。ポインターも同じように機能します。たとえば、同じポインターがある時は数値フィールド "Age" を参照し、別の時には数値変数 "Old Age" を参照することもできます。いずれの場合にもポインターは数値データを参照しており、それは計算に使用することができます。 -テーブル・フィールド・変数・配列・配列要素・オブジェクトを参照するためにポインターを使用することができます。 以下の表に、各タイプの例を示します: +テーブル・フィールド・変数・配列・配列要素・オブジェクトを参照するためにポインターを使用することができます。以下の表に、各タイプの例を示します: | 型 | 参照時 | 使用時 | 代入時 | | ------ | ------------------------------------------------------------------------------------------- | ------------------------------------------- | ------------------------------------------- | @@ -24,7 +24,7 @@ title: Pointer ## ポインターの使用例 -ポインターの使用方法について例題を用いて説明します。 以下の例は、ポインターを通して変数にアクセスする方法を示します。 まず、変数を作成します: +ポインターの使用方法について例題を用いて説明します。以下の例は、ポインターを通して変数にアクセスする方法を示します。まず、変数を作成します: ```4d $MyVar:="Hello" @@ -37,29 +37,29 @@ var $MyPointer : Pointer $MyPointer:=->$MyVar ``` -ポインター記号 (->) は、"・・・に対するポインターを求める" ことを意味します。 この記号は、"ダッシュ" (-) の後に "大なり" (>) を付けて構成されます。 ここでは、$MyVar を参照するポインターを取得します。 このポインターは、代入演算子 (:=) で $MyPointer に対して割り当てられます。 +ポインター記号 (->) は、"・・・に対するポインターを求める" ことを意味します。この記号は、"ダッシュ" (-) の後に "大なり" (>) を付けて構成されます。ここでは、$MyVar を参照するポインターを取得します。このポインターは、代入演算子 (:=) で $MyPointer に対して割り当てられます。 -$MyPointer は、$MyVar に対するポインターを格納する変数です。 $MyPointer は、"Hello" という $MyVar の値を含みませんが、その値を参照することはできます。 以下の式は $MyVar の値を返します: +$MyPointer は、$MyVar に対するポインターを格納する変数です。 $MyPointer は、"Hello" という $MyVar の値を含みませんが、その値を参照することはできます。以下の式は $MyVar の値を返します: ```4d $MyPointer-> ``` -前述の式は、"Hello" という文字列を返します。 ポインター記号 (->) をポインターの後につけると、参照先の値を取得することができます。 これをデリファレンス (参照外し) と呼びます。 +前述の式は、"Hello" という文字列を返します。ポインター記号 (->) をポインターの後につけると、参照先の値を取得することができます。これをデリファレンス (参照外し) と呼びます。 -ポインター記号 (->) を後につけたポインターは、その参照先を直接使うのと同義であることを理解することが重要です。 つまり、オリジナルの変数 $MyVar を使用することと、$MyPointer-> を使用することは、まったく同じ意味になります。 たとえば、以下のステートメントはアラートボックスに文字列 "Hello" を表示します: +ポインター記号 (->) を後につけたポインターは、その参照先を直接使うのと同義であることを理解することが重要です。つまり、オリジナルの変数 $MyVar を使用することと、$MyPointer-> を使用することは、まったく同じ意味になります。たとえば、以下のステートメントはアラートボックスに文字列 "Hello" を表示します: ```4d ALERT($MyPointer->) ``` -$MyPointer を使用して $MyVar の値を変更することもできます。 下記のステートメントは、変数 $MyVar に文字列 "Goodbye" を代入します: +$MyPointer を使用して $MyVar の値を変更することもできます。下記のステートメントは、変数 $MyVar に文字列 "Goodbye" を代入します: ```4d $MyPointer->:="Goodbye" ``` -この2つの $MyPointer-> を使用した例のとおり、$MyVar を使用するのとまったく同じ動作が実行されます。 以下の2つのステートメントも、同一の動作を実行します。 両方とも、変数 $MyVar の現在の値をアラートボックスに表示します: +この2つの $MyPointer-> を使用した例のとおり、$MyVar を使用するのとまったく同じ動作が実行されます。以下の2つのステートメントも、同一の動作を実行します。 両方とも、変数 $MyVar の現在の値をアラートボックスに表示します: ```4d ALERT($MyPointer->) @@ -94,7 +94,7 @@ $MyVar:="Goodbye" :::warning Null ポインター -null ポインター (別名 "nil") への代入または読み出しを試みた場合、ランタイムにおいてエラーを生成します。 例: +null ポインター (別名 "nil") への代入または読み出しを試みた場合、ランタイムにおいてエラーを生成します。例: ```4d var $p : Pointer // 初期化されていないポインター (Nil 値) @@ -116,7 +116,7 @@ End if ### テーブルへのポインター -テーブルの代わりにデリファレンスしたポインターを使用することができます。 以下のようなステートメントで、テーブルのポインターを作成します: +テーブルの代わりにデリファレンスしたポインターを使用することができます。以下のようなステートメントで、テーブルのポインターを作成します: ```4d $TablePtr:=->[anyTable] @@ -136,7 +136,7 @@ DEFAULT TABLE($TablePtr->) ### フィールドへのポインター -フィールドの代わりにデリファレンスしたポインターを使用することができます。 以下のようなステートメントで、フィールドのポインターを作成します: +フィールドの代わりにデリファレンスしたポインターを使用することができます。以下のようなステートメントで、フィールドのポインターを作成します: ```4d $FieldPtr:=->[aTable]ThisField @@ -156,9 +156,9 @@ OBJECT SET FONT($FieldPtr->;"Arial") ### 変数へのポインター -プロセス変数またはローカル変数のポインターを使う場合、参照される変数はポインターが使用される時点ですでに定義されていなければなりません。 ローカル変数は、それらを作成したメソッドの実行が終わると破棄され、プロセス変数もそれを作成したプロセスの終了時に削除される点に留意してください。 存在しない変数をポインターで呼び出そうとすると、インタープリターモードでは (「変数が設定されていません」という内容の) シンタックスエラーが起きます。コンパイルモードでは、さらに重大なエラーが発生する可能性があります。 +プロセス変数またはローカル変数のポインターを使う場合、参照される変数はポインターが使用される時点ですでに定義されていなければなりません。ローカル変数は、それらを作成したメソッドの実行が終わると破棄され、プロセス変数もそれを作成したプロセスの終了時に削除される点に留意してください。存在しない変数をポインターで呼び出そうとすると、インタープリターモードでは (「変数が設定されていません」という内容の) シンタックスエラーが起きます。コンパイルモードでは、さらに重大なエラーが発生する可能性があります。 -ローカル変数のポインターを使用すると、プロセス変数の使用を控えることができます。 ローカル変数へのポインターは、同じプロセス内でのみ使用することができます。 デバッガーにおいて、別のメソッドで宣言されたローカル変数へのポインターを表示すると、ポインターの後ろの括弧内にそのメソッド名が表示されます。 例として、*Method1* で以下のように書いたとします: +ローカル変数のポインターを使用すると、プロセス変数の使用を控えることができます。ローカル変数へのポインターは、同じプロセス内でのみ使用することができます。デバッガーにおいて、別のメソッドで宣言されたローカル変数へのポインターを表示すると、ポインターの後ろの括弧内にそのメソッド名が表示されます。例として、*Method1* で以下のように書いたとします: ```4d $MyVar:="Hello world" @@ -184,7 +184,7 @@ $param を展開すると、その値は次のようになります: ### 配列要素へのポインター -配列要素に対するポインターを作成することができます。 以下の例は配列を作成し、配列の最初の要素を指し示すポインターを変数 $ElemPtr に割り当てます: +配列要素に対するポインターを作成することができます。以下の例は配列を作成し、配列の最初の要素を指し示すポインターを変数 $ElemPtr に割り当てます: ```4d ARRAY REAL($anArray;10) // 配列を作成 @@ -199,14 +199,14 @@ $ElemPtr->:=8 ### 配列へのポインター -配列に対するポインターを作成することができます。 以下の例は配列を作成し、配列を指し示すポインターを変数 $ArrPtr に割り当てます: +配列に対するポインターを作成することができます。以下の例は配列を作成し、配列を指し示すポインターを変数 $ArrPtr に割り当てます: ```4d ARRAY REAL($anArray;10) // 配列を作成 $ArrPtr:=->$anArray // 配列へのポインターを作成 ``` -ポインターの参照先はあくまでも配列であり、配列要素ではないことを理解することが重要です。 たとえば、デリファレンスしたポインターを以下のように使用できます: +ポインターの参照先はあくまでも配列であり、配列要素ではないことを理解することが重要です。たとえば、デリファレンスしたポインターを以下のように使用できます: ```4d SORT ARRAY($ArrPtr->;>) // 配列の並べ替え @@ -220,7 +220,7 @@ SORT ARRAY($ArrPtr->;>) // 配列の並べ替え ### メソッドの引数としてのポインター -ポインターは引数としてメソッドに渡すことができます。 メソッド内で、ポインターの参照先の値を変更することができます。 たとえば、以下のメソッド `takeTwo` は、2つのポインターを引数として受け取ります。 そして、最初の引数の参照先を大文字に変換し、2つめの引数の参照先を小文字に変換します。 当該プロジェクトメソッドのコードです: +ポインターは引数としてメソッドに渡すことができます。メソッド内で、ポインターの参照先の値を変更することができます。たとえば、以下のメソッド `takeTwo` は、2つのポインターを引数として受け取ります。そして、最初の引数の参照先を大文字に変換し、2つめの引数の参照先を小文字に変換します。当該プロジェクトメソッドのコードです: ```4d //takeTwo プロジェクトメソッド @@ -237,13 +237,13 @@ SORT ARRAY($ArrPtr->;>) // 配列の並べ替え takeTwo(->[myTable]myField;->$MyVar) ``` -このフィールド [myTable]myField の値が "jones" であれば、"JONES" に変更されます。 他方、変数 $MyVar の値が "HELLO" であれば、"hello" に変更されます。 +このフィールド [myTable]myField の値が "jones" であれば、"JONES" に変更されます。他方、変数 $MyVar の値が "HELLO" であれば、"hello" に変更されます。 -メソッド takeTwo で宣言されている引数の型と、引数として渡したポインターの参照先のデータタイプが一致していることが重要です。 この例では、ポインターの参照先は必ず文字列またはテキスト型でなければなりません。 +メソッド takeTwo で宣言されている引数の型と、引数として渡したポインターの参照先のデータタイプが一致していることが重要です。この例では、ポインターの参照先は必ず文字列またはテキスト型でなければなりません。 ### ポインターへのポインター -より複雑な使い方として、ポインターを参照するポインターを使うことができます。 以下の例を考えます: +より複雑な使い方として、ポインターを参照するポインターを使うことができます。以下の例を考えます: ```4d $MyVar:="Hello" @@ -263,9 +263,9 @@ takeTwo(->[myTable]myField;->$MyVar) - $PointerTwo:=->$PointerOne \--> 新たな変数 $PointerTwo に、$MyVar を参照する $PointerOne へのポインターを代入します。 - ($PointerTwo->)->:="Goodbye" - \--> $PointerTwo-> は $PointerOne を示し、$PointerOne は $MyVarを示します。 つまり、($PointerTwo->)-> は、$MyVar を示しています。 結果として、文字列 "Goodbye" が $MyVar に代入されます。 + \--> $PointerTwo-> は $PointerOne を示し、$PointerOne は $MyVarを示します。つまり、($PointerTwo->)-> は、$MyVar を示しています。結果として、文字列 "Goodbye" が $MyVar に代入されます。 - ALERT (($PointerTwo->)->) - \--> 先の説明と同様に $PointerTwo-> は $PointerOne の中身を示し、$PointerOne は $MyVar を示しています。 つまり、($PointerTwo->)-> は、$MyVar を示しています。 結果として、アラートボックスには $MyVar の内容が表示されます。 + \--> 先の説明と同様に $PointerTwo-> は $PointerOne の中身を示し、$PointerOne は $MyVar を示しています。つまり、($PointerTwo->)-> は、$MyVar を示しています。結果として、アラートボックスには $MyVar の内容が表示されます。 以下の例では、$MyVar に "Hello" が代入されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_string.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_string.md index d3057e11edc07d..22aa6f7cc67387 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_string.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_string.md @@ -32,13 +32,13 @@ title: String | \\\\ | | | \\" | " (引用符) | -**注:** \ (バックスラッシュ) は Windows でパス名の区切り文字として使用されています。 しかし “C:\MyDocuments\New” と入力した場合、4Dは二番目のバックスラッシュは "\N" (行送り) と解釈してしまい、“C:\\\MyDocuments\New”を表示します。 このようなケースでは開発者がバックスラッシュを2つ入力するようにしなければなりません。 +**注:** \ (バックスラッシュ) は Windows でパス名の区切り文字として使用されています。しかし “C:\MyDocuments\New” と入力した場合、4Dは二番目のバックスラッシュは "\N" (行送り) と解釈してしまい、“C:\\\MyDocuments\New”を表示します。 このようなケースでは開発者がバックスラッシュを2つ入力するようにしなければなりません。 ### 行末の自動正規化 -データベース内で管理されているテキストが複数のプラットフォームで正常に処理されるようにするため、4D は改行文字を自動的に正規化し、それらが単一の文字( `\r` 、キャリッジリターン)に収まる様にします。 この正規化は、標準テキストまたはマルチスタイルテキストをホストするフォームオブジェクト(変数またはフィールド)レベルにおいて実行されます。 ネイティブではない改行文字、あるいは複数の改行文字の混用(例えば `\r\n` など)は、単一の `\r` とみなされます。 なお、XML 標準(マルチスタイルテキストフォーマット)に準拠するため、[スタイル付きテキストコマンド](../commands/theme/Styled_Text.md) は、オブジェクトに割り当てられていないテキスト変数の行末文字も正規化するという点に注意してください。 +データベース内で管理されているテキストが複数のプラットフォームで正常に処理されるようにするため、4D は改行文字を自動的に正規化し、それらが単一の文字( `\r` 、キャリッジリターン)に収まる様にします。この正規化は、標準テキストまたはマルチスタイルテキストをホストするフォームオブジェクト(変数またはフィールド)レベルにおいて実行されます。ネイティブではない改行文字、あるいは複数の改行文字の混用(例えば `\r\n` など)は、単一の `\r` とみなされます。なお、XML 標準(マルチスタイルテキストフォーマット)に準拠するため、[スタイル付きテキストコマンド](../commands/theme/Styled_Text.md) は、オブジェクトに割り当てられていないテキスト変数の行末文字も正規化するという点に注意してください。 -この原則により、マルチプラットフォームのコンテキストにおいて[`HIGHLIGHT TEXT`](../commands/highlight-text) などのマルチスタイルテキスト系のコマンドを使用するのが用意になります。 ただし、様々な異なるソースからのテキストを処理しようとする場合には、この原則を公領する必要があります。 +この原則により、マルチプラットフォームのコンテキストにおいて[`HIGHLIGHT TEXT`](../commands/highlight-text) などのマルチスタイルテキスト系のコマンドを使用するのが用意になります。ただし、様々な異なるソースからのテキストを処理しようとする場合には、この原則を公領する必要があります。 ## 文字列演算子 @@ -64,7 +64,7 @@ title: String ## 文字列比較の詳細 - 文字列は文字ごとに比較されます (後述の [キーワード](dt_string.md#キーワード) による検索の場合を除きます)。 -- 文字列が比較されるとき文字の大小文字は無視されます。したがって、"a"="A"は `true` を返します。 比較演算子の左側の式においては、"@" は単なる文字であると解釈されます。 たとえば、次の式は `FALSE` です: +- 文字列が比較されるとき文字の大小文字は無視されます。したがって、"a"="A"は `true` を返します。比較演算子の左側の式においては、"@" は単なる文字であると解釈されます。たとえば、次の式は `FALSE` です: ```4d Character code("A")=Character code("a") @@ -72,7 +72,7 @@ Character code("A")=Character code("a") // Character code("a") は 97 ``` -- 文字列の比較にあたっては、アクセント等の発音記号付きの文字は、お使いのコンピューターのシステム文字比較表を使って比較されます。 たとえば、日本語においては以下の式は `true` を返します: +- 文字列の比較にあたっては、アクセント等の発音記号付きの文字は、お使いのコンピューターのシステム文字比較表を使って比較されます。たとえば、日本語においては以下の式は `true` を返します: ```4d "あ"="ア" @@ -84,19 +84,19 @@ Character code("A")=Character code("a") ### ワイルドカード記号 (@) -4D ランゲージでは **@** をワイルドカード記号として使用します。 ワイルドカードは、すべての文字列の比較に使用することができ、ワイルドカードによって置き換わる文字の数は指定されません。 たとえば、次の式は `true` になります: +4D ランゲージでは **@** をワイルドカード記号として使用します。ワイルドカードは、すべての文字列の比較に使用することができ、ワイルドカードによって置き換わる文字の数は指定されません。たとえば、次の式は `true` になります: ```4d "abcdefghij"="abc@" ``` -一方、どのような場合でも、ワイルドカードを 2つ連続して使用した文字列比較は常に FALSE を返します。 比較演算子の左側の式においては、"@" は単なる文字であると解釈されます。たとえば、次の式は `FALSE` です: +一方、どのような場合でも、ワイルドカードを 2つ連続して使用した文字列比較は常に FALSE を返します。比較演算子の左側の式においては、"@" は単なる文字であると解釈されます。たとえば、次の式は `FALSE` です: ```4d "abc@"="abcdefghij" ``` -ワイルドカードは “0文字以上” を意味します。 以下の式はすべて `true` です: +ワイルドカードは “0文字以上” を意味します。以下の式はすべて `true` です: ```4d "abcdefghij"="abcdefghij@" @@ -106,7 +106,7 @@ Character code("A")=Character code("a") "abcdefghij"="@abcde@fghij@" ``` -一方、どのような場合でも、ワイルドカードを 2つ連続して使用した文字列比較は常に `FALSE` を返します。 次の式は `FALSE` になります: +一方、どのような場合でも、ワイルドカードを 2つ連続して使用した文字列比較は常に `FALSE` を返します。次の式は `FALSE` になります: ```4d "abcdefghij"="abc@@fg" @@ -119,7 +119,7 @@ Character code("A")=Character code("a") "abcd"<="abc@ef" // 有効な比較ではありません ``` -文字列の比較または検索において、@ をワイルドカードではなく一般の文字として扱いたい場合、`Character code (At sign)` 指示を使用します。 たとえば、文字列が @ 文字で終わっているかどうかを知りたいとします。 以下の式は ($vsValue が空でなければ) 常に `true` です: +文字列の比較または検索において、@ をワイルドカードではなく一般の文字として扱いたい場合、`Character code (At sign)` 指示を使用します。たとえば、文字列が @ 文字で終わっているかどうかを知りたいとします。以下の式は ($vsValue が空でなければ) 常に `true` です: ```4d ($vsValue[[Length($vsValue)]]="@") @@ -135,7 +135,7 @@ Character code("A")=Character code("a") ### キーワード -他の文字列比較と異なり、"%" 記号を使ったキーワードによる検索はテキスト中の単語を検索します: 単語は一つのまとまりとして個々に扱われます。 複数の単語や、音節など単語の一部を検索するような場合、**%** 演算子は常に `false` を返します。 区切り文字 (スペースや句読点など) に囲まれた文字列が単語として認識されます。 “Today's” のようにアポストロフィを含む単語は、通常それを含めた 1つの単語として扱われますが、特定の場合には無視されます (以下の注記を参照ください)。 数字も検索できます。小数点は区切り文字ではなく、数字の一部として扱われます。 ただし、通貨や温度などを表す記号は無視されます。 +他の文字列比較と異なり、"%" 記号を使ったキーワードによる検索はテキスト中の単語を検索します: 単語は一つのまとまりとして個々に扱われます。複数の単語や、音節など単語の一部を検索するような場合、**%** 演算子は常に `false` を返します。区切り文字 (スペースや句読点など) に囲まれた文字列が単語として認識されます。 “Today's” のようにアポストロフィを含む単語は、通常それを含めた 1つの単語として扱われますが、特定の場合には無視されます (以下の注記を参照ください)。数字も検索できます。小数点は区切り文字ではなく、数字の一部として扱われます。ただし、通貨や温度などを表す記号は無視されます。 ```4d "Alpha Bravo Charlie"%"Bravo" // true @@ -147,16 +147,16 @@ Character code("A")=Character code("a") > **注:** > -> - 4Dは、`<>=#` 演算子を使った文字列比較や、キーワードの検出に ICUライブラリを使用しています。 実装されているルールの詳細に関しては、以下のアドレスを参照ください: +> - 4Dは、`<>=#` 演算子を使った文字列比較や、キーワードの検出に ICUライブラリを使用しています。実装されているルールの詳細に関しては、以下のアドレスを参照ください: > - 日本語版の 4Dでは、ICU の代わりにデフォルトで Mecab が使用されています。 ## 文字参照記号 文字参照記号: [[...]] -文字参照記号は、文字列から一文字のみを参照するのに使用します。 この構文は、テキストおよび文字列型の変数やフィールドの任意の位置の文字を指し示します。 +文字参照記号は、文字列から一文字のみを参照するのに使用します。この構文は、テキストおよび文字列型の変数やフィールドの任意の位置の文字を指し示します。 -文字参照記号が代入演算子 (:=) の左側にある場合、文字列の指定した位置に一文字を代入します。 以下の例は、vsName が空の文字列ではない場合に、vsName の最初の文字を大文字にします。 +文字参照記号が代入演算子 (:=) の左側にある場合、文字列の指定した位置に一文字を代入します。以下の例は、vsName が空の文字列ではない場合に、vsName の最初の文字を大文字にします。 ```4d If(vsName#"") @@ -164,7 +164,7 @@ If(vsName#"") End if ``` -それ以外の場合には、式内で使用される文字列参照記号は、参照する文字を1文字の独立した文字列として返します。 例: +それ以外の場合には、式内で使用される文字列参照記号は、参照する文字を1文字の独立した文字列として返します。例: ```4d // 以下の例は vtText の最後の文字が "@" であるかをテストします。 @@ -184,11 +184,11 @@ End if ### 無効な文字列参照に関する注意 -文字列参照記号を使用する際、配列に存在する要素を指定するのと同じ要領で、文字列内に存在する文字を指定しなければなりません。 たとえば、文字列変数の20番目の文字を参照する場合、この変数は必ず、少なくとも20文字以上の長さがなくてはなりません。 +文字列参照記号を使用する際、配列に存在する要素を指定するのと同じ要領で、文字列内に存在する文字を指定しなければなりません。たとえば、文字列変数の20番目の文字を参照する場合、この変数は必ず、少なくとも20文字以上の長さがなくてはなりません。 - インタープリターモードでは構文エラーは発生しません。 - コンパイルモードで範囲チェックオプションを無効にしている場合には、メモリ領域を破壊するおそれがあります。 -- コンパイルモードで範囲チェックオプションを有効にしている場合には、エラーが発生します。 たとえば、次のように文字列やテキストの終点を超えた位置に文字を書き込むコードを実行すると: +- コンパイルモードで範囲チェックオプションを有効にしている場合には、エラーが発生します。たとえば、次のように文字列やテキストの終点を超えた位置に文字を書き込むコードを実行すると: ``` // 真似をしないでください diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_time.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_time.md index 1360dceb2de4d1..0d04c4a95edf86 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_time.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_time.md @@ -7,7 +7,7 @@ title: Time 時間は 24時間制です。 -時間の値は数値として扱うことができます。 時間から返される数値は、その時間が表す総秒数です。 +時間の値は数値として扱うことができます。時間から返される数値は、その時間が表す総秒数です。 **注:** *4Dランゲージリファレンス* マニュアルでは、コマンド説明における時間引数は特に明記されていない限り、「時間」と表記されています。 @@ -15,7 +15,7 @@ title: Time 時間リテラル定数は、疑問符 (? ... ?) で囲んで表します。 -時間は、“時:分:秒” の順で表し、それぞれをコロン (:) で区切ります。 時間は24時間制で指定します。 +時間は、“時:分:秒” の順で表し、それぞれをコロン (:) で区切ります。時間は24時間制で指定します。 時間定数の例を次に示します: @@ -27,7 +27,7 @@ title: Time 空の時間は、?00.00.00? のように指定します。 -**Tip:** コードエディターでは空の時間を入力するためのショートカットが提供されています。 空の時間を入力するには、疑問符 (?) の入力後に Enterキーを押します。 +**Tip:** コードエディターでは空の時間を入力するためのショートカットが提供されています。空の時間を入力するには、疑問符 (?) の入力後に Enterキーを押します。 ## 時間演算子 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_variant.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_variant.md index dfaec62d1bb20d..d987830b9a641f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_variant.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/dt_variant.md @@ -3,7 +3,7 @@ id: variant title: Variant --- -バリアント型は、サポートしている型の任意のデータを受け取ることができる変数型です。 一般的には、返したり受け取ったりする値の型が未定である汎用的なコードを書くためにこの変数型が使用されます。 これは、たとえばオブジェクトの属性を扱うようなコードがそれに該当します。 +バリアント型は、サポートしている型の任意のデータを受け取ることができる変数型です。一般的には、返したり受け取ったりする値の型が未定である汎用的なコードを書くためにこの変数型が使用されます。これは、たとえばオブジェクトの属性を扱うようなコードがそれに該当します。 バリアント型の変数は以下のデータタイプの値を格納することができます: @@ -23,7 +23,7 @@ title: Variant > バリアント型変数に配列を格納することはできません。 -インタープリターモード、コンパイルモードのどちらにおいても、一つのバリアント型変数に異なる型のコンテンツを代入することができます。 固定されている型の変数とは異なり、バリアント型変数の中身は変数自身の型 (つまり、バリアント型) と同一ではありません。 例: +インタープリターモード、コンパイルモードのどちらにおいても、一つのバリアント型変数に異なる型のコンテンツを代入することができます。固定されている型の変数とは異なり、バリアント型変数の中身は変数自身の型 (つまり、バリアント型) と同一ではありません。例: ```4d C_VARIANT($variant) @@ -37,7 +37,7 @@ $vtype:=Type($variant) // 12 (Is variant) $vtypeVal:=Value type($variant) // 1 (Is real) ``` -変数が期待されるところであれば、どこでもバリアント型変数を使用することができます。 ただし、変数の中身のデータ型は予期される型でなくてはなりません。 また、バリアント型変数を使う場合、その時点で変数に格納されている値のみが実質的に使われます。 例: +変数が期待されるところであれば、どこでもバリアント型変数を使用することができます。 ただし、変数の中身のデータ型は予期される型でなくてはなりません。また、バリアント型変数を使う場合、その時点で変数に格納されている値のみが実質的に使われます。例: ```4d C_VARIANT($v) @@ -60,4 +60,4 @@ Case of End case ``` -> バリアント型変数が必要ではない場合 (つまりデータタイプが分かっている場合)、型が固定された変数を使用することが推奨されます。 固定型変数の方がパフォーマンスやコードの可読性も良く、予期せぬデータタイプを見過ごしてしまうようなバグを防げるため、コンパイラーにも優しいといえます。 +> バリアント型変数が必要ではない場合 (つまりデータタイプが分かっている場合)、型が固定された変数を使用することが推奨されます。固定型変数の方がパフォーマンスやコードの可読性も良く、予期せぬデータタイプを見過ごしてしまうようなバグを防げるため、コンパイラーにも優しいといえます。 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 10cf3e7a451d68..cbdaa66beb9081 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 @@ -3,37 +3,37 @@ id: error-handling title: エラー処理 --- -エラー処理とは、アプリケーション内で発生する可能性のあるエラーに備え、対処することです。 ランタイムにおけるエラーのキャッチや報告、またそれらの条件を検証するため、4Dは包括的なサポートを提供しています。 +エラー処理とは、アプリケーション内で発生する可能性のあるエラーに備え、対処することです。ランタイムにおけるエラーのキャッチや報告、またそれらの条件を検証するため、4Dは包括的なサポートを提供しています。 エラー処理は次の2つの要望に応えます: - 開発フェーズにおいて、問題となりうるコードのエラーやバグを発見して修正したい。 -- 運用フェーズにおいて、予期しないエラーを検知して回復したい。とくに、システムエラーダイアログ (ディスクが一杯、ファイルがない、など) を独自のインターフェースに置換できます。 +- 運用フェーズにおいて、予期しないエラーを検知して回復したい。とくに、システムエラーダイアログ (ディスクが一杯、ファイルがない、など)を独自のインターフェースに置換できます。 -基本的に、4D でエラー処理する方法は 2つあります。 次のことが可能です: +基本的に、4D でエラー処理する方法は 2つあります。次のことが可能です: - [エラー処理メソッドを実装する](#エラー処理メソッドの実装) - エラーを投げる可能性のある関数・メソッド・式を呼び出すコードの前に [`Try()` keyword](#tryexpression) または [`Try/Catch` structure](#trycatchend-try) 文を使う :::tip グッドプラクティス -サーバー上で実行されるコードのため、4D Server にはグローバルなエラー処理メソッドを実装しておくことが強く推奨されます。 4D Server が [ヘッドレス](../Admin/cli.md) で実行されていない場合 (つまり、[管理画面](../ServerWindow/overview.md) 付きで起動されている場合)、このメソッドによって、予期せぬダイアログがサーバーマシン上に表示されることを防ぎます。 ヘッドレスモードでは、エラーは解析のため [4DDebugLog ファイル](../Debugging/debugLogFiles.md#4ddebuglogtxt-standard) に記録されます。 +サーバー上で実行されるコードのため、4D Server にはグローバルなエラー処理メソッドを実装しておくことが強く推奨されます。 4D Server が [ヘッドレス](../Admin/cli.md) で実行されていない場合 (つまり、[管理画面](../ServerWindow/overview.md) 付きで起動されている場合)、このメソッドによって、予期せぬダイアログがサーバーマシン上に表示されることを防ぎます。ヘッドレスモードでは、エラーは解析のため [4DDebugLog ファイル](../Debugging/debugLogFiles.md#4ddebuglogtxt-standard) に記録されます。 ::: ## 予測可能なエラー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` - "その他のエラー")も返すことがあり得るという点に注意してください。 +もう一つのエラーのカテゴリーは**予測不可能な**エラーと呼ばれ、別名**深刻なエラー**とも呼ばれます。これにはディスク書き込みエラー、ネットワーク失敗、あるいはそれ以外の予期せぬ中断が含まれます。これらのカテゴリーのエラーは[*コード*、*メッセージ*および*署名*](#エラーコード)によって定義される例外を生成します。これらは実行を中断し、[`Try`](#tryexpression)、[`Try/Catch`](#trycatchend-try) あるいは [エラー処理メソッド](#エラー処理メソッドの実装) 機能のエラー処理をトリガーします。これらは[`Last errors`](../commands/last-errors) のコレクションに含まれます。深刻なエラーは、プロパティに値(例: `dk status serious error` - "その他のエラー")も返すことがあり得るという点に注意してください。 ## エラー処理メソッドの実装 4D においては、エラー専用のプロジェクトメソッドである **エラー処理** (または **エラーキャッチ**) メソッド内ですべてのエラーをキャッチし、処理することができます。 -インストールされたエラーハンドラーは、4Dアプリケーションまたはそのコンポーネントでエラーが発生した場合、インタープリターモードまたはコンパイル済モードで自動的に呼び出されます。 実行コンテキストに応じて、異なるエラーハンドラーを呼び出すこともできます (後述参照)。 +インストールされたエラーハンドラーは、4Dアプリケーションまたはそのコンポーネントでエラーが発生した場合、インタープリターモードまたはコンパイル済モードで自動的に呼び出されます。実行コンテキストに応じて、異なるエラーハンドラーを呼び出すこともできます (後述参照)。 -エラー処理用のプロジェクトメソッドを *実装* するには、[`ON ERR CALL`](../commands/on-err-call) コマンドをコールし、当該プロジェクトメソッド名と (任意で) スコープを引数として渡します。 例: +エラー処理用のプロジェクトメソッドを *実装* するには、[`ON ERR CALL`](../commands/on-err-call) コマンドをコールし、当該プロジェクトメソッド名と (任意で) スコープを引数として渡します。例: ```4d ON ERR CALL("IO_Errors";ek local) // ローカルなエラー処理メソッドを実装します @@ -45,7 +45,7 @@ ON ERR CALL("IO_Errors";ek local) // ローカルなエラー処理メソッド ON ERR CALL("";ek local) // ローカルプロセスにおいてエラーの検知を中止します ``` -[`Method called on error`](../commands/method-called-on-error) コマンドを使用すると、カレントプロセスにおいて`ON ERR CALL` で実装されたメソッドの名前を知ることができます。 このコマンドは汎用的なコードでとくに有用です。 エラー処理メソッドを一時的に変更し、後で復元することができます: +[`Method called on error`](../commands/method-called-on-error) コマンドを使用すると、カレントプロセスにおいて`ON ERR CALL` で実装されたメソッドの名前を知ることができます。このコマンドは汎用的なコードでとくに有用です。 エラー処理メソッドを一時的に変更し、後で復元することができます: ```4d $methCurrent:=Method called on error(ek local) @@ -73,9 +73,9 @@ ON ERR CALL("globalHandler";ek global) // グローバルなエラー処理メ ON ERR CALL("componentHandler";ek errors from components) // コンポーネント用のエラー処理メソッドをインストールします ``` -"フォールバック" として機能するグローバルエラーハンドラーと、特定プロセス専用のローカルエラーハンドラーを同時にインストールすることができます。 グローバルなエラーハンドラーは、インターフェース付きでサーバーを実行している場合にエラーダイアログの表示を避けるためにも有効です。 +"フォールバック" として機能するグローバルエラーハンドラーと、特定プロセス専用のローカルエラーハンドラーを同時にインストールすることができます。グローバルなエラーハンドラーは、インターフェース付きでサーバーを実行している場合にエラーダイアログの表示を避けるためにも有効です。 -アプリケーションにおいて一つのエラーキャッチメソッドを使うやり方もあれば、アプリケーションのモジュールごとに違うメソッドを定義する方法もあります。 ただし、一つのプロジェクトと一つの実行コンテキストにつき実装できるのは一つのメソッドのみです。 +アプリケーションにおいて一つのエラーキャッチメソッドを使うやり方もあれば、アプリケーションのモジュールごとに違うメソッドを定義する方法もあります。ただし、一つのプロジェクトと一つの実行コンテキストにつき実装できるのは一つのメソッドのみです。 エラーが発生した場合、以下の図のように 1つのメソッドのみが呼び出されます: @@ -163,7 +163,7 @@ Try (expression) : any | Undefined ### 例題 -1. ファイルをエラーなく開くことができ、その内容が読み取り可能な場合に、ファイルの内容を表示します。 以下のように書くことができます: +1. ファイルをエラーなく開くことができ、その内容が読み取り可能な場合に、ファイルの内容を表示します。以下のように書くことができます: ```4d var $text : Text @@ -174,7 +174,7 @@ If ($fileHandle # Null) End if ``` -2. ゼロ除算エラーを処理します。 ここでは 0 を返し、エラーをスローするようにします: +2. ゼロ除算エラーを処理します。ここでは 0 を返し、エラーをスローするようにします: ```4d function divide( $p1: real; $p2: real)-> $result: real @@ -211,7 +211,7 @@ End if `Try...Catch...End try` 文は、実際の実行コンテキスト (特にローカル変数の値を含む) でコードブロックをテストし、スローされるエラーをキャッチすることで、4D のエラーダイアログボックスが表示されないようにできます。 -`Try(expression)` キーワードが単一の行の式を評価するのとは異なり、`Try...Catch...End try` 文は、単純なものから複雑なものまで、任意のコードブロックを評価することができます。エラー処理メソッドは必要としない点は同じです。 また、`Catch` ブロックは、任意の方法でエラーを処理するために使用できます。 +`Try(expression)` キーワードが単一の行の式を評価するのとは異なり、`Try...Catch...End try` 文は、単純なものから複雑なものまで、任意のコードブロックを評価することができます。エラー処理メソッドは必要としない点は同じです。また、`Catch` ブロックは、任意の方法でエラーを処理するために使用できます。 `Try...Catch...End try` 構文の正式なシンタックスは、以下の通りです: @@ -244,7 +244,7 @@ End try ::: -`Catch` コードブロックでは、標準のエラー処理コマンドを使用してエラーを処理できます。 [`Last errors`](../commands/last-errors) 関数は最後のエラーに関するコレクションを格納しています。 このコードブロック内で[エラー処理メソッドを宣言する](#エラー処理メソッドの実装) こともできます。この場合エラー発生時にはそれが呼び出されます(宣言しない場合には、4Dエラーダイアログが表示されます)。 +`Catch` コードブロックでは、標準のエラー処理コマンドを使用してエラーを処理できます。 [`Last errors`](../commands/last-errors) 関数は最後のエラーに関するコレクションを格納しています。このコードブロック内で[エラー処理メソッドを宣言する](#エラー処理メソッドの実装) こともできます。この場合エラー発生時にはそれが呼び出されます(宣言しない場合には、4Dエラーダイアログが表示されます)。 :::note @@ -287,7 +287,7 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo ## エラーコード -コード実行を妨げる例外は4D によって返されますが、その原因はOS、デバイス、4D カーネル、コード内の[`throw`](../commands/throw) など、様々な要因が考えられます。 そのため、3つの要素によって定義されます: +コード実行を妨げる例外は4D によって返されますが、その原因はOS、デバイス、4D カーネル、コード内の[`throw`](../commands/throw) など、様々な要因が考えられます。そのため、3つの要素によって定義されます: - **コンポーネント署名**。エラーの起きた場所を表します(署名の一覧については[`Last errors`](../commands/last-errors) を参照してください) - **メッセージ**。エラーがなぜ起きたかを説明します。 @@ -297,7 +297,7 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo ### エラーダイアログボックス -[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。 **詳細** エリアを展開し、**保存...** あるいは **コピー** ボランをクリックします: +[4D エラーダイアログボックス](../Debugging/basics.md) はユーザーに対してコードとメッセージを表示します。**詳細** エリアを展開し、**保存...** あるいは **コピー** ボランをクリックします: ![copy-button](../assets/en/Concepts/error.png) @@ -307,7 +307,7 @@ Function createInvoice($customer : cs.customerEntity; $items : Collection; $invo ### `Last errors`コマンド -コード内で[`Last errors`](../commands/last-errors) コマンドを呼び出すことで、エラーに関する情報を取得することができます。 このコマンドは[`ON ERR CALL`](../commands/on-err-call) コマンドで実装されたエラー処理メソッドから、あるいは[`Try` または `Try/Catch`](#trycatchend-try) コンテキスト内から呼び出す必要があります。 +コード内で[`Last errors`](../commands/last-errors) コマンドを呼び出すことで、エラーに関する情報を取得することができます。このコマンドは[`ON ERR CALL`](../commands/on-err-call) コマンドで実装されたエラー処理メソッドから、あるいは[`Try` または `Try/Catch`](#trycatchend-try) コンテキスト内から呼び出す必要があります。 最終アプリケーションにおいてエラーへの割り込みと処理をする場合、[`Last errors`](../commands/last-errors) を使用して必ず*error* オブジェクトの全てのプロパティを記録するようにしてください。エラーコードはコンポーネントによって異なるからです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/flow-control.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/flow-control.md index 1fe52cb2a8e077..98e6aabbc93411 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/flow-control.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/flow-control.md @@ -3,18 +3,18 @@ id: control-flow title: 制御フロー --- -メソッドや関数が単純か複雑かに関係なく、開発者は3つのプログラミング構造のうち、1つ以上を常に使用します。 プログラミング構造は、メソッド内でステートメントが実行される順序を決定する実行フローをコントロールします。 3つのタイプの構造があります: +メソッドや関数が単純か複雑かに関係なく、開発者は3つのプログラミング構造のうち、1つ以上を常に使用します。プログラミング構造は、メソッド内でステートメントが実行される順序を決定する実行フローをコントロールします。 3つのタイプの構造があります: -- **シーケンシャル**: シーケンシャル構造は単純な線形構造です。 シーケンスとは、4Dが最初から最後まで次々に実行する一連のステートメントです。 オブジェクトメソッドで頻繁に使用される1行から成るルーチンはもっとも簡単なシーケンシャル構造の例です。 例: `[People]lastName:=Uppercase([People]lastName)` -- **分岐**: 分岐構造は、条件をテストし、その結果に基づいて異なる流れにメソッドを導きます。 条件は true または false に評価されるブール式です。 [`If...Else...End if`](#ifelseend-if) 構文は分岐構造の一例で、処理フローを二つに分岐します。 [`Case of...Else...End case`](#case-ofelseend-case) 構文も分岐構造の一つで、処理フローをもっとたくさん分岐することができます。 -- **ループ**: メソッドの作成にあたって、何度も同じ処理を繰り返すことがあります。 これに実現するために、4D は以下のループ構造を備えています: +- **シーケンシャル**: シーケンシャル構造は単純な線形構造です。シーケンスとは、4Dが最初から最後まで次々に実行する一連のステートメントです。オブジェクトメソッドで頻繁に使用される1行から成るルーチンはもっとも簡単なシーケンシャル構造の例です。例: `[People]lastName:=Uppercase([People]lastName)` +- **分岐**: 分岐構造は、条件をテストし、その結果に基づいて異なる流れにメソッドを導きます。条件は true または false に評価されるブール式です。 [`If...Else...End if`](#ifelseend-if) 構文は分岐構造の一例で、処理フローを二つに分岐します。 [`Case of...Else...End case`](#case-ofelseend-case) 構文も分岐構造の一つで、処理フローをもっとたくさん分岐することができます。 +- **ループ**: メソッドの作成にあたって、何度も同じ処理を繰り返すことがあります。これに実現するために、4D は以下のループ構造を備えています: - [`While...End while`](#whileend-while) - [`Repeat...Until`](#repeatuntil) - [`For...End for`](#forend-for) - [`For each...End for each`](#for-eachend-for-each) -ループを制御する方法には、条件が満たされるまでループする方法と、指定した回数だけループする方法の2通りがあります。 各ループ構造はいずれの方法にも用いることができますが、`While` ループと `Repeat` ループは条件が満たされるまで繰り返す場合に、`For` ループは指定した回数だけループする場合の利用に適切です。 `For each...End for each` ループは両方を組み合わせることが可能で、オブジェクトやコレクション内でループするために設計されています。 +ループを制御する方法には、条件が満たされるまでループする方法と、指定した回数だけループする方法の2通りがあります。各ループ構造はいずれの方法にも用いることができますが、`While` ループと `Repeat` ループは条件が満たされるまで繰り返す場合に、`For` ループは指定した回数だけループする場合の利用に適切です。 `For each...End for each` ループは両方を組み合わせることが可能で、オブジェクトやコレクション内でループするために設計されています。 **注:** 4Dはプログラム構造 (If/While/For/Caes of/Repeat/For each) を512レベルまで入れ子で記述できます。 @@ -38,9 +38,9 @@ title: 制御フロー End if ``` -`If...Else...End if` 構造は、条件 (ブール式) が true か false かによって、処理の選択肢を2つメソッドに与えます。 ブール式が true の場合は、テストのすぐ後のステートメントを実行し、 ブール式が FALSE の場合には、Else 文のすぐ後のステートメントを実行します。 ブール式が FALSE の場合には、Else 文のすぐ後のステートメントを実行します。 任意の `Else` が省略されていた場合、`End if` のすぐ後のステートメント (あれば) へと実行が続行されます。 +`If...Else...End if` 構造は、条件 (ブール式) が true か false かによって、処理の選択肢を2つメソッドに与えます。ブール式が true の場合は、テストのすぐ後のステートメントを実行し、 ブール式が FALSE の場合には、Else 文のすぐ後のステートメントを実行します。ブール式が FALSE の場合には、Else 文のすぐ後のステートメントを実行します。任意の `Else` が省略されていた場合、`End if` のすぐ後のステートメント (あれば) へと実行が続行されます。 -ブール式は常に全体が評価されるという点に注意してください。 たとえば、以下のような場合: +ブール式は常に全体が評価されるという点に注意してください。たとえば、以下のような場合: ```4d If(MethodA & MethodB) @@ -48,7 +48,7 @@ title: 制御フロー End if ``` -この場合、両方のメソッドが true である場合に限り、式は true になります。 しかしながら *MethodA* が false であっても、4D は *MethodB* も評価するため、これは時間の無駄になります。 この場合には、以下のような構造を使用するほうが賢明といえます: +この場合、両方のメソッドが true である場合に限り、式は true になります。しかしながら *MethodA* が false であっても、4D は *MethodB* も評価するため、これは時間の無駄になります。この場合には、以下のような構造を使用するほうが賢明といえます: ```4d If(MethodA) @@ -82,7 +82,7 @@ End if End if ``` -**Tip:** 一方の条件に実行ステートメントがない分岐処理を書くこともできます。 下のようなコードはどちらも有効です: +**Tip:** 一方の条件に実行ステートメントがない分岐処理を書くこともできます。下のようなコードはどちらも有効です: ```4d If(Boolean_Expression) @@ -140,7 +140,7 @@ End if `If...Else...End if` と同様に、`Case of...Else...End case` 構造も処理の選択肢をメソッドに与えます。 `If...Else...End` との違いは、`Case of...Else...End case` 構造が複数のブール式を評価し、その中から最初に true となるステートメントを実行することです。 -ブール式の前にはそれぞれコロン (`:`) を付けます。 コロンとブール式の組み合わせをケースと呼びます。 例えば以下の行はケースです: +ブール式の前にはそれぞれコロン (`:`) を付けます。コロンとブール式の組み合わせをケースと呼びます。例えば以下の行はケースです: ```4d :(bValidate=1) @@ -148,7 +148,7 @@ End if 最初に true になったケースに続く (次のケースまでの) ステートメントだけが実行されます。 true になるケースがない場合、どのステートメントも実行されません (`Else` 文が指定されていない場合) 。 -最後のケースの後に Else 文を含むことができます。 すべてのケースが FALSE の場合に、`Else` 文の後のステートメントが実行されます。 +最後のケースの後に Else 文を含むことができます。すべてのケースが FALSE の場合に、`Else` 文の後のステートメントが実行されます。 #### 例題 @@ -187,7 +187,7 @@ End if `Case of...Else...End case` 構造は、最初に true になったケースだけを実行します。 2つ以上のケースが true の場合は、最初に true になったケースのステートメントだけを実行します。 -したがって、階層的なテストを実行するときには、階層上で低い位置にある条件がテスト順序で先に記述されていることを確認する必要があります。 以下の例では、ケース2が true の場合、ケース1も必ず true であるため、ケース1は後に位置すべきです。 このままの順序では、ケース2のステートメントはけっして実行されません: +したがって、階層的なテストを実行するときには、階層上で低い位置にある条件がテスト順序で先に記述されていることを確認する必要があります。以下の例では、ケース2が true の場合、ケース1も必ず true であるため、ケース1は後に位置すべきです。このままの順序では、ケース2のステートメントはけっして実行されません: ```4d Case of @@ -198,7 +198,7 @@ End if End case ``` -vResult = 1の判定により他の条件を見る前に分岐するので、第2のケースが判定されることはありません。 コードが正しく実行されるためには次のように書きます: +vResult = 1の判定により他の条件を見る前に分岐するので、第2のケースが判定されることはありません。コードが正しく実行されるためには次のように書きます: ```4d Case of @@ -211,7 +211,7 @@ vResult = 1の判定により他の条件を見る前に分岐するので、第 さらに階層的なテストを実行したい場合、コードも階層化する必要があります。 -**Tip:** 分岐構造において、ケースに続くステートメントの記述は必須ではありません。 下のようなコードはどちらも有効です: +**Tip:** 分岐構造において、ケースに続くステートメントの記述は必須ではありません。下のようなコードはどちらも有効です: ```4d Case of @@ -262,13 +262,13 @@ vResult = 1の判定により他の条件を見る前に分岐するので、第 End while ``` -`While...End while` ループは、ブール式が true である限り、ループ内のステートメントを実行し続けます。 ループの始めにブール式を評価し、ブール式が FALSE の場合にはループをおこないません。 +`While...End while` ループは、ブール式が true である限り、ループ内のステートメントを実行し続けます。ループの始めにブール式を評価し、ブール式が FALSE の場合にはループをおこないません。 `break` および `continue` ステートメントについては [後述します](#break-と-continue)。 -一般に、`While...End while` ループに入る手前で、ブール式で判定する値を初期化しておきます。 値を初期化するとは適切な値に設定するということで、通常はブール式が true になるように設定してからループに入ります。 +一般に、`While...End while` ループに入る手前で、ブール式で判定する値を初期化しておきます。値を初期化するとは適切な値に設定するということで、通常はブール式が true になるように設定してからループに入ります。 -ブール式は、ループ内の要素を使って設定されなければなりません。 そうでなければ、ループは永久に続くでしょう。 以下の例では、*NeverStop* がいつも true であるので、ループは永久に続きます。 +ブール式は、ループ内の要素を使って設定されなければなりません。 そうでなければ、ループは永久に続くでしょう。以下の例では、*NeverStop* がいつも true であるので、ループは永久に続きます。 ```4d NeverStop:=True @@ -276,7 +276,7 @@ vResult = 1の判定により他の条件を見る前に分岐するので、第 End while ``` -このようにメソッドの実行が制御不能になった場合には、トレース機能を使用し、ループを止めて、問題点を追跡することができます。 メソッドのトレース方法については、[エラー処理](error-handling.md) の章を見てください。 +このようにメソッドの実行が制御不能になった場合には、トレース機能を使用し、ループを止めて、問題点を追跡することができます。メソッドのトレース方法については、[エラー処理](error-handling.md) の章を見てください。 #### 例題 @@ -287,7 +287,7 @@ vResult = 1の判定により他の条件を見る前に分岐するので、第 End while // ループは必ず End while によって終わります ``` -この例では、まずループに入る前に `CONFIRM` コマンドによりシステム変数 `OK` がセットされます。 ユーザーがダイアログボックスで **OK** ボタンをクリックすると、システム変数 `OK` に1がセットされ、ループを開始します。 それ以外の場合はシステム変数 `OK` に0が設定され、ループをスキップします。 ループに入ると、`ADD RECORD` コマンドはループを続けます。これは、ユーザーがレコードを保存した時点で、システム変数 `OK` に1が設定されるからです。 ユーザーが最後のレコードを取り消した (保存しない) 時点で、システム変数 `OK` に0がセットされ、ループは終了します。 +この例では、まずループに入る前に `CONFIRM` コマンドによりシステム変数 `OK` がセットされます。ユーザーがダイアログボックスで **OK** ボタンをクリックすると、システム変数 `OK` に1がセットされ、ループを開始します。それ以外の場合はシステム変数 `OK` に0が設定され、ループをスキップします。ループに入ると、`ADD RECORD` コマンドはループを続けます。これは、ユーザーがレコードを保存した時点で、システム変数 `OK` に1が設定されるからです。ユーザーが最後のレコードを取り消した (保存しない) 時点で、システム変数 `OK` に0がセットされ、ループは終了します。 ## Repeat...Until @@ -301,7 +301,7 @@ Repeat Until(Boolean_Expression) ``` -`Repeat...Until` ループは、[While...End while](flow-control.md#whileend-while) ループと似ていますが、まずループの後でブール式を判定する点が異なります。 つまり、`Repeat...Until` ループは最低でも1回は必ずループを実行しますが、`While...End while` ループは最初のブール式が FALSE である場合には、ループを1回も実行しません。 +`Repeat...Until` ループは、[While...End while](flow-control.md#whileend-while) ループと似ていますが、まずループの後でブール式を判定する点が異なります。つまり、`Repeat...Until` ループは最低でも1回は必ずループを実行しますが、`While...End while` ループは最初のブール式が FALSE である場合には、ループを1回も実行しません。 もう一つの `While...End while` ループとの相違点は、 `Repeat...Until` はブール式が true になるまでループを続行することです。 @@ -309,7 +309,7 @@ Until(Boolean_Expression) #### 例題 -以下の例を、`While...End while` ループの例と比較してください。 ブール式を、初期化しておく必要がない点に注目してください。システム変数 `OK` を初期化する `CONFIRM` コマンドはありません。 +以下の例を、`While...End while` ループの例と比較してください。ブール式を、初期化しておく必要がない点に注目してください。システム変数 `OK` を初期化する `CONFIRM` コマンドはありません。 ```4d Repeat @@ -335,13 +335,13 @@ End for - ループを実行するたびに、任意の引数である *Increment_Expression* の値がカウンター変数に加算されます。 *Increment_Expression* を指定しない場合、増分値は1になります。 - カウンターが *End_Expression* の値を超えた時点で、ループを停止します。 -**重要:** *Start_Expression*、*End_Expression*、*Increment_Expression* の値は、ループの始めに一度だけ評価されます。 これらの数値が変数で指定されている場合、ループ内でその変数の値を変更してもループは影響を受けません。 +**重要:** *Start_Expression*、*End_Expression*、*Increment_Expression* の値は、ループの始めに一度だけ評価されます。これらの数値が変数で指定されている場合、ループ内でその変数の値を変更してもループは影響を受けません。 **Tip:** 特別な目的のために、カウンター変数 *Counter_Variable* の値を変更することができます。ループ内でカウンター変数を変更すると、ループはその影響を受けます。 - 通常、*Start_Expression* は *End_Expression* より小さい。 - *Start_Expression* と *End_Expression* が等しい場合、1回だけループがおこなわれます。 -- *Start_Expression* が *End_Expression* より大きい場合、*Increment_Expression* に負の値を指定しない限り、ループはおこなわれません。 次に例を示します。 +- *Start_Expression* が *End_Expression* より大きい場合、*Increment_Expression* に負の値を指定しない限り、ループはおこなわれません。次に例を示します。 `break` および `continue` ステートメントについては [後述します](#break-と-continue)。 @@ -394,7 +394,7 @@ End for #### カウンター変数の減少 -ループに際してカウンター変数を増加させるのではなく、減少させたい場合があります。 その場合、*Start_Expression* に *End_Expression* より大きい値を設定し、*Increment_Expression* に負の数を指定する必要があります。 次に挙げる例題は、前述の例と同じ処理を逆の順序でおこないます: +ループに際してカウンター変数を増加させるのではなく、減少させたい場合があります。その場合、*Start_Expression* に *End_Expression* より大きい値を設定し、*Increment_Expression* に負の数を指定する必要があります。次に挙げる例題は、前述の例と同じ処理を逆の順序でおこないます: 5. 以下の例は、100回の繰り返しをおこないます: @@ -452,7 +452,7 @@ End for #### For...End for ループの最適化 -カウンター変数 (インタープロセス、プロセス、ローカル変数) には実数、または整数タイプを使用します。 数多く繰り返されるループの場合、とくにコンパイルモードでは、倍長整数タイプのローカル変数を使用してください。 +カウンター変数 (インタープロセス、プロセス、ローカル変数) には実数、または整数タイプを使用します。数多く繰り返されるループの場合、とくにコンパイルモードでは、倍長整数タイプのローカル変数を使用してください。 10. 次に例を示します: @@ -465,7 +465,7 @@ End for ### ループ構造の比較 -`For...End for` ループの例をもう一度見てみましょう。 以下の例は、100回の繰り返しをおこないます: +`For...End for` ループの例をもう一度見てみましょう。以下の例は、100回の繰り返しをおこないます: ```4d For(vCounter;1;100) @@ -473,7 +473,7 @@ End for End for ``` -`While...End while` ループと `Repeat...Until` ループで、同じ処理を実行する方法を調べてみましょう。 以下は、同じ処理を実行する `While...End while` ループです: +`While...End while` ループと `Repeat...Until` ループで、同じ処理を実行する方法を調べてみましょう。以下は、同じ処理を実行する `While...End while` ループです: ```4d $i:=1 // カウンターの初期化 @@ -495,13 +495,13 @@ End for :::tip -`For...End for` ループは、`While...End while` や `Repeat...Until` ループよりも高速です。これは 4D が内部的にカウンター変数のテストおよび増加をおこなうからです。 したがって、可能な限り `For...End for` ループの使用が推奨されます。 +`For...End for` ループは、`While...End while` や `Repeat...Until` ループよりも高速です。これは 4D が内部的にカウンター変数のテストおよび増加をおこなうからです。したがって、可能な限り `For...End for` ループの使用が推奨されます。 ::: ### For...End for の入れ子構造 -制御構造は、必要に応じて入れ子にする (ネストする) ことができます。 `For...End for` ループも同じです。 誤りを避けるため、各ループ構造ごとに別のカウンター変数を使用してください。 +制御構造は、必要に応じて入れ子にする (ネストする) ことができます。 `For...End for` ループも同じです。誤りを避けるため、各ループ構造ごとに別のカウンター変数を使用してください。 次に例を示します: @@ -567,10 +567,10 @@ End for | ループ数 (デフォルト) | コレクションの要素数 | セレクション内のエンティティ数 | オブジェクトのプロパティ数 | | begin / end パラメーターをサポート | ◯ | ◯ | × | -- ループの数は開始時に評価され、処理中に変化することはありません。 ループ中に項目を追加・削除することは、繰り返しの不足・重複を引き起こすことがあるため、一般的には推奨されません。 -- デフォルトでは、内部の *statement(s)* 部の処理は、*Expression* の各項目に対して実行されます。 しかしながら、ループの先頭 (`While`) あるいはループの終わり (`Until`) で条件をテストすることで、ループを抜け出すことは可能です。 +- ループの数は開始時に評価され、処理中に変化することはありません。ループ中に項目を追加・削除することは、繰り返しの不足・重複を引き起こすことがあるため、一般的には推奨されません。 +- デフォルトでは、内部の *statement(s)* 部の処理は、*Expression* の各項目に対して実行されます。しかしながら、ループの先頭 (`While`) あるいはループの終わり (`Until`) で条件をテストすることで、ループを抜け出すことは可能です。 - 任意の *begin* および *end* パラメーターを指定することで、コレクションおよびエンティティセレクションに対してループの範囲を定義することができます。 -- `For each...End for each` ループは **共有コレクション** や **共有オブジェクト** に対して使用することもできます。 コレクションの要素またはオブジェクトのプロパティを変更する場合は、`Use...End use` 構文も追加で必要です。 `Use...End use` 構文の使い方は、つぎのように状況に応じて異なります: +- `For each...End for each` ループは **共有コレクション** や **共有オブジェクト** に対して使用することもできます。コレクションの要素またはオブジェクトのプロパティを変更する場合は、`Use...End use` 構文も追加で必要です。 `Use...End use` 構文の使い方は、つぎのように状況に応じて異なります: - 整合性のため要素やプロパティを一括で処理しなくてはならない場合には、ループに入る前 (外側) に使います。 - 要素やプロパティを個々に変更して差し支えない場合は、ループの中で使います。 @@ -578,14 +578,14 @@ End for ### コレクション内のループ -`For each...End for each` が *Collection* 型の *Expression* に対して使用された場合、*Current_Item* はコレクション要素と同じ型の変数です。 デフォルトでは、ループの回数はコレクションの要素数に基づいています。 +`For each...End for each` が *Collection* 型の *Expression* に対して使用された場合、*Current_Item* はコレクション要素と同じ型の変数です。デフォルトでは、ループの回数はコレクションの要素数に基づいています。 コレクションの要素はすべて同じ型でなくてはなりません。 そうでない場合には、*Current_Item* 変数に別の型の値が代入されたときにエラーが生成されます。 -各ループの繰り返しにおいて、*Current_Item* 変数には、合致するコレクションの要素が自動的に代入されます。 このとき、以下の点に注意する必要があります: +各ループの繰り返しにおいて、*Current_Item* 変数には、合致するコレクションの要素が自動的に代入されます。このとき、以下の点に注意する必要があります: -- *Current_Item* 変数がオブジェクト型、あるいはコレクション型であった場合 (つまり *Expression* がオブジェクトのコレクション、あるいはコレクションのコレクションであった場合)、この変数を変更するとコレクションの対応する要素も自動的に変更されます (オブジェクトとコレクションは同じ参照を共有しているからです)。 変数がスカラー型である場合には、変数のみが変更されます。 -- *Current_Item* 変数は、コレクション要素の型と合致していなくてはなりません。 コレクション要素のどれか一つでも、変数と異なる型のものがあった場合、エラーが生成され、ループは停止します。 +- *Current_Item* 変数がオブジェクト型、あるいはコレクション型であった場合 (つまり *Expression* がオブジェクトのコレクション、あるいはコレクションのコレクションであった場合)、この変数を変更するとコレクションの対応する要素も自動的に変更されます (オブジェクトとコレクションは同じ参照を共有しているからです)。変数がスカラー型である場合には、変数のみが変更されます。 +- *Current_Item* 変数は、コレクション要素の型と合致していなくてはなりません。コレクション要素のどれか一つでも、変数と異なる型のものがあった場合、エラーが生成され、ループは停止します。 - コレクションが **Null** 値の要素を格納していたとき、*Current_Item* 変数の型が **Null** 値をサポートしない型 (倍長整数変数など) であった場合にはエラーが生成されます。 #### 例題 @@ -617,7 +617,7 @@ End for `For each...End for each` が *Entity selection* 型の *Expression* に対して使用された場合、*Current_Item* は現在処理中のエンティティです。 -ループの回数はエンティティセレクション内のエンティティの数に基づきます。 各ループの繰り返しにおいて、*Current_Item* には、処理の対象であるエンティティセレクション内のエンティティが自動的に代入されます。 +ループの回数はエンティティセレクション内のエンティティの数に基づきます。各ループの繰り返しにおいて、*Current_Item* には、処理の対象であるエンティティセレクション内のエンティティが自動的に代入されます。 **注:** エンティティセレクション内のエンティティが、途中で他のプロセスによって削除された場合、そのエンティティはループにおいて自動的にスキップされます。 @@ -639,7 +639,7 @@ Employees データクラスの中から、英国の従業員の給与を引き `For each...End for each` が Object 型の *Expression* に対して使用された場合、*Current_Item* は現在処理中のプロパティ名が自動代入されたテキスト変数です。 -オブジェクトのプロパティは作成順に処理されていきます。 ループ中、プロパティをオブジェクトに追加/削除することが可能ですが、その場合でも残りのループ回数は、オブジェクトの元のプロパティ数に基づいているため、変化しません。 +オブジェクトのプロパティは作成順に処理されていきます。ループ中、プロパティをオブジェクトに追加/削除することが可能ですが、その場合でも残りのループ回数は、オブジェクトの元のプロパティ数に基づいているため、変化しません。 #### 例題 @@ -682,8 +682,7 @@ Employees データクラスの中から、英国の従業員の給与を引き *end* が省略されている、あるいは *end* が *Expression* の要素数より大きい場合、*begin* 引数の位置から最後の要素まで (含まれる) をループします。 *begin* と *end* が正の値の場合、それらは *Expression* 内の要素の実際の位置を表します。 -*begin* 引数が負の値の場合、それは `begin:=begin+Expression のサイズ` として再計算されます (つまり、*Expression* の終端からのオフセットであるとみなされます)。 再計算された値も負の値だった場合、*begin* は0に設定されます。 -**注:** *begin* が負の値だったとしても、繰り返しそのものは標準の順番で実行されます。 +*begin* 引数が負の値の場合、それは `begin:=begin+Expression のサイズ` として再計算されます (つまり、*Expression* の終端からのオフセットであるとみなされます)。再計算された値も負の値だった場合、*begin* は0に設定されます。**注:** *begin* が負の値だったとしても、繰り返しそのものは標準の順番で実行されます。 *end* が負の値だった場合、それは `end:=end+Expression のサイズ` として再計算されます。 例: @@ -738,11 +737,11 @@ Employees データクラスの中から、英国の従業員の給与を引き ## break と continue -上記のループ構造はすべて、`break`文および `continue`文をサポートしています。 これらの文は、ループを完全に終了させたり、現在の繰り返しだけを終了させたりすることで、ループをよりコントロールすることができます。 +上記のループ構造はすべて、`break`文および `continue`文をサポートしています。これらの文は、ループを完全に終了させたり、現在の繰り返しだけを終了させたりすることで、ループをよりコントロールすることができます。 ### break -`break`文は、その文が含まれるループを終了させます。 プログラムの制御は、ループ直後のステートメントに移ります。 +`break`文は、その文が含まれるループを終了させます。プログラムの制御は、ループ直後のステートメントに移ります。 [入れ子になったループ](#forend-for-の入れ子構造) (ループ内に別のループがある) の中に `break`文がある場合、`break`文は最も内側のループを終了させます。 @@ -782,7 +781,7 @@ End for
  • -`return`文はどこからでも呼び出すことができます。 関数やメソッドの中で `return` 文が使われると、その関数やメソッドの実行が中断されます。 残りのコードは実行されず、呼び出し元に制御が返されます。 +`return`文はどこからでも呼び出すことができます。関数やメソッドの中で `return` 文が使われると、その関数やメソッドの実行が中断されます。残りのコードは実行されず、呼び出し元に制御が返されます。 `return` 文を使用して、呼び出し元に[戻り値](parameters.md#戻り値) を返すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/identifiers.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/identifiers.md index 846da68febfdbd..59353fc439a0af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/identifiers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/identifiers.md @@ -29,7 +29,7 @@ title: 識別子の命名規則 プロパティ名 (オブジェクト *属性* とも呼びます) は255文字以内の文字列で指定します。 -オブジェクトプロパティは、スカラー値・ORDA要素・クラス関数・他のオブジェクト等を参照できます。 参照先に関わらず、**[ドット記法](dt_object.md#プロパティ) を使用するには** オブジェクトプロパティ名は次の命名規則に従う必要があります: +オブジェクトプロパティは、スカラー値・ORDA要素・クラス関数・他のオブジェクト等を参照できます。参照先に関わらず、**[ドット記法](dt_object.md#プロパティ) を使用するには** オブジェクトプロパティ名は次の命名規則に従う必要があります: - 1文字目は、文字、アンダースコア(_)、あるいはドル記号 ($) でなければなりません。 - その後の文字には、文字・数字・アンダースコア(_)・ドル記号 ($) が使用できます。 @@ -44,7 +44,7 @@ $value:=$clientObj.data.address.city :::tip -アンダースコア ("_") 文字でオブジェクトプロパティ名を開始すると、そのプロパティは 4Dコードエディターの自動補完機能から除外されます。 たとえば、`$o._myPrivateProperty` を宣言した場合、コードエディターにおいて `"$o. "`とタイプしても、このプロパティは候補として提示されません。 +アンダースコア ("_") 文字でオブジェクトプロパティ名を開始すると、そのプロパティは 4Dコードエディターの自動補完機能から除外されます。たとえば、`$o._myPrivateProperty` を宣言した場合、コードエディターにおいて `"$o. "`とタイプしても、このプロパティは候補として提示されません。 ::: @@ -85,9 +85,9 @@ DELETE DUPLICATED VALUES APPLY TO SELECTION([Employees];INCREASE SALARIES) ``` -**Tip:** 4Dのビルトインコマンドと同じ命名規約を利用することは良いプログラミングテクニックです。 メソッド名には大文字を使用しますが、メソッドが値を返す場合には最初の文字だけを大文字にします。 このように命名することにより、数ヶ月後に保守のためプロジェクトを再度開いたときに、エクスプローラーウィンドウでその名前を見ただけで、メソッドが結果を返すかどうかがわかります。 +**Tip:** 4Dのビルトインコマンドと同じ命名規約を利用することは良いプログラミングテクニックです。メソッド名には大文字を使用しますが、メソッドが値を返す場合には最初の文字だけを大文字にします。このように命名することにより、数ヶ月後に保守のためプロジェクトを再度開いたときに、エクスプローラーウィンドウでその名前を見ただけで、メソッドが結果を返すかどうかがわかります。 -> メソッドを呼び出すには、メソッド名を書きます。 しかし `ON EVENT CALL` など一部の 4Dのビルトインコマンドやプラグインコマンドに、引数としてメソッド名を渡す場合には、文字列 (ダブルクォートで括る) として渡します。 +> メソッドを呼び出すには、メソッド名を書きます。しかし `ON EVENT CALL` など一部の 4Dのビルトインコマンドやプラグインコマンドに、引数としてメソッド名を渡す場合には、文字列 (ダブルクォートで括る) として渡します。 例: @@ -102,7 +102,7 @@ ON EVENT CALL("HANDLE EVENTS") ## テーブルとフィールド -大カッコ内 (\[...]) に名前を入れることで、テーブルを表します。 フィールドを表すには、そのフィールドが属するテーブルをまず指定し、フィールド名を続けて書きます。 +大カッコ内 (\[...]) に名前を入れることで、テーブルを表します。フィールドを表すには、そのフィールドが属するテーブルをまず指定し、フィールド名を続けて書きます。 テーブル名およびフィールド名は、31文字以内で指定します。 @@ -145,7 +145,7 @@ If(bValidate=1) // プロセス変数 ### 互換性 -以前は受け入れられていた変数名の中には、[直接型指定モードを有効にする](../Project/compiler.md#直接型指定の有効化) (4D 20 R7で導入) とサポートされなくなるものがあります。 このモードを有効にすると、以下の場合にシンタックスエラーが発生します: +以前は受け入れられていた変数名の中には、[直接型指定モードを有効にする](../Project/compiler.md#直接型指定の有効化) (4D 20 R7で導入) とサポートされなくなるものがあります。このモードを有効にすると、以下の場合にシンタックスエラーが発生します: - 変数名の最初の文字に数字が使用されている - 変数名にスペース文字が含まれている diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/interpreted.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/interpreted.md index c693fdb730fd40..c40825499fdbcf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/interpreted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/interpreted.md @@ -5,20 +5,20 @@ title: インタープリターモードとコンパイル済みモード 4D アプリケーションは **インタープリター** または **コンパイル済み** モードで実行することができます: -- インタープリターモードにおいて、コードは実行時に読み込まれてマシン語に翻訳されます。 コードはいつでも追加・変更することができ、アプリケーションは自動的に更新されます。 -- コンパイル済みモードにおいては、コンパイル時にすべてのコードが一括で読み込まれて翻訳されます。 コンパイル後のアプリケーションにはアセンブリレベルの指示のみが残され、コード編集はできません。 +- インタープリターモードにおいて、コードは実行時に読み込まれてマシン語に翻訳されます。コードはいつでも追加・変更することができ、アプリケーションは自動的に更新されます。 +- コンパイル済みモードにおいては、コンパイル時にすべてのコードが一括で読み込まれて翻訳されます。コンパイル後のアプリケーションにはアセンブリレベルの指示のみが残され、コード編集はできません。 コンパイルには以下のようなメリットがあります: - **速度**: アプリケーションの実行速度を3倍から1000倍速くします。 -- **コードチェック**: アプリケーションコードの整合性をチェックし、 論理的矛盾や構文的矛盾を検出します。 論理的矛盾や構文的矛盾を検出します。 -- **保護**: アプリケーションをコンパイルすると、インタープリターコードを削除できます。 コンパイルされたアプリケーションは、故意的にも不注意からもストラクチャーやメソッドの表示・修正ができないこと以外は、オリジナルのアプリケーションと同じに動作します。 コンパイルされたアプリケーションは、故意的にも不注意からもストラクチャーやメソッドの表示・修正ができないこと以外は、オリジナルのアプリケーションと同じに動作します。 +- **コードチェック**: アプリケーションコードの整合性をチェックし、 論理的矛盾や構文的矛盾を検出します。論理的矛盾や構文的矛盾を検出します。 +- **保護**: アプリケーションをコンパイルすると、インタープリターコードを削除できます。 コンパイルされたアプリケーションは、故意的にも不注意からもストラクチャーやメソッドの表示・修正ができないこと以外は、オリジナルのアプリケーションと同じに動作します。コンパイルされたアプリケーションは、故意的にも不注意からもストラクチャーやメソッドの表示・修正ができないこと以外は、オリジナルのアプリケーションと同じに動作します。 - **ダブルクリックで起動するアプリケーション**: コンパイル後のアプリケーションは、独自のアイコンを持つスタンドアロンアプリケーションに作り変えることもできます。 - **プリエンプティブモードでの実行**: プリエンプティブプロセスとして実行できるのは、コンパイルされたコードに限られます。 ## インタープリターコードとコンパイル済みコードの違い -アプリケーションの動作は同じであっても、インタープリターモードとコンパイル済みモードにはいくつかの相違点があり、コンパイルされるコードを書くにあたってはこれらを意識しておく必要があります。 基本的に、4D のインタープリターはコンパイラーより柔軟です。 +アプリケーションの動作は同じであっても、インタープリターモードとコンパイル済みモードにはいくつかの相違点があり、コンパイルされるコードを書くにあたってはこれらを意識しておく必要があります。基本的に、4D のインタープリターはコンパイラーより柔軟です。 | コンパイル済みコード | インタープリターコード | | ------------------------------------------------------------------------------------------- | --------------------------------------------------- | @@ -27,13 +27,13 @@ title: インタープリターモードとコンパイル済みモード | 変数や配列のデータタイプは変更できません。 | 変数や配列のデータタイプは変更可能です (推奨されません) | | 1次元配列を2次元配列に、また2次元配列を1次元配列に変更することはできません。 | 可能です。 | | コンパイラーにより変数のタイプ定義はおこなわれますが、フォーム上の変数のようにデータタイプが明確でない場合は、宣言によって変数のデータタイプを指定するべきです。 | | -| `Undefined` 関数は、常に False を返します。 変数は常に定義されています。 変数は常に定義されています。 | | +| `Undefined` 関数は、常に False を返します。 変数は常に定義されています。変数は常に定義されています。 | | | メソッドの "プリエンプティブプロセスで実行可能" プロパティにチェックを入れていた場合、コードは他のスレッドアンセーフなコマンドやメソッドを呼び出してはいけません。 | プリエンプティブプロセスプロパティは無視されます。 | | 特定のループの場合、割り込みを可能にするには `IDLE` コマンドが必要です。 | いつでも割り込み可能です。 | ## インタープリターでコンパイラー指示子を使用する場合 -コンパイルしないアプリケーションには、コンパイラー命令は必須ではありません。 インタープリターは、各ステートメントにおける変数の使い方に準じて自動的に変数の型を設定し、アプリケーションプロジェクト内の変数の型を変えることができます。 +コンパイルしないアプリケーションには、コンパイラー命令は必須ではありません。インタープリターは、各ステートメントにおける変数の使い方に準じて自動的に変数の型を設定し、アプリケーションプロジェクト内の変数の型を変えることができます。 インタープリターがこのように柔軟に対応するので、インタープリターモードとコンパイル済みモードでは、アプリケーションの動作が異なることがあります。 @@ -51,13 +51,13 @@ MyInt:=3.1416 この例では、コンパイラー指示子が代入ステートメントより *先に* 解釈されれば、インタープリターでもコンパイル後でも `Myint` には同じ値 (3) が代入されます。 -4D のインタープリターは、コンパイラー指示子を使用して変数の型を定義します。 コード内でコンパイラー指示子が検出されると、インタープリターはそれに従って変数の型を定義します。 それ以降のステートメントで間違った値を代入しようとすると (たとえば、数値変数に文字を割り当てるなど)、代入はおこなわれず、エラーが生成されます。 +4D のインタープリターは、コンパイラー指示子を使用して変数の型を定義します。コード内でコンパイラー指示子が検出されると、インタープリターはそれに従って変数の型を定義します。それ以降のステートメントで間違った値を代入しようとすると (たとえば、数値変数に文字を割り当てるなど)、代入はおこなわれず、エラーが生成されます。 -コンパイラーにとっては、この2つのステートメントのどちらが先に表示されても問題ではありません。はじめにプロジェクト全体を調べてコンパイラー指示子を探すからです。 しかし、インタープリターは系統立てて処理するわけではなく、 実行される順にステートメントを解釈します。 ユーザーが何をおこなうかによって、この順序は当然異なります。 したがって、常にコンパイラー指示子によって型定義してから変数を使用するようプロジェクトを計画することが肝心です。 +コンパイラーにとっては、この2つのステートメントのどちらが先に表示されても問題ではありません。はじめにプロジェクト全体を調べてコンパイラー指示子を探すからです。しかし、インタープリターは系統立てて処理するわけではなく、実行される順にステートメントを解釈します。ユーザーが何をおこなうかによって、この順序は当然異なります。したがって、常にコンパイラー指示子によって型定義してから変数を使用するようプロジェクトを計画することが肝心です。 ## ポインターの使用で型の矛盾を避ける -変数の型は変更することができません。 しかし、ポインターを活用して異なるデータ型の変数を参照することはできます。 たとえば、次のコードはインタープリターおよびコンパイル済みモードの両方で動作します: +変数の型は変更することができません。しかし、ポインターを活用して異なるデータ型の変数を参照することはできます。たとえば、次のコードはインタープリターおよびコンパイル済みモードの両方で動作します: ```4d var $p : Pointer diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/methods.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/methods.md index 7ba831f9965303..4201eed51b51da 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/methods.md @@ -3,36 +3,36 @@ id: methods title: メソッド --- -メソッドとは、1つ以上の動作を実行するコードのことです。 メソッドは、1つ以上のステートメントで構成されます。 +メソッドとは、1つ以上の動作を実行するコードのことです。メソッドは、1つ以上のステートメントで構成されます。 -ステートメントは 1つの命令を実行し、単純な場合もあれば複雑な場合もあります。 ステートメントとは通常、メソッドの 1行のことを指します (必要に応じて [`\` 文字を使って行を分割](quick-tour.md#行を分割する) することができます。 +ステートメントは 1つの命令を実行し、単純な場合もあれば複雑な場合もあります。ステートメントとは通常、メソッドの 1行のことを指します (必要に応じて [`\` 文字を使って行を分割](quick-tour.md#行を分割する) することができます。 メソッドは最大 2GBのテキストまたは、32000行まで記述できます。 ## メソッドタイプ -4D ランゲージにおいて、数種類のメソッドが存在します。 その呼び出し方によって、メソッドは区別されます: +4D ランゲージにおいて、数種類のメソッドが存在します。その呼び出し方によって、メソッドは区別されます: -| 型 | 自動呼び出しのコンテキスト | 引数の受け取り | 説明 | -| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **プロジェクトメソッド** | プロジェクトメソッド名が[呼び出された時](../Project/project-method-properties.md) に応じて | ◯ | 任意のアクションを実行するためのコードです。 作成されたプロジェクトメソッドは、そのプロジェクトのランゲージの一部となります。 | -| **オブジェクト (ウィジェット) メソッド** | メソッドが設定されたフォームオブジェクトに関連したイベント発生時に | × | フォームオブジェクト (ウィジェットとも呼びます) のプロパティです。 | -| **フォームメソッド** | メソッドが設定されたフォームに関連したイベント発生時に | × | フォームのプロパティです。 フォームメソッドを使用してデータとオブジェクトを管理することができます。 ただし、これら目的には、オブジェクトメソッドを使用する方が通常は簡単であり、より効果的です。 | -| **トリガー** (別名 *テーブルメソッド*) | テーブルのレコード操作 (追加・削除・修正) の度に | × | テーブルのプロパティです。 トリガーは、データベースのレコードに対して「不正な」操作がおこなわれることを防ぎます。 | -| **データベースメソッド** | 作業セッションのイベント発生時に | ○ (既定) | 4D には 16のデータベースメソッドがあります。 | -| **クラス** | クラスのオブジェクトがインスタンス化されたとき、あるいは他のメソッドや[データベースフィールド](../Develop/field-properties.md#class) 内においてオブジェクトインスタンス上でクラスの関数が実行されたときに自動的に呼び出されます。 | ◯(クラス関数) | オブジェクトのクラスの[constructor](./classes.md#class-constructor), [properties](./classes.md#property) と[関数](./classes.md#function) を宣言および設定するためには、**Class** が使用されます。 [**クラス**](classes.md) および[**Function** クラス](../API/FunctionClass.md) 参照。 | +| 型 | 自動呼び出しのコンテキスト | 引数の受け取り | 説明 | +| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **プロジェクトメソッド** | プロジェクトメソッド名が[呼び出された時](../Project/project-method-properties.md) に応じて | ◯ | 任意のアクションを実行するためのコードです。作成されたプロジェクトメソッドは、そのプロジェクトのランゲージの一部となります。 | +| **オブジェクト (ウィジェット) メソッド** | メソッドが設定されたフォームオブジェクトに関連したイベント発生時に | × | フォームオブジェクト (ウィジェットとも呼びます) のプロパティです。 | +| **フォームメソッド** | メソッドが設定されたフォームに関連したイベント発生時に | × | フォームのプロパティです。フォームメソッドを使用してデータとオブジェクトを管理することができます。 ただし、これら目的には、オブジェクトメソッドを使用する方が通常は簡単であり、より効果的です。 | +| **トリガー** (別名 *テーブルメソッド*) | テーブルのレコード操作 (追加・削除・修正) の度に | × | テーブルのプロパティです。トリガーは、データベースのレコードに対して「不正な」操作がおこなわれることを防ぎます。 | +| **データベースメソッド** | 作業セッションのイベント発生時に | ○ (既定) | 4D には 16のデータベースメソッドがあります。 | +| **クラス** | クラスのオブジェクトがインスタンス化されたとき、あるいは他のメソッドや[データベースフィールド](../Develop/field-properties.md#class) 内においてオブジェクトインスタンス上でクラスの関数が実行されたときに自動的に呼び出されます。 | ◯(クラス関数) | オブジェクトのクラスの[constructor](./classes.md#class-constructor), [properties](./classes.md#property) と[関数](./classes.md#function) を宣言および設定するためには、**Class** が使用されます。[**クラス**](classes.md) および[**Function** クラス](../API/FunctionClass.md) 参照。 | ## ランゲージトークン -4Dランゲージでは、コード内で使用される全てのオブジェクト名(定数、コマンド、テーブル、フィールドそしてキーワード) 全てに対してユニークな トークナイゼーションシステムというものを持っています。 これらの名前をトークナイズするということは、それらをコードエディターにタイプする際に内部で絶対参照(数値)と して保存され、実行時、あるいは表示時にコンテキストに応じてテキストとして復元されるということを意味します。 これにより、コードは常に正しく解釈され るということが保証され、テーブルやフィールドの名前を変更した場合でも、4Dランゲージコマンドが異なるアプリケーションのバージョンに置いて改名され た場合等でも正しく解釈されます。 +4Dランゲージでは、コード内で使用される全てのオブジェクト名(定数、コマンド、テーブル、フィールドそしてキーワード) 全てに対してユニークな トークナイゼーションシステムというものを持っています。これらの名前をトークナイズするということは、それらをコードエディターにタイプする際に内部で絶対参照(数値)と して保存され、実行時、あるいは表示時にコンテキストに応じてテキストとして復元されるということを意味します。これにより、コードは常に正しく解釈され るということが保証され、テーブルやフィールドの名前を変更した場合でも、4Dランゲージコマンドが異なるアプリケーションのバージョンに置いて改名され た場合等でも正しく解釈されます。 **注意:** これは環境設定のメソッドページの["リージョンシステム設定を使用"オプション](../Preferences/methods.md#4dプログラミングランゲージ-リージョンシステム設定を使う) を有効化し、お使いの4D を異なる言語設定でデータベースを開いた際にも、コードの自動翻訳が正確であることを保証します。 -トークナイゼーションは4D デベロッパーからは[4D コードエディター](../code-editor/write-class-method.md) 上では通常は完全に透過で心配することは何もありません。 しかしながら、トークナイゼーションに対してアクションを取る必要がある場合が2つ考えられます。それを無効化したい場合、それからフォーミュラ内でトークナイゼーションを使用したい場合です。 +トークナイゼーションは4D デベロッパーからは[4D コードエディター](../code-editor/write-class-method.md) 上では通常は完全に透過で心配することは何もありません。しかしながら、トークナイゼーションに対してアクションを取る必要がある場合が2つ考えられます。それを無効化したい場合、それからフォーミュラ内でトークナイゼーションを使用したい場合です。 ### トークナイゼーションの無効化 -あなたのプロジェクトがGitHub やGitLab などのバージョン管理システム(VCS) を使用している場合、外部プラットフォームにおいてコードをより読みやすくするために、トークナイゼーションを無効化したい場合があるかもしれません。 これを行うためには、[**Project ソースファイルにトークンを含める**](../Preferences/general.md#project-ソースファイルにトークンを含める) 設定をオフにすることで**新規プロジェクト** 内にトークンが保存されることを防ぐことができます。 +あなたのプロジェクトがGitHub やGitLab などのバージョン管理システム(VCS) を使用している場合、外部プラットフォームにおいてコードをより読みやすくするために、トークナイゼーションを無効化したい場合があるかもしれません。これを行うためには、[**Project ソースファイルにトークンを含める**](../Preferences/general.md#project-ソースファイルにトークンを含める) 設定をオフにすることで**新規プロジェクト** 内にトークンが保存されることを防ぐことができます。 **既存のプロジェクト** においては、テキストエディターを使用して以下のキーを`.4DProject` ファイル内に挿入することで、コードをトークンなしで保存するように設定することができます: @@ -40,16 +40,15 @@ title: メソッド "tokenizedText": false ``` -この設定は、メソッドが保存されるときにのみ考慮されます。 つまり、再保存しない限り、プロジェクト内の既存メソッドはそのまま残されます。 +この設定は、メソッドが保存されるときにのみ考慮されます。つまり、再保存しない限り、プロジェクト内の既存メソッドはそのまま残されます。 ### フォーミュラ内でのトークンの使用 -テキストベースの4D [フォーミュラ](../commands/theme/Formulas.md) とは、入力された時ではなく、実行時に解釈されるテキストのことです。 これは、4D コードが標準テキストとして表現された場合と同じです。具体的には、コードが[`METHOD GET CODE`](../commands/method-get-code) and [`METHOD SET CODE`](../commands/method-set-code) コマンドを使用してエクスポート/インポートされた場合、コピー・ペースト、または[4D HTMLタグから解釈されたとき](../Tags/transformation-tags.md) などが該当します。 -これらのコンテキストにおいてトークナイゼーション機構を引き続き使用するためには、以下にある、ランゲージ内でオブジェクト名の後にトークンを付けると言う明示的なシンタックスを使用する必要があります。 +テキストベースの4D [フォーミュラ](../commands/theme/Formulas.md) とは、入力された時ではなく、実行時に解釈されるテキストのことです。これは、4D コードが標準テキストとして表現された場合と同じです。具体的には、コードが[`METHOD GET CODE`](../commands/method-get-code) and [`METHOD SET CODE`](../commands/method-set-code) コマンドを使用してエクスポート/インポートされた場合、コピー・ペースト、または[4D HTMLタグから解釈されたとき](../Tags/transformation-tags.md) などが該当します。これらのコンテキストにおいてトークナイゼーション機構を引き続き使用するためには、以下にある、ランゲージ内でオブジェクト名の後にトークンを付けると言う明示的なシンタックスを使用する必要があります。 ### トークンシンタックス -式の中でトークナイズ可能な名前付き要素に対して、4D はトークンを直接参照するための特別な信託巣を提供しています。要素名の後に型(コマンド、フィールド、など)を指定する特定の接頭辞を追加し、そのあとに参照を追加します。 以下の表にこのトークンシンタックスについての詳細がまとめてあります: +式の中でトークナイズ可能な名前付き要素に対して、4D はトークンを直接参照するための特別な信託巣を提供しています。要素名の後に型(コマンド、フィールド、など)を指定する特定の接頭辞を追加し、そのあとに参照を追加します。以下の表にこのトークンシンタックスについての詳細がまとめてあります: | 機能 | 使用例(標準のシンタックス) | 接尾辞 | 使用例(トークンシンタックス) | コメント | | -------- | ------------------------------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | @@ -72,7 +71,7 @@ title: メソッド #### 要素番号を調べるためには -トークンシンタックスでは様々な要素の、それぞれの参照番号を必要とします。 これらの参照番号は、要素の型に応じて異なる場所に表示されています。 +トークンシンタックスでは様々な要素の、それぞれの参照番号を必要とします。これらの参照番号は、要素の型に応じて異なる場所に表示されています。 - **4Dコマンド:** コマンド番号は、ランゲージリファレンスマニュアル(の"プロパティ"エリア)内にある他、エクスプローラーのコマンド内でも見つける事ができます。 -- **テーブルとフィールド**: テーブルとフィールド番号は、それぞれ[`Table`](../commands/table) と[`Field`](../commands/field) コマンドを使用する事によって取得可能です。 これらの番号はまた、ストラクチャーエディターのインスペクターパレット内にも表示されています。 \ No newline at end of file +- **テーブルとフィールド**: テーブルとフィールド番号は、それぞれ[`Table`](../commands/table) と[`Field`](../commands/field) コマンドを使用する事によって取得可能です。これらの番号はまた、ストラクチャーエディターのインスペクターパレット内にも表示されています。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md index de755f0cbf3b19..1baedda0c29499 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/operators.md @@ -3,9 +3,9 @@ id: operators title: 演算子 --- -演算子とは、値のチェック・変更・結合に使用する記号または記号のグループです。 日常的に使用されている演算子も多くあります。 たとえば、`1 + 2` という式は加算演算子 (プラス記号) を使用し、2つの数値を足し合わせて、3という結果を返します。 = や > などの比較演算子は、2つ以上の値を比較するためのものです。 +演算子とは、値のチェック・変更・結合に使用する記号または記号のグループです。日常的に使用されている演算子も多くあります。たとえば、`1 + 2` という式は加算演算子 (プラス記号) を使用し、2つの数値を足し合わせて、3という結果を返します。 = や > などの比較演算子は、2つ以上の値を比較するためのものです。 -4Dランゲージでサポートされている演算子は、C や JavaScript など他の言語でも使用されています。 ただし、等号比較演算子 (`=`) との誤用を防ぐため、代入演算子は `:=` となっています。 算術演算子 (+、-、\*、/、%...) や、 比較演算子 (=、>、>=...) などの [基本演算子](#基本演算子) は、 数値のほか、ブール、テキスト、日付、時間、ポインター、ピクチャーのデータ型にも使用可能です。 JavaScript と同様に、4Dランゲージも [truthy (真的) と falsy (偽的)](#truthy-と-falsy) の概念をサポートしており、[短絡演算子](#短絡演算子) で使用されています。 +4Dランゲージでサポートされている演算子は、C や JavaScript など他の言語でも使用されています。ただし、等号比較演算子 (`=`) との誤用を防ぐため、代入演算子は `:=` となっています。算術演算子 (+、-、\*、/、%...) や、比較演算子 (=、>、>=...) などの [基本演算子](#基本演算子) は、数値のほか、ブール、テキスト、日付、時間、ポインター、ピクチャーのデータ型にも使用可能です。 JavaScript と同様に、4Dランゲージも [truthy (真的) と falsy (偽的)](#truthy-と-falsy) の概念をサポートしており、[短絡演算子](#短絡演算子) で使用されています。 ## 用語 @@ -29,11 +29,11 @@ $myObject:={ a:2 ; b:$col } // オブジェクト参照を $myObject に代入 $myObject.a:=3 // オブジェクトプロパティに値を代入 ``` -> 代入演算子 `:=` と等号比較演算子 `=` とを混同しないように注意してください。 `=` とは異なる代入演算子が採用されたのは意図的なことで、他のプログラミング言語で == や === の使用によって度々起こる間違いを避けるためです。 このような間違いはコンパイラーにとっても発見しにくく、時間を消耗するトラブルシューティングのもとです。 +> 代入演算子 `:=` と等号比較演算子 `=` とを混同しないように注意してください。 `=` とは異なる代入演算子が採用されたのは意図的なことで、他のプログラミング言語で == や === の使用によって度々起こる間違いを避けるためです。このような間違いはコンパイラーにとっても発見しにくく、時間を消耗するトラブルシューティングのもとです。 ## 基本演算子 -演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。 詳細は、各データ型の項にて説明されています: +演算の結果は、オペランドの **データ型** に依存します。4D はスカラーデータ型に対して様々な演算子をサポートしています。詳細は、各データ型の項にて説明されています: - [**論理演算子**](dt_boolean.md#論理演算子) (**ブール** 式に使用) - [**日付演算子**](dt_date.md#日付演算子) @@ -58,7 +58,7 @@ $myObject.a:=3 // オブジェクトプロパティに値を代入
    -4Dでは、代入と演算を組み合わせた **複合代入演算子** をサポートしています。 その一例として、加算代入演算子 (`+=`) があります。 +4Dでは、代入と演算を組み合わせた **複合代入演算子** をサポートしています。その一例として、加算代入演算子 (`+=`) があります。 ```4d $a:=1 @@ -97,7 +97,7 @@ $a+=2 // $a=3 - オブジェクトプロパティあるいはコレクション要素としてのピクチャー - 配列のインデックス変数 -"代入先 複合代入演算子 値" と "代入先 := 代入先 演算子 値" は、厳密には等価ではありません。なぜなら、前者の場合、代入先 (変数・フィールド・オブジェクトプロパティ・コレクション要素) は一度しか評価されないからです。 たとえば、`getPointer()-+=1` のような式では、`getPointer` メソッドは一度だけ呼び出されます。 +"代入先 複合代入演算子 値" と "代入先 := 代入先 演算子 値" は、厳密には等価ではありません。なぜなら、前者の場合、代入先 (変数・フィールド・オブジェクトプロパティ・コレクション要素) は一度しか評価されないからです。たとえば、`getPointer()-+=1` のような式では、`getPointer` メソッドは一度だけ呼び出されます。 > [テキストの文字インデックス](dt_string.md#文字参照記号) および [BLOB のバイトインデックス](dt_blob.md#スカラーblob-のバイトへのアクセス) では、これらの演算子はサポートされません。 @@ -137,9 +137,9 @@ $t2*=2 // $t2="HelloHello" ## 短絡演算子 -演算子 **&&** と **||** は、**短絡演算子**です。 短絡演算子とは、必ずしもすべてのオペランドを評価しない演算子のことです。 +演算子 **&&** と **||** は、**短絡演算子**です。短絡演算子とは、必ずしもすべてのオペランドを評価しない演算子のことです。 -[**&** や **|** 論理演算子](dt_boolean.md#論理演算子) と異なる点は、短絡演算子の **&&** と **||** はブール値を返さないことです。 これらは式を [truthy (真的) または falsy (偽的)](#truthy-と-falsy) で評価し、どちらかの式を返します。 +[**&** や **|** 論理演算子](dt_boolean.md#論理演算子) と異なる点は、短絡演算子の **&&** と **||** はブール値を返さないことです。これらは式を [truthy (真的) または falsy (偽的)](#truthy-と-falsy) で評価し、どちらかの式を返します。 ### AND 短絡演算子 (&&) @@ -216,7 +216,7 @@ End if
    -|| 演算子は、指定されたオペランドのうち 1つの値を返します。 式は左から右に評価され、以下のルールに基づいて "短絡" 評価の可能性をテストされます。 +|| 演算子は、指定されたオペランドのうち 1つの値を返します。式は左から右に評価され、以下のルールに基づいて "短絡" 評価の可能性をテストされます。 `Expr1 || Expr2` において: @@ -235,7 +235,7 @@ Expr1 が [falsy](#truthy-と-falsy) の場合、計算は Expr2 を返します #### 例題 1 -Employee というテーブルがあるとします。 従業員には電話番号を入力している人と入力していない人がいます。 つまり、`$emp.phone` は NULL である可能性があり、テキスト変数に NULL を代入することはできません。 そこで、次のように書くことができます: +Employee というテーブルがあるとします。従業員には電話番号を入力している人と入力していない人がいます。つまり、`$emp.phone` は NULL である可能性があり、テキスト変数に NULL を代入することはできません。そこで、次のように書くことができます: ```4d var $phone : Text @@ -273,7 +273,7 @@ $name:=$person.maidenName || $person.name
    -三項演算子を使うと、条件式を 1行で書くことができます。 たとえば、[If...Else](flow-control.md#ifelseend-if) 文を完全に置き換えることができます。 +三項演算子を使うと、条件式を 1行で書くことができます。たとえば、[If...Else](flow-control.md#ifelseend-if) 文を完全に置き換えることができます。 三項演算子は 3つのオペランドを次の順序で受け取ります: @@ -346,7 +346,7 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per - 0 - 数値のゼロ (整数かどうかを問わず) -4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。 その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 +4Dでは、**truthy** と **falsy** の評価は値の **使用性** を反映します。つまり、truthy な値は存在し、エラーや予期せぬ結果を発生させずにコードによって処理できることを意味します。その目的は、オブジェクトやコレクションにおける *undefined* や *null* 値を扱うための便利な方法を提供し、実行時エラーを回避するのに必要な [If...Else](flow-control.md#ifelseend-if) 文の数を少なくすることにあります。 たとえば、[OR 短絡演算子](#or-短絡演算子-) を使用すると: @@ -354,9 +354,9 @@ $fullname:=($person.firstname && $person.lastname) ? ($person.firstname+" "+$per $value:=$object.value || $defaultValue ``` -... *$object* が `value` プロパティを含まない場合、または同プロパティが *null* の場合に、デフォルト値が代入されます。 つまり、この演算子は特定の値ではなく、その値の存在や使用性をチェックするのです。 なお、数値の 0 は存在しており使用可能であるため、特別に扱われることはなく、**truthy** です。 +... *$object* が `value` プロパティを含まない場合、または同プロパティが *null* の場合に、デフォルト値が代入されます。つまり、この演算子は特定の値ではなく、その値の存在や使用性をチェックするのです。なお、数値の 0 は存在しており使用可能であるため、特別に扱われることはなく、**truthy** です。 -コレクション、オブジェクト、文字列を表す値については、"空" の値は**falsy** とみなされます。 これは、空の値に遭遇したときに、デフォルト値を割り当てたい場合に便利です。 +コレクション、オブジェクト、文字列を表す値については、"空" の値は**falsy** とみなされます。これは、空の値に遭遇したときに、デフォルト値を割り当てたい場合に便利です。 ```4d $phone:=$emp.phone || "n/a" diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/ordering.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/ordering.md index 410b11d8945419..85480bfae8c0c4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/ordering.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/ordering.md @@ -3,9 +3,9 @@ id: ordering title: コレクションとオブジェクトの並び替え --- -一連のデータをソートするために、4D はデータの型に応じて定義された比較条件を適用することで、それぞれの値を他の値と比較します([並べ替えルール](#並べ替えルール) を参照してください)。 このプロセスは全ての要素に渡って総合的な並べ替えを確立するためのソートアルゴリズムに依存しています。 全てのデータが同じ [データ型](./data-types.md) に所属している場合、比較ルールは単純で正確に定義されています。 +一連のデータをソートするために、4D はデータの型に応じて定義された比較条件を適用することで、それぞれの値を他の値と比較します([並べ替えルール](#並べ替えルール) を参照してください)。このプロセスは全ての要素に渡って総合的な並べ替えを確立するためのソートアルゴリズムに依存しています。全てのデータが同じ [データ型](./data-types.md) に所属している場合、比較ルールは単純で正確に定義されています。 -しかしながら、[コレクション](./dt_collection.md) および [entity selections](../ORDA/dsMapping.md#エンティティセレクション) も含めた [オブジェクト](./dt_object.md) は異種の型の要素や属性を格納することが可能です: これにはスカラー型(テキスト、数値、ブール、日付、) あるいは複雑型(オブジェクト、Blob、コレクション) が含まれます。 異なる種類の値を格納しているコレクションやオブジェクトの並べ替えをする場合、4D は戦略的な並べ替えスキームを適用します。まず最初に要素を型ごとに並べ替えし、その次に各型ごとの中で比較ルールを適用します。 +しかしながら、[コレクション](./dt_collection.md) および [entity selections](../ORDA/dsMapping.md#エンティティセレクション) も含めた [オブジェクト](./dt_object.md) は異種の型の要素や属性を格納することが可能です: これにはスカラー型(テキスト、数値、ブール、日付、) あるいは複雑型(オブジェクト、Blob、コレクション) が含まれます。異なる種類の値を格納しているコレクションやオブジェクトの並べ替えをする場合、4D は戦略的な並べ替えスキームを適用します。まず最初に要素を型ごとに並べ替えし、その次に各型ごとの中で比較ルールを適用します。 ## 並べ替え機能 @@ -21,8 +21,8 @@ title: コレクションとオブジェクトの並び替え 異なる型の要素を格納しているコレクションやエンティティセレクションをソートする場合、以下のアルゴリズムに従って、**型ベースの階層化** が適用されます: -1. **分割フェーズ**: 要素はそれらのベースの型に基づいて同じクラスへとグループ分けされます。 このフェーズは要素の集合全体の型ごとの分割を確立します。 -2. **クラス内の並べ替えフェーズ**: 各クラスの中で、それぞれの要素は型特有の比較ルールに基づいてソートされます。 デフォルトの順序は**昇順**です。 +1. **分割フェーズ**: 要素はそれらのベースの型に基づいて同じクラスへとグループ分けされます。このフェーズは要素の集合全体の型ごとの分割を確立します。 +2. **クラス内の並べ替えフェーズ**: 各クラスの中で、それぞれの要素は型特有の比較ルールに基づいてソートされます。デフォルトの順序は**昇順**です。 型は以下の順序に従って並び、それぞれの比較関係は昇順になります: @@ -42,6 +42,6 @@ title: コレクションとオブジェクトの並び替え ### コレクション内での一貫した並び順 -コレクションのソート関数(上記の[並べ替え機能](#並べ替え機能) の章を参照してください)はオブジェクトやコレクションなどの複雑な型のための **一貫したソート** を実装しています。 ここでいう "一貫した" とは、同じコレクションに対して同じソート関数(例: `collection.orderBy()`) への連続した呼び出しをした場合、これらは複雑な型の値に対して同一の並べ替えの結果を生成するということです。 正式には、二つの要素に対してソート式が同じ比較結果をもたらす場合、それらの要素の相対的な順序は保持されるということです。 +コレクションのソート関数(上記の[並べ替え機能](#並べ替え機能) の章を参照してください)はオブジェクトやコレクションなどの複雑な型のための **一貫したソート** を実装しています。ここでいう "一貫した" とは、同じコレクションに対して同じソート関数(例: `collection.orderBy()`) への連続した呼び出しをした場合、これらは複雑な型の値に対して同一の並べ替えの結果を生成するということです。正式には、二つの要素に対してソート式が同じ比較結果をもたらす場合、それらの要素の相対的な順序は保持されるということです。 他の4D のソート操作で複雑な型の比較をした場合には、こういった同一性の保証はしないということです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/parameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/parameters.md index fe4bdc807cf021..f5a7b17e67088b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/parameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/parameters.md @@ -3,17 +3,17 @@ id: parameters title: 引数 --- -メソッドや関数にデータを渡す必要がしばしば発生します。 これは引数によって容易にできます。 +メソッドや関数にデータを渡す必要がしばしば発生します。これは引数によって容易にできます。 ## 引数の受け渡し -**引数** (または **パラメーター**) とは、メソッドや関数が処理に必要とするデータのことです。 *引数* と *パラメーター* は厳密には違うものですが、このマニュアルでは同義語として使用されています。 引数は、ビルトインの 4Dコマンドにも渡されます。 以下の例は、“Hello” という文字列を引数としてビルトインの `ALERT` コマンドへ渡します: +**引数** (または **パラメーター**) とは、メソッドや関数が処理に必要とするデータのことです。*引数* と *パラメーター* は厳密には違うものですが、このマニュアルでは同義語として使用されています。引数は、ビルトインの 4Dコマンドにも渡されます。以下の例は、“Hello” という文字列を引数としてビルトインの `ALERT` コマンドへ渡します: ```4d ALERT("Hello") ``` -メソッドやクラス関数に引数を渡す場合も同様におこないます。 たとえば、`getArea()` クラス関数が 2つの引数を受け取る場合、このクラス関数を呼び出すには以下のように書きます: +メソッドやクラス関数に引数を渡す場合も同様におこないます。たとえば、`getArea()` クラス関数が 2つの引数を受け取る場合、このクラス関数を呼び出すには以下のように書きます: ```4d $area:=$o.getArea(50;100) @@ -35,15 +35,15 @@ EXECUTE METHOD IN SUBFORM("Cal2";"SetCalendarDate";*;!05/05/20!) // その際に引数として日付リテラル !05/05/20! を渡します ``` -メソッドやクラス関数からデータを **返す** こともできます。 以下は、文字列のデータ長を返すビルトインの `Length` コマンドを用いたステートメントです。 このステートメントでは、`Length` 関数が *MyLength* コードは以下のようになります: +メソッドやクラス関数からデータを **返す** こともできます。以下は、文字列のデータ長を返すビルトインの `Length` コマンドを用いたステートメントです。このステートメントでは、`Length` 関数が *MyLength* コードは以下のようになります: ```4d MyLength:=Length("How did I get here?") ``` -どのようなサブルーチンでも値を返すことができます。 各メソッドやクラス関数につき、定義できる戻り値は一つだけです。 +どのようなサブルーチンでも値を返すことができます。各メソッドやクラス関数につき、定義できる戻り値は一つだけです。 -入力および出力値は呼び出し時に [評価](#引数の渡し方-値か参照か) され、その値はそれぞれ自動的にサブルーチン (呼び出されたメソッドまたはクラス関数) 内のローカル変数に格納されます。 パラメーターは、呼び出されるコード内で [宣言](#パラメーターの宣言) する必要があります。 +入力および出力値は呼び出し時に [評価](#引数の渡し方-値か参照か) され、その値はそれぞれ自動的にサブルーチン (呼び出されたメソッドまたはクラス関数) 内のローカル変数に格納されます。パラメーターは、呼び出されるコード内で [宣言](#パラメーターの宣言) する必要があります。 ## パラメーターの宣言 @@ -92,7 +92,7 @@ Function getArea($width : Integer; $height : Integer)-> $area : Integer > パラメーターの型が宣言されていない場合には、[`Variant`](dt_variant.md) 型として定義されます。 -データベースメソッドを含むすべての 4Dメソッドにおいて `#DECLARE` キーワードの使用がサポートされています。 たとえば、`On Web Authentication` データベースメソッドにおいて、次のように名前付き引数を宣言できます: +データベースメソッドを含むすべての 4Dメソッドにおいて `#DECLARE` キーワードの使用がサポートされています。たとえば、`On Web Authentication` データベースメソッドにおいて、次のように名前付き引数を宣言できます: ```4d // On Web Authentication データベースメソッド @@ -106,19 +106,19 @@ $entitySelection:=ds.User.query("login=:1"; $user) :::note -**引数の宣言** と [**変数の宣言**](variables.md#変数の宣言) を混同しないでください。 引数に対して `var` キーワードを使用した場合はエラーが生成されます。 +**引数の宣言** と [**変数の宣言**](variables.md#変数の宣言) を混同しないでください。引数に対して `var` キーワードを使用した場合はエラーが生成されます。 ::: ### 戻り値 -関数の戻り値は、入力パラメーターリストに矢印 (->) を追加し、それに続けて宣言します。 例: +関数の戻り値は、入力パラメーターリストに矢印 (->) を追加し、それに続けて宣言します。例: ```4d Function add($x : Variant; $y : Integer) -> $result : Integer ``` -矢印と出力変数名を省略して、コロン (:) 記号の後に戻り値のデータ型だけを指定した場合には、戻り値は [return文](#return-expression) を使って管理します。 例: +矢印と出力変数名を省略して、コロン (:) 記号の後に戻り値のデータ型だけを指定した場合には、戻り値は [return文](#return-expression) を使って管理します。例: ```4d Function add($x : Variant; $y : Integer): Integer @@ -127,7 +127,7 @@ Function add($x : Variant; $y : Integer): Integer :::warning -戻り値を含む引数の宣言をおこなうのは、一度だけです。 特に、同じ型であっても、同じ引数を入力と出力の両方として宣言することはできません。 例: +戻り値を含む引数の宣言をおこなうのは、一度だけです。特に、同じ型であっても、同じ引数を入力と出力の両方として宣言することはできません。例: ```qs // 無効な宣言 @@ -139,7 +139,7 @@ Function myTransform ($x : Integer) -> $x : Integer ### サポートされているデータ型 -名前付き引数の場合、[`var` キーワードでサポートされている](variables.md) データ型 (クラスオブジェクト含む) を使用できます。 例: +名前付き引数の場合、[`var` キーワードでサポートされている](variables.md) データ型 (クラスオブジェクト含む) を使用できます。例: ```4d Function saveToFile($entity : cs.ShapesEntity; $file : 4D.File) @@ -174,7 +174,7 @@ Function square($x : Integer) : Integer return $x * $x ``` -`return`文は、[戻り値](#戻り値) の標準的なシンタックスと併用することができます (戻り値は宣言された型でなくてはなりません)。 戻り値の宣言していた場合(例: `myFunction() -> $myReturnValue : Text`)、 `return $x` は暗示的に `$myReturnValue:=$x` を実行し、呼び出し元に戻ります。 この場合、コード実行は直ちに終了されるという点に注意してください。 以下の例で詳しく見てみましょう: +`return`文は、[戻り値](#戻り値) の標準的なシンタックスと併用することができます (戻り値は宣言された型でなくてはなりません)。戻り値の宣言していた場合(例: `myFunction() -> $myReturnValue : Text`)、 `return $x` は暗示的に `$myReturnValue:=$x` を実行し、呼び出し元に戻ります。この場合、コード実行は直ちに終了されるという点に注意してください。以下の例で詳しく見てみましょう: ```4d Function getValue -> $v : Integer @@ -202,11 +202,11 @@ Function returnHello ## 引数の間接参照 (${N}) -4Dメソッドおよび関数は、可変長の引数を受け取ることができます。 `For...End for` ループや [`Count parameters`](../commands/count-parameters) コマンド、**引数の間接参照シンタックス** を使って、これらの引数を扱うことができます。 メソッド内で、間接参照は `${N}` のように表示します。ここの `N` は数値式です。 +4Dメソッドおよび関数は、可変長の引数を受け取ることができます。 `For...End for` ループや [`Count parameters`](../commands/count-parameters) コマンド、**引数の間接参照シンタックス** を使って、これらの引数を扱うことができます。メソッド内で、間接参照は `${N}` のように表示します。ここの `N` は数値式です。 ### 可変長引数の使い方 -引数の数値を合計した結果を、引数として渡された表示形式で返すようなメソッドを考えてみましょう。 合計される数値の数は、メソッドが呼ばれるたびに変わります。 このメソッドでは数値と表示形式を引数としてメソッドに渡さなければなりません。 呼び出しごとに、値の数は変わりえます。 +引数の数値を合計した結果を、引数として渡された表示形式で返すようなメソッドを考えてみましょう。合計される数値の数は、メソッドが呼ばれるたびに変わります。このメソッドでは数値と表示形式を引数としてメソッドに渡さなければなりません。呼び出しごとに、値の数は変わりえます。 以下は `MySum` メソッドです: @@ -226,7 +226,7 @@ Function returnHello Result:=MySum("000";1;2;200) // "203" ``` -0、1、またはそれ以上のパラメーターを宣言してある場合でも、任意の数の引数を渡すことができます。 呼び出されたコード内では、`${N}` シンタックスを使って引数を利用でき、可変長引数の型はデフォルトで [バリアント](dt_variant.md) です ([可変長引数の記法](#可変長引数の宣言) を使ってこれらを宣言できます)。 [`Count parameters`](../commands/count-parameters) コマンドを使用して、パラメーターが存在することをあらかじめ確認しておく必要があります。 例: +0、1、またはそれ以上のパラメーターを宣言してある場合でも、任意の数の引数を渡すことができます。呼び出されたコード内では、`${N}` シンタックスを使って引数を利用でき、可変長引数の型はデフォルトで [バリアント](dt_variant.md) です ([可変長引数の記法](#可変長引数の宣言) を使ってこれらを宣言できます)。 [`Count parameters`](../commands/count-parameters) コマンドを使用して、パラメーターが存在することをあらかじめ確認しておく必要があります。例: ```4d // foo メソッド @@ -246,7 +246,7 @@ foo("hello";"world";!01/01/2021!;42;?12:00:00?) // 追加の引数が受け渡 ### 可変長引数の宣言 -可変長引数を宣言することは必須ではありません。 宣言なしの可変長引数は自動的に [バリアント](dt_variant.md)型となります。 +可変長引数を宣言することは必須ではありません。宣言なしの可変長引数は自動的に [バリアント](dt_variant.md)型となります。 ただし、コード実行中に型が一致しないエラーを回避するために、関数のプロトタイプ、クラスコンストラクター、およびメソッドで "..." を使用して可変長のパラメーターを宣言できます (可変長引数)。 "..." に続いて型を指定することで、引数の型を指定します。 @@ -291,7 +291,7 @@ return $total ``` -このメソッドは、可変長の実数引数を渡して呼び出すことができます。 引数の型が間違っている場合は、メソッドが実行される前にエラーが返されます: +このメソッドは、可変長の実数引数を渡して呼び出すことができます。引数の型が間違っている場合は、メソッドが実行される前にエラーが返されます: ```4d @@ -309,7 +309,7 @@ $total3:=SumNumbers(1; 2; "hello"; 4; 5) // エラー ## 引数の型間違い -間違った型の引数、または(オブジェクト型引数に対して)間違ったクラスの引数を呼び出すことは、正しい実行を妨げる [エラー](error-handling.md) となります。 たとえば、次のようなメソッドを書いたとします: +間違った型の引数、または(オブジェクト型引数に対して)間違ったクラスの引数を呼び出すことは、正しい実行を妨げる [エラー](error-handling.md) となります。たとえば、次のようなメソッドを書いたとします: ```4d // method1 @@ -339,11 +339,11 @@ method1($param) //クラスインスタンスが異なる、cs.MyClass1 が必 - インタープリタープロジェクトでは: - 引数が名前付きシンタックス(`#DECLARE` あるいは `Function`) を使用して宣言されている場合、コードを書いている時点で[ライブチェッカー](../code-editor/write-class-method.md#警告とエラー) によってエラーが生成されるか、あるいはメソッドが呼び出された時点でエラーが生成されます。 - 引数が旧式のシンタックス(`C_XXX`) を使用して宣言されている場合、エラーは発生せず、呼び出されたメソッドは期待される型の空の値を受け取ります。 -- [コンパイル済みプロジェクト](interpreted.md) では、可能な限りコンパイル時にエラーが生成されます。 それ以外の場合は、メソッドの呼び出し時にエラーが生成されます。 +- [コンパイル済みプロジェクト](interpreted.md) では、可能な限りコンパイル時にエラーが生成されます。それ以外の場合は、メソッドの呼び出し時にエラーが生成されます。 ## オブジェクトプロパティを名前付き引数として使用する -引数としてオブジェクトを渡すことによって **名前付き引数** を扱うことができます。 このプログラミング方法はシンプルかつ柔軟なだけでなく、コードの可読性も向上させます。 +引数としてオブジェクトを渡すことによって **名前付き引数** を扱うことができます。このプログラミング方法はシンプルかつ柔軟なだけでなく、コードの可読性も向上させます。 たとえば、`CreatePerson` メソッドを例にとると: @@ -364,13 +364,13 @@ method1($param) //クラスインスタンスが異なる、cs.MyClass1 が必 ALERT($para.Name+" は "+String($para.Age)+" 歳です。") ``` -これは [任意パラメーター](#任意パラメーター) を指定するにあたって非常に便利な方法です (後述参照)。 この場合、引数の不足は次のように対処できます: +これは [任意パラメーター](#任意パラメーター) を指定するにあたって非常に便利な方法です (後述参照)。この場合、引数の不足は次のように対処できます: - `Null` 値と比較することで、必要な引数がすべて提供されているかをチェックします - 引数の値をプリセットします - 渡されていない引数は空値として扱います -上述の `ChangeAge` メソッドの例では、Age およびName プロパティはどちらも必須であるため、引数オブジェクトに含まれていなければエラーが発生します。 これを避けるには、次のように記述することができます: +上述の `ChangeAge` メソッドの例では、Age およびName プロパティはどちらも必須であるため、引数オブジェクトに含まれていなければエラーが発生します。これを避けるには、次のように記述することができます: ```4d // ChangeAge メソッド @@ -381,7 +381,7 @@ method1($param) //クラスインスタンスが異なる、cs.MyClass1 が必 すると、引数が不足してもエラーは生成されず、両方が欠落した場合の結果は " は 10歳です" となってしまうにせよ、いずれの引数も任意となります。 -名前付き引数を利用すると、アプリケーションの保守やリファクタリングが簡単かつ安全におこなえます。 さきほどの例で、加算する年数を場合に応じて変えたほうが適切であると、あとから気づいたとします。 メソッドのパラメーターとして、加算年数を追加しなくてはなりません。 この場合、次のように書けます: +名前付き引数を利用すると、アプリケーションの保守やリファクタリングが簡単かつ安全におこなえます。さきほどの例で、加算する年数を場合に応じて変えたほうが適切であると、あとから気づいたとします。メソッドのパラメーターとして、加算年数を追加しなくてはなりません。この場合、次のように書けます: ```4d $person:=New object("Name";"Smith";"Age";40;"toAdd";10) @@ -396,20 +396,20 @@ $para.Age:=Num($para.Age)+$para.toAdd ALERT(String($para.Name)+" は "+String($para.Age)+" 歳です。") ``` -このように、既存のコードを変える必要はありません。 変更後のコードは変更前と同じように動作しますが、引数によって加算年数に数値を指定することもできるようになりました。 +このように、既存のコードを変える必要はありません。変更後のコードは変更前と同じように動作しますが、引数によって加算年数に数値を指定することもできるようになりました。 -名前付き引数を使うと、すべてのパラメーターを任意にすることができます。 上の例ではすべてのパラメーターが任意で、いずれを指定してもよく、順序は考慮されません。 +名前付き引数を使うと、すべてのパラメーターを任意にすることができます。上の例ではすべてのパラメーターが任意で、いずれを指定してもよく、順序は考慮されません。 ## 任意パラメーター -*4D ランゲージリファレンス* において、コマンドシンタックス中の { } 文字 (中括弧) はその引数が省略可能であることを示します。 たとえば、`ALERT (message{; okButtonTitle})` は *okButtonTitle* が省略できることを意味します。 この場合、次のような呼び出し方が可能です: +*4D ランゲージリファレンス* において、コマンドシンタックス中の { } 文字 (中括弧) はその引数が省略可能であることを示します。たとえば、`ALERT (message{; okButtonTitle})` は *okButtonTitle* が省略できることを意味します。この場合、次のような呼び出し方が可能です: ```4d ALERT("Are you sure?";"Yes I am") // 2つの引数 ALERT("Time is over") // 1つの引数 ``` -4Dメソッドや関数も、このような任意パラメーターを受け入れます。 任意の数のパラメーターを宣言することができます。 宣言されているよりも少ない引数をメソッドや関数に渡した場合、指定されなかったパラメーターは、[そのタイプに応じたデフォルト値](data-types.md#デフォルト値) として、呼び出されたコードの中で処理されます。 例: +4Dメソッドや関数も、このような任意パラメーターを受け入れます。任意の数のパラメーターを宣言することができます。宣言されているよりも少ない引数をメソッドや関数に渡した場合、指定されなかったパラメーターは、[そのタイプに応じたデフォルト値](data-types.md#デフォルト値) として、呼び出されたコードの中で処理されます。例: ```4d // myClass クラスの "concate" 関数 @@ -426,7 +426,7 @@ $result:=$param1+" "+$param2 :::note -宣言されているよりも多い数のパラメーターをメソッドや関数に渡すこともできます。 呼び出されたコードにおいて、これらは [${N} シンタックス](#parameter-indirection-n) を使うことで利用可能です。 +宣言されているよりも多い数のパラメーターをメソッドや関数に渡すこともできます。呼び出されたコードにおいて、これらは [${N} シンタックス](#parameter-indirection-n) を使うことで利用可能です。 ::: @@ -467,7 +467,7 @@ APPEND TEXT(vtSomeText;"";$wpArea) // メッセージを表示して、 $wpArea ## 引数の渡し方: 値か参照か -引数を渡すとき、4D は呼び出し元メソッドのコンテキストにおいてその式を評価し、**結果の値** をクラス関数またはサブルーチンのローカル変数に格納します。 これらのローカル変数に格納されているのは、呼び出し元で使用されているフィールドや変数、式ではなく、渡された値のみです。 スコープがローカルに限られているため、クラス関数 / サブルーチン内でローカル変数の値を変えても、呼び出し元メソッドには影響ありません。 例: +引数を渡すとき、4D は呼び出し元メソッドのコンテキストにおいてその式を評価し、**結果の値** をクラス関数またはサブルーチンのローカル変数に格納します。これらのローカル変数に格納されているのは、呼び出し元で使用されているフィールドや変数、式ではなく、渡された値のみです。スコープがローカルに限られているため、クラス関数 / サブルーチン内でローカル変数の値を変えても、呼び出し元メソッドには影響ありません。例: ```4d // MY_METHOD メソッド @@ -497,9 +497,9 @@ $param->:=Uppercase($param->) ALERT($param->) ``` -この例では、引数として指定された式はフィールドではなく、フィールドへのポインターです。 そのため、`DO_SOMETHING` メソッド内において、$param はフィールドの値ではなく、フィールドへのポインターになっています。 $param 引数によって **参照** される対象 (上記コード内での $param->) はフィールドそのものです。 その結果、参照されている対象を変更すると、その影響はサブルーチンのスコープを超え、実際のフィールドも変更されます。 さきほどの例題においては、両方のアラートボックスに "WILLIAMS" と表示されます。 +この例では、引数として指定された式はフィールドではなく、フィールドへのポインターです。そのため、`DO_SOMETHING` メソッド内において、$param はフィールドの値ではなく、フィールドへのポインターになっています。 $param 引数によって **参照** される対象 (上記コード内での $param->) はフィールドそのものです。その結果、参照されている対象を変更すると、その影響はサブルーチンのスコープを超え、実際のフィールドも変更されます。さきほどの例題においては、両方のアラートボックスに "WILLIAMS" と表示されます。 -2. `DO_SOMETHING` メソッドに "何かさせる" 代わりに、値を返すようにメソッドを書き直すこともできます。 たとえば、以下のようなコードです: +2. `DO_SOMETHING` メソッドに "何かさせる" 代わりに、値を返すようにメソッドを書き直すこともできます。たとえば、以下のようなコードです: ```4d // MY_METHOD メソッド @@ -512,13 +512,13 @@ ALERT($param->) ALERT($result) ``` -このようにサブルーチンの戻り値を使うことを "関数を使う" と言います。 詳細については [戻り値](#戻り値) の章を参照ください。 +このようにサブルーチンの戻り値を使うことを "関数を使う" と言います。詳細については [戻り値](#戻り値) の章を参照ください。 ### 特殊ケース: オブジェクトやコレクションの場合 オブジェクトやコレクションのデータタイプは参照 (つまり、内部的な *ポインター*) を介した形でのみ扱われることに注意が必要です。 -したがって、`$param、$return...` には *値* ではなく *参照* が格納されます。 `$param、$return...` の値をサブルーチン内で変更した場合、その変更は元となるオブジェクトやコレクションが使用されているところへと伝播します。 これは [ポインター](dt_pointer.md#メソッドの引数としてのポインター) に対する原理と同じものですが、`$param、$return...` の使用にあたって参照を外す必要はありません。 +したがって、`$param、$return...` には *値* ではなく *参照* が格納されます。 `$param、$return...` の値をサブルーチン内で変更した場合、その変更は元となるオブジェクトやコレクションが使用されているところへと伝播します。これは [ポインター](dt_pointer.md#メソッドの引数としてのポインター) に対する原理と同じものですが、`$param、$return...` の使用にあたって参照を外す必要はありません。 次の例では、`CreatePerson` メソッドはオブジェクトを作成したのち、それを引数として `ChangeAge` に渡します: @@ -541,5 +541,5 @@ ALERT($param->) `CreatePerson` メソッドを実行すると、サブルーチンにおいても同じオブジェクト参照が扱われているため、両方のアラートボックスにおいて ”50” と表示されます。 -**4D Server:** "サーバー上で実行" オプションが使用された場合など、同じマシン上で実行されないメソッド間で引数が渡される場合、参照渡しは利用できません。 このような場合には、参照の代わりにオブジェクトとコレクションのコピーが引数として渡されます。 +**4D Server:** "サーバー上で実行" オプションが使用された場合など、同じマシン上で実行されないメソッド間で引数が渡される場合、参照渡しは利用できません。このような場合には、参照の代わりにオブジェクトとコレクションのコピーが引数として渡されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/paths.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/paths.md index ccfc65d4bb3084..ee3bdbff576f9e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/paths.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/paths.md @@ -3,7 +3,7 @@ id: paths title: パス名 --- -File および Folder の関数、プロパティ、コマンドにより、ファイルやフォルダーをオブジェクトとして扱うことができます。 これにより、ファイルやフォルダーの管理を強力かつ柔軟におこなえます。 たとえば、カレントユーザーのドキュメントフォルダーに新しいファイルを作成する場合、次のように書くことができます: +File および Folder の関数、プロパティ、コマンドにより、ファイルやフォルダーをオブジェクトとして扱うことができます。これにより、ファイルやフォルダーの管理を強力かつ柔軟におこなえます。たとえば、カレントユーザーのドキュメントフォルダーに新しいファイルを作成する場合、次のように書くことができます: ```4d $ok:=Folder(fk documents folder).file("Archives/John4D.prefs").create() @@ -13,7 +13,7 @@ $ok:=Folder(fk documents folder).file("Archives/John4D.prefs").create() ## ファイルシステムパス名 -4D は、macOS および Windows上で様々な場所にある特定の 4Dフォルダーを指定するいくつかの `filesystem` パス名を受け取ります。 ファイルシステムパスはコンテキストに基づいて評価され、絶対パスとして返されます。 +4D は、macOS および Windows上で様々な場所にある特定の 4Dフォルダーを指定するいくつかの `filesystem` パス名を受け取ります。ファイルシステムパスはコンテキストに基づいて評価され、絶対パスとして返されます。 ファイルシステムパス名の使用は、主に二つの理由から有用です: @@ -33,7 +33,7 @@ $ok:=Folder(fk documents folder).file("Archives/John4D.prefs").create() ## POSIX シンタックス -POSIX シンタックスはすべてのプラットフォームでサポートされています。 もっとも柔軟性に優れるため、**POSIX シンタックスの使用が推奨されています**。 POSIX シンタックスはデフォルトで使用されています ([file.path](../API/FileClass.md#path) および [folder.path](../API/FolderClass.md#path) プロパティによって返されます)。 +POSIX シンタックスはすべてのプラットフォームでサポートされています。もっとも柔軟性に優れるため、**POSIX シンタックスの使用が推奨されています**。 POSIX シンタックスはデフォルトで使用されています ([file.path](../API/FileClass.md#path) および [folder.path](../API/FolderClass.md#path) プロパティによって返されます)。 このシンタックスでは: @@ -52,7 +52,7 @@ $pathFolder:=Folder("/RESOURCES/Pictures") ## プラットフォーム特有のシンタックス -プラットフォーム特有のシンタックスは、コマンドが実行される OS に依存します。 このシンタックスを使用して File または Folder オブジェクトを作成するとき、`fk platform path` 定数を引数として使用してそれを宣言する必要がある点に注意してください。 +プラットフォーム特有のシンタックスは、コマンドが実行される OS に依存します。このシンタックスを使用して File または Folder オブジェクトを作成するとき、`fk platform path` 定数を引数として使用してそれを宣言する必要がある点に注意してください。 ### Windows @@ -71,7 +71,7 @@ $ok:=Folder("\\\\svr-internal\\tempo";fk platform path).create() #### Windows のパス名とエスケープシーケンス -4Dランゲージでは [エスケープシーケンス](quick-tour.md#エスケープシーケンス) を使用できます。 エスケープシーケンスはバックスラッシュ (`\`: 日本語フォント環境では円マーク) で始まり、その後に文字が続きます。 たとえば、`\t` は、`Tab` 文字のエスケープシーケンスです。 +4Dランゲージでは [エスケープシーケンス](quick-tour.md#エスケープシーケンス) を使用できます。エスケープシーケンスはバックスラッシュ (`\`: 日本語フォント環境では円マーク) で始まり、その後に文字が続きます。たとえば、`\t` は、`Tab` 文字のエスケープシーケンスです。 Windows では、`\` 文字をパスの区切り文字としても使用するため、Windows のパス名を入力するにはダブルバックスラッシュ `\\` を使用します。 @@ -93,14 +93,14 @@ $ok:=Folder("Monday:Tuesday";fk platform path).create() // ボリュームの名 ### `File` および `Folder` コンストラクター -[`File`](../commands/file) および [`Folder`](../commands/folder) コマンドは **絶対パス名** のみを受け付けます。 相対パス名はサポートされておらず、エラーが返されます。 たとえば、以下のコードは使用できません: +[`File`](../commands/file) および [`Folder`](../commands/folder) コマンドは **絶対パス名** のみを受け付けます。相対パス名はサポートされておらず、エラーが返されます。たとえば、以下のコードは使用できません: ```4d //ERROR $ko:=Folder("myFolder").create() // コンストラクターで相対パス名を使用しています ``` -様々な場所 (プロジェクトフォルダー内、システムフォルダー内、など) にあるファイルやフォルダーを扱いたい場合は、`filesystems` (上述参照) を使用します。 たとえば: +様々な場所 (プロジェクトフォルダー内、システムフォルダー内、など) にあるファイルやフォルダーを扱いたい場合は、`filesystems` (上述参照) を使用します。たとえば: ```4d $okFolder:=Folder("/PACKAGE/myFolder").create() // ストラクチャーレベルでフォルダーが作成されます @@ -109,7 +109,7 @@ $okFile:=File("/DATA/Prefs/tempo.txt").create() // データフォルダー内 ### `.file()` および `.folder()` フォルダー関数 -[`folder.file()`](../API/FolderClass.md#file) および [`folder.folder()`](../API/FolderClass.md#folder) などのフォルダーオブジェクトの関数は、相対 POSIX パス名を受け取ります。 例: +[`folder.file()`](../API/FolderClass.md#file) および [`folder.folder()`](../API/FolderClass.md#folder) などのフォルダーオブジェクトの関数は、相対 POSIX パス名を受け取ります。例: ```4d var $userImages : 4D.Folder diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/plug-ins.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/plug-ins.md index a4bc46ae5185e6..85ad579054340f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/plug-ins.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/plug-ins.md @@ -3,24 +3,24 @@ id: plug-ins title: プラグイン --- -4Dアプリケーションの開発を進めていくと、最初は気付かなかった数多くの機能を発見することでしょう。 それだけでなく、**プラグイン** を4D開発環境に追加することで、標準の4Dの機能を高めることもできます。 +4Dアプリケーションの開発を進めていくと、最初は気付かなかった数多くの機能を発見することでしょう。それだけでなく、**プラグイン** を4D開発環境に追加することで、標準の4Dの機能を高めることもできます。 ## プラグインとは何か -プラグインとは、C や C++ などの言語で書かれた、4D 起動時にロードされるコードのことです。 プラグインは、4D に機能を追加します。 プラグインには通常複数のルーチンが含まれています。 プラグインは外部エリアを操作でき、外部プロセスを実行できます。 +プラグインとは、C や C++ などの言語で書かれた、4D 起動時にロードされるコードのことです。プラグインは、4D に機能を追加します。プラグインには通常複数のルーチンが含まれています。プラグインは外部エリアを操作でき、外部プロセスを実行できます。 ## プラグインの見つけ方 -4Dコミュニティによって多数のプラグインが作成されています。 公開されたプラグインは [GitHub](https://github.com/search?q=4d-plugin&type=Repositories) で確認できます。 また、[独自のプラグインを開発](Extensions/develop-plug-ins.md) することもできます。 +4Dコミュニティによって多数のプラグインが作成されています。公開されたプラグインは [GitHub](https://github.com/search?q=4d-plugin&type=Repositories) で確認できます。また、[独自のプラグインを開発](Extensions/develop-plug-ins.md) することもできます。 ## プラグインのインストール 4D環境にプラグインをインストールするには、プラグインファイルを [Projectフォルダーと同じ階層](../Project/architecture.md#plugins) の **Plugins** フォルダーにコピーします。 -プラグインは 4D 起動時にロードされるので、これらをインストールする際には 4Dアプリケーションを終了する必要があります。 プラグインの利用に特別なライセンスが必要な場合、プラグインはロードされますが、ライセンスをインストールするまで使用することはできません。 +プラグインは 4D 起動時にロードされるので、これらをインストールする際には 4Dアプリケーションを終了する必要があります。プラグインの利用に特別なライセンスが必要な場合、プラグインはロードされますが、ライセンスをインストールするまで使用することはできません。 ## プラグインの使い方 -プラグインコマンドは、4D開発において通常の 4Dコマンドと同様に使用できます。 プラグインコマンドは、エクスプローラーの **プラグイン** ページに表示されます。 +プラグインコマンドは、4D開発において通常の 4Dコマンドと同様に使用できます。プラグインコマンドは、エクスプローラーの **プラグイン** ページに表示されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md index 6afe515f53bf62..069469f0b3a124 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md @@ -4,21 +4,21 @@ title: 概要 sidebar_label: 概要 --- -4D ランゲージを使用して "Hello, world!" メッセージを表示するには複数の方法があります。 一番簡単な方法はおそらく、プロジェクトメソッドにコードを1行、次のように書くやり方です: +4D ランゲージを使用して "Hello, world!" メッセージを表示するには複数の方法があります。一番簡単な方法はおそらく、プロジェクトメソッドにコードを1行、次のように書くやり方です: ```4d ALERT("Hello, World!") ``` -このコードは、 "Hello, World!" メッセージが表示された、OK ボタンの付いたプラットフォームの標準的なアラートダイアログボックスを開きます。 コードを実行するには、コードエディターの左上にある実行ボタンをクリックします: +このコードは、 "Hello, World!" メッセージが表示された、OK ボタンの付いたプラットフォームの標準的なアラートダイアログボックスを開きます。コードを実行するには、コードエディターの左上にある実行ボタンをクリックします: ![hello-world](../assets/en/Concepts/helloworld.png) -あるいは、フォーム内のボタンにこのコードを付けた場合、フォームを実行した状態でボタンをクリックすると、その都度アラートメッセージが表示されます。 いずれの方法でも、前述の1行のコードを実行するだけで目的達成です! +あるいは、フォーム内のボタンにこのコードを付けた場合、フォームを実行した状態でボタンをクリックすると、その都度アラートメッセージが表示されます。いずれの方法でも、前述の1行のコードを実行するだけで目的達成です! ## 値の代入 -変数、フィールド、配列要素などを対象に、データを格納したり、格納したデータを別の対象にコピーしたりすることができます。 変数にデータを格納することを、変数にデータを代入すると言い、代入演算子 (:=) を使っておこないます。 代入演算子はフィールドや配列要素に対してデータを代入する場合にも使います。 +変数、フィールド、配列要素などを対象に、データを格納したり、格納したデータを別の対象にコピーしたりすることができます。変数にデータを格納することを、変数にデータを代入すると言い、代入演算子 (:=) を使っておこないます。代入演算子はフィールドや配列要素に対してデータを代入する場合にも使います。 ```4d $MyNumber:=3 // MyNumber 変数に数値の3を代入します @@ -29,13 +29,13 @@ $myDate:=!2018/01/21! // 日付リテラルを代入します $myHour:=?08:12:55? // 時間リテラルを代入します ``` -代入演算 (:=) は必ず他の演算と区別しなければなりません。 代入演算子は、被演算子を組み合わせて新しい一つのものにするのではなく、演算子の右側の式の値を左側の変数やフィールドにコピーします。 +代入演算 (:=) は必ず他の演算と区別しなければなりません。代入演算子は、被演算子を組み合わせて新しい一つのものにするのではなく、演算子の右側の式の値を左側の変数やフィールドにコピーします。 -**重要:** 代入演算子 (:=) と比較演算子 (=) とを混同しないように注意してください。 (=) とは異なる代入演算子が採用されたのは意図的なことで、他のプログラミング言語で (==) や (===) の使用によって度々起こる間違いを避けるためです。 このような間違いはコンパイラーにとっても発見しにくく、時間を消耗するトラブルシューティングのもとです。 +**重要:** 代入演算子 (:=) と比較演算子 (=) とを混同しないように注意してください。 (=) とは異なる代入演算子が採用されたのは意図的なことで、他のプログラミング言語で (==) や (===) の使用によって度々起こる間違いを避けるためです。このような間違いはコンパイラーにとっても発見しにくく、時間を消耗するトラブルシューティングのもとです。 ## 変数 -4D ランゲージは強い型付けの言語ですが、多くの場合に柔軟性も発揮します。 型指定の変数を作成するには `var` キーワードを使います。 たとえば、日付型の変数を作成するには、次のように書くことができます: +4D ランゲージは強い型付けの言語ですが、多くの場合に柔軟性も発揮します。型指定の変数を作成するには `var` キーワードを使います。たとえば、日付型の変数を作成するには、次のように書くことができます: ```4d var MyDate : Date @@ -48,23 +48,23 @@ var myPerson : cs.Person // Person ユーザークラスの変数 ``` -推奨はされませんが、変数を使用することで作成することもでき、必ずしも正式に宣言する必要はありません。 たとえば、今日の日付に 30日足した値を格納した変数が欲しい場合、次のように書くことができます: +推奨はされませんが、変数を使用することで作成することもでき、必ずしも正式に宣言する必要はありません。たとえば、今日の日付に 30日足した値を格納した変数が欲しい場合、次のように書くことができます: ```4d MyOtherDate:=Current date+30 ``` -上のコードは "MyOtherDate に、現在の日付に 30日を加算した値を代入します" という意味です。 この1行で変数が作成され、変数に (仮の) データ型とデータが割り当てられます。 このように代入によって作成された変数はデータ型が規定されていないと解釈され、コードの違う行では別のデータ型の値を代入することもでき、データ型を動的に変化させます。 この柔軟性は、`var` キーワードで宣言された変数には適用されません (型は変更できません)。また、[コンパイルモード](interpreted.md) では、変数の作成方法に関係なく、型を変更することはできません。 +上のコードは "MyOtherDate に、現在の日付に 30日を加算した値を代入します" という意味です。この1行で変数が作成され、変数に (仮の) データ型とデータが割り当てられます。このように代入によって作成された変数はデータ型が規定されていないと解釈され、コードの違う行では別のデータ型の値を代入することもでき、データ型を動的に変化させます。この柔軟性は、`var` キーワードで宣言された変数には適用されません (型は変更できません)。また、[コンパイルモード](interpreted.md) では、変数の作成方法に関係なく、型を変更することはできません。 ## コマンド -4D コマンドとは、処理を実行するために 4D に組み込まれている命令文のことです。 コマンドに引数を渡す場合は、コマンド名の後の括弧 () に引数を入れ、セミコロン (;) で区切ります。 例: +4D コマンドとは、処理を実行するために 4D に組み込まれている命令文のことです。コマンドに引数を渡す場合は、コマンド名の後の括弧 () に引数を入れ、セミコロン (;) で区切ります。例: ```4d COPY DOCUMENT("folder1\\name1";"folder2\\" ; "new") ``` -コレクションやオブジェクトにコマンドが属している場合、それらは名前付き関数であり、ドット記法を用いて使用します。 例: +コレクションやオブジェクトにコマンドが属している場合、それらは名前付き関数であり、ドット記法を用いて使用します。例: ```4d $c:=New collection(1;2;3;4;5) @@ -75,7 +75,7 @@ $lastEmployee:=$employee.last() 4D プラグインや 4D コンポーネントを利用して、4D 開発環境に新しくコマンドを追加することもできます。 -4D のユーザーコミュニティや、サードパーティデベロッパーによるプラグインが多数存在します。 たとえば、[4d-plugin-pdf-pages](https://github.com/miyako/4d-plugin-pdf-pages) プラグインを macOS で使用した場合は次のコードが書けます: +4D のユーザーコミュニティや、サードパーティデベロッパーによるプラグインが多数存在します。たとえば、[4d-plugin-pdf-pages](https://github.com/miyako/4d-plugin-pdf-pages) プラグインを macOS で使用した場合は次のコードが書けます: ```4d PDF REMOVE PAGE(path;page) @@ -93,7 +93,7 @@ objectRef:=SVG_New_arc(svgRef;100;100;90;90;180) ## 定数 -4D では多くの定義済定数が用意されており、それらの値は名前によってアクセスすることができます。 定義済みの定数によって、より可読性の高いコードを書くことができます。 たとえば、`Read Mode` は定数で、その値は 2 です。 +4D では多くの定義済定数が用意されており、それらの値は名前によってアクセスすることができます。定義済みの定数によって、より可読性の高いコードを書くことができます。たとえば、`Read Mode` は定数で、その値は 2 です。 ```4d vRef:=Open document("PassFile";"TEXT";Read Mode) // ドキュメントを読み取り専用モードで開きます @@ -103,10 +103,9 @@ vRef:=Open document("PassFile";"TEXT";Read Mode) // ドキュメントを読み ## メソッド -4D が提供するたくさんのビルトインコマンドを使って、独自の **プロジェクトメソッド** を組み立てることができます。 プロジェクトメソッドとはユーザー定義のメソッドで、コマンドや演算子などの要素から成り立ちます。 -プロジェクトメソッドは汎用性のあるメソッドですが、そうではない他の種類のメソッドも存在します: オブジェクトメソッド、フォームメソッド、テーブルメソッド (トリガー)、データベースメソッド。 +4D が提供するたくさんのビルトインコマンドを使って、独自の **プロジェクトメソッド** を組み立てることができます。プロジェクトメソッドとはユーザー定義のメソッドで、コマンドや演算子などの要素から成り立ちます。プロジェクトメソッドは汎用性のあるメソッドですが、そうではない他の種類のメソッドも存在します: オブジェクトメソッド、フォームメソッド、テーブルメソッド (トリガー)、データベースメソッド。 -メソッドは、一つ以上のステートメントで構成されます。 ステートメントとは、メソッドの1行のことで1つの命令を実行します。 ステートメントは 1つの命令を実行し、単純な場合もあれば複雑な場合もあります。 +メソッドは、一つ以上のステートメントで構成されます。 ステートメントとは、メソッドの1行のことで1つの命令を実行します。ステートメントは 1つの命令を実行し、単純な場合もあれば複雑な場合もあります。 たとえば、次のステートメントは確認ダイアログボックスを表示します: @@ -127,7 +126,7 @@ For($vlChar;1;Length(vtSomeText)) End for ``` -プロジェクトメソッドは他のプロジェクトメソッドを呼び出すことができ、その際に引数を渡すことも可能です。 メソッドに引数を渡す場合は、メソッド名の後の括弧 () に引数を入れ、 セミコロン (;) で区切ります。 引数が宣言されていれば、これらは受け取り側のメソッドにて直接利用することができます。 メソッドの一つの値を戻り値とすることができ、この戻り値は宣言する必要があります。 メソッドを呼び出すには、メソッド名を書きます: +プロジェクトメソッドは他のプロジェクトメソッドを呼び出すことができ、その際に引数を渡すことも可能です。メソッドに引数を渡す場合は、メソッド名の後の括弧 () に引数を入れ、セミコロン (;) で区切ります。引数が宣言されていれば、これらは受け取り側のメソッドにて直接利用することができます。メソッドの一つの値を戻り値とすることができ、この戻り値は宣言する必要があります。メソッドを呼び出すには、メソッド名を書きます: ```4d $myText:="hello" @@ -141,13 +140,13 @@ $out:=Uppercase($in) ## データタイプ -4D ランゲージで扱うデータにはいくつかの種別があり、これらのデータ種別を "データタイプ" と呼びます。 基本のデータタイプ (文字、数値、日付、時間、ブール、ピクチャー、ポインター、配列) と混合型のデータタイプ (BLOB、オブジェクト、コレクション) があります。 +4D ランゲージで扱うデータにはいくつかの種別があり、これらのデータ種別を "データタイプ" と呼びます。基本のデータタイプ (文字、数値、日付、時間、ブール、ピクチャー、ポインター、配列) と混合型のデータタイプ (BLOB、オブジェクト、コレクション) があります。 -データタイプのうち、文字タイプと数値タイプは、複数の類似するフィールドタイプに対応する点に注意してください。 これらのフィールドにデータが格納されるとき、4D ランゲージはフィールドタイプに合致するデータタイプへとデータを自動的に変換します。 反対に、たとえば整数フィールドのデータを呼び出すと、そのデータは自動的に数値タイプとして扱われます。 つまり、4D ランゲージを使用する際に、類似するフィールドタイプを厳密に区別する必要はありません。 +データタイプのうち、文字タイプと数値タイプは、複数の類似するフィールドタイプに対応する点に注意してください。これらのフィールドにデータが格納されるとき、4D ランゲージはフィールドタイプに合致するデータタイプへとデータを自動的に変換します。反対に、たとえば整数フィールドのデータを呼び出すと、そのデータは自動的に数値タイプとして扱われます。つまり、4D ランゲージを使用する際に、類似するフィールドタイプを厳密に区別する必要はありません。 -しかし、プログラミングにおいて異なるデータタイプを混同しないようにすることは重要です。 "ABC" を日付フィールドに格納しても意味がないように、日付型の変数に "ABC" を格納することも意味がありません。 4D は、コードに書かれたことをできるだけ有効にしようとします。 たとえば、日付に数値を加算した場合は、日付に日数を加算したいものと認識します。 しかし、日付に文字列を加算した場合には、4D はその操作が意味を持たないことを警告します。 +しかし、プログラミングにおいて異なるデータタイプを混同しないようにすることは重要です。 "ABC" を日付フィールドに格納しても意味がないように、日付型の変数に "ABC" を格納することも意味がありません。 4D は、コードに書かれたことをできるだけ有効にしようとします。たとえば、日付に数値を加算した場合は、日付に日数を加算したいものと認識します。 しかし、日付に文字列を加算した場合には、4D はその操作が意味を持たないことを警告します。 -あるタイプとして格納したデータを、別のタイプとして使用する場合があります。 4D ランゲージには、データタイプを変換するためのコマンドが用意されています。 たとえば、数値で始まり、"abc" 等の文字で終了する部品番号を作成する必要がある場合、 以下のように記述することができます: 以下のように記述することができます: 以下のように記述することができます: 以下のように記述することができます: 以下のように記述することができます: +あるタイプとして格納したデータを、別のタイプとして使用する場合があります。 4D ランゲージには、データタイプを変換するためのコマンドが用意されています。たとえば、数値で始まり、"abc" 等の文字で終了する部品番号を作成する必要がある場合、 以下のように記述することができます: 以下のように記述することができます: 以下のように記述することができます: 以下のように記述することができます: 以下のように記述することができます: ```4d [Products]Part_Number:=String(Number)+"abc" @@ -159,7 +158,7 @@ $out:=Uppercase($in) ## オブジェクトとコレクション -4D ランゲージのオブジェクトとコレクションは、オブジェクト記法を使用して値を代入・取得することができます。 例: +4D ランゲージのオブジェクトとコレクションは、オブジェクト記法を使用して値を代入・取得することができます。例: ```4d employee.name:="Smith" @@ -197,14 +196,14 @@ myColl[3] // コレクションの 4番目の要素にアクセスします (0 4D ランゲージではオブジェクトクラスがサポートされています。 "myClass" という名称のクラスを作成するには、プロジェクトの Project/Sources/Classes フォルダーに `myClass.4dm` ファイルを追加します。 -あるメソッドにおいて、クラスのオブジェクトをインスタンス化するには、*クラスストア* (`cs`) よりユーザークラスを呼び出して、`new()` メンバー関数を使います。 引数を渡すこともできます。 +あるメソッドにおいて、クラスのオブジェクトをインスタンス化するには、*クラスストア* (`cs`) よりユーザークラスを呼び出して、`new()` メンバー関数を使います。引数を渡すこともできます。 ```4d // 4D メソッド内 $o:=cs.myClass.new() ``` -`myClass` クラスメソッド内では、*methodName* クラスメンバー関数を宣言するのに `Function ` ステートメントを使います。 ほかのメソッドのように、クラスメンバー関数は引数を受け取ったり、値を返すことができ、オブジェクトインスタンスとして `This` を使えます。 +`myClass` クラスメソッド内では、*methodName* クラスメンバー関数を宣言するのに `Function ` ステートメントを使います。ほかのメソッドのように、クラスメンバー関数は引数を受け取ったり、値を返すことができ、オブジェクトインスタンスとして `This` を使えます。 ```4d @@ -232,7 +231,7 @@ This.width:=$width This.name:="Rectangle" ``` -クラスはほかのクラスから継承することもできます: `Class extends `。 また、`Super` コマンドを使って、スーパークラスを呼び出すことができます。 例: +クラスはほかのクラスから継承することもできます: `Class extends `。また、`Super` コマンドを使って、スーパークラスを呼び出すことができます。例: ```4d // Square.4dm ファイル内 @@ -248,7 +247,7 @@ This.name:="Square" ## 演算子 -プログラミング言語を使用する際に、データのみを必要とする場合は非常に稀です。 データを加工、または何らかの目的のために使用することがほとんどです。 そういった計算は演算子を使っておこないます。 一般的に演算子とは、2つのデータをもとに処理をおこない、1つの新しいデータを生成します。 日常的に使用されている演算子も多くあります。 日常的に使用されている演算子も多くあります。 たとえば、1 + 2 という式は加算演算子 (プラス記号) を使用し、2つの数値を足し合わせて、3という結果を返します。 +プログラミング言語を使用する際に、データのみを必要とする場合は非常に稀です。データを加工、または何らかの目的のために使用することがほとんどです。そういった計算は演算子を使っておこないます。一般的に演算子とは、2つのデータをもとに処理をおこない、1つの新しいデータを生成します。日常的に使用されている演算子も多くあります。日常的に使用されている演算子も多くあります。たとえば、1 + 2 という式は加算演算子 (プラス記号) を使用し、2つの数値を足し合わせて、3という結果を返します。 | 演算子 | 演算 | 例題 | | --- | --------------------------- | ------------- | @@ -259,7 +258,7 @@ This.name:="Square" 数値演算子は、使用可能な演算子のうちの 1種にすぎません。 4Dは、数値・テキスト・日付・ピクチャー等、異なるタイプのデータを扱うために、各データタイプで演算を実行するための演算子を備えています。 -対象のデータタイプによって、同じ記号が異なる処理に使用される場合があります。 例えば、データタイプによってプラス記号 (+) は下記のように異なる演算を実行します: +対象のデータタイプによって、同じ記号が異なる処理に使用される場合があります。例えば、データタイプによってプラス記号 (+) は下記のように異なる演算を実行します: | データタイプ | 演算 | 例題 | | ------ | --------------------------- | --------------------------------------------------------------------- | @@ -269,11 +268,11 @@ This.name:="Square" ## 式 -式は、値を返します。 4D ランゲージでコードを書く際には、意識していなくても常に式を使用しています。 式は、"フォーミュラ" と呼ぶこともあります。 +式は、値を返します。 4D ランゲージでコードを書く際には、意識していなくても常に式を使用しています。式は、"フォーミュラ" と呼ぶこともあります。 -コマンド・演算子・変数・フィールド・オブジェクトプロパティ・コレクション要素等、複数のランゲージの要素を組み合わせて式は構成されます。 式により、ステートメント (メソッドの 1文や 1行) を構成します。 データが必要なとき、式が必要になります。 +コマンド・演算子・変数・フィールド・オブジェクトプロパティ・コレクション要素等、複数のランゲージの要素を組み合わせて式は構成されます。式により、ステートメント (メソッドの 1文や 1行) を構成します。データが必要なとき、式が必要になります。 -式が単独で使われることはほとんどありませんが、 単独で使用できる場合がいくつかあります : +式が単独で使われることはほとんどありませんが、単独で使用できる場合がいくつかあります : - フォーミュラエディター (フォーミュラによるクエリや並べ替えなど) - `EXECUTE FORMULA` コマンド @@ -283,37 +282,36 @@ This.name:="Square" ### 式のタイプ -生成する値のタイプによって、式のタイプを定義することができます。 式のタイプは複数あります。 様々なタイプの式の例を以下に示します。 - -| 式 | 型 | 説明 | -| ------------------------------------------------------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| "こんにちは" | Text | これは文字列定数 "こんにちは" です。 文字列定数であることを表すために二重引用符が必要です。 | -| "みなさん" + "こんにちは" | Text | 2つの文字列 "みなさん" と "こんにちは" が + 演算子により結合され、 "みなさんこんにちは" を返します。 | -| [People]Name + "様" | Text | 2つの文字列の結合です。 [People]Name フィールドと文字列 "様" が結合されます。 フィールドの値が "小林" の場合、"小林様" を返します。 | -| Uppercase ("smith") | Text | この式は `Uppercase` コマンドを使用して、文字列 "smith" を英大文字に変換します。 そして "SMITH" を返します。 | -| 4 | Number | これは数値定数 4です。 | -| 4 \* 2 | Number | 2つの数値、4 と 2 の乗算です。 乗算演算子の (\*) を使用しています。 数値の 8を返します。 | -| myButton | Number | これはボタンに紐づけられた変数です。 ボタンの現在の値を返します: クリックされた場合に 1、それ以外は 0 を返します。 | -| !06/12/24! または !2006/12/24! | Date | この式は日付定数で 2006年12月24日を表します。 | -| Current date + 30 | Date | これは日付式です。`Current date` コマンドを使用して今日の日付を取得し、 今日の日付に30日を足した、新しい日付を返します。 | -| ?8:05:30? | Time | これは時間定数で、8時5分30秒を表します。 | -| ?2:03:04? + ?1:02:03? | Time | 2つの時間の足し算をおこない、3時5分7秒を返します。 | -| true | Boolean | このコマンドはブール値の true (真) を返します。 | -| 10 # 20 | Boolean | これは 2つの数値の論理比較です。 #記号は、"等しくない" を表します。 10と20は "等しくない" ため、この式は true (真) を返します。 | -| "ABC" = "XYZ" | Boolean | これは文字列の論理比較です。 文字列は等しくないため、式は FALSE (偽) を返します。 | -| My Picture + 50 | Picture | この式は My Picture 変数に入っているピクチャーを右に 50ピクセル移動したピクチャーを返します。 | -| ->[People]Name | Pointer | この式は [People]Name フィールドへのポインターを返します。 | -| Table (1) | Pointer | このコマンドは一番目に定義されたテーブルへのポインターを返します。 | -| JSON Parse (MyString) | Object | このコマンドは MyString が適切なフォーマットであれば、オブジェクトとして返します。 | -| JSON Parse (MyJSONArray) | Collection | このコマンドは MyJSONArray が適切なフォーマットであれば、コレクションとして返します。 | -| Form.pageNumber | オブジェクトプロパティ | オブジェクトプロパティは式として、サポートされているいずれのタイプでもありえます。 | -| Col[5] | コレクション要素 | コレクション要素は式として、サポートされているいずれのタイプでもありえます。 | -| $entitySel[0] | Entity | ORDA のエンティティセレクションの要素である、エンティティを返します。 これは **代入不可の式** です。 | +生成する値のタイプによって、式のタイプを定義することができます。式のタイプは複数あります。様々なタイプの式の例を以下に示します。 + +| 式 | 型 | 説明 | +| ------------------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| "こんにちは" | Text | これは文字列定数 "こんにちは" です。 文字列定数であることを表すために二重引用符が必要です。 | +| "みなさん" + "こんにちは" | Text | 2つの文字列 "みなさん" と "こんにちは" が + 演算子により結合され、"みなさんこんにちは" を返します。 | +| [People]Name + "様" | Text | 2つの文字列の結合です。 [People]Name フィールドと文字列 "様" が結合されます。フィールドの値が "小林" の場合、"小林様" を返します。 | +| Uppercase ("smith") | Text | この式は `Uppercase` コマンドを使用して、文字列 "smith" を英大文字に変換します。そして "SMITH" を返します。 | +| 4 | Number | これは数値定数 4です。 | +| 4 \* 2 | Number | 2つの数値、4 と 2 の乗算です。 乗算演算子の (\*) を使用しています。数値の 8を返します。 | +| myButton | Number | これはボタンに紐づけられた変数です。ボタンの現在の値を返します: クリックされた場合に 1、それ以外は 0 を返します。 | +| !06/12/24! または !2006/12/24! | Date | この式は日付定数で 2006年12月24日を表します。 | +| Current date + 30 | Date | これは日付式です。`Current date` コマンドを使用して今日の日付を取得し、今日の日付に30日を足した、新しい日付を返します。 | +| ?8:05:30? | Time | これは時間定数で、8時5分30秒を表します。 | +| ?2:03:04? + ?1:02:03? | Time | 2つの時間の足し算をおこない、3時5分7秒を返します。 | +| true | Boolean | このコマンドはブール値の true (真) を返します。 | +| 10 # 20 | Boolean | これは 2つの数値の論理比較です。#記号は、"等しくない" を表します。 10と20は "等しくない" ため、この式は true (真) を返します。 | +| "ABC" = "XYZ" | Boolean | これは文字列の論理比較です。文字列は等しくないため、式は FALSE (偽) を返します。 | +| My Picture + 50 | Picture | この式は My Picture 変数に入っているピクチャーを右に 50ピクセル移動したピクチャーを返します。 | +| ->[People]Name | Pointer | この式は [People]Name フィールドへのポインターを返します。 | +| Table (1) | Pointer | このコマンドは一番目に定義されたテーブルへのポインターを返します。 | +| JSON Parse (MyString) | Object | このコマンドは MyString が適切なフォーマットであれば、オブジェクトとして返します。 | +| JSON Parse (MyJSONArray) | Collection | このコマンドは MyJSONArray が適切なフォーマットであれば、コレクションとして返します。 | +| Form.pageNumber | オブジェクトプロパティ | オブジェクトプロパティは式として、サポートされているいずれのタイプでもありえます。 | +| Col[5] | コレクション要素 | コレクション要素は式として、サポートされているいずれのタイプでもありえます。 | +| $entitySel[0] | Entity | ORDA のエンティティセレクションの要素である、エンティティを返します。これは **代入不可の式** です。 | ### 代入可能な式vs代入不可の式 {#assignable-vs-non-assignable-expressions} -式は、数値の4や"Hello" の文字列のようなリテラル定数であったり、`$myButton` のような変数であったりします。 式には演算子も含められます。 たとえば、4 + 2 という式は加算演算子を使って二つの数値を加算し、結果の 6 を返します。 リテラル定数や演算子を使った式は **代入不可の式**で、式に値を代入することはできません。 -**代入可能な式** も存在します。 代入演算子の左側に使えるものが、代入可能な式です。 例: +式は、数値の4や"Hello" の文字列のようなリテラル定数であったり、`$myButton` のような変数であったりします。式には演算子も含められます。たとえば、4 + 2 という式は加算演算子を使って二つの数値を加算し、結果の 6 を返します。リテラル定数や演算子を使った式は **代入不可の式**で、式に値を代入することはできません。**代入可能な式** も存在します。代入演算子の左側に使えるものが、代入可能な式です。例: ```4d // 変数 $myVar は代入可能です: @@ -324,7 +322,7 @@ Form.pageNumber:=10 // Form.pageNumber に 10 を代入します Form.pageTotal- Form.pageNumber:=10 // 代入不可のため、エラー ``` -このように、リテラル定数ではなくても、演算子を使っている式は代入不可です。 たとえば、`[Person]FirstName+" "+[Person]LastName` は代入不可です。 +このように、リテラル定数ではなくても、演算子を使っている式は代入不可です。たとえば、`[Person]FirstName+" "+[Person]LastName` は代入不可です。 ## ポインター @@ -340,7 +338,7 @@ ALERT(MyPointer->) ## 行を分割する -1つのステートメントを複数行に記述することができます。 これをおこなうには、ステートメントの各行をバックスラッシュ `\` 文字 (日本語Windowsの場合半角円マーク) で終了します。 このように複数行に分かれたコードを、4Dランゲージは一行と解釈します。 たとえば、以下のステートメントは同等です: +1つのステートメントを複数行に記述することができます。 これをおこなうには、ステートメントの各行をバックスラッシュ `\` 文字 (日本語Windowsの場合半角円マーク) で終了します。このように複数行に分かれたコードを、4Dランゲージは一行と解釈します。たとえば、以下のステートメントは同等です: ```4d $str:=String("hello world!") @@ -354,7 +352,7 @@ $str:=String("hello"+\ ## コメント -コメントとは、コード内の実行されないテキストのことです。 これらのテキストは、コード実行時にインタープリターによって無視されます。 +コメントとは、コード内の実行されないテキストのことです。これらのテキストは、コード実行時にインタープリターによって無視されます。 コメントの書き方は2通りあります: @@ -365,7 +363,7 @@ $str:=String("hello"+\ #### 単一行のコメント (`//コメント`) -コードの後や行の最初に `//` を使うと、その後のテキストはすべてコメントとなります。 例: +コードの後や行の最初に `//` を使うと、その後のテキストはすべてコメントとなります。例: ```4d // これはコメントです @@ -378,9 +376,9 @@ For($vCounter;1;100) // ループを開始します #### インラインコメント、および複数行コメント (`/*コメント*/`) -コメントを `/*` と `*/` で囲むと、そのあいだのテキストはコメントとなります。 この方法でインラインおよびマルチラインコメントが書けます。 +コメントを `/*` と `*/` で囲むと、そのあいだのテキストはコメントとなります。この方法でインラインおよびマルチラインコメントが書けます。 -- **インラインコメント** はコード内のどこにでも挿入することが可能です。 例: +- **インラインコメント** はコード内のどこにでも挿入することが可能です。例: ```4d For /* インラインコメント */ ($vCounter;1;100) @@ -388,7 +386,7 @@ For /* インラインコメント */ ($vCounter;1;100) End for ``` -- **マルチラインコメント** は複数行にわたるコメントのことです。 この形式のコメントは入れ子にすることができ、4D コードエディターではこれを展開したり折りたたんだりすることができます。 例: +- **マルチラインコメント** は複数行にわたるコメントのことです。この形式のコメントは入れ子にすることができ、4D コードエディターではこれを展開したり折りたたんだりすることができます。例: ```4d For ($vCounter;1;100) @@ -404,9 +402,9 @@ End for ## エスケープシーケンス -4Dランゲージでは、エスケープシーケンス (エスケープ文字) を使用できます。 エスケープシーケンスとは、特別な文字の代わりに使用される一連の文字です。 +4Dランゲージでは、エスケープシーケンス (エスケープ文字) を使用できます。エスケープシーケンスとは、特別な文字の代わりに使用される一連の文字です。 -エスケープシーケンスは一文字目がバックスラッシュ `\` であり、そのあとに文字が続きます。 たとえば `\t` は **Tab** 文字のエスケープシーケンスです。 エスケープシーケンスを使用すると特別な文字の入力が容易になります。たとえば `\t` を Char(Tab) の代わりに使用できます。 +エスケープシーケンスは一文字目がバックスラッシュ `\` であり、そのあとに文字が続きます。たとえば `\t` は **Tab** 文字のエスケープシーケンスです。エスケープシーケンスを使用すると特別な文字の入力が容易になります。たとえば `\t` を Char(Tab) の代わりに使用できます。 4D では以下のエスケープシーケンスを使用できます: @@ -428,11 +426,11 @@ End for 4D ランゲージドキュメントでは、次の表記が使われています: -- 中カッコ `{ }` は、任意のパラメーターを示します。 例えば、`.delete({ option : Integer })` は *option* 引数は関数を呼び出す際に省略可能であることを意味します。 +- 中カッコ `{ }` は、任意のパラメーターを示します。例えば、`.delete({ option : Integer })` は *option* 引数は関数を呼び出す際に省略可能であることを意味します。 - `any` キーワードは、あらゆる型(数値、テキスト、ブール、日付、時間、オブジェクト、コレクション、など) の値が可能な引数に対して使用されます。 - これは *value* 引数は、テキスト型または実数型または日付型または時間型を受け付けるということを意味します。 -- **可変長引数**: `...param : Type` という表記は、同じ型の引数を 0 から無制限に受け付けることを意味します。 たとえば、`.concat( value : any { ;...valueN : any }) : Collection` という表記の場合、あらゆる型の引数を数に制限なく関数に渡すことができます。 -- **可変長のグループ引数**: `{; ...(param1 : Type ; param2 : Type)}` という表記は、グループの引数を1つから無制限に受け付けることを意味します。 例えば、`COLLECTION TO ARRAY ( collection : Collection ; array : Array {; propertyName : Text}{; ...(array : Array ; propertyName : Text) })` という表記は、値またはテキスト型配列のペアを無制限にコマンドに渡すことができるということを意味します。 +- **可変長引数**: `...param : Type` という表記は、同じ型の引数を 0 から無制限に受け付けることを意味します。たとえば、`.concat( value : any { ;...valueN : any }) : Collection` という表記の場合、あらゆる型の引数を数に制限なく関数に渡すことができます。 +- **可変長のグループ引数**: `{; ...(param1 : Type ; param2 : Type)}` という表記は、グループの引数を1つから無制限に受け付けることを意味します。例えば、`COLLECTION TO ARRAY ( collection : Collection ; array : Array {; propertyName : Text}{; ...(array : Array ; propertyName : Text) })` という表記は、値またはテキスト型配列のペアを無制限にコマンドに渡すことができるということを意味します。 ### 引数の型の説明 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/shared.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/shared.md index 510ea53773fdbd..df13a07ca0b8f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/shared.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/shared.md @@ -3,16 +3,16 @@ id: shared title: 共有オブジェクトと共有コレクション --- -**共有オブジェクト** および **共有コレクション** はプロセス間でコンテンツを共有することができる、特殊な [オブジェクト](./dt_object.md) と [コレクション](./dt_collection.md) です。 [インタープロセス変数](./variables.md#インタープロセス変数)(現在は廃止予定) に比べると、共有オブジェクトと共有コレクションは *[プリエンプティブプロセス](../Develop/preemptive.md)* と互換性があるという点で利点があります。つまり、[`New process`](../commands/new-process) や [`CALL WORKER`](../commands/call-worker) といったコマンドの引数として、参照の形で渡すことができるということです。 +**共有オブジェクト** および **共有コレクション** はプロセス間でコンテンツを共有することができる、特殊な [オブジェクト](./dt_object.md) と [コレクション](./dt_collection.md) です。[インタープロセス変数](./variables.md#インタープロセス変数)(現在は廃止予定) に比べると、共有オブジェクトと共有コレクションは *[プリエンプティブプロセス](../Develop/preemptive.md)* と互換性があるという点で利点があります。つまり、[`New process`](../commands/new-process) や [`CALL WORKER`](../commands/call-worker) といったコマンドの引数として、参照の形で渡すことができるということです。 共有オブジェクトと共有コレクションは、標準の [`Object`](./dt_object.md) および [`Collection`](./dt_collection.md) 型の変数に保存されますが、以下のように専用のコマンドを使用してインスタンス化されている必要があります: - 共有オブジェクトを作成するには、[`New shared object`](../commands/new-shared-object) コマンドを使用するか、[共有クラス](./classes.md#共有クラス) の [`new()`](../API/ClassClass.md#new) 関数を呼び出します。 - 共有コレクションを作成するには、[`New shared collection`](../commands/new-shared-collection) コマンドを使用します。 -共有オブジェクトと共有コレクションには、スカラー値または他の共有オブジェクトや共有コレクションのみを含めることができます。 ただし、共有オブジェクトや共有コレクションは、標準の (非共有の) オブジェクトおよびコレクションのプロパティとして設定することができます。 +共有オブジェクトと共有コレクションには、スカラー値または他の共有オブジェクトや共有コレクションのみを含めることができます。ただし、共有オブジェクトや共有コレクションは、標準の (非共有の) オブジェクトおよびコレクションのプロパティとして設定することができます。 -共有オブジェクト/コレクションを編集するには、**Use...End use** 構文を使う必要があります。 共有オブジェクト/コレクションの値を読むにあたっては、**Use...End use** は必要ありません。 +共有オブジェクト/コレクションを編集するには、**Use...End use** 構文を使う必要があります。共有オブジェクト/コレクションの値を読むにあたっては、**Use...End use** は必要ありません。 [`Storage`](../commands/storage) コマンドが返す、データベースにおいて固有かつグローバルなカタログは、そのアプリケーション内あるいはコンポーネントからいつでも利用することができ、すべての共有オブジェクトおよびコレクションを保存するのに使用することができます。 @@ -60,13 +60,13 @@ Use($col) End Use ``` -一度に 1プロセスのみ、共有オブジェクト/コレクションを編集することができます。 `Use` は共有オブジェクト/コレクションを他のスレッドからアクセスできないようにロックする一方、`End use` はこのロックを解除します (ロックカウンターが 0 の場合; 後述参照)。 。 `Use...End use` を使わずに共有オブジェクト/コレクションを編集しようとすると、エラーが生成されます。 すでに他のプロセスによって使用されている共有オブジェクト/コレクションに対して、別のプロセスが `Use...End use` を呼び出した場合、先着プロセスが `End use` でロックを解除するまで、その呼び出しは待機状態になります (エラーは生成されません)。 したがって、`Use...End use` 構文内の処理は迅速に実行され、ロックは可及的速やかに解除される必要があります。 そのため、共有オブジェクト/コレクションをインターフェース(ダイアログボックスなど) から直接編集することは避けることが強く推奨されます。 +一度に 1プロセスのみ、共有オブジェクト/コレクションを編集することができます。 `Use` は共有オブジェクト/コレクションを他のスレッドからアクセスできないようにロックする一方、`End use` はこのロックを解除します (ロックカウンターが 0 の場合; 後述参照)。。 `Use...End use` を使わずに共有オブジェクト/コレクションを編集しようとすると、エラーが生成されます。すでに他のプロセスによって使用されている共有オブジェクト/コレクションに対して、別のプロセスが `Use...End use` を呼び出した場合、先着プロセスが `End use` でロックを解除するまで、その呼び出しは待機状態になります (エラーは生成されません)。したがって、`Use...End use` 構文内の処理は迅速に実行され、ロックは可及的速やかに解除される必要があります。そのため、共有オブジェクト/コレクションをインターフェース(ダイアログボックスなど) から直接編集することは避けることが強く推奨されます。 -共有オブジェクト/コレクションを他の共有オブジェクト/コレクションのプロパティあるいは要素に割り当てることは可能で、このとき **共有グループ** が作成されます。 共有グループは、共有オブジェクト/コレクションのプロパティ値あるいは要素として他の共有オブジェクト/コレクションが設定されたときに自動的に作成されます。 共有グループを使用すると共有オブジェクトを入れ子にすることができますが、以下のルールに気をつける必要があります: +共有オブジェクト/コレクションを他の共有オブジェクト/コレクションのプロパティあるいは要素に割り当てることは可能で、このとき **共有グループ** が作成されます。共有グループは、共有オブジェクト/コレクションのプロパティ値あるいは要素として他の共有オブジェクト/コレクションが設定されたときに自動的に作成されます。共有グループを使用すると共有オブジェクトを入れ子にすることができますが、以下のルールに気をつける必要があります: - あるグループの共有オブジェクト/コレクションに対して `Use` を使うと、そのグループに所属するすべての共有オブジェクト/コレクションのプロパティ/要素がロックされ、ロックカウンターを 1 増加させます。 `End use` はグループのロックカウンターを 1 減らします。カウンターが 0 になると、すべてのリンクされた共有オブジェクト/コレクションのロックが解除されます。 -- 共有オブジェクト/コレクションは一つの共有グループにしか所属することができません。 すでにグループに所属している共有オブジェクト/コレクションを他のグループへと割り当てようとした場合、エラーが返されます。 -- 一旦グループ化された共有オブジェクト/コレクションについて、グループを解除することはできません。 一度共有グループに含まれた共有オブジェクト/コレクションは、セッション中はずっと同グループに所属することになります。 親オブジェクト/コレクションから子オブジェクト/コレクションへの参照をすべて削除したとしても、両者のリンクが解除されるわけではありません。 +- 共有オブジェクト/コレクションは一つの共有グループにしか所属することができません。すでにグループに所属している共有オブジェクト/コレクションを他のグループへと割り当てようとした場合、エラーが返されます。 +- 一旦グループ化された共有オブジェクト/コレクションについて、グループを解除することはできません。一度共有グループに含まれた共有オブジェクト/コレクションは、セッション中はずっと同グループに所属することになります。親オブジェクト/コレクションから子オブジェクト/コレクションへの参照をすべて削除したとしても、両者のリンクが解除されるわけではありません。 共有グループのルールについての詳細は、例題2を参照してください。 @@ -82,9 +82,9 @@ End Use ### ストレージ -**ストレージ** は固有の共有オブジェクトで、各アプリケーションおよびマシン上で利用可能です。 この共有オブジェクトは[`Storage`](../commands/storage) コマンドによって返されます。 このオブジェクトは、他のプリエンティブあるいは標準プロセスからでも利用出来るように、セッション中に定義されたすべての共有オブジェクト/コレクションを参照するためのものです。 +**ストレージ** は固有の共有オブジェクトで、各アプリケーションおよびマシン上で利用可能です。この共有オブジェクトは[`Storage`](../commands/storage) コマンドによって返されます。このオブジェクトは、他のプリエンティブあるいは標準プロセスからでも利用出来るように、セッション中に定義されたすべての共有オブジェクト/コレクションを参照するためのものです。 -`ストレージ` オブジェクトは標準の共有オブジェクトとは異なり、共有オブジェクト/コレクションがプロパティとして追加されたときでも共有グループを作成しないという点に注意してください。 この例外的な振る舞いにより、**ストレージ** オブジェクトを使用するたびに、リンクされている共有オブジェクト/コレクションをすべてロックせずに済みます。 +`ストレージ` オブジェクトは標準の共有オブジェクトとは異なり、共有オブジェクト/コレクションがプロパティとして追加されたときでも共有グループを作成しないという点に注意してください。この例外的な振る舞いにより、**ストレージ** オブジェクトを使用するたびに、リンクされている共有オブジェクト/コレクションをすべてロックせずに済みます。 詳細については、[`Storage`](../commands/storage) コマンドの説明を参照してください。 @@ -100,14 +100,14 @@ End Use `Use...End use` 構文は、内部セマフォーの保護下において *Shared_object_or_Shared_collection* 引数に対して処理を実行するステートメントを定義します。 *Shared_object_or_Shared_collection* として任意の有効な共有オブジェクトあるいは共有コレクションを渡すことができます。 -共有オブジェクトおよび共有コレクションは、プロセス間の (とくに \*[プリエンプティブプロセス](../Develop/preemptive.md)\*間の) 通信ができるように設計されています。 これらはプロセスから他のプロセスへ、参照型の引数として渡すことができます。 共有オブジェクトおよび共有コレクションを扱う際には、複数プロセスによる同時アクセスを避けるために、必ずそれらを `Use...End use` キーワードでくくる必要があります。 +共有オブジェクトおよび共有コレクションは、プロセス間の (とくに \*[プリエンプティブプロセス](../Develop/preemptive.md)\*間の) 通信ができるように設計されています。これらはプロセスから他のプロセスへ、参照型の引数として渡すことができます。共有オブジェクトおよび共有コレクションを扱う際には、複数プロセスによる同時アクセスを避けるために、必ずそれらを `Use...End use` キーワードでくくる必要があります。 - **Use** の実行が成功すると、対応する `End use` が実行されるまで、*Shared_object_or_Shared_collection* のプすべてのロパティ/要素は他のあらゆるプロセスに対し書き込みアクセスがロックされます。 - *statement(s)* で実行されるステートメントは、Shared_object_or_Shared_collection のプロパティ/要素に対して、競合アクセスのリスクなしに変更も実行することができます。 - *Shared_object_or_Shared_collection* に他の共有オブジェクトあるいはコレクションがプロパティとして追加された場合、それらも同じ共有グループとして連結されます。 - \*\*Use...End use \*\* 内ステートメントの実行中に、他のプロセスが *Shared_object_or_Shared_collection* のプロパティやリンクされたプロパティにアクセスしようとした場合、そのアクセスは自動的に保留され、実行中の処理が終了するまで待機します。 - **End use** は、*Shared_object_or_Shared_collection* プロパティおよび、同じグループのすべてのオブジェクトのロックを解除します。 -- 4D コード内では、複数の **Use...End use** 構文を入れ子にすることができます。 グループの場合、**Use** を使用するごとにグループのロックカウンターが 1 増加し、 **End use** ごとに 1 減少します。最後の **End use** によってロックカウンターが 0 になった場合にのみ、すべてのプロパティ/要素のロックが解除されます。 +- 4D コード内では、複数の **Use...End use** 構文を入れ子にすることができます。グループの場合、**Use** を使用するごとにグループのロックカウンターが 1 増加し、 **End use** ごとに 1 減少します。最後の **End use** によってロックカウンターが 0 になった場合にのみ、すべてのプロパティ/要素のロックが解除されます。 ### 自動的な Use...End use 呼び出し @@ -120,7 +120,7 @@ End Use ## 例題 1 -それぞれ異なる製品の在庫更新を実行する複数のプロセスを起動し、同じ共有オブジェクトを更新していきます。 まずメインプロセスで空の共有オブジェクトをインスタンス化してから、共有オブジェクトへの参照と対象製品を引数として渡して別プロセス起動します: +それぞれ異なる製品の在庫更新を実行する複数のプロセスを起動し、同じ共有オブジェクトを更新していきます。まずメインプロセスで空の共有オブジェクトをインスタンス化してから、共有オブジェクトへの参照と対象製品を引数として渡して別プロセス起動します: ```4d ARRAY TEXT($_items;0) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md index e333c5a95ea74f..5e0c4cd26681e9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Concepts/variables.md @@ -3,27 +3,27 @@ id: variables title: 変数 --- -4D のデータは、根本的に異なっている 2つの方法で保持されます。 **フィールド** はディスクに永続的にデータを保存するのに対し、**変数** はメモリ上に一時的にデータを格納します。 +4D のデータは、根本的に異なっている 2つの方法で保持されます。**フィールド** はディスクに永続的にデータを保存するのに対し、**変数** はメモリ上に一時的にデータを格納します。 -データベースを作成する際には、フィールドに名前とデータタイプを指定します。 同様に、変数にも名前と [データタイプ](data-types.md) を指定します。 +データベースを作成する際には、フィールドに名前とデータタイプを指定します。同様に、変数にも名前と [データタイプ](data-types.md) を指定します。 -いったん作成された変数は、アプリケーションで必要とされる場所に使用できます。 たとえば、テキスト変数を同じタイプのフィールドに格納するには次のように書きます: +いったん作成された変数は、アプリケーションで必要とされる場所に使用できます。たとえば、テキスト変数を同じタイプのフィールドに格納するには次のように書きます: ```4d [MyTable]MyField:=MyText ``` -画面上に表示されることのない、裏方に徹した変数を作成・利用することができます。 もちろん、フォーム上に変数の値を表示することもできます (ポインターやBLOBを除く)。 また、変数に値を入力したり、変数の値をレポートに印刷したりすることも可能です。 このとき、入力可や入力不可の変数オブジェクトはフィールドオブジェクトと同様に振舞い、提供されるコントロールも類似しています。 フォーム上のボタン、リストボックス、スクロールエリア、ピクチャーボタンなどのオブジェクトも変数を使って制御することができるほか、保存不要な計算結果を表示させることもできます。 +画面上に表示されることのない、裏方に徹した変数を作成・利用することができます。もちろん、フォーム上に変数の値を表示することもできます (ポインターやBLOBを除く)。 また、変数に値を入力したり、変数の値をレポートに印刷したりすることも可能です。このとき、入力可や入力不可の変数オブジェクトはフィールドオブジェクトと同様に振舞い、提供されるコントロールも類似しています。フォーム上のボタン、リストボックス、スクロールエリア、ピクチャーボタンなどのオブジェクトも変数を使って制御することができるほか、保存不要な計算結果を表示させることもできます。 ## 変数の宣言 変数を作成するには、 `var` キーワードを使って変数を宣言します。 -変数は宣言されると、[**その型に対応するデフォルト値**](data-types.md#デフォルト値) に初期化されます。別の値が [代入](#変数への代入) されない限り、セッション中はこの値が保持されます。 あるいは、変数を宣言するときに、データ型と値を1行で [初期化](#宣言と同時に変数を初期化する) することもできます。 +変数は宣言されると、[**その型に対応するデフォルト値**](data-types.md#デフォルト値) に初期化されます。別の値が [代入](#変数への代入) されない限り、セッション中はこの値が保持されます。あるいは、変数を宣言するときに、データ型と値を1行で [初期化](#宣言と同時に変数を初期化する) することもできます。 :::note -この方法は推奨されませんが、ただ "使用する" ことによって変数を宣言することもできます。 正式にそれらを宣言することは必須ではありません。 たとえば、今日の日付に30日足した値を格納した変数を作成するには、次のように書くことができます: +この方法は推奨されませんが、ただ "使用する" ことによって変数を宣言することもできます。 正式にそれらを宣言することは必須ではありません。たとえば、今日の日付に30日足した値を格納した変数を作成するには、次のように書くことができます: ```4d MyDate:=Current date+30 // MyDateを作成します @@ -48,8 +48,7 @@ var $myFile : 4D.File // File クラスオブジェクト変数 var $myVar // バリアント型変数 ``` -`varName` に指定する変数名は 4Dの [識別子の命名規則](Concepts/identifiers.md) に従う必要があります。 -このシンタックスは [ローカル変数とプロセス変数](#ローカル変数とプロセス変数) の宣言のみサポートしています。[インタープロセス変数](#インタープロセス変数) (非推奨) および [配列](Concepts/arrays.md) には使用できません。 +`varName` に指定する変数名は 4Dの [識別子の命名規則](Concepts/identifiers.md) に従う必要があります。このシンタックスは [ローカル変数とプロセス変数](#ローカル変数とプロセス変数) の宣言のみサポートしています。[インタープロセス変数](#インタープロセス変数) (非推奨) および [配列](Concepts/arrays.md) には使用できません。 `varType` には次が指定できます: @@ -115,7 +114,7 @@ var $entity : cs.EmployeeEntity ## 宣言と同時に変数を初期化する -変数を宣言する際には、1つのステートメントでデータ型と初期値の両方を指定することができます。 次に例を示します: +変数を宣言する際には、1つのステートメントでデータ型と初期値の両方を指定することができます。次に例を示します: ```4d var $a : Text:="hello" @@ -124,7 +123,7 @@ var $c : Object:=New object() var $d : cs.Customer:=cs.Customer.new() ``` -変数は、データ型を明示的に指定せずに宣言および初期化することもできます。その場合、変数の型は 4D によって推論されます。 次に例を示します: +変数は、データ型を明示的に指定せずに宣言および初期化することもできます。その場合、変数の型は 4D によって推論されます。次に例を示します: ```4d var $text:="hello" // テキストと推論されます @@ -136,7 +135,7 @@ var $mycol:=[] // コレクションと推論されます :::note -値の評価があいまいである場合、推論される型は [インタープリターモードとコンパイル済みモード](interpreted.md) で異なる可能性があります。 この場合、コンパイラーによって警告が生成され、バリアント型が使用されます。 たとえば、次の *$a* の型はインタープリターモードでは正しくテキスト型と推論されますが、シンタックスチェックを実行すると警告が生成され、*$a* はコンパイル済みモードでバリアントとして型付けされます。 +値の評価があいまいである場合、推論される型は [インタープリターモードとコンパイル済みモード](interpreted.md) で異なる可能性があります。この場合、コンパイラーによって警告が生成され、バリアント型が使用されます。たとえば、次の *$a* の型はインタープリターモードでは正しくテキスト型と推論されますが、シンタックスチェックを実行すると警告が生成され、*$a* はコンパイル済みモードでバリアントとして型付けされます。 ```4d var $class:={test: "a"} @@ -146,9 +145,9 @@ var $a:=$class.test ::: -4D は最も一般的なタイプを推論しようとします。 たとえば、変数が整数値で初期化される場合、整数型ではなく実数型が使用されます (例: `var $a:=10 //実数型が推論されます`)。 このような場合や、クラスのインスタンス化など複雑な型を持つ変数を初期化する場合は、明示的に型を指定することが推奨されます。 +4D は最も一般的なタイプを推論しようとします。たとえば、変数が整数値で初期化される場合、整数型ではなく実数型が使用されます (例: `var $a:=10 //実数型が推論されます`)。このような場合や、クラスのインスタンス化など複雑な型を持つ変数を初期化する場合は、明示的に型を指定することが推奨されます。 -ほとんどの場合、変数の型は自動的に決まります。 例外は、プロセス変数やインタープロセス変数に値を代入した場合で、その場合は警告メッセージが表示されます。 例外は、プロセス変数やインタープロセス変数に値を代入した場合で、その場合は警告メッセージが表示されます。 +ほとんどの場合、変数の型は自動的に決まります。 例外は、プロセス変数やインタープロセス変数に値を代入した場合で、その場合は警告メッセージが表示されます。例外は、プロセス変数やインタープロセス変数に値を代入した場合で、その場合は警告メッセージが表示されます。 :::note @@ -163,9 +162,9 @@ var $a; $b : Integer:=15 //エラー ## 変数への代入 -変数を対象に、データを格納したり、格納したデータを別の対象にコピーしたりすることができます。 変数にデータを格納することを、**変数にデータを代入する** と言い、代入演算子 (:=) を使っておこないます。 代入演算子はフィールドに対してデータを代入する場合にも使います。 +変数を対象に、データを格納したり、格納したデータを別の対象にコピーしたりすることができます。変数にデータを格納することを、**変数にデータを代入する** と言い、代入演算子 (:=) を使っておこないます。代入演算子はフィールドに対してデータを代入する場合にも使います。 -代入演算子は、変数を作成し、変数にデータを代入するために使用します。 作成する変数名を代入演算子の左側に書きます。 例: +代入演算子は、変数を作成し、変数にデータを代入するために使用します。作成する変数名を代入演算子の左側に書きます。例: ```4d MyNumber:=3 @@ -175,21 +174,21 @@ MyNumber:=3 > [データ型の宣言](#変数の宣言) をせずに変数を作成することは通常推奨されません。 -もちろん、変数からデータを取り出すことができなければ、便利とはいえません。 再度代入演算子を使用します。 もちろん、変数からデータを取り出すことができなければ、便利とはいえません。 再度代入演算子を使用します。 [Products]Size というフィールドに *MyNumber* 変数の値を代入するには、代入演算子の右側に MyNumber を書きます: +もちろん、変数からデータを取り出すことができなければ、便利とはいえません。再度代入演算子を使用します。もちろん、変数からデータを取り出すことができなければ、便利とはいえません。 再度代入演算子を使用します。 [Products]Size というフィールドに *MyNumber* 変数の値を代入するには、代入演算子の右側に MyNumber を書きます: ```4d [Products]Size:=MyNumber ``` -これで、*[Products]Size* の値は 3 になります。 この例はとても単純ですが、ある場所から別の場所へランゲージによってデータを転送させる基本的な手順を表しています。 +これで、*[Products]Size* の値は 3 になります。この例はとても単純ですが、ある場所から別の場所へランゲージによってデータを転送させる基本的な手順を表しています。 ## ローカル、プロセス、およびインタープロセス変数 -**ローカル**、**プロセス**、および **インタープロセス** という、3種類の変数の変数を作成することができます。 これらの変数の違いは使用できるスコープにあります。また、それらを使用することのできるオブジェクトも異なります。 +**ローカル**、**プロセス**、および **インタープロセス** という、3種類の変数の変数を作成することができます。これらの変数の違いは使用できるスコープにあります。また、それらを使用することのできるオブジェクトも異なります。 ### ローカル変数 -ローカル変数はその名のとおりメソッド内でローカルであり、変数が作成されたメソッドの範囲内でのみ使用可能で、その他のメソッドからはアクセスできません。 メソッド内でローカルであるというのは、正式には「スコープがローカルである」といいます。 ローカル変数は、その使用範囲をメソッド内に限定するために用います。 +ローカル変数はその名のとおりメソッド内でローカルであり、変数が作成されたメソッドの範囲内でのみ使用可能で、その他のメソッドからはアクセスできません。メソッド内でローカルであるというのは、正式には「スコープがローカルである」といいます。ローカル変数は、その使用範囲をメソッド内に限定するために用います。 ローカル変数は、以下のような目的のために使用されます: @@ -197,11 +196,11 @@ MyNumber:=3 - データを一時的に使用する。 - プロセス変数の数を減らす。 -ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。 これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 +ローカル変数の名前は必ずドル記号 ($) で始め、この記号を除く31文字までの文字を指定できます。これより長い名前を指定すると、4D は余分の32文字以降を切り捨てます。 -多くのメソッドや変数を持つアプリケーションプロジェクトで作業する場合、現在作業しているメソッドの範囲内で一時的に変数が必要となる場合がよくあります。 この場合、同じ変数名が他で使用されていないかどうかを気にすることなくローカル変数を作成することができます。 +多くのメソッドや変数を持つアプリケーションプロジェクトで作業する場合、現在作業しているメソッドの範囲内で一時的に変数が必要となる場合がよくあります。この場合、同じ変数名が他で使用されていないかどうかを気にすることなくローカル変数を作成することができます。 -アプリケーションではしばしば、ユーザーによる少量のデータ入力を必要とする場合があります。 `Request` コマンドを使って、この情報を取得することができます。 このコマンドはデータ入力を求めるダイアログボックスを表示し、 ユーザーがデータを入力すると、その情報を戻り値として返します。 このようなデータは通常、メソッド内で長時間維持する必要はありません。 これは、ローカル変数を使用する典型的な例といえます。 次に例を示します: +アプリケーションではしばしば、ユーザーによる少量のデータ入力を必要とする場合があります。 `Request` コマンドを使って、この情報を取得することができます。このコマンドはデータ入力を求めるダイアログボックスを表示し、ユーザーがデータを入力すると、その情報を戻り値として返します。このようなデータは通常、メソッド内で長時間維持する必要はありません。これは、ローカル変数を使用する典型的な例といえます。次に例を示します: ```4d $vsID:=Request("ID を入力してください:") @@ -210,19 +209,19 @@ MyNumber:=3 End if ``` -このメソッドは、ユーザーに ID を入力するように要求します。 ローカル変数 $vsID にレスポンスが代入され、ユーザーが入力した ID に基づいた検索がおこなわれます。 このメソッドが終了した時点で、$vsID ローカル変数はメモリから消去されます。 この変数は 1回のみ、このメソッド内でしか使われないため、これ以上維持する必要はありません。 +このメソッドは、ユーザーに ID を入力するように要求します。ローカル変数 $vsID にレスポンスが代入され、ユーザーが入力した ID に基づいた検索がおこなわれます。このメソッドが終了した時点で、$vsID ローカル変数はメモリから消去されます。この変数は 1回のみ、このメソッド内でしか使われないため、これ以上維持する必要はありません。 -**注:** メソッドに渡される $1, $2...等の引数は ローカル変数です。 詳細については [パラメーター](Concepts/parameters.md) を参照ください。 +**注:** メソッドに渡される $1, $2...等の引数はローカル変数です。詳細については [パラメーター](Concepts/parameters.md) を参照ください。 ### プロセス変数 -プロセス変数は、同じプロセスの範囲内に限り使用可能です。 この変数はプロセスメソッドと、そのプロセス内で呼び出された他のメソッドで使用することができます。 +プロセス変数は、同じプロセスの範囲内に限り使用可能です。この変数はプロセスメソッドと、そのプロセス内で呼び出された他のメソッドで使用することができます。 -プロセス変数には名前に付ける接頭辞がありません。 プロセス変数の名前は、最大31文字までの長さで指定できます。 +プロセス変数には名前に付ける接頭辞がありません。プロセス変数の名前は、最大31文字までの長さで指定できます。 -インタープリターモードでは、変数は動的にメモリ上に作成・消去されます。 これに対してコンパイルモードでは、作成したすべてのプロセス (ユーザープロセス) で同じプロセス変数定義が共有されますが、変数のインスタンスはプロセス毎に異なるものとなります。 たとえば、プロセスP_1 とプロセスP_2 の両方においてプロセス変数 myVar が存在していても、それらはそれぞれ別のインスタンスです。 +インタープリターモードでは、変数は動的にメモリ上に作成・消去されます。これに対してコンパイルモードでは、作成したすべてのプロセス (ユーザープロセス) で同じプロセス変数定義が共有されますが、変数のインスタンスはプロセス毎に異なるものとなります。たとえば、プロセスP_1 とプロセスP_2 の両方においてプロセス変数 myVar が存在していても、それらはそれぞれ別のインスタンスです。 -`GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。 これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: +`GET PROCESS VARIABLE` や `SET PROCESS VARIABLE` を使用して、あるプロセスから他のプロセスのプロセス変数の値を取得したり、設定したりできます。これらのコマンドの利用は、以下のような状況に限定することが、良いプログラミングの作法です: - コード内の特定の箇所におけるプロセス間通信 - プロセス間のドラッグ&ドロップ処理 @@ -238,7 +237,7 @@ MyNumber:=3 ::: -インタープロセス変数はプロジェクト全体で使用することができ、すべてのコオペラティブプロセスで共有されます。 これらは主としてプロセス間で情報を共有するために使われます。 +インタープロセス変数はプロジェクト全体で使用することができ、すべてのコオペラティブプロセスで共有されます。これらは主としてプロセス間で情報を共有するために使われます。 インタープロセス変数の名前は、必ずインタープロセス記号 (`<>`) で始めます。記号の後に31バイトまでの名前を指定できます。 @@ -246,22 +245,22 @@ MyNumber:=3 ## システム変数 -4Dランゲージが管理する複数の **システム変数** を使うことで、さまざまな動作の実行をコントロールできます。 その他の変数と同様に、システム変数は値を確認したり使用したりすることができます。 システム変数はすべて [プロセス変数](#プロセス変数) です。 - -システム変数は [4Dコマンド](../commands/command-index) によって使用されます。 コマンドがシステム変数に影響を与えるかどうかを確認するには、コマンドの説明の "システム変数およびセット" の項目を参照ください。 - -| システム変数名 | 型 | 説明 | -| ------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `OK` | Integer | 通常、コマンドがダイアログボックスを表示して、ユーザーが **OK** ボタンをクリックすると 1 に、**キャンセル** ボタンをクリックした場合は 0 に設定されます。 一部のコマンドは、処理が成功すると `OK` システム変数の値を変更します。 | -| `Document` | Text | [Open document](../commands/open-document) や [SELECT LOG FILE](../commands/select-log-file) などのコマンドを使用して最後に開かれた、または作成されたファイルの「長い名前」(完全パス名)が格納されています。 | -| `FldDelimit`, `RecDelimit` | Integer | テキストを読み込んだり書き出したりする際に、フィールドの区切りとして (デフォルトは **タブ** (9))、あるいはレコードの区切り文字として (デフォルトは **キャリッジリターン** (13)) 使用する文字コードが格納されています。 区切り文字を変更する場合は、システム変数の値を変更します。 | -| `Error`, `Error line` | Integer | [`ON ERR CALL`](../commands/on-err-call) コマンドによって実装されるエラー処理メソッド内で使用されます。 [メソッド内でのエラー処理](../Concepts/error-handling.md#メソッド内でのエラー処理)参照。 | -| `Error method`, `Error formula` | Text | [`ON ERR CALL`](../commands/on-err-call) コマンドによって実装されるエラー処理メソッド内で使用されます。 [メソッド内でのエラー処理](../Concepts/error-handling.md#メソッド内でのエラー処理)参照。 | -| `MouseDown` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。 マウスボタンが押されたときに 1 が、それ以外の場合は 0 に設定されます。 | -| `MouseX`, `MouseY` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。
  • `MouseDown=1` イベントの時、`MouseX` と `MouseY` にはクリックされた場所の水平 / 垂直座標がそれぞれ代入されます。 両方の値ともピクセル単位で表わされ、ウィンドウのローカルな座標システムを使用します。
  • ピクチャーフィールドや変数の場合は、[`On Clicked`](../Events/onClicked.md) や [`On Double Clicked`](../Events/onDoubleClicked.md)、および [`On Mouse Up`](../Events/onMouseUp.md) フォームイベント内で、クリックのローカル座標が `MouseX` と `MouseY` に返されます。 また、[`On Mouse Enter`](../Events/onMouseEnter.md) および [`On Mouse Move`](../Events/onMouseMove.md) フォームイベントでもマウスカーソルのローカル座標が返されます。 詳細については、[ピクチャー上のマウス座標](../FormEditor/pictures.md#ピクチャー上のマウス座標) を参照ください。
  • | -| `KeyCode` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。 押されたキーの文字コードが代入されます。 押されたキーがファンクションキーの場合、`KeyCode` には特殊コードがセットされます。 | -| `Modifiers` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。 キーボードのモディファイアキーの値を格納します (Ctrl/Command、Alt/Option、Shift、Caps Lock)。 | -| `MouseProc` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。 最後のイベントが発生したプロセス番号を格納します。 | +4Dランゲージが管理する複数の **システム変数** を使うことで、さまざまな動作の実行をコントロールできます。その他の変数と同様に、システム変数は値を確認したり使用したりすることができます。システム変数はすべて [プロセス変数](#プロセス変数) です。 + +システム変数は [4Dコマンド](../commands/command-index) によって使用されます。コマンドがシステム変数に影響を与えるかどうかを確認するには、コマンドの説明の "システム変数およびセット" の項目を参照ください。 + +| システム変数名 | 型 | 説明 | +| ------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `OK` | Integer | 通常、コマンドがダイアログボックスを表示して、ユーザーが **OK** ボタンをクリックすると 1 に、**キャンセル** ボタンをクリックした場合は 0 に設定されます。一部のコマンドは、処理が成功すると `OK` システム変数の値を変更します。 | +| `Document` | Text | [Open document](../commands/open-document) や [SELECT LOG FILE](../commands/select-log-file) などのコマンドを使用して最後に開かれた、または作成されたファイルの「長い名前」(完全パス名)が格納されています。 | +| `FldDelimit`, `RecDelimit` | Integer | テキストを読み込んだり書き出したりする際に、フィールドの区切りとして (デフォルトは **タブ** (9))、あるいはレコードの区切り文字として (デフォルトは **キャリッジリターン** (13)) 使用する文字コードが格納されています。区切り文字を変更する場合は、システム変数の値を変更します。 | +| `Error`, `Error line` | Integer | [`ON ERR CALL`](../commands/on-err-call) コマンドによって実装されるエラー処理メソッド内で使用されます。[メソッド内でのエラー処理](../Concepts/error-handling.md#メソッド内でのエラー処理)参照。 | +| `Error method`, `Error formula` | Text | [`ON ERR CALL`](../commands/on-err-call) コマンドによって実装されるエラー処理メソッド内で使用されます。[メソッド内でのエラー処理](../Concepts/error-handling.md#メソッド内でのエラー処理)参照。 | +| `MouseDown` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。マウスボタンが押されたときに 1 が、それ以外の場合は 0 に設定されます。 | +| `MouseX`, `MouseY` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。
  • `MouseDown=1` イベントの時、`MouseX` と `MouseY` にはクリックされた場所の水平 / 垂直座標がそれぞれ代入されます。両方の値ともピクセル単位で表わされ、ウィンドウのローカルな座標システムを使用します。
  • ピクチャーフィールドや変数の場合は、[`On Clicked`](../Events/onClicked.md) や [`On Double Clicked`](../Events/onDoubleClicked.md)、および [`On Mouse Up`](../Events/onMouseUp.md) フォームイベント内で、クリックのローカル座標が `MouseX` と `MouseY` に返されます。また、[`On Mouse Enter`](../Events/onMouseEnter.md) および [`On Mouse Move`](../Events/onMouseMove.md) フォームイベントでもマウスカーソルのローカル座標が返されます。詳細については、[ピクチャー上のマウス座標](../FormEditor/pictures.md#ピクチャー上のマウス座標) を参照ください。
  • | +| `KeyCode` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。押されたキーの文字コードが代入されます。押されたキーがファンクションキーの場合、`KeyCode` には特殊コードがセットされます。 | +| `Modifiers` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。キーボードのモディファイアキーの値を格納します (Ctrl/Command、Alt/Option、Shift、Caps Lock)。 | +| `MouseProc` | Integer | [`ON EVENT CALL`](../commands/on-event-call) コマンドによって実装されるエラー処理メソッド内で使用されます。最後のイベントが発生したプロセス番号を格納します。 | :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md index 8f074616012b00..70118932b45168 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/basics.md @@ -3,7 +3,7 @@ id: basics title: デバッガー --- -エラーは日常的なものです。 相当行数のコードを書いているのに、1つもエラーが出ないというのは非常にまれです。 むしろ、エラーに対応・修正することは普通のことなのです。 +エラーは日常的なものです。相当行数のコードを書いているのに、1つもエラーが出ないというのは非常にまれです。むしろ、エラーに対応・修正することは普通のことなのです。 4D の開発環境には、あらゆる種類のエラーに対応するためのデバッグツールが用意されています。 @@ -11,15 +11,15 @@ title: デバッガー ### タイプミス -タイプミスはコードエディターによって検出されます。 これらは赤色で示され、ウィンドウ下部に追加情報が表示されます。 以下はタイプミスの例です: +タイプミスはコードエディターによって検出されます。これらは赤色で示され、ウィンドウ下部に追加情報が表示されます。以下はタイプミスの例です: ![break-point](../assets/en/Debugging/typing-error.png) -このようなタイプミスは通常、シンタックスエラーの原因となります (上の例では、テーブル名が間違っています)。 コードの該当行の編集を確定すると、エラーの説明が表示されます。 このような場合タイプミスを修正して Enterキーを押すと、再度コードの検証がおこなわれます。 +このようなタイプミスは通常、シンタックスエラーの原因となります (上の例では、テーブル名が間違っています)。コードの該当行の編集を確定すると、エラーの説明が表示されます。このような場合タイプミスを修正して Enterキーを押すと、再度コードの検証がおこなわれます。 ### シンタックスエラー -メソッドの実行時に限って、とらえることのできるエラーがあります。 [シンタックスエラーウィンドウ](#シンタックスエラーウィンドウ) はエラーが発生した際に表示されます。 例: +メソッドの実行時に限って、とらえることのできるエラーがあります。[シンタックスエラーウィンドウ](#シンタックスエラーウィンドウ) はエラーが発生した際に表示されます。例: ![syntax-error](../assets/en/Debugging/syntax-error.png) @@ -27,11 +27,11 @@ title: デバッガー ### 環境エラー -時に、BLOB を作成するための十分なメモリがない場合があります。 ディスク上のドキュメントにアクセスしようとした時にドキュメントが存在しないか、他のアプリケーションにより既に開かれていることもあります。 このようなエラーは、コードやその書き方を直接の原因として発生するわけではありません。 ほとんどの場合、このようなエラーは `ON ERR CALL` コマンドでインストールされた [エラー処理メソッド](Concepts/error-handling.md) で簡単に対処できます。 +時に、BLOB を作成するための十分なメモリがない場合があります。ディスク上のドキュメントにアクセスしようとした時にドキュメントが存在しないか、他のアプリケーションにより既に開かれていることもあります。このようなエラーは、コードやその書き方を直接の原因として発生するわけではありません。ほとんどの場合、このようなエラーは `ON ERR CALL` コマンドでインストールされた [エラー処理メソッド](Concepts/error-handling.md) で簡単に対処できます。 ### 設計またはロジックエラー -一般に、これらは発見が最も難しいタイプのエラーです。 これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。 これらを検知するには、[デバッガー](debugger.md) を使用します。 例: +一般に、これらは発見が最も難しいタイプのエラーです。これまでに説明しているエラーは、タイプミスを除いて、"設計またはロジックのエラー" という範疇に該当します。これらを検知するには、[デバッガー](debugger.md) を使用します。例: - まだ初期化されていない変数を用いようとしたため、*シンタックスエラー* が発生する場合があります。 - 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、*環境エラー* が発生している場合があります。 @@ -45,7 +45,7 @@ title: デバッガー ### ランタイムエラー -アプリケーションモードでは、インタープリターモードでは決して見られないエラーが発生する場合があります。 次に例を示します: +アプリケーションモードでは、インタープリターモードでは決して見られないエラーが発生する場合があります。次に例を示します: ![runtime-error](../assets/en/Debugging/runtimeError.png) @@ -53,26 +53,26 @@ title: デバッガー ## シンタックスエラーウィンドウ -メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。 これは以下の理由で起こります: +メソッドの実行が停止されるとシンタックスエラーウィンドウが表示されます。これは以下の理由で起こります: - 以降のメソッド実行を妨げるエラーが発生した。 - メソッドが False の表明を生成した (`ASSERT` コマンド参照)。 ![syntax-error](../assets/en/Debugging/syntax-error.png) -上部テキストエリアには、エラーの説明メッセージが表示されます。 下部テキストエリアには、エラーが発生した時の実行行が表示されます。 詳細ボタンをクリックすると、プロセスのエラースタックを表示するエリアを展開できます。 +上部テキストエリアには、エラーの説明メッセージが表示されます。下部テキストエリアには、エラーが発生した時の実行行が表示されます。詳細ボタンをクリックすると、プロセスのエラースタックを表示するエリアを展開できます。 シンタックスエラーウィンドウにはいくつかのオプションが用意されています: -- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。 原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 +- **編集**: すべてのメソッド実行が中断されます。 4D はデザインモードに切り替わり、エラーが発生したメソッドがコードエディターで表示され、エラーを修正することができます。原因に心当たりがあり、これ以上調査しなくても修正できる場合にこのオプションを使用します。 -- **トレース**: トレース/デバッガーモードに入ります。 [デバッガー](debugger.md) ウィンドウが表示されます。 該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 +- **トレース**: トレース/デバッガーモードに入ります。[デバッガー](debugger.md) ウィンドウが表示されます。該当行の一部が未実行の場合には、**トレース** ボタンを数回クリックする必要があるかもしれません。 -- **続ける**: 実行が継続されます。 エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。 慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 +- **続ける**: 実行が継続されます。エラーが発生した行は、エラーの位置によっては一部のみ実行済みである場合があります。慎重に実行を継続してください: エラーが原因で、メソッドの残り部分が正常に実行できない場合があります。 `SET WINDOW TITLE` のように、コードの残りの部分の実行やテストの妨げにならない単純な呼び出しでエラーが発生している場合にのみ、**続ける** ボタンをクリックすることを推奨します。 :::tip -ループ中などで何度も繰り返し発生するエラーの場合には、**続ける**ボタンを**無視**ボタンに変更できます。 **続ける**ボタンが最初に現れたときに、**Alt**キー (Windows) または **Option**キー (macOS) を押しながらボタンをクリックします。 すると、同じエラーによってダイアログが呼び出されたときには、ボタンラベルが **無視** へと変化します。 +ループ中などで何度も繰り返し発生するエラーの場合には、**続ける**ボタンを**無視**ボタンに変更できます。**続ける**ボタンが最初に現れたときに、**Alt**キー (Windows) または **Option**キー (macOS) を押しながらボタンをクリックします。すると、同じエラーによってダイアログが呼び出されたときには、ボタンラベルが **無視** へと変化します。 ::: @@ -81,20 +81,20 @@ title: デバッガー - イベントに対してフォームメソッドまたはオブジェクトメソッドが実行されている場合には、これらは停止され、フォームに戻ります。 - メソッドがアプリケーションモードから実行されている場合には、このモードに戻ります。 -- **コピー**: デバッグ情報をクリップボードにコピーします。 この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。 情報はタブ区切り形式で記述されます。 +- **コピー**: デバッグ情報をクリップボードにコピーします。この情報はエラーの内部環境 (番号や内部コンポーネント等) を説明します。情報はタブ区切り形式で記述されます。 - **保存...**: シンタックスエラーウィンドウの内容とコールチェーンを `.txt` ファイルに保存します。 ## デバッガー -エラー検出の際によくある初歩的な失敗は、シンタックスエラーウィンドウの **閉じる** ボタンをクリックし、コードエディターに戻り、コードを表示して原因を確認しようとすることです。 これは止めてください。 [**デバッガー**](debugger.md) を常に使用すれば、相当の時間と労力を節減することができます。 +エラー検出の際によくある初歩的な失敗は、シンタックスエラーウィンドウの **閉じる** ボタンをクリックし、コードエディターに戻り、コードを表示して原因を確認しようとすることです。これは止めてください。[**デバッガー**](debugger.md) を常に使用すれば、相当の時間と労力を節減することができます。 -デバッガーを使うと、メソッドをステップごとにゆっくりと実行することができます。 デバッガーは、エラーが発生した理由を知るために必要な情報を表示できます。 この情報があれば、エラーの修正方法はわかります。 +デバッガーを使うと、メソッドをステップごとにゆっくりと実行することができます。デバッガーは、エラーが発生した理由を知るために必要な情報を表示できます。この情報があれば、エラーの修正方法はわかります。 -デバッガーを使用するもう 1つの理由は、コードの作成です。 いつも以上に複雑なアルゴリズムを作成してしまう場合があります。 達成感こそありますが、コーディングが正しいかどうかは 100%確かとはいえません。 見当もつかないまま実行するのではなく、コードの最初で `TRACE` コマンドを使用します。 その後、コードをステップごとに実行して、動作を監視することができます。 +デバッガーを使用するもう 1つの理由は、コードの作成です。いつも以上に複雑なアルゴリズムを作成してしまう場合があります。達成感こそありますが、コーディングが正しいかどうかは 100%確かとはいえません。見当もつかないまま実行するのではなく、コードの最初で `TRACE` コマンドを使用します。 その後、コードをステップごとに実行して、動作を監視することができます。 ## ブレーク -デバッグ作業では、コードの一部のトレースを特定の行までスキップする必要がある場合があります。 また、ある式が特定の値になった時 (例: `$myVar > 1000`) や、特定の 4Dコマンドが呼び出されるたびにコードをトレースしたい場合もあります。 +デバッグ作業では、コードの一部のトレースを特定の行までスキップする必要がある場合があります。また、ある式が特定の値になった時 (例: `$myVar > 1000`) や、特定の 4Dコマンドが呼び出されるたびにコードをトレースしたい場合もあります。 -このようなニーズに対応するために、**ブレークポイント** と **キャッチコマンド** 機能が用意されています。 これらの機能は、コードエディター、デバッガー、ランタイムエクスプローラーから設定できます。 \ No newline at end of file +このようなニーズに対応するために、**ブレークポイント** と **キャッチコマンド** 機能が用意されています。これらの機能は、コードエディター、デバッガー、ランタイムエクスプローラーから設定できます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/breakpoints.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/breakpoints.md index babfffb2256fc0..1cf627d00241e0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/breakpoints.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/breakpoints.md @@ -5,9 +5,9 @@ title: ブレークポイントとキャッチコマンド ## 概要 -ブレークポイントとキャッチコマンドは、非常に効率的なデバッグ手法です。 どちらも、コードの実行を任意のステップで一時停止させる (まだ表示されていない場合はデバッガーウィンドウを表示させる) という同じ効果があります。 +ブレークポイントとキャッチコマンドは、非常に効率的なデバッグ手法です。どちらも、コードの実行を任意のステップで一時停止させる (まだ表示されていない場合はデバッガーウィンドウを表示させる) という同じ効果があります。 -ブレークポイントは、実行を一時停止させたいコードの任意の行に設定します。 ブレークポイントには条件を関連付けることができます。 +ブレークポイントは、実行を一時停止させたいコードの任意の行に設定します。ブレークポイントには条件を関連付けることができます。 キャッチコマンドは、特定のコマンドが呼び出された時点で、呼び出し元プロセスの実行をトレース開始することができます。 @@ -19,7 +19,7 @@ title: ブレークポイントとキャッチコマンド ![break-point](../assets/en/Debugging/break.png) -上の状態で [**トレース終了**](./debugger.md#トレース終了) ボタンをクリックすると、ブレークポイントが設定された行まで実行が再開されます。 その後、ブレークポイントで示された行は実行されずに、トレースモードへ 戻ります。 プログラムカウンターより下方の (後に実行される) 行にブレークポイントを設定し、**トレース終了** ボタンをクリックすると、ブレークポイントまでのメソッドをスキップすることができます。 +上の状態で [**トレース終了**](./debugger.md#トレース終了) ボタンをクリックすると、ブレークポイントが設定された行まで実行が再開されます。その後、ブレークポイントで示された行は実行されずに、トレースモードへ 戻ります。プログラムカウンターより下方の (後に実行される) 行にブレークポイントを設定し、**トレース終了** ボタンをクリックすると、ブレークポイントまでのメソッドをスキップすることができます。 赤色の点をクリックすると、ブレークポイントは削除されます。 @@ -29,29 +29,29 @@ title: ブレークポイントとキャッチコマンド ![breakpoint-properties](../assets/en/Debugging/breakpoint-properties.png) -このウィンドウはコードエディターおよびデバッガーの [ソースコードエリア](debugger.md#ソースコードエリア) からアクセスします。 次のことが可能です: +このウィンドウはコードエディターおよびデバッガーの [ソースコードエリア](debugger.md#ソースコードエリア) からアクセスします。次のことが可能です: - 任意の行を右クリックして、コンテキストメニューから **ブレークポイントを編集...** を選択する。 - 左マージン内で `Alt+クリック` (Windows) または `Option+クリック` (macOS) を実行する。 -ブレークポイントが既に存在する場合、そのブレークポイントについてのウィンドウが表示されます。 それ以外の場合は、ブレークポイントが新規作成され、そのブレークポイントに関するウィンドウを表示します。 +ブレークポイントが既に存在する場合、そのブレークポイントについてのウィンドウが表示されます。それ以外の場合は、ブレークポイントが新規作成され、そのブレークポイントに関するウィンドウを表示します。 プロパティは、次の通りです: - **場所**: メソッド名とブレークポイントが設定されている行番号を示します。 -- **次の式が真のときブレーク**: `True` または `False` を返す 4Dフォーミュラを入力することによって、**条件付きブレークポイント** を作成することができます。 たとえば、`Records in selection(\[aTable])=0` と入力すると、テーブル \[aTable] のレコードが選択されていない場合に限ってブレークが発生します。 ブレークポイントの条件は、[ブレークリスト](#ブレークリスト)の **条件** カラムでも確認できます。 +- **次の式が真のときブレーク**: `True` または `False` を返す 4Dフォーミュラを入力することによって、**条件付きブレークポイント** を作成することができます。たとえば、`Records in selection(\[aTable])=0` と入力すると、テーブル \[aTable] のレコードが選択されていない場合に限ってブレークが発生します。ブレークポイントの条件は、[ブレークリスト](#ブレークリスト)の **条件** カラムでも確認できます。 - **ブレークの前にスキップする回数**: ループ構造 (While、Repeat、For) 内、またはループから呼び出されているサブルーチンや関数内のコード行にブレークポイントを設定することができます。 -- **ブレークポイントが無効です**: ブレークポイントが現在は必要でないものの、後で必要になるかもしれない場合には、一時的に無効にしておくことができます。 無効なブレークポイントは、点 (・) ではなくダッシュ記号 (-) で表示されます。 +- **ブレークポイントが無効です**: ブレークポイントが現在は必要でないものの、後で必要になるかもしれない場合には、一時的に無効にしておくことができます。無効なブレークポイントは、点 (・) ではなくダッシュ記号 (-) で表示されます。 ### リモートデバッグでのブレークポイント -ブレークポイントの一覧はローカルに保存されています。 リモートデバッグモードでは、起動したデバッガーがリモート4D だった場合、デバッグセッションの間はリモートのブレークポイント一覧がサーバーのブレークポイント一覧を一時的に置き換えます。 +ブレークポイントの一覧はローカルに保存されています。リモートデバッグモードでは、起動したデバッガーがリモート4D だった場合、デバッグセッションの間はリモートのブレークポイント一覧がサーバーのブレークポイント一覧を一時的に置き換えます。 サーバーのブレークポイント一覧は、サーバー上でデバッガーが起動した場合には自動的に復元され使用されます。 ### ブレークリスト -ブレークリストは、デバッガーウィンドウ又はコードエディターで作成したブレークポイントを管理することが出来るランタイムエクスプローラーのページです。 ランタイムエクスプローラーの詳細については、[デザインリファレンスマニュアル](https://doc.4d.com/4Dv20/4D/20.2/Runtime-Explorer.200-6750093.ja.html) を参照ください。 +ブレークリストは、デバッガーウィンドウ又はコードエディターで作成したブレークポイントを管理することが出来るランタイムエクスプローラーのページです。ランタイムエクスプローラーの詳細については、[デザインリファレンスマニュアル](https://doc.4d.com/4Dv20/4D/20.2/Runtime-Explorer.200-6750093.ja.html) を参照ください。 ブレークリストのページを開くには: @@ -64,17 +64,17 @@ title: ブレークポイントとキャッチコマンド このウィンドウを使用して、以下のことが可能です: - ブレークポイントの **条件** を設定する。 -- マージンの赤い点をクリックして、ブレークポイントをそれぞれ有効・無効化する。 無効化されたブレークポイントは透明な (薄い赤の) 点で表されます。 +- マージンの赤い点をクリックして、ブレークポイントをそれぞれ有効・無効化する。無効化されたブレークポイントは透明な (薄い赤の) 点で表されます。 - `Delete` または `Backspace` キーを押すか、リスト下の**削除** ボタンをクリックして、ブレークポイントを削除する。 - ブレークポイントをダブルクリックして、対象メソッドをエディターで開く。 -このウィンドウから新しいブレークポイントを追加することはできません。 ブレークポイントは、デバッガーウィンドウかコードエディターでのみ設定できます。 +このウィンドウから新しいブレークポイントを追加することはできません。ブレークポイントは、デバッガーウィンドウかコードエディターでのみ設定できます。 ## コマンドのキャッチ -**キャッチ** コマンドリストは、4Dコマンドの呼び出しを捕捉し、デバッガーウィンドウを表示するよう指示することができるランタイムエクスプローラーのページです。 特定メソッドの特定行に効果が限定されるブレークポイントとは異なり、キャッチコマンドは、すべてのプロセスおよびメソッドが対象となります。 +**キャッチ** コマンドリストは、4Dコマンドの呼び出しを捕捉し、デバッガーウィンドウを表示するよう指示することができるランタイムエクスプローラーのページです。特定メソッドの特定行に効果が限定されるブレークポイントとは異なり、キャッチコマンドは、すべてのプロセスおよびメソッドが対象となります。 -キャッチコマンド (コマンド捕捉) は、各所にブレークポイントを設定することなく、大きな範囲でトレースをおこなえる便利な方法です。 たとえば、いくつかのプロセスを実行した後に、削除すべきでないレコードが削除されてしまう場合には、`DELETE RECORD` や `DELETE SELECTION` といったコマンドの処理をキャッチすることにより、調査の範囲を狭めることができます。 キャッチ対象のコマンドが呼び出されるたびにデバッガーが起動されるので、問題のレコードが削除されてしまう経緯を調べ、コードの誤った箇所を突き止めることができます。 +キャッチコマンド (コマンド捕捉) は、各所にブレークポイントを設定することなく、大きな範囲でトレースをおこなえる便利な方法です。たとえば、いくつかのプロセスを実行した後に、削除すべきでないレコードが削除されてしまう場合には、`DELETE RECORD` や `DELETE SELECTION` といったコマンドの処理をキャッチすることにより、調査の範囲を狭めることができます。キャッチ対象のコマンドが呼び出されるたびにデバッガーが起動されるので、問題のレコードが削除されてしまう経緯を調べ、コードの誤った箇所を突き止めることができます。 ブレークポイントとキャッチコマンドは組み合わせて使うことができます。 @@ -86,7 +86,7 @@ title: ブレークポイントとキャッチコマンド ![runtime-explorer-window](../assets/en/Debugging/catch-command.png) -このページは、実行中にキャッチされるコマンドをリスト表示します。 リストは 2つの列で構成されています: +このページは、実行中にキャッチされるコマンドをリスト表示します。リストは 2つの列で構成されています: - 左の列には、キャッチするコマンドの有効/無効状況と、コマンド名が表示されます。 - 右の列には、コマンドに関連する条件 (あれば) が表示されます。 @@ -96,10 +96,9 @@ title: ブレークポイントとキャッチコマンド 1. リスト下部にある **新規キャッチを追加** ボタン (+) をクリックします。 `ALERT` コマンドをデフォルトとして新しいエントリーが追加されます。 2. 次に **ALERT** ラベルをクリックし、キャッチしたいコマンドの名前を入力します。入力したら、**Enter**キーを押して選択を確定させます。 -キャッチコマンドを無効、あるいは有効にするには、コマンドラベルの前にある点 (•) をクリックします。 -透明な (薄い赤の) 点は、キャッチが無効化されていることを表します。 +キャッチコマンドを無効、あるいは有効にするには、コマンドラベルの前にある点 (•) をクリックします。透明な (薄い赤の) 点は、キャッチが無効化されていることを表します。 -> コマンドキャッチの無効化は、削除するのとほぼ同等の効果があります。 実行中、デバッガーはほぼ全くと言っていいほどエントリーに時間を使いません。 エントリーを無効化することの利点は、それが再び必要になったとき一から作り直さなくて良いという点です。 +> コマンドキャッチの無効化は、削除するのとほぼ同等の効果があります。実行中、デバッガーはほぼ全くと言っていいほどエントリーに時間を使いません。エントリーを無効化することの利点は、それが再び必要になったとき一から作り直さなくて良いという点です。 キャッチコマンドを削除するには: @@ -113,7 +112,7 @@ title: ブレークポイントとキャッチコマンド > 条件を削除するにはフォーミュラを削除します。 -条件の設定により、コマンド呼び出し時に特定の条件が満たされている場合にのみ、実行を中止する事ができます。 たとえば、`DELETE SELECTION` コマンドのキャッチに `Records in selection(\[Emp]>10)` という条件を設定した場合、\[Emp]テーブルのカレントセレクションが 9レコード以下の場合には `DELETE SELECTION` コマンドの呼び出しで実行が中断されません。 +条件の設定により、コマンド呼び出し時に特定の条件が満たされている場合にのみ、実行を中止する事ができます。たとえば、`DELETE SELECTION` コマンドのキャッチに `Records in selection(\[Emp]>10)` という条件を設定した場合、\[Emp]テーブルのカレントセレクションが 9レコード以下の場合には `DELETE SELECTION` コマンドの呼び出しで実行が中断されません。 -例外のたびに条件を評価することになるため、キャッチコマンドに条件を追加すると実行速度は遅くなります。 その一方で、条件を追加するとデバッグプロセスは早くなります。 条件に合致しないオカレンスを、4D が自動的にスキップしていくからです。 +例外のたびに条件を評価することになるため、キャッチコマンドに条件を追加すると実行速度は遅くなります。その一方で、条件を追加するとデバッグプロセスは早くなります。 条件に合致しないオカレンスを、4D が自動的にスキップしていくからです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugLogFiles.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugLogFiles.md index 9f432dd5d0aedd..af3c404115451e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugLogFiles.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugLogFiles.md @@ -3,9 +3,9 @@ id: debugLogFiles title: ログファイル --- -4Dアプリケーションは、デバッグや実行の最適化のために有用な複数のログファイルを生成することができます。 ログは通常、 [SET DATABASE PARAMETER](../commands/set-database-parameter)、 [WEB SET OPTION](../commands/web-set-option)、 あるいは [HTTP SET OPTION](../commands/http-set-option) コマンドのセレクターを使用して開始/停止し、プロジェクトの[Logs フォルダー](../Project/architecture.md#logs) 内に保存されています。 +4Dアプリケーションは、デバッグや実行の最適化のために有用な複数のログファイルを生成することができます。ログは通常、 [SET DATABASE PARAMETER](../commands/set-database-parameter)、 [WEB SET OPTION](../commands/web-set-option)、 あるいは [HTTP SET OPTION](../commands/http-set-option) コマンドのセレクターを使用して開始/停止し、プロジェクトの[Logs フォルダー](../Project/architecture.md#logs) 内に保存されています。 -記録された情報は、問題の検知と修正のためには分析する必要があります。 この章では、以下のログファイルの詳細を説明します: +記録された情報は、問題の検知と修正のためには分析する必要があります。この章では、以下のログファイルの詳細を説明します: - [4DRequestsLog.txt](#4drequestslogtxt) - [4DRequestsLog_ProcessInfo.txt](l#4drequestslog_processinfotxt) @@ -24,7 +24,7 @@ title: ログファイル これらのログファイルは、デバッグ中に時系列を確立しエントリー間のつながりを分かりやすくするために、いくつかのフィールドを共有しています: - `sequence_number`: この番号はすべてのデバッグログ間において固有で重複せず、ログファイルに関わらず新しいエントリーごとに増分されるので、オペレーションの厳密な順番を知ることができます。 -- `connection_uuid`: 4Dクライアントで作成されサーバーに接続する 4Dプロセスについては、この接続UUID がサーバー側とクライアント側とで記録されます。 これにより各プロセスを開始したリモートクライアントを簡単に識別することができます。 +- `connection_uuid`: 4Dクライアントで作成されサーバーに接続する 4Dプロセスについては、この接続UUID がサーバー側とクライアント側とで記録されます。これにより各プロセスを開始したリモートクライアントを簡単に識別することができます。 ## 4DRequestsLog.txt @@ -60,21 +60,21 @@ SET DATABASE PARAMETER(Client Log Recording;1) 各リクエストに対して、以下のフィールドが記録されます: -| フィールド名 | 説明 | -| ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| sequence_number | ログセッション内で固有かつシーケンシャルなオペレーション番号 | -| time | 'YYYY-MM-DDTHH:MM:SS.mmm' の ISO 8601フォーマットを使用した日付と時間 | -| systemid | システムID | -| component | コンポーネント署名 (例: '4SQLS' または 'dbmg') | -| process\_info\_index | 4DRequestsLog_ProcessInfo.txt ログの "index"フ ィールドに対応し、リクエストとプロセスのリンクを可能にします。 | -| 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 から F までに相当します。あるいは
  • *exec\_duration* (サーバー上で生成された場合) -- サーバーがリクエストを処理するまでにかかった時間 (マイクロ秒単位)。 以下の画像の B から E までに相当します。
  • | -| 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 が返されます。
  • | -| extra | コンテキストに関連する追加情報 (ORDAリクエストの場合、データクラス名や属性名など) | +| フィールド名 | 説明 | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| sequence_number | ログセッション内で固有かつシーケンシャルなオペレーション番号 | +| time | 'YYYY-MM-DDTHH:MM:SS.mmm' の ISO 8601フォーマットを使用した日付と時間 | +| systemid | システムID | +| component | コンポーネント署名 (例: '4SQLS' または 'dbmg') | +| process\_info\_index | 4DRequestsLog_ProcessInfo.txt ログの "index"フ ィールドに対応し、リクエストとプロセスのリンクを可能にします。 | +| 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 から F までに相当します。あるいは
  • *exec\_duration* (サーバー上で生成された場合) -- サーバーがリクエストを処理するまでにかかった時間 (マイクロ秒単位)。以下の画像の B から E までに相当します。
  • | +| 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 が返されます。
  • | +| extra | コンテキストに関連する追加情報 (ORDAリクエストの場合、データクラス名や属性名など) | リクエストフロー: @@ -132,7 +132,7 @@ SET DATABASE PARAMETER(Client Log Recording;1) // リモートサイド ## HTTPDebugLog.txt -このログファイルは、各 HTTPリクエストとそれぞれのレスポンスを rawモードで記録します。 ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。 +このログファイルは、各 HTTPリクエストとそれぞれのレスポンスを rawモードで記録します。ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。 このログの開始方法: @@ -154,7 +154,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,23 +221,23 @@ 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](../commands/log-event) コマンドによって送信されたもののみ)
    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](../commands/log-event) コマンドによって送信されたもののみ)
    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 -このログファイルには、アプリケーションの内部オペレーションに関連した複数のイベントが、人間にも読めるように記録されます。 このファイルには、[LOG EVENT](../commands/log-event) コマンドを使用してカスタムの情報を含めることができます。 +このログファイルには、アプリケーションの内部オペレーションに関連した複数のイベントが、人間にも読めるように記録されます。このファイルには、[LOG EVENT](../commands/log-event) コマンドを使用してカスタムの情報を含めることができます。 このログの開始方法: @@ -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](../commands/set-database-parameter) コマンドの `Diagnostic log level` セレクターを使用して、必要に応じてメッセージのレベルを選択することができます。 あるレベルを選択すると、その上のレベル (より重要なもの) も暗黙のうちに選択されます。 次のレベルが利用可能です: +[SET DATABASE PARAMETER](../commands/set-database-parameter) コマンドの `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` フィールドを記録したい場合には必須です。 ::: @@ -401,7 +401,7 @@ SET DATABASE PARAMETER(Client Log Recording;0) ### サーバー側 -サーバー側の ORDAログファイルには、サーバーが処理した ORDAリクエストと、サーバーのレスポンス (任意) が記録されます。 ログ情報は、サーバーマシンのディスク上にある .jsonlファイル (デフォルトでは、*ordaRequests.jsonl*) に保存されます。 +サーバー側の ORDAログファイルには、サーバーが処理した ORDAリクエストと、サーバーのレスポンス (任意) が記録されます。ログ情報は、サーバーマシンのディスク上にある .jsonlファイル (デフォルトでは、*ordaRequests.jsonl*) に保存されます。 このログの開始方法: @@ -415,7 +415,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` フィールドを記録したい場合には必須です。 ::: @@ -458,7 +458,7 @@ SET DATABASE PARAMETER(4D Server log recording;0) ## 4DTCPUDPLog.txt -このログファイルは TCP 接続または UDP 接続に関連したイベントを記録します。 記録されるイベントには、データ送信、エラー、接続ライフサイクル情報などが含まれます。 このログは、開発者は自身のアプリケーション内でのネットワークアクティビティをモニターしてデバッグするのを助けます。 +このログファイルは TCP 接続または UDP 接続に関連したイベントを記録します。記録されるイベントには、データ送信、エラー、接続ライフサイクル情報などが含まれます。このログは、開発者は自身のアプリケーション内でのネットワークアクティビティをモニターしてデバッグするのを助けます。 このログの開始方法: @@ -495,14 +495,14 @@ SET DATABASE PARAMETER(4D Server log recording;0) ## ログ設定ファイルを使用する -運用環境におけるログ記録を簡単に管理するため、**ログ設定ファイル** を使用することができます。 このファイルは、デベロッパーによってあらかじめ設定されています。 一般的には、エンドユーザーに送って、選択してもらうか、ローカルフォルダーにコピーしてもらいます。 一旦有効化されると、ログ設定ファイルは専用仕様のログ記録を開始します。 +運用環境におけるログ記録を簡単に管理するため、**ログ設定ファイル** を使用することができます。このファイルは、デベロッパーによってあらかじめ設定されています。一般的には、エンドユーザーに送って、選択してもらうか、ローカルフォルダーにコピーしてもらいます。一旦有効化されると、ログ設定ファイルは専用仕様のログ記録を開始します。 ### ファイルを有効化する方法 環境に応じて、ログ設定ファイルを有効化する方法はいくつかあります: -- **インターフェース付きの 4D Server**: メンテナンスページを開き、[ログ設定ファイルを読み込む](ServerWindow/maintenance.md#ログ設定ファイルを読み込む) ボタンをクリックしてファイルを選択します。 この場合、設定ファイルには任意の名前を使用することができます。 ファイルは、サーバー上で即座に有効化されます。 -- **インタープリターまたはコンパイル済みプロジェクト**: ファイルの名前は `logConfig.json` でプロジェクトの [Settings フォルダー](../Project/architecture.md#settings-user)内にコピーする必要があります(このフォルダーは [`Project` フォルダー](../Project/architecture.md#project-folder)と同階層に位置しています)。 このファイルは、プロジェクトの起動時に有効化されます (クライアント/サーバーのサーバーのみ)。 +- **インターフェース付きの 4D Server**: メンテナンスページを開き、[ログ設定ファイルを読み込む](ServerWindow/maintenance.md#ログ設定ファイルを読み込む) ボタンをクリックしてファイルを選択します。この場合、設定ファイルには任意の名前を使用することができます。ファイルは、サーバー上で即座に有効化されます。 +- **インタープリターまたはコンパイル済みプロジェクト**: ファイルの名前は `logConfig.json` でプロジェクトの [Settings フォルダー](../Project/architecture.md#settings-user)内にコピーする必要があります(このフォルダーは [`Project` フォルダー](../Project/architecture.md#project-folder)と同階層に位置しています)。このファイルは、プロジェクトの起動時に有効化されます (クライアント/サーバーのサーバーのみ)。 - **ビルドしたアプリケーション**: ファイルは `logConfig.json` という名称で次のフォルダーに置く必要があります: - Windows: `Users\[userName]\AppData\Roaming\[application]` - macOS: `/Users/[userName]/Library/ApplicationSupport/[application]` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugger.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugger.md index 6e3c17ff7c59d1..caf3cbc7d5a2ca 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugger.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugger.md @@ -3,7 +3,7 @@ id: debugger title: デバッガー --- -4D デバッガーは、エラーを発見したり、メソッドの実行を監視する必要がある場合に便利です。 デバッガーを使って、コードをステップごとにゆっくり確認して情報を検証することができます。 このようにメソッドをステップごとに確認する処理はトレースと呼ばれます。 +4D デバッガーは、エラーを発見したり、メソッドの実行を監視する必要がある場合に便利です。デバッガーを使って、コードをステップごとにゆっくり確認して情報を検証することができます。このようにメソッドをステップごとに確認する処理はトレースと呼ばれます。 ![debugger-window-local](../assets/en/Debugging/debugger-window-intro.png) @@ -27,21 +27,21 @@ title: デバッガー - ランタイムエクスプローラーのプロセスページにてプロセスを選択した後、**トレース** ボタンをクリックする。 - コードエディターウィンドウ、またはランタイムエクスプローラーのブレークおよびキャッチページでブレークポイントを作成する。 -デバッガーウィンドウは、現在トレースしているメソッドまたはクラス関数の名前や、デバッガーが表示される原因となったアクションの情報を表示します。 上のウィンドウの例では、次の情報が表示されています: +デバッガーウィンドウは、現在トレースしているメソッドまたはクラス関数の名前や、デバッガーが表示される原因となったアクションの情報を表示します。上のウィンドウの例では、次の情報が表示されています: - *drop* は現在トレースしているメソッドです。 - デバッガーウィンドウは、ブレークポイントがあったために表示されました。 -新しいデバッガーウィンドウの表示には、同じセッション内で表示された最後のデバッガーウィンドウと同じ構成 (ウィンドウのサイズと位置、分割線の配置および式評価エリアの内容) を使用します。 複数のユーザープロセスを実行した場合には、それぞれのプロセスを個別にトレースできます。 つまり、各プロセスにつき 1つのデバッガーウィンドウを表示できます。 +新しいデバッガーウィンドウの表示には、同じセッション内で表示された最後のデバッガーウィンドウと同じ構成 (ウィンドウのサイズと位置、分割線の配置および式評価エリアの内容) を使用します。複数のユーザープロセスを実行した場合には、それぞれのプロセスを個別にトレースできます。 つまり、各プロセスにつき 1つのデバッガーウィンドウを表示できます。 -デバッガーウィンドウは、一般的にそのコードが実行されているマシン上に表示されます。 シングルユーザー版アプリケーションの場合、デバッガーは常にアプリケーションを実行しているマシン上に表示されます。 クライアント/サーバー版アプリケーションの場合は: +デバッガーウィンドウは、一般的にそのコードが実行されているマシン上に表示されます。シングルユーザー版アプリケーションの場合、デバッガーは常にアプリケーションを実行しているマシン上に表示されます。クライアント/サーバー版アプリケーションの場合は: - ローカルで実行されているコードの場合には、リモート4D 上に表示されます。 - サーバー上で実行されているコード (**サーバー上で実行** オプションがつけられたメソッド) の場合には、サーバーマシン上に表示されます。 :::note 注記 -- ヘッドレスモードで実行中のサーバーでは、デバッガーウィンドウを表示することはできません。 この場合はリモートデバッガーを使用する必要があります。 [リモートマシンからのデバッグ](./debugging-remote.md) 参照。 +- ヘッドレスモードで実行中のサーバーでは、デバッガーウィンドウを表示することはできません。 この場合はリモートデバッガーを使用する必要があります。[リモートマシンからのデバッグ](./debugging-remote.md) 参照。 - 運用環境で Qodlyページをデバッグする必要がある場合は、[Qodly Studio のデバッガーを 4D Server アプリケーションで有効化する](https://developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) こともできます。 ::: @@ -62,15 +62,15 @@ title: デバッガー トレースが停止され、通常のメソッド実行が再開されます。 -> **Shift** + **F5** または **Shift** を押しながら **トレース終了** ボタンをクリックすると、実行が再開されます。 この操作により、以降のカレントプロセスでの全ての TRACE 呼び出しが無効になります。 +> **Shift** + **F5** または **Shift** を押しながら **トレース終了** ボタンをクリックすると、実行が再開されます。この操作により、以降のカレントプロセスでの全ての TRACE 呼び出しが無効になります。 #### 次行に進む -現在のメソッド行 (プログラムカウンターと呼ばれる黄色い矢印で示されている行) が実行されます。 その後、デバッガーは次の行に移動します。 +現在のメソッド行 (プログラムカウンターと呼ばれる黄色い矢印で示されている行) が実行されます。その後、デバッガーは次の行に移動します。 -"次の行に進む" ボタンは、サブルーチンや関数に移動することはなく、現在トレースの対象となっているメソッドのレベルにとどまります。 呼び出されるサブルーチンや関数もトレースしたい場合には、**呼び出しメソッドもトレース** ボタンを使用します。 +"次の行に進む" ボタンは、サブルーチンや関数に移動することはなく、現在トレースの対象となっているメソッドのレベルにとどまります。呼び出されるサブルーチンや関数もトレースしたい場合には、**呼び出しメソッドもトレース** ボタンを使用します。 -リモートデバッグにおいて、メソッドがサーバー上で実行されていた場合には、メソッドの最後の行の実行後にその親メソッドが呼ばれます。 その時、親メソッドがリモート側で実行されていた場合には、**次行に進む** ボタンは **トレース終了** ボタンと同じように振る舞います。 +リモートデバッグにおいて、メソッドがサーバー上で実行されていた場合には、メソッドの最後の行の実行後にその親メソッドが呼ばれます。その時、親メソッドがリモート側で実行されていた場合には、**次行に進む** ボタンは **トレース終了** ボタンと同じように振る舞います。 #### 呼び出しメソッドもトレース @@ -82,13 +82,13 @@ title: デバッガー #### 呼び出し元に進む -サブルーチンや関数をトレースしている場合にこのボタンをクリックすると、現在トレース中のメソッド全体を実行し、呼び出し元メソッドに戻ることができます。 デバッガーウィンドウは、コールチェーンの一つ前のメソッドに戻ります。 トレース中のメソッドがコールチェーンの最後のメソッドである場合には、デバッガーウィン ドウが閉じられます。 +サブルーチンや関数をトレースしている場合にこのボタンをクリックすると、現在トレース中のメソッド全体を実行し、呼び出し元メソッドに戻ることができます。デバッガーウィンドウは、コールチェーンの一つ前のメソッドに戻ります。トレース中のメソッドがコールチェーンの最後のメソッドである場合には、デバッガーウィン ドウが閉じられます。 -リモートデバッグにおいては、メソッドの最後の行の実行時に、サーバー上でメソッドが実行されている場合には、親メソッドが呼び出されます。 その時、親メソッドがリモート側で実行されていた場合には、このボタンは トレース終了 ボタンと同じように振る舞います。 +リモートデバッグにおいては、メソッドの最後の行の実行時に、サーバー上でメソッドが実行されている場合には、親メソッドが呼び出されます。その時、親メソッドがリモート側で実行されていた場合には、このボタンは トレース終了 ボタンと同じように振る舞います。 #### 別プロセスもトレース -新しいプロセスを作成 (New process コマンドを呼び出すなど) する行を実行する際にこのボタンを使用すると新しいデバッガーウィンドウが表示され、新しく作成されたプロセスでトレースを続行することができます。 新しいプロセスを作成しない行を実行する際には、このボタンは 次行に進む ボタンと同等に動作します。 +新しいプロセスを作成 (New process コマンドを呼び出すなど) する行を実行する際にこのボタンを使用すると新しいデバッガーウィンドウが表示され、新しく作成されたプロセスでトレースを続行することができます。新しいプロセスを作成しない行を実行する際には、このボタンは 次行に進む ボタンと同等に動作します。 #### 中断 @@ -101,7 +101,7 @@ title: デバッガー コードエディターウィンドウが開いて、**中断&編集** ボタンがクリックされた時点で実行していたメソッドを表示します。 -> **Tip**: このボタンは、コードにどのような変更が必要かが明らかであり、メソッドのテストを続行するためにその変更が必要な場合に使用してください。 変更が完了したら、メソッドを再実行できます。 +> **Tip**: このボタンは、コードにどのような変更が必要かが明らかであり、メソッドのテストを続行するためにその変更が必要な場合に使用してください。変更が完了したら、メソッドを再実行できます。 #### 編集 @@ -113,12 +113,12 @@ title: デバッガー ## 設定保存 -デバッガーウィンドウの現在の状態がプロジェクトに自動的に保存されます。 構成には次の内容が含まれます: +デバッガーウィンドウの現在の状態がプロジェクトに自動的に保存されます。構成には次の内容が含まれます: - ウィンドウのサイズと位置 - 分割線の位置 - [表示モード](#表示モード) -- カスタムのウォッチエリアに現在表示されている式 デフォルトでは、カレントメソッドと関数に対しては式は保存されています。 [**式を固定**](#pinning-an-expression) することで、全てのコンテキストにおいてその式を表示させることができます。 +- カスタムのウォッチエリアに現在表示されている式デフォルトでは、カレントメソッドと関数に対しては式は保存されています。[**式を固定**](#pinning-an-expression) することで、全てのコンテキストにおいてその式を表示させることができます。 **デフォルトウィンドウ設定** ボタンを使用するとカレントウィンドウのデフォルトの位置とサイズを復元します(これには分割線とウィンドウ自体を含みます)。 @@ -126,7 +126,7 @@ title: デバッガー ## ウォッチエリア -**ウォッチエリア** は実行コントロールツールバーの下、デバッグウィンドウの左上隅に表示されます。 次に例を示します: +**ウォッチエリア** は実行コントロールツールバーの下、デバッグウィンドウの左上隅に表示されます。次に例を示します: ![watch-pane](../assets/en/Debugging/watchPane.png) @@ -134,7 +134,7 @@ title: デバッガー **ウォッチエリア** には、システム、4D環境、および実行環境について役立つ一般情報が表示されます。 -**式** 欄には、要素や式の名前が表示されます。 **値** 欄には、要素や式に対応する現在の値が表示されます。 エリア右側の値をクリックすると、その値が変更可能な場合には、要素の値を修正できます。 +**式** 欄には、要素や式の名前が表示されます。**値** 欄には、要素や式に対応する現在の値が表示されます。エリア右側の値をクリックすると、その値が変更可能な場合には、要素の値を修正できます。 テーマ、テーマサブリスト (あれば)、テーマ項目は、いつでも [カスタムウォッチエリア](#カスタムウォッチエリア) にドラッグ&ドロップすることができます。 @@ -147,7 +147,7 @@ title: デバッガー - 実行されるコードの行 (プログラムカウンターにより、[ソースコードエリア](#ソースコードエリア) 内で黄色の矢印でマークされている行) で使用されている。 - コードの前の行で使用されている。 -コードの前の行とは実行直後の行であるため、ラインオブジェクトテーマでは、その行が実行される前または後の現在の行の要素や式が表示されます。 たとえば、次のメソッドを実行した場合を想定します: +コードの前の行とは実行直後の行であるため、ラインオブジェクトテーマでは、その行が実行される前または後の現在の行の要素や式が表示されます。たとえば、次のメソッドを実行した場合を想定します: ```4d TRACE @@ -156,29 +156,29 @@ $b:=$a+1 $c:=$a+$b ``` -1. ソースコードエリアのプログラムカウンターが `$a:=1` の行にセットされた状態で、デバッグウィンドウが開きます。 この時点では **ラインオブジェクト** テーマには、次のように表示されています: +1. ソースコードエリアのプログラムカウンターが `$a:=1` の行にセットされた状態で、デバッグウィンドウが開きます。この時点では **ラインオブジェクト** テーマには、次のように表示されています: | $a | 未定義 | | -- | --- | まだ初期化されていない変数 `$a` が表示されているのは、実行の対象となっている行で使用されているためです。 -2. **次行に進む** ボタンをクリックします。 プログラムカウンターは `$b:=$a+1` の行に設定されます。 この時点では **ラインオブジェクト** テーマには、次のように表示されています : +2. **次行に進む** ボタンをクリックします。プログラムカウンターは `$b:=$a+1` の行に設定されます。この時点では **ラインオブジェクト** テーマには、次のように表示されています : | $a | 1 | | -- | --- | | $b | 未定義 | - 変数 `$a` の値は 1 になりました。 まだ初期化されていない変数 `$b` が表示されているのは、実行の対象となっている行で使用されているためです。 + 変数 `$a` の値は 1 になりました。まだ初期化されていない変数 `$b` が表示されているのは、実行の対象となっている行で使用されているためです。 -3. **次行に進む** ボタンをクリックします。 プログラムカウンターは $c:=$a+$b の行に設定されます。 この時点では **ラインオブジェクト** テーマには、次のように表示されています: +3. **次行に進む** ボタンをクリックします。プログラムカウンターは $c:=$a+$b の行に設定されます。この時点では **ラインオブジェクト** テーマには、次のように表示されています: | $c | 未定義 | | -- | --- | | $a | 1 | | $b | 2 | - 変数 `$b` の値が 2 になりました。 まだ初期化されていない変数 `$c` が表示されているのは、実行の対象となっている行で使用されているためです。 + 変数 `$b` の値が 2 になりました。まだ初期化されていない変数 `$c` が表示されているのは、実行の対象となっている行で使用されているためです。 #### 変数 @@ -192,7 +192,7 @@ $c:=$a+$b | 引数 | メソッドが受け取った引数のリスト | ◯ | | Self | オブジェクトメソッドをトレースしている場合には、現在のオブジェクトへのポインター | × | -他の変数と同様に、配列はそのスコープによって、インタープロセス、プロセス、およびローカルサブテーマに表示されます。 デバッガーは最初の 100要素を表示します。 **値** 欄で配列要素の値を変更することは可能ですが、配列のサイズを修正することはできません。 +他の変数と同様に、配列はそのスコープによって、インタープロセス、プロセス、およびローカルサブテーマに表示されます。デバッガーは最初の 100要素を表示します。**値** 欄で配列要素の値を変更することは可能ですが、配列のサイズを修正することはできません。 変数の型や内部名を表示するには、右クリックしてコンテキストメニューを開き、**型を表示** にチェックを入れます: @@ -212,29 +212,29 @@ $c:=$a+$b #### 定数 -エクスプローラーウィンドウの定数ページのように、4D が提供する定義済み定数を表示します。 このテーマの式を修正することはできません。 +エクスプローラーウィンドウの定数ページのように、4D が提供する定義済み定数を表示します。このテーマの式を修正することはできません。 #### セマフォー -現在設定されているローカルセマフォーのリストを表示します。 各セマフォーの値欄には、自身を設定したプロセスの名前が表示されます。 このテーマの式を修正することはできません。 グローバルセマフォーは表示されません。 +現在設定されているローカルセマフォーのリストを表示します。各セマフォーの値欄には、自身を設定したプロセスの名前が表示されます。このテーマの式を修正することはできません。グローバルセマフォーは表示されません。 #### プロセス -作業セッションを開始してから起動されたプロセスのリストを表示します。 値欄には、各プロセスの現在の状態 (実行中、一時停止等) および使用した時間が表示されます。 このテーマの式を修正することはできません。 +作業セッションを開始してから起動されたプロセスのリストを表示します。値欄には、各プロセスの現在の状態 (実行中、一時停止等) および使用した時間が表示されます。このテーマの式を修正することはできません。 #### テーブルとフィールド -4Dデータベースのテーブルやフィールドのリストを表示します。 各テーブル項目について、カレントプロセスにおけるカレントセクションのサイズは勿論、**ロックされたレコード** のナンバーも値欄に表示されます。 +4Dデータベースのテーブルやフィールドのリストを表示します。各テーブル項目について、カレントプロセスにおけるカレントセクションのサイズは勿論、**ロックされたレコード** のナンバーも値欄に表示されます。 -各フィールド項目については、カレントレコードのフィールドの値 (ピクチャーと BLOB は除く) が値欄に表示されます。 フィールドの値を修正することはできますが、テーブル情報を修正することはできません。 +各フィールド項目については、カレントレコードのフィールドの値 (ピクチャーと BLOB は除く) が値欄に表示されます。フィールドの値を修正することはできますが、テーブル情報を修正することはできません。 #### セット -カレント (トレース中の) プロセスで定義されているセットとインタープロセスセットのリストを表示します。 各セットについて、レコード数とテーブル名が値欄に表示されます。 このテーマの式を修正することはできません。 +カレント (トレース中の) プロセスで定義されているセットとインタープロセスセットのリストを表示します。各セットについて、レコード数とテーブル名が値欄に表示されます。このテーマの式を修正することはできません。 #### 命名セレクション -カレント (トレース中の) プロセスで定義されている命名セレクションとインタープロセス命名セレクションのリストを表示します。 各命名セレクションについて、レコード数とテーブル名が値欄に表示されます。 このテーマの式を修正することはできません。 +カレント (トレース中の) プロセスで定義されている命名セレクションとインタープロセス命名セレクションのリストを表示します。各命名セレクションについて、レコード数とテーブル名が値欄に表示されます。このテーマの式を修正することはできません。 #### 情報 @@ -261,19 +261,19 @@ $c:=$a+$b - **すべて閉じる**: ウォッチエリアの階層リストの全レベルを縮小します。 - **すべて拡げる**: ウォッチエリアの階層リストの全レベルを展開します。 - **型を表示**: 各項目のデータ型を (適切な場合に) 表示します。 -- **フィールド/テーブル番号を表示**: テーブルおよびフィールドの番号を表示します。 テーブル番号やフィールド番号を用いて作業している場合、または `Table` や `Field` コマンドを使用し、ポインターを用いて作業している場合、このオプションは非常に便利です。 -- **アイコンを表示**: 各項目のタイプを示すアイコンを表示します。 表示速度を速くするために、このオプションをオフにすることもできます。 +- **フィールド/テーブル番号を表示**: テーブルおよびフィールドの番号を表示します。テーブル番号やフィールド番号を用いて作業している場合、または `Table` や `Field` コマンドを使用し、ポインターを用いて作業している場合、このオプションは非常に便利です。 +- **アイコンを表示**: 各項目のタイプを示すアイコンを表示します。表示速度を速くするために、このオプションをオフにすることもできます。 - **テーブル/フィールドをソート**: テーブルおよびフィールドをそれぞれアルファベット順に並べ替えます。 -- **数値を16進で表示**: 通常、数値は 10進法で表示されます。 このオプションを使用すると、数値が 16進法表記で表示されます。 注: 数値を 16進法で入力するには、0x (ゼロの後にx) とタイプし、その後に 16進数を続けます。 +- **数値を16進で表示**: 通常、数値は 10進法で表示されます。このオプションを使用すると、数値が 16進法表記で表示されます。注: 数値を 16進法で入力するには、0x (ゼロの後にx) とタイプし、その後に 16進数を続けます。 - **アクティビティモニターを有効にする**: 動作のモニタリング (アプリケーション内部の詳細チェック) を有効にし、追加テーマ (**スケジューラー**、**Web**、**ネットワーク**) に情報を表示します。 ## 呼び出し連鎖エリア -1つのメソッドから他のメソッドまたはクラス関数が呼び出される場合があります。 このエリアは、この呼び出し連鎖のリストを表示します。 +1つのメソッドから他のメソッドまたはクラス関数が呼び出される場合があります。このエリアは、この呼び出し連鎖のリストを表示します。 ![call-chain-pane](../assets/en/Debugging/call-chain-example.png) -それぞれのメインレベルの項目は、メソッドまたはクラス関数の名前です。 最も上にある項目は、現在トレース中のメソッド、次の項目は呼び出し元 (トレース中メソッドを呼び出したメソッドまたはクラス関数)、その次の項目は呼び出し元の呼び出し元、のように続きます。 +それぞれのメインレベルの項目は、メソッドまたはクラス関数の名前です。最も上にある項目は、現在トレース中のメソッド、次の項目は呼び出し元 (トレース中メソッドを呼び出したメソッドまたはクラス関数)、その次の項目は呼び出し元の呼び出し元、のように続きます。 上図の例では: @@ -286,7 +286,7 @@ $c:=$a+$b 呼び出し連鎖エリアのメソッド名をダブルクリックすると、そのソースコードが[ソースコードエリア](#ソースコードエリア) に表示されます。 -メソッドまたは関数名の隣にあるアイコンをクリックすると、引数および戻り値のリストが展開または縮小されます。 値はエリアの右側に表示されます。 右の値をクリックすると、引数や戻り値の値を変更することができます。 +メソッドまたは関数名の隣にあるアイコンをクリックすると、引数および戻り値のリストが展開または縮小されます。値はエリアの右側に表示されます。右の値をクリックすると、引数や戻り値の値を変更することができます。 コンテキストメニュー内の **型を表示** を選択することで、引数のデータ型を表示することができます: @@ -298,7 +298,7 @@ $c:=$a+$b ## カスタムウォッチエリア -カスタムウォッチエリアは、式を評価するために使用します。 [ウォッチエリア](#ウォッチエリア) と似ていますが、ここでは任意の式を表示することができます。 どのようなタイプの式でも評価できます: +カスタムウォッチエリアは、式を評価するために使用します。[ウォッチエリア](#ウォッチエリア) と似ていますが、ここでは任意の式を表示することができます。どのようなタイプの式でも評価できます: - 変数 - オブジェクトとオブジェクトのプロパティ @@ -311,7 +311,7 @@ $c:=$a+$b ![custom-Watch-pane](../assets/en/Debugging/custom-watch-pane.png) -テキスト形式で表示できる式であれば、どのような式でも評価することができます。 ピクチャーや BLOBフィールドおよび変数は表示できません。 BLOB のコンテンツを表示するためには、例えば [BLOB to text](../commands/blob-to-text) などのBLOB コマンドを使用することができます。 +テキスト形式で表示できる式であれば、どのような式でも評価することができます。ピクチャーや BLOBフィールドおよび変数は表示できません。 BLOB のコンテンツを表示するためには、例えば [BLOB to text](../commands/blob-to-text) などのBLOB コマンドを使用することができます。 ### 表示モード @@ -323,7 +323,7 @@ $c:=$a+$b - **ローカル変数**: ローカル変数が実行中のソースコード内で初期化されるとすぐにその変数を自動的に表示し評価します。 - **ライン式**: 式リストの中の[ライン式](#line-expressions) の項目と同じコンテンツを自動的に表示して評価します。 -- **式**: 手動で入力したカスタムの式のみを表示します。 カスタムの式には特定の青いアイコン ![custom-expression-icon](../assets/en/Debugging/custom-expression-icon.png) が表示されます。 +- **式**: 手動で入力したカスタムの式のみを表示します。カスタムの式には特定の青いアイコン ![custom-expression-icon](../assets/en/Debugging/custom-expression-icon.png) が表示されます。 :::note @@ -333,7 +333,7 @@ $c:=$a+$b ### 新しい式の挿入 -評価したい任意の式を入力することができます。 カスタムの式は [式を固定化](#pinning-an-expression) した場合を除き、カレントのデバッガーのウィンドウにしか表示されません。 +評価したい任意の式を入力することができます。カスタムの式は [式を固定化](#pinning-an-expression) した場合を除き、カレントのデバッガーのウィンドウにしか表示されません。 リストに式を追加する方法は複数あります: @@ -341,7 +341,7 @@ $c:=$a+$b - [ソースコードエリア](#ソースコードエリア) で式を選択し、**ctrl+D** (Windows) または **cmd+D** (macOS) を押します。 - カスタムウォッチエリアの空スペースのどこかをダブルクリックします (プレースホルダー名を持つ編集可能な式が追加されます)。 - [表示オプション](#表示モード) を選択することで式が自動的に挿入されます。 -- カスタムウォッチペインの[コンテキストメニュー](#コンテキストメニュー) 内の**新しい式...** を選ぶことで**フォーミュラエディター** を使用して式を追加することができます。 値を返すフォーミュラであれば、なんでも追加できます。 +- カスタムウォッチペインの[コンテキストメニュー](#コンテキストメニュー) 内の**新しい式...** を選ぶことで**フォーミュラエディター** を使用して式を追加することができます。値を返すフォーミュラであれば、なんでも追加できます。 式を編集するには、その式をクリックして選択し、再びクリックすると (または**Enter**キーを押す) 編集モードになります。 @@ -380,10 +380,10 @@ $c:=$a+$b - **すべて閉じる/すべて拡げる**: 階層リストの全レベルを縮小/展開します。 - **型を表示**: リストの各項目のデータ型を (適切な場合に) 表示します。 -- **フィールド/テーブル番号を表示**: テーブルおよびフィールドの番号を表示します。 テーブル番号やフィールド番号を用いて作業している場合、または `Table` や `Field` コマンドを使用し、ポインターを用いて作業している場合、このオプションは非常に便利です。 +- **フィールド/テーブル番号を表示**: テーブルおよびフィールドの番号を表示します。テーブル番号やフィールド番号を用いて作業している場合、または `Table` や `Field` コマンドを使用し、ポインターを用いて作業している場合、このオプションは非常に便利です。 - **アイコンを表示**: 各項目のタイプを示すアイコンを表示します。 - **テーブル/フィールドをソート**: テーブルおよびフィールドをそれぞれアルファベット順に並べ替えます。 -- **数値を16進で表示**: 数値がを16進法表記で表示します。 数値を 16進法で入力するには、0x (ゼロの後にx) とタイプし、その後に 16進数を続けます。 +- **数値を16進で表示**: 数値がを16進法表記で表示します。数値を 16進法で入力するには、0x (ゼロの後にx) とタイプし、その後に 16進数を続けます。 ## ソースコードエリア @@ -422,15 +422,15 @@ $c:=$a+$b ### プログラムカウンター -ソースコードエリアの左マージンにある黄色の矢印は、プログラムカウンターと呼ばれます。 これは、実行される次の行を表しています。 +ソースコードエリアの左マージンにある黄色の矢印は、プログラムカウンターと呼ばれます。これは、実行される次の行を表しています。 -デフォルトでは、プログラムカウンター行 (実行行とも呼ばれます) がデバッガー内でハイライトされています。 [環境設定のメソッドページ](Preferences/methods.md) において、ハイライトカラーをカスタマイズすることができます。 +デフォルトでは、プログラムカウンター行 (実行行とも呼ばれます) がデバッガー内でハイライトされています。[環境設定のメソッドページ](Preferences/methods.md) において、ハイライトカラーをカスタマイズすることができます。 #### プログラムカウンターの移動 -デバッグのために、呼び出し連鎖のトップにあるメソッド (実行中のメソッド) のプログラムカウンターの位置を変更することができます。 これには、黄色の矢印をクリックして目的の行まで上下にドラッグします。 +デバッグのために、呼び出し連鎖のトップにあるメソッド (実行中のメソッド) のプログラムカウンターの位置を変更することができます。これには、黄色の矢印をクリックして目的の行まで上下にドラッグします。 -これは、その位置からのトレースや実行を追跡するようにデバッガーに指示しているに過ぎません。 カウンターの移動そのものはコードを実行したり、実行をキャンセルしたりしません。 すべての現在の設定内容、フィールド、変数などに影響はありません。 +これは、その位置からのトレースや実行を追跡するようにデバッガーに指示しているに過ぎません。カウンターの移動そのものはコードを実行したり、実行をキャンセルしたりしません。すべての現在の設定内容、フィールド、変数などに影響はありません。 例: @@ -444,9 +444,7 @@ $c:=$a+$b // ... ``` -行 `If (This condition)` にプログラムカウンターが設定されているとします。 -**次行に進む** ボタンをクリックすると、プログラムカウンターが行 `DO SOMETHING ELSE` に直接移動します。 -しかし、今回トレースしたかったのは `DO_SOMETHING` 行のコードでした。このような場合、プログラムカウンターをその行に移動して実行することができます。 +行 `If (This condition)` にプログラムカウンターが設定されているとします。**次行に進む** ボタンをクリックすると、プログラムカウンターが行 `DO SOMETHING ELSE` に直接移動します。しかし、今回トレースしたかったのは `DO_SOMETHING` 行のコードでした。このような場合、プログラムカウンターをその行に移動して実行することができます。 ### コンテキストメニュー @@ -454,16 +452,16 @@ $c:=$a+$b ![source-code-pane-context-window](../assets/en/Debugging/sourceCodePaneContext.png) -- **ドキュメンテーションを表示**: ターゲット要素のドキュメンテーションを開きます。 このコマンドは以下の要素に使用できます: +- **ドキュメンテーションを表示**: ターゲット要素のドキュメンテーションを開きます。このコマンドは以下の要素に使用できます: - *プロジェクトメソッド*, *ユーザークラス*: エクスプローラー内でのメソッドを選択し、ドキュメンテーションタブに切り替えします。 - *4D コマンド、関数、クラス名:* オンラインのドキュメントを表示します。 -- **参照を検索...** (コードエディターでも利用可能): 現在の要素が参照されているすべてのメソッドとフォームを検索します。 現在の要素とは、選択されているものまたはカーソルが置かれているものをいいます。 これにはフィールド、変数、コマンド、文字列等が含まれます。 検索結果は、標準の検索結果ウィンドウに表示されます。 +- **参照を検索...** (コードエディターでも利用可能): 現在の要素が参照されているすべてのメソッドとフォームを検索します。現在の要素とは、選択されているものまたはカーソルが置かれているものをいいます。これにはフィールド、変数、コマンド、文字列等が含まれます。検索結果は、標準の検索結果ウィンドウに表示されます。 - **コピー**: 選択された式が標準のペーストボードへとコピーされます。 - **式ペインにコピー**: 選択された式をカスタムウォッチエリアにコピーします。 - **カーソルまで実行**: プログラムカウンターと選択行の間のコードを実行します。 -- **次のステートメントを設定**: 現在の行および途中の行を実行せずに、プログラムカウンターを選択行まで移動します。 選択行は、ユーザーが実行ボタンのいずれかをクリックした際に実行されます。 -- **ブレークポイントをトグル** (コードエディターでも利用可能): 選択行のブレークポイントの有無を切り替えます。 これによりメソッドエディターのブレークポイントの有無も切り替わります。 -- **ブレークポイントを編集...** (コードエディターでも利用可能): ブレークポイントプロパティダイアログボックスを表示します。 ここでおこなわれた変更はメソッドエディターにも反映されます。 +- **次のステートメントを設定**: 現在の行および途中の行を実行せずに、プログラムカウンターを選択行まで移動します。選択行は、ユーザーが実行ボタンのいずれかをクリックした際に実行されます。 +- **ブレークポイントをトグル** (コードエディターでも利用可能): 選択行のブレークポイントの有無を切り替えます。これによりメソッドエディターのブレークポイントの有無も切り替わります。 +- **ブレークポイントを編集...** (コードエディターでも利用可能): ブレークポイントプロパティダイアログボックスを表示します。ここでおこなわれた変更はメソッドエディターにも反映されます。 ### 次/前を検索 @@ -497,7 +495,7 @@ $c:=$a+$b #### すべてのエリア -- **Ctrl** + **+/-** (Windows) または **Command** + **+/-** (macOS) を押すと、可読性を向上させるためにフォントサイズが拡大/縮小します。 変更されたフォントサイズはコードエディターにも適用され、環境設定に保存されます。 +- **Ctrl** + **+/-** (Windows) または **Command** + **+/-** (macOS) を押すと、可読性を向上させるためにフォントサイズが拡大/縮小します。変更されたフォントサイズはコードエディターにも適用され、環境設定に保存されます。 - **Ctrl + \*** (Windows) または **Command + \*** (macOS) を押すと、ウォッチエリアが強制的に更新されます。 - 全エリアでいずれの項目も選択されていない場合に **Enter**キーを押すと、1行ずつ進みます。 - 項目の値が選択されている場合には、矢印キーでリスト内を移動します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md index 68b80dd63f9f31..99899b3ed0d7fb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md @@ -5,7 +5,7 @@ title: リモートマシンからのデバッグ ## 概要 -4Dデータベースが 4D Server 上でインタープリターモードで動いている場合、プロジェクトにログインしているリモート4Dクライアントからサーバーで実行中の 4Dコードをデバッグすることができます。 特定のリモートマシンでデバッガーを起動すると、そのリモートマシン上で直接、コードの実行をモニターすることができます。 +4Dデータベースが 4D Server 上でインタープリターモードで動いている場合、プロジェクトにログインしているリモート4Dクライアントからサーバーで実行中の 4Dコードをデバッグすることができます。特定のリモートマシンでデバッガーを起動すると、そのリモートマシン上で直接、コードの実行をモニターすることができます。 リモートマシン上で起動された [デバッガー](debugger.md) には、サーバーコードのデバッグ中であることを示すサーバーアイコンと青い背景色のデバッグアイコンが表示されるほか、呼び出し連鎖と式のペインの背景が薄っすらと青く色づきます: @@ -15,7 +15,7 @@ title: リモートマシンからのデバッグ ## 有効化済デバッガー -4D Serverアプリケーションのデバッグは、一度に一つのデバッガーのみがおこなえます。 これを **有効化済デバッガー** と呼びます。 有効化済デバッガーには、以下のものを利用できます: +4D Serverアプリケーションのデバッグは、一度に一つのデバッガーのみがおこなえます。これを **有効化済デバッガー** と呼びます。有効化済デバッガーには、以下のものを利用できます: - ローカルの 4D Serverデバッガー (デフォルト) - サーバーがヘッドレス実行されていない場合 - リモート4Dクライアントのデバッガー - リモートセッションがデザインモードにアクセス可能な場合 @@ -29,11 +29,11 @@ title: リモートマシンからのデバッグ - キャッチコマンド - エラー -エラーメッセージは、デバッガーが有効化されているマシンに送られるという点に注意してください。 これはつまり、リモートデバッガーの場合には、サーバーのエラーメッセージがリモート4Dクライアント上で表示されるということです。 +エラーメッセージは、デバッガーが有効化されているマシンに送られるという点に注意してください。これはつまり、リモートデバッガーの場合には、サーバーのエラーメッセージがリモート4Dクライアント上で表示されるということです。 注: -- `On Server Startup` データベースメソッドで実行されたコードはリモートでデバッグすることができません。 これはサーバー側でしかデバッグすることができません。 +- `On Server Startup` データベースメソッドで実行されたコードはリモートでデバッグすることができません。これはサーバー側でしかデバッグすることができません。 - デバッガーが有効化されていない場合、実行中のコードがデバッグコマンドによって中断されることはありません。 ## デバッガーの有効化 @@ -64,17 +64,17 @@ title: リモートマシンからのデバッグ 1. デバッガーが有効化されているリモート4Dクライアントにおいて、**実行** > **リモートデバッガーを無効化する** を選択します。 2. 4D Server のメニューバーから、**編集** > **デバッガーを有効化する** を選択します。 -> サーバー上でデバッガーが有効化されていると (デフォルト)、デバッグを可能にするため、サーバープロセスはすべて自動的にコオオペラティブモードで実行されます。 これは、パフォーマンスに大きな影響を与えかねません。 サーバーマシン上でデバッグする必要がない場合は、デバッガーを無効化し、必要に応じてリモートマシンで有効化することが推奨されます。 +> サーバー上でデバッガーが有効化されていると (デフォルト)、デバッグを可能にするため、サーバープロセスはすべて自動的にコオオペラティブモードで実行されます。これは、パフォーマンスに大きな影響を与えかねません。サーバーマシン上でデバッグする必要がない場合は、デバッガーを無効化し、必要に応じてリモートマシンで有効化することが推奨されます。 ## デバッガーを開始時に有効化する デバッガーは、リモート4Dクライアントまたはサーバーの開始時に自動的に有効化することができます: -- サーバー側の場合 (ヘッドレスモードでなければ)、このオプションは **デバッガーを開始時に有効化する** という名前です。 サーバーが開始されると、自動的にデバッガーが有効化されます (デフォルト): +- サーバー側の場合 (ヘッドレスモードでなければ)、このオプションは **デバッガーを開始時に有効化する** という名前です。サーバーが開始されると、自動的にデバッガーが有効化されます (デフォルト): > **警告**: のちにヘッドレスモードで起動されるサーバーにおいてこのオプションが選択されたままの場合、このサーバーのデバッガーは利用できません。 -- リモート4Dクライアントでは、このオプションは **リモートデバッガーを開始時に有効化する** という名前です。 このオプションが選択されている場合、リモート4Dクライアントは、その後同じ 4D Serverデータベースに接続するたびに、自動的にリモートデバッガーを有効化しようとします。 成功した場合 ([有効化リクエストの拒否](#有効化リクエストの拒否) 参照)、リモートデバッガーは自動的にリモート4Dクライアントで有効化され、 **リモートデバッガーを無効化する** オプションが表示されます。 +- リモート4Dクライアントでは、このオプションは **リモートデバッガーを開始時に有効化する** という名前です。このオプションが選択されている場合、リモート4Dクライアントは、その後同じ 4D Serverデータベースに接続するたびに、自動的にリモートデバッガーを有効化しようとします。成功した場合 ([有効化リクエストの拒否](#有効化リクエストの拒否) 参照)、リモートデバッガーは自動的にリモート4Dクライアントで有効化され、 **リモートデバッガーを無効化する** オプションが表示されます。 > この設定はプロジェクトごとに、[`.4DPreferences`](Project/architecture.md#userpreferencesusername) ファイル内にローカル保存されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/building.md b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/building.md index 30167e82f3db65..3827ed536e36de 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/building.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/building.md @@ -3,7 +3,7 @@ id: building title: アプリケーションビルダー --- -4D にはプロジェクトパッケージ (ファイナルビルド) を作成するためのアプリケーションビルダーが統合されています。 このビルダーを使用すれば、コンパイルされた 4D アプリケーションの展開を簡易化することができます。 OS ごとに異なる特定の処理を自動で処理し、クライアント/サーバーアプリケーションの展開が容易になります。 +4D にはプロジェクトパッケージ (ファイナルビルド) を作成するためのアプリケーションビルダーが統合されています。このビルダーを使用すれば、コンパイルされた 4D アプリケーションの展開を簡易化することができます。 OS ごとに異なる特定の処理を自動で処理し、クライアント/サーバーアプリケーションの展開が容易になります。 アプリケーションビルダーでは以下のことを行えます: @@ -14,7 +14,7 @@ title: アプリケーションビルダー - クライアントとサーバーの自動更新機能を備えたクライアント/サーバーアプリケーションのビルド - ビルド設定の保存 (*設定保存* ボタン) -> コンパイル済みアプリケーションは、**読み取り専用** である [.4dz files](#コンパイル済みストラクチャーをビルド) ファイルに基づきます。 コンパイル済みアプリケーションの場合、ソースファイルを変更するコマンドや関数 (`CREATE INDEX` や `CREATE TABLE` (SQL)) は、デフォルトでは使用できないことに留意が必要です。 しかしながら、`PackProject` XML キー ([doc.4d.com](https://doc.4d.com) 参照) を使用することで、ローカルな変更をサポートするアプリケーションをビルドすることも可能です。 +> コンパイル済みアプリケーションは、**読み取り専用** である [.4dz files](#コンパイル済みストラクチャーをビルド) ファイルに基づきます。コンパイル済みアプリケーションの場合、ソースファイルを変更するコマンドや関数 (`CREATE INDEX` や `CREATE TABLE` (SQL)) は、デフォルトでは使用できないことに留意が必要です。しかしながら、`PackProject` XML キー ([doc.4d.com](https://doc.4d.com) 参照) を使用することで、ローカルな変更をサポートするアプリケーションをビルドすることも可能です。 ## 概要 @@ -39,19 +39,19 @@ title: アプリケーションビルダー ![](../assets/en/Project/appbuilderProj.png) -ビルドをおこなう前にプロジェクトはコンパイルされていなければなりません。 まだコンパイルされていないプロジェクトでこのメニューコマンドを選択する、あるいはコンパイル後にコードが変更されていると、プロジェクトを (再) コンパイルしなければならない旨の警告ダイアログが表示されます。 +ビルドをおこなう前にプロジェクトはコンパイルされていなければなりません。まだコンパイルされていないプロジェクトでこのメニューコマンドを選択する、あるいはコンパイル後にコードが変更されていると、プロジェクトを (再) コンパイルしなければならない旨の警告ダイアログが表示されます。 ### buildApp.4DSettings アプリケーションビルドに関わる各パラメーター設定は XML キーの形で、`buildApp.4DSettings` という名称のアプリケーションプロジェクトファイルに保存されます。この XML ファイルはプロジェクトの [`Settings` フォルダー](../Project/architecture.md#settings-user) に配置されます。 -アプリケーションビルドダイアログが初めて表示されるときにはデフォルトパラメーターが使用されます。 **ビルド** ボタンや **設定保存** ボタンをクリックすると、このプロジェクトファイルの内容が更新されます。 同じプロジェクト内に他に複数のXML 設定を定義することができ、[`BUILD APPLICATION`](../commands/build-application) コマンドを使用してどれを使用するかを選択することができます。 +アプリケーションビルドダイアログが初めて表示されるときにはデフォルトパラメーターが使用されます。**ビルド** ボタンや **設定保存** ボタンをクリックすると、このプロジェクトファイルの内容が更新されます。同じプロジェクト内に他に複数のXML 設定を定義することができ、[`BUILD APPLICATION`](../commands/build-application) コマンドを使用してどれを使用するかを選択することができます。 -また、XML キーを使用すれば、アプリケーションビルドダイアログには表示されない追加の設定をおこなうことができます。 これらのキーの詳細は[4D XML キーBuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.ja.html) マニュアルに詳細な説明があります。 +また、XML キーを使用すれば、アプリケーションビルドダイアログには表示されない追加の設定をおこなうことができます。これらのキーの詳細は[4D XML キーBuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.ja.html) マニュアルに詳細な説明があります。 ### ログファイル -アプリケーションをビルドすると、4D はログファイル (*BuildApp.log.xml*) を生成して、プロジェクトの **Logs** フォルダーに保存します。 ログファイルにはビルド毎に以下の情報が書き込まれます: +アプリケーションをビルドすると、4D はログファイル (*BuildApp.log.xml*) を生成して、プロジェクトの **Logs** フォルダーに保存します。ログファイルにはビルド毎に以下の情報が書き込まれます: - ターゲットビルドの開始と終了 - 生成されたファイルの名称とフルパス @@ -69,7 +69,7 @@ macOS 上でアプリケーションを[公証](#ノータリゼーション_\( **アプリケーション名** には生成するアプリケーションの名前を入力します。 -**保存先フォルダー** にはビルドされるアプリケーションの保存先を指定します。 指定したフォルダーが存在しない場合は新たに作成します。 +**保存先フォルダー** にはビルドされるアプリケーションの保存先を指定します。指定したフォルダーが存在しない場合は新たに作成します。 ## コンパイル済みストラクチャーページ @@ -81,23 +81,23 @@ macOS 上でアプリケーションを[公証](#ノータリゼーション_\( インタープリターコードを含まないアプリケーションをビルドします。 -これにより、`Compiled Database/` フォルダーの中に *.4dz* ファイルが作成されます。 たとえば、アプリケーション名を "MyProject" にした場合、4D は次のものを作成します: +これにより、`Compiled Database/` フォルダーの中に *.4dz* ファイルが作成されます。たとえば、アプリケーション名を "MyProject" にした場合、4D は次のものを作成します: `/Compiled Database/MyProject/MyProject.4dz` -.4dz ファイルは ZIP 圧縮されたプロジェクトフォルダーです (注: バイナリーデータベースの場合に生成される .4DC ファイルと同義ではないことに注意が必要です)。 .4dz ファイルは4D Server、4D Volume Desktop(組み込みアプリ)、および4D において使用できます。 圧縮・最適化された .4dz ファイルによってプロジェクトパッケージの展開が容易になります。 +.4dz ファイルは ZIP 圧縮されたプロジェクトフォルダーです (注: バイナリーデータベースの場合に生成される .4DC ファイルと同義ではないことに注意が必要です)。 .4dz ファイルは4D Server、4D Volume Desktop(組み込みアプリ)、および4D において使用できます。圧縮・最適化された .4dz ファイルによってプロジェクトパッケージの展開が容易になります。 -> .4dz ファイルを生成する際、4D はデフォルトで **標準的な** zip形式を使用します。 このフォーマットの利点は、あらゆる解凍ツールで簡単に読み取ることができることです。 この標準フォーマットを使用したくない場合、[`buildApp.4DSettings`](#buildapp4dsettings) 内において`UseStandardZipFormat` XML キーを値`False` で追加して下さい(より詳細な情報については、[4D XML キーBuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) マニュアルを参照して下さい)。 +> .4dz ファイルを生成する際、4D はデフォルトで **標準的な** zip形式を使用します。このフォーマットの利点は、あらゆる解凍ツールで簡単に読み取ることができることです。この標準フォーマットを使用したくない場合、[`buildApp.4DSettings`](#buildapp4dsettings) 内において`UseStandardZipFormat` XML キーを値`False` で追加して下さい(より詳細な情報については、[4D XML キーBuildApplication](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.en.html) マニュアルを参照して下さい)。 #### 関連するフォルダーを含む -このオプションを選択すると、プロジェクトに関連するフォルダーが、Build フォルダーの *Components* および *Resources* フォルダーにコピーされます。 これらのフォルダーの詳細については [プロジェクトアーキテクチャーの説明](Project/architecture.md) を参照ください。 +このオプションを選択すると、プロジェクトに関連するフォルダーが、Build フォルダーの *Components* および *Resources* フォルダーにコピーされます。これらのフォルダーの詳細については [プロジェクトアーキテクチャーの説明](Project/architecture.md) を参照ください。 ### コンポーネントをビルド ストラクチャーからコンパイル済みコンポーネントをビルドします。 -[コンポーネント](../Extensions/develop-components.md) は特定の機能を実装した標準の 4D プロジェクトです。 ビルドされたコンポーネントを [他の4Dプロジェクト (ホストアプリケーションプロジェクト) にインストール](../Project/components.md) すると、ホストプロジェクトはその機能を利用できるようになります。 +[コンポーネント](../Extensions/develop-components.md) は特定の機能を実装した標準の 4D プロジェクトです。ビルドされたコンポーネントを [他の4Dプロジェクト (ホストアプリケーションプロジェクト) にインストール](../Project/components.md) すると、ホストプロジェクトはその機能を利用できるようになります。 アプリケーションに *MyComponent* という名前をつけていた場合、4D は以下の構造を持つ *Components* フォルダーを自動的に作成します: @@ -108,8 +108,8 @@ macOS 上でアプリケーションを[公証](#ノータリゼーション_\( *Contents* フォルダーには以下のものが格納されています: - *MyComponent.4DZ* ファイル - [コンパイルされたストラクチャー](#コンパイル済みストラクチャーをビルド) -- *Resources* フォルダー: 関連リソースは自動的にこのフォルダーにコピーされます。 コンポーネントは、他のコンポーネントやプラグインを使用できないため、その他の "Components" や "Plugins" フォルダーはコピーされません。 -- *Info.plist* ファイル - このファイルはmacOS 用に[公証可能でステープル可能な](#ノータリゼーション (公証) について) コンポーネントをビルドするためには必須です(Windows においては無視されます)。 *Info.plist* ファイルが、既に[コンポーネントのroot に存在する場合](../Extensions/develop-components.md#infoplist) 、そのファイルはマージされ、そうでない場合はデフォルトのファイルが作成されます。 以下の[Apple バンドルキー](https://developer.apple.com/documentation/bundleresources/information-property-list) があらかじめ入力されています: +- *Resources* フォルダー: 関連リソースは自動的にこのフォルダーにコピーされます。コンポーネントは、他のコンポーネントやプラグインを使用できないため、その他の "Components" や "Plugins" フォルダーはコピーされません。 +- *Info.plist* ファイル - このファイルはmacOS 用に[公証可能でステープル可能な](#ノータリゼーション (公証) について) コンポーネントをビルドするためには必須です(Windows においては無視されます)。 *Info.plist* ファイルが、既に[コンポーネントのroot に存在する場合](../Extensions/develop-components.md#infoplist) 、そのファイルはマージされ、そうでない場合はデフォルトのファイルが作成されます。以下の[Apple バンドルキー](https://developer.apple.com/documentation/bundleresources/information-property-list) があらかじめ入力されています: - アプリケーション名用に`CFBundleDisplayName` および `CFBundleName` - `NSHumanReadableCopyright` は[XML キーを使用して設定](https://doc.4d.com/4Dv20/4D/20/CommonCopyright.300-6335859.en.html) 可能です。 - アプリケーションバージョン用に `CFBundleShortVersionString` および `CFBundleVersion` (x.x.x フォーマット、例: 1.0.5)は、[XML キーを使用して設定](https://doc.4d.com/4Dv20/4D/20/CommonVersion.300-6335858.en.html) 可能です。 @@ -124,7 +124,7 @@ macOS 上でアプリケーションを[公証](#ノータリゼーション_\( **スタンドアロンアプリケーションをビルド** オプションを選択して **ビルド** ボタンをクリックすると、スタンドアロンの (つまり、ダブルクリックで起動可能な) アプリケーションがアプリケーションプロジェクトをもとに作成されます。 Windows においては、.exe 拡張子のついた実行ファイルが作成されます。 macOS においては、ソフトウェアパッケージが作成されます。 -この処理はコンパイル済みストラクチャーファイルと**4D Volume Desktop** (4D データベースエンジン)を統合します。 4D Volume Desktop が提供する機能はライセンスページで指定するライセンス情報に基づきます。 この点についての詳細な情報は、4D の [オンラインストア](https://store.4d.com/jp/) と、セールスドキュメンテーションを参照してください。 +この処理はコンパイル済みストラクチャーファイルと**4D Volume Desktop** (4D データベースエンジン)を統合します。 4D Volume Desktop が提供する機能はライセンスページで指定するライセンス情報に基づきます。この点についての詳細な情報は、4D の [オンラインストア](https://store.4d.com/jp/) と、セールスドキュメンテーションを参照してください。 - デフォルトのデータファイルを定義することも、ユーザーに [独自のデータファイルを作成して使用](#データファイルの管理) してもらうこともできます。 - [運用ライセンス](../Admin/licenses.md#運用ライセンス) を埋め込むか、あるいはアプリケーションの初回起動時にエンドユーザーに自分の手でライセンスを入力させるようにすることができます(以下の[**ライセンス**](#ライセンス) 参照)。 @@ -139,55 +139,54 @@ macOS 上でアプリケーションを[公証](#ノータリゼーション_\( ダブルクリックで起動されるアプリケーションをビルドするには、まず 4D Volume Desktop が格納されているフォルダーの場所を指定しなければなりません: -- *Windows* では: 4D Volume Desktop.4DE や 4D Volume Desktop.RSR、その他動作に必要なファイルやフォルダーを含むフォルダーを選択します。 これらは、選択されたフォルダー内で同じ階層に置かれている必要があります。 +- *Windows* では: 4D Volume Desktop.4DE や 4D Volume Desktop.RSR、その他動作に必要なファイルやフォルダーを含むフォルダーを選択します。これらは、選択されたフォルダー内で同じ階層に置かれている必要があります。 - *macOS* では: ソフトウェアパッケージとして 4D Volume Desktop が提供されているので、このパッケージを選択します。 -4D Volume Desktop フォルダーを選択するには **[...]** ボタンをクリックします。 フォルダーを選択するダイアログが表示されたら、4D Volume Desktop フォルダー (Windows) またはパッケージ (macOS) を選択します。 +4D Volume Desktop フォルダーを選択するには **[...]** ボタンをクリックします。フォルダーを選択するダイアログが表示されたら、4D Volume Desktop フォルダー (Windows) またはパッケージ (macOS) を選択します。 フォルダーが選択されるとその完全パス名が表示され、そこに 4D Volume Desktop が含まれていればビルドボタンが有効になります。 -> 4D Volume Desktop のバージョン番号は、4D Developer のバージョン番号と合致する必要があります。 例えば、4D 20 を使用している場合には、4D Volume Desktop 20 を選択する必要があります。 +> 4D Volume Desktop のバージョン番号は、4D Developer のバージョン番号と合致する必要があります。例えば、4D 20 を使用している場合には、4D Volume Desktop 20 を選択する必要があります。 ### データリンクモードの基準 -このオプションを使って、組み込みアプリケーションとローカルデータファイルとのリンクモードを選択します。 二種類のリンクモードから選択可能です: +このオプションを使って、組み込みアプリケーションとローカルデータファイルとのリンクモードを選択します。二種類のリンクモードから選択可能です: -- **アプリケーション名** (デフォルト) - このモードでは、4D アプリケーションはストラクチャーファイルに対応する、最後に開かれたデータファイルを開きます。 このモードではアプリケーションパッケージをディスク上で自由に移動させることができます。 アプリケーションを複製する場合を除いて、通常は組み込みアプリに対してこのモードが使用されるべきです。 +- **アプリケーション名** (デフォルト) - このモードでは、4D アプリケーションはストラクチャーファイルに対応する、最後に開かれたデータファイルを開きます。このモードではアプリケーションパッケージをディスク上で自由に移動させることができます。アプリケーションを複製する場合を除いて、通常は組み込みアプリに対してこのモードが使用されるべきです。 -- **アプリケーションパス** - このモードでは、組み込み 4D アプリケーションは自身に紐づいている *lastDataPath.xml* ファイルを解析して、起動アプリのフルパスに合致する "executablePath" 属性を持つデータパスマップのエントリーを探し、 同エントリー内で "dataFilePath" 属性で定義されているデータファイルを開きます。 ない場合は、最後に開かれたデータファイルを開きます (デフォルトモード)。 +- **アプリケーションパス** - このモードでは、組み込み 4D アプリケーションは自身に紐づいている *lastDataPath.xml* ファイルを解析して、起動アプリのフルパスに合致する "executablePath" 属性を持つデータパスマップのエントリーを探し、同エントリー内で "dataFilePath" 属性で定義されているデータファイルを開きます。ない場合は、最後に開かれたデータファイルを開きます (デフォルトモード)。 データリンクモードについての詳細は [最後に開かれたデータファイル](#最後に開かれたデータファイル) を参照してください。 ### 生成されるファイル -**ビルド** ボタンをクリックすると、4D は **保存先フォルダー** に **Final Application** フォルダーを作成し、 その中に指定したアプリケーション名のサブフォルダーを作成します。 +**ビルド** ボタンをクリックすると、4D は **保存先フォルダー** に **Final Application** フォルダーを作成し、その中に指定したアプリケーション名のサブフォルダーを作成します。 アプリケーション名に "MyProject"と指定した場合、MyProject サブフォルダー内には以下のファイルが置かれます: - *Windows* - MyProject.exe - 実行可能ファイル、そして MyProject.rsr (アプリケーションリソースファイル) - 4D Extensions および Resources フォルダー、さまざまなライブラリ (DLL)、 Native Components フォルダー、SASL Plugins フォルダーなど、アプリケーション実行に必要なファイル - - Databaseフォルダー - Resources フォルダーと MyProject.4DZ ファイルが格納されています。 これらはプロジェクトのコンパイル済みストラクチャーおよびプロジェクトの Resources フォルダーです。 - **注**: このフォルダーには、定義されていれば *Default Data* フォルダーも含まれています ([最終アプリケーションでのデータファイルの管理](#データファイルの管理)を参照してください)。 - - (オプション) データベースに含まれるコンポーネントやプラグインが配置された Components フォルダーおよび Plugins フォルダー。 この点に関する詳細は [プラグイン&コンポーネントページ](#プラグイン&コンポーネントページ) を参照してください。 - - (オプション) Licenses フォルダー - アプリケーションに統合されたライセンス番号の XML ファイルが(あれば)含まれます。 この点に関する詳細は [ライセンス&証明書ページ](#ライセンス&証明書ページ) を参照してください。 + - Databaseフォルダー - Resources フォルダーと MyProject.4DZ ファイルが格納されています。これらはプロジェクトのコンパイル済みストラクチャーおよびプロジェクトの Resources フォルダーです。**注**: このフォルダーには、定義されていれば *Default Data* フォルダーも含まれています ([最終アプリケーションでのデータファイルの管理](#データファイルの管理)を参照してください)。 + - (オプション) データベースに含まれるコンポーネントやプラグインが配置された Components フォルダーおよび Plugins フォルダー。この点に関する詳細は [プラグイン&コンポーネントページ](#プラグイン&コンポーネントページ) を参照してください。 + - (オプション) Licenses フォルダー - アプリケーションに統合されたライセンス番号の XML ファイルが(あれば)含まれます。この点に関する詳細は [ライセンス&証明書ページ](#ライセンス&証明書ページ) を参照してください。 - 4D Volume Desktop フォルダーに追加されたその他の項目 (あれば) ([4D Volume Desktop フォルダーのカスタマイズ](#4d-volume-desktop-フォルダーのカスタマイズ) 参照) 実行ファイルの動作には、これらすべての項目が同じフォルダー内に必要です。 - *macOS* - - MyProject.app という名称のソフトウェアパッケージに、プラグインやコンポーネント、ライセンスなど必要な項目がすべて格納されます。 プラグインやコンポーネントの統合に関する詳細は [プラグイン&コンポーネントページ](#プラグイン&コンポーネントページ) を参照してください。 ライセンスの統合に関しては [ライセンス&証明書ページ](#ライセンス&証明書ページ) を参照してください。 **注意**: macOSでは、4D ランゲージの [Application file](../commands/application-file) コマンドは(ソフトウェアパッケージの Contents:macOS フォルダーにある)アプリケーション名 ファイルのパス名を返し、(ソフトウェアパッケージのContents:Resources フォルダーにある) .comp ファイルのパス名は返しません。 + - MyProject.app という名称のソフトウェアパッケージに、プラグインやコンポーネント、ライセンスなど必要な項目がすべて格納されます。プラグインやコンポーネントの統合に関する詳細は [プラグイン&コンポーネントページ](#プラグイン&コンポーネントページ) を参照してください。ライセンスの統合に関しては [ライセンス&証明書ページ](#ライセンス&証明書ページ) を参照してください。**注意**: macOSでは、4D ランゲージの [Application file](../commands/application-file) コマンドは(ソフトウェアパッケージの Contents:macOS フォルダーにある)アプリケーション名 ファイルのパス名を返し、(ソフトウェアパッケージのContents:Resources フォルダーにある) .comp ファイルのパス名は返しません。 #### 4D Volume Desktop フォルダーのカスタマイズ -ダブルクリックで起動可能なアプリケーションをビルドする際、4D は 4D Volume Desktop フォルダーの内容を *Final Application* 内のアプリケーション名サブフォルダーにコピーします。 必要に応じて、このコピー元である 4D Volume Desktop フォルダーの内容をカスタマイズすることできます。 たとえば: +ダブルクリックで起動可能なアプリケーションをビルドする際、4D は 4D Volume Desktop フォルダーの内容を *Final Application* 内のアプリケーション名サブフォルダーにコピーします。必要に応じて、このコピー元である 4D Volume Desktop フォルダーの内容をカスタマイズすることできます。たとえば: - 特定の言語バージョンに対応する 4D Volume Desktop をインストールする - Add a custom *Plugins* folder; - *Resources* フォルダーの内容をカスタマイズする > Resources フォルダーの内容をカスタマイズする -> > macOS では、4D Volume Desktop はソフトウェアパッケージ形式で提供されています。 内容を変更するにはパッケージを開きます (アイコンを **Control+クリック**)。 +> > macOS では、4D Volume Desktop はソフトウェアパッケージ形式で提供されています。内容を変更するにはパッケージを開きます (アイコンを **Control+クリック**)。 #### Webファイルの場所 @@ -221,21 +220,20 @@ macOS 上でアプリケーションを[公証](#ノータリゼーション_\( ビルドされたクライアント/サーバーアプリケーションは起動や接続処理が簡易です: -- サーバーを起動するには、サーバーアプリケーションをダブルクリックします。 プロジェクトファイルを選択する必要はありません。 -- クライアントを起動するにも、同様にクライアントアプリケーションをダブルクリックします。すると、サーバーアプリケーションへの接続が直接おこなわれるため、 すると、サーバーアプリケーションへの接続が直接おこなわれるため、 接続ダイアログでサーバーを選択する必要はありません。 クライアントは接続対象のサーバーを名称 (サーバーが同じサブネットワーク上にある場合)、あるいはIPアドレスによって認識します。IPアドレスの指定は buildapp.4DSettings ファイル内の `IPAddress` XMLキーを使用して設定されます。 接続失敗時の特定の機構を実装することもできます。 詳細は [クライアント接続の管理](#クライアント接続の管理) で説明されています。 また、**Option** (macOS) や **Alt** (Windows) キーを押しながらクライアントアプリケーション起動すると、標準の接続ダイアログを強制的に表示させることもできます。 - サーバーアプリケーションには、対応するクライアントアプリケーションのみが接続できます。 標準の 4Dアプリケーションを使用してサーバーアプリケーションに接続を試みると、接続は拒否されエラーが返されます。 -- クライアント側を [ネットワーク越しに自動更新](#サーバーアプリケーション内部のクライアントアプリケーションのコピー) するようにクライアント/サーバーアプリケーションを設定することも可能です。 クライアントアプリケーションは最初のバージョンのみビルドして配布する必要があります。 以降のアップデートは、自動アップデート機構を利用することで管理します。 +- サーバーを起動するには、サーバーアプリケーションをダブルクリックします。プロジェクトファイルを選択する必要はありません。 +- クライアントを起動するにも、同様にクライアントアプリケーションをダブルクリックします。すると、サーバーアプリケーションへの接続が直接おこなわれるため、すると、サーバーアプリケーションへの接続が直接おこなわれるため、 接続ダイアログでサーバーを選択する必要はありません。クライアントは接続対象のサーバーを名称 (サーバーが同じサブネットワーク上にある場合)、あるいはIPアドレスによって認識します。IPアドレスの指定は buildapp.4DSettings ファイル内の `IPAddress` XMLキーを使用して設定されます。接続失敗時の特定の機構を実装することもできます。 詳細は [クライアント接続の管理](#クライアント接続の管理) で説明されています。また、**Option** (macOS) や **Alt** (Windows) キーを押しながらクライアントアプリケーション起動すると、標準の接続ダイアログを強制的に表示させることもできます。サーバーアプリケーションには、対応するクライアントアプリケーションのみが接続できます。標準の 4Dアプリケーションを使用してサーバーアプリケーションに接続を試みると、接続は拒否されエラーが返されます。 +- クライアント側を [ネットワーク越しに自動更新](#サーバーアプリケーション内部のクライアントアプリケーションのコピー) するようにクライアント/サーバーアプリケーションを設定することも可能です。クライアントアプリケーションは最初のバージョンのみビルドして配布する必要があります。 以降のアップデートは、自動アップデート機構を利用することで管理します。 - また、ランゲージコマンド ([SET UPDATE FOLDER](../commands/set-update-folder) および [RESTART 4D](../commands/restart-4d)) を使用して、サーバーアプリケーションの更新を自動化することも可能です。 :::note -クライアント/サーバー接続を[TLS](../Admin/tls.md) で行いたい場合は、[適切な設定](../settings/client-server.md#クライアント-サーバー通信の暗号化) にチェックを入れるだけです。 カスタムの証明書を使用したい場合は、[`CertificateAuthoritiesCertificates`](https://doc.4d.com/4Dv20R8/4D/20-R8/CertificateAuthoritiesCertificates.300-7479862.ja.html) の使用を検討してください。 +クライアント/サーバー接続を[TLS](../Admin/tls.md) で行いたい場合は、[適切な設定](../settings/client-server.md#クライアント-サーバー通信の暗号化) にチェックを入れるだけです。カスタムの証明書を使用したい場合は、[`CertificateAuthoritiesCertificates`](https://doc.4d.com/4Dv20R8/4D/20-R8/CertificateAuthoritiesCertificates.300-7479862.ja.html) の使用を検討してください。 ::: ### サーバーアプリケーションをビルド -アプリケーションのサーバー部分をビルドするにはこのオプションを選択します。 ビルドに使用する 4D Server アプリケーションの場所を選択する必要があります。 この 4D Server はビルドをおこなうプラットフォームに対応していなければなりません (たとえば、Windows 用のサーバーアプリケーションをビルドするには Windows 上でビルドを実行する必要があり、Windows 版の 4D Server アプリケーションを指定する必要があります)。 +アプリケーションのサーバー部分をビルドするにはこのオプションを選択します。ビルドに使用する 4D Server アプリケーションの場所を選択する必要があります。この 4D Server はビルドをおこなうプラットフォームに対応していなければなりません (たとえば、Windows 用のサーバーアプリケーションをビルドするには Windows 上でビルドを実行する必要があり、Windows 版の 4D Server アプリケーションを指定する必要があります)。 #### 4D Server の場所 @@ -243,7 +241,7 @@ macOS 上でアプリケーションを[公証](#ノータリゼーション_\( #### 現在のバージョン -生成されるアプリケーションのバージョン番号を指定します。 このバージョン番号をもとに、クライアントアプリケーションからの接続を受け入れたり拒否したりできます。 クライアントとサーバーアプリケーションで互換性のある番号の範囲は [XMLキー](#アプリケーションビルド設定) で設定します。 +生成されるアプリケーションのバージョン番号を指定します。このバージョン番号をもとに、クライアントアプリケーションからの接続を受け入れたり拒否したりできます。クライアントとサーバーアプリケーションで互換性のある番号の範囲は [XMLキー](#アプリケーションビルド設定) で設定します。 #### ビルドしたサーバーアプリケーションにプロジェクトのユーザーとグループを埋め込む @@ -262,15 +260,15 @@ macOS 上でアプリケーションを[公証](#ノータリゼーション_\( - データのディレクトリファイルがサーバーにある場合は、それがロードされます。 - データのディレクトリファイルがサーバーにない場合は、アプリケーションのディレクトリファイルがロードされます。 -アプリケーションのディレクトリファイルは読み取り専用です。 ユーザー・グループ・パーミッションに対してサーバー実行中におこなわれた変更は、データのディレクトリファイルに保存されます。 データのディレクトリファイルが存在しない場合は、自動作成されます。 アプリケーションのディレクトリファイルが埋め込まれている場合は、データのディレクトリファイルとして複製されます。 +アプリケーションのディレクトリファイルは読み取り専用です。ユーザー・グループ・パーミッションに対してサーバー実行中におこなわれた変更は、データのディレクトリファイルに保存されます。データのディレクトリファイルが存在しない場合は、自動作成されます。アプリケーションのディレクトリファイルが埋め込まれている場合は、データのディレクトリファイルとして複製されます。 -プロジェクトのディレクトリファイルを埋め込むことで、基本的なセキュリティのユーザーとグループ構成でクライアント/サーバーアプリケーションを運用することができます。 その後の編集は、データのディレクトリファイルに追加されます。 +プロジェクトのディレクトリファイルを埋め込むことで、基本的なセキュリティのユーザーとグループ構成でクライアント/サーバーアプリケーションを運用することができます。その後の編集は、データのディレクトリファイルに追加されます。 #### Silicon macOS クライアントからの接続を許可 -Windows でサーバーアプリケーションをビルドする際、Apple Silicon クライアントが接続できるようにするには、このオプションをチェックします。 その後、Apple Silicon/Intel用にコンパイルされたストラクチャーへのパスを指定します。 +Windows でサーバーアプリケーションをビルドする際、Apple Silicon クライアントが接続できるようにするには、このオプションをチェックします。その後、Apple Silicon/Intel用にコンパイルされたストラクチャーへのパスを指定します。 -Windows でビルドされたサーバーアプリケーションに Apple Silicon クライアントが接続できるようにするには、まず macOS 上で Apple Silicon と Intel 向けにコンパイルされたプロジェクトを用いてクライアントアプリケーションをビルドする必要があります。 これにより、**[コンパイル済みストラクチャーをビルド](#コンパイル済みストラクチャーをビルド)** オプションで作成したものと同じコンパイル済みストラクチャーが自動的に作成されます (関連フォルダーは含まれません)。 +Windows でビルドされたサーバーアプリケーションに Apple Silicon クライアントが接続できるようにするには、まず macOS 上で Apple Silicon と Intel 向けにコンパイルされたプロジェクトを用いてクライアントアプリケーションをビルドする必要があります。これにより、**[コンパイル済みストラクチャーをビルド](#コンパイル済みストラクチャーをビルド)** オプションで作成したものと同じコンパイル済みストラクチャーが自動的に作成されます (関連フォルダーは含まれません)。 その後、そのストラクチャーを Windowsマシンにコピーし、それを使ってサーバーアプリケーションをビルドすることができます: @@ -282,11 +280,11 @@ Windows用サーバーアプリケーションのビルドに使用される App #### データリンクモードの基準 -このオプションを使って、組み込みアプリケーションとローカルデータファイルとのリンクモードを選択します。 二種類のリンクモードから選択可能です: +このオプションを使って、組み込みアプリケーションとローカルデータファイルとのリンクモードを選択します。二種類のリンクモードから選択可能です: -- **アプリケーション名** (デフォルト) - このモードでは、4D アプリケーションはストラクチャーファイルに対応する、最後に開かれたデータファイルを開きます。 このモードではアプリケーションパッケージをディスク上で自由に移動させることができます。 アプリケーションを複製する場合を除いて、通常は組み込みアプリに対してこのモードが使用されるべきです。 +- **アプリケーション名** (デフォルト) - このモードでは、4D アプリケーションはストラクチャーファイルに対応する、最後に開かれたデータファイルを開きます。このモードではアプリケーションパッケージをディスク上で自由に移動させることができます。アプリケーションを複製する場合を除いて、通常は組み込みアプリに対してこのモードが使用されるべきです。 -- **アプリケーションパス** - このモードでは、組み込み 4D アプリケーションは自身に紐づいている *lastDataPath.xml* ファイルを解析して、起動アプリのフルパスに合致する "executablePath" 属性を持つデータパスマップのエントリーを探し、 同エントリー内で "dataFilePath" 属性で定義されているデータファイルを開きます。 ない場合は、最後に開かれたデータファイルを開きます (デフォルトモード)。 +- **アプリケーションパス** - このモードでは、組み込み 4D アプリケーションは自身に紐づいている *lastDataPath.xml* ファイルを解析して、起動アプリのフルパスに合致する "executablePath" 属性を持つデータパスマップのエントリーを探し、同エントリー内で "dataFilePath" 属性で定義されているデータファイルを開きます。ない場合は、最後に開かれたデータファイルを開きます (デフォルトモード)。 データリンクモードについての詳細は [最後に開かれたデータファイル](#最後に開かれたデータファイル) を参照してください。 @@ -303,15 +301,15 @@ Windows用サーバーアプリケーションのビルドに使用される App クライアントアプリケーションのビルドに使用する 4D Volume Desktop アプリケーションの場所を指定します。 -> 4D Volume Desktop のバージョン番号は、4D Developer のバージョン番号と合致する必要があります。 例えば、4D 20 を使用している場合には、4D Volume Desktop 20 を選択する必要があります。 +> 4D Volume Desktop のバージョン番号は、4D Developer のバージョン番号と合致する必要があります。例えば、4D 20 を使用している場合には、4D Volume Desktop 20 を選択する必要があります。 -この 4D Volume Desktop はビルドをおこなうプラットフォームに対応していなければなりません。 異なるプラットフォーム用のクライアントアプリケーションをビルドするには、そのプラットフォームで 4D アプリケーションを実行し、追加のビルド処理をしなければなりません。 +この 4D Volume Desktop はビルドをおこなうプラットフォームに対応していなければなりません。異なるプラットフォーム用のクライアントアプリケーションをビルドするには、そのプラットフォームで 4D アプリケーションを実行し、追加のビルド処理をしなければなりません。 -クライアントアプリから特定のアドレスを使用して (サブネットワーク上にサーバー名が公開されていない) サーバーに接続したい場合、 buildapp.4DSettings ファイル内の `IPAddress` XML キーを使用する必要があります。 詳細は [`BUILD APPLICATION`](../commands/build-application) コマンドの説明を参照してください。 接続失敗時の特定の機構を実装することもできます。 詳細は [クライアント接続の管理](#クライアント接続の管理) で説明されています。 +クライアントアプリから特定のアドレスを使用して (サブネットワーク上にサーバー名が公開されていない) サーバーに接続したい場合、 buildapp.4DSettings ファイル内の `IPAddress` XML キーを使用する必要があります。詳細は [`BUILD APPLICATION`](../commands/build-application) コマンドの説明を参照してください。接続失敗時の特定の機構を実装することもできます。詳細は [クライアント接続の管理](#クライアント接続の管理) で説明されています。 #### サーバーアプリケーション内部のクライアントアプリケーションのコピー -このエリアのオプションは、クライアント/サーバーアプリケーションの新しいバージョンがビルドされた際の、ネットワーク越しにクライアントを自動更新するメカニズムを設定します。 これらのオプションは、**クライアントアプリケーションをビルド** オプションがチェックされている場合にのみ有効です。 +このエリアのオプションは、クライアント/サーバーアプリケーションの新しいバージョンがビルドされた際の、ネットワーク越しにクライアントを自動更新するメカニズムを設定します。これらのオプションは、**クライアントアプリケーションをビルド** オプションがチェックされている場合にのみ有効です。 - **Windows クライアントアプリケーションの自動更新を有効にする** - このオプションをチェックすると、アップデートの際に Windowsプラットフォーム上のクライアントアプリケーションに送信される `.4darchive` ファイルを作成します。 - **macOS クライアントアプリケーションの自動更新を有効にする** - このオプションをチェックすると、アップデートの際に macOSプラットフォーム上のクライアントアプリケーションに送信される `.4darchive` ファイルを作成します。 @@ -324,17 +322,17 @@ Windows用サーバーアプリケーションのビルドに使用される App #### 別プラットフォームのクライアントアーカイブの選択 -別プラットフォーム上で動作するクライアントアプリケーション用に、 **自動更新を有効にする** オプションをチェックすることができます。 このオプションは、以下の場合にのみ有効です: +別プラットフォーム上で動作するクライアントアプリケーション用に、 **自動更新を有効にする** オプションをチェックすることができます。このオプションは、以下の場合にのみ有効です: - **サーバーアプリケーションをビルド** オプションがチェックされている。 - 現在のプラットフォームで実行されるクライアントアプリケーションについて、**自動更新を有効にする** オプションがチェックされている。 -この機能を利用するには、 **[...]** ボタンをクリックして、アップデートに使用するファイルのディスク上の場所を指定する必要があります。 選択するファイルは、現在のサーバープラットフォームによって異なります: +この機能を利用するには、 **[...]** ボタンをクリックして、アップデートに使用するファイルのディスク上の場所を指定する必要があります。選択するファイルは、現在のサーバープラットフォームによって異なります: -| 現在のサーバープラットフォーム | 必要なファイル | 詳細 | -| --------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| macOS | Windows用4D Volume Desktop *または* Windows クライアントアップデートアーカイブ | デフォルトでは、Windows用の `4D Volume Desktop` アプリケーションを選択することができます。 しかしながら、更新後にも適切なアイコン管理、そして署名された.exe ファイルを保持するためにも事前にWindows 用にビルドされた`.4darchive` ファイルを使用することが、**推奨されます**。 これを行うためには、**Shift** を押しながら[...] をクリックします。 | -| Windows | macOS クライアントアップデートアーカイブ | 前もって macOS でビルドされた署名入り `.4darchive` ファイルを選択します。 | +| 現在のサーバープラットフォーム | 必要なファイル | 詳細 | +| --------------- | --------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| macOS | Windows用4D Volume Desktop *または* Windows クライアントアップデートアーカイブ | デフォルトでは、Windows用の `4D Volume Desktop` アプリケーションを選択することができます。しかしながら、更新後にも適切なアイコン管理、そして署名された.exe ファイルを保持するためにも事前にWindows 用にビルドされた`.4darchive` ファイルを使用することが、**推奨されます**。これを行うためには、**Shift** を押しながら[...] をクリックします。 | +| Windows | macOS クライアントアップデートアーカイブ | 前もって macOS でビルドされた署名入り `.4darchive` ファイルを選択します。 | [クライアントアプリケーションをビルド](#クライアントアプリケーションをビルド) と [自動更新を有効にする](#サーバーアプリケーション内部のクライアントアプリケーションのコピー) オプションのみを選択することで、サーバーとは異なるプラットフォーム上で `.4darchive` ファイルをビルドすることができます。 @@ -342,48 +340,48 @@ Windows用サーバーアプリケーションのビルドに使用される App サーバーアプリケーションが更新されると、クライアントアプリケーションへの更新通知が自動でおこなわれます。 -これは次のように動作します: クライアント/サーバーアプリケーションの新しいバージョンをビルドする際、新しいクライアントは **ApplicationName** Server フォルダー内の **Upgrade4DClient** サブフォルダーに圧縮して格納されます(macOS では、これらのフォルダーはサーバーパッケージ内に配置されます)。 クロスプラットフォームのクライアントアプリケーションを生成した場合には、各プラットフォーム用に *.4darchive* という更新ファイルが格納されます: +これは次のように動作します: クライアント/サーバーアプリケーションの新しいバージョンをビルドする際、新しいクライアントは **ApplicationName** Server フォルダー内の **Upgrade4DClient** サブフォルダーに圧縮して格納されます(macOS では、これらのフォルダーはサーバーパッケージ内に配置されます)。クロスプラットフォームのクライアントアプリケーションを生成した場合には、各プラットフォーム用に *.4darchive* という更新ファイルが格納されます: -クライアントアプリケーションに更新を通知するには、古いサーバーアプリケーションを新しいバージョンで置き換えて起動します。 あとの処理は自動でおこなわれます。 +クライアントアプリケーションに更新を通知するには、古いサーバーアプリケーションを新しいバージョンで置き換えて起動します。あとの処理は自動でおこなわれます。 -古いバージョンのクライアントが、更新されたサーバーに接続を試みると、新しいバージョンが利用可能である旨を伝えるダイアログがクライアントマシン上に表示されます。 ユーザーはバージョンを更新するか、ダイアログをキャンセルできます。 +古いバージョンのクライアントが、更新されたサーバーに接続を試みると、新しいバージョンが利用可能である旨を伝えるダイアログがクライアントマシン上に表示されます。ユーザーはバージョンを更新するか、ダイアログをキャンセルできます。 -- ユーザーが **OK** をクリックすると、新バージョンがネットワーク越しにクライアントマシンにダウンロードされます。 ダウンロードが完了すると古いクライアントアプリケーションが閉じられて、新しいバージョンが起動しサーバーに接続します。 古いバージョンのアプリケーションはマシンのゴミ箱に移動されます。 -- ユーザーが **キャンセル** をクリックすると、更新手続きはキャンセルされます。古いクライアントのバージョンがサーバーの許可する範囲外であれば(後述参照)、アプリケーションは閉じられて、接続することはできません。 そうでなければ (デフォルトで) 接続がおこなわれます。 +- ユーザーが **OK** をクリックすると、新バージョンがネットワーク越しにクライアントマシンにダウンロードされます。ダウンロードが完了すると古いクライアントアプリケーションが閉じられて、新しいバージョンが起動しサーバーに接続します。古いバージョンのアプリケーションはマシンのゴミ箱に移動されます。 +- ユーザーが **キャンセル** をクリックすると、更新手続きはキャンセルされます。古いクライアントのバージョンがサーバーの許可する範囲外であれば(後述参照)、アプリケーションは閉じられて、接続することはできません。そうでなければ (デフォルトで) 接続がおこなわれます。 #### 自動更新の強制 -更新のダウンロードをキャンセルさせたくない場合、 更新のダウンロードをキャンセルさせたくない場合、 たとえば新しいメジャーバージョンの 4D Server を使用するような場合、新しいバージョンのクライアントアプリケーションを各クライアントマシンに必ずインストールしなければなりません。 +更新のダウンロードをキャンセルさせたくない場合、更新のダウンロードをキャンセルさせたくない場合、 たとえば新しいメジャーバージョンの 4D Server を使用するような場合、新しいバージョンのクライアントアプリケーションを各クライアントマシンに必ずインストールしなければなりません。 -更新を強制するには、サーバーアプリケーションと互換性のあるバージョン番号の範囲からクライアントアプリケーションの現バージョン番号を除外します。 すると、未更新クライアントからの接続は更新メカニズムによって拒否されます。 たとえば、クライアントサーバーアプリケーションの新しいバージョン番号がの 6 の場合、バージョン番号が 5 以下のクライアントアプリケーションを許可しないようにできます。 +更新を強制するには、サーバーアプリケーションと互換性のあるバージョン番号の範囲からクライアントアプリケーションの現バージョン番号を除外します。すると、未更新クライアントからの接続は更新メカニズムによって拒否されます。たとえば、クライアントサーバーアプリケーションの新しいバージョン番号がの 6 の場合、バージョン番号が 5 以下のクライアントアプリケーションを許可しないようにできます。 -[現在のバージョン番号](#現在のバージョン) はアプリケーションビルドダイアログ のクライアント/サーバーページで設定できます。 接続を許可するバージョン番号の範囲は [XMLキー](#アプリケーションビルド設定) で設定します。 接続を許可するバージョン番号の範囲は [XMLキー](#アプリケーションビルド設定) で設定します。 +[現在のバージョン番号](#現在のバージョン) はアプリケーションビルドダイアログ のクライアント/サーバーページで設定できます。 接続を許可するバージョン番号の範囲は [XMLキー](#アプリケーションビルド設定) で設定します。接続を許可するバージョン番号の範囲は [XMLキー](#アプリケーションビルド設定) で設定します。 #### エラーが発生する場合 -クライアントアプリケーションの更新を実行できなかった場合、クライアントマシンには次のメッセージが表示されます: "クライアントアプリケーションの更新に失敗しました。 アプリケーションは終了します。 " +クライアントアプリケーションの更新を実行できなかった場合、クライアントマシンには次のメッセージが表示されます: "クライアントアプリケーションの更新に失敗しました。アプリケーションは終了します。 " -このエラーが発生する原因は複数ありえます。 このエラーが表示されるような場合は、まず次の点をチェックしてみてください: +このエラーが発生する原因は複数ありえます。このエラーが表示されるような場合は、まず次の点をチェックしてみてください: -- **パス名** - アプリケーションビルドダイアログや XMLキー (たとえば *ClientMacFolderToWin*) で指定されたパス名の有効性をチェックしてください。 とくに 4D Volume Desktop へのパスをチェックしてください。 +- **パス名** - アプリケーションビルドダイアログや XMLキー (たとえば *ClientMacFolderToWin*) で指定されたパス名の有効性をチェックしてください。とくに 4D Volume Desktop へのパスをチェックしてください。 - **読み書き権限** - クライアントマシン上でカレントユーザーがクライアントアプリケーションを更新する書き込みアクセス権を持っているか確認してください。 ### 生成されるファイル -クライアント/サーバーアプリケーションをビルドすると、保存先フォルダー内に **Client Server executable** という名前の新しいフォルダーが作成されます。 このフォルダーにはさらに2つのサブフォルダー、 `Client` と `Server` があります。 +クライアント/サーバーアプリケーションをビルドすると、保存先フォルダー内に **Client Server executable** という名前の新しいフォルダーが作成されます。このフォルダーにはさらに2つのサブフォルダー、 `Client` と `Server` があります。 -> エラーが発生した場合これらのフォルダーは作成されません。 そのような場合には、エラーの原因を特定するために [ログファイル](#ログファイル) の内容を確認してください。 +> エラーが発生した場合これらのフォルダーは作成されません。そのような場合には、エラーの原因を特定するために [ログファイル](#ログファイル) の内容を確認してください。 -`Client` フォルダーは、アプリケーションビルダーを実行したプラットフォームに対応するクライアントアプリケーションを格納します。 このフォルダーを各クライアントにインストールします。 `Server` フォルダーはサーバーアプリケーションを格納します。 +`Client` フォルダーは、アプリケーションビルダーを実行したプラットフォームに対応するクライアントアプリケーションを格納します。このフォルダーを各クライアントにインストールします。 `Server` フォルダーはサーバーアプリケーションを格納します。 これらのフォルダーの内容はカレントのプラットフォームにより異なります: -- *Windows* - 各フォルダーに `Client.exe` (クライアント用) あるいは `Server.exe` (サーバー用) という名前の実行ファイル、およびそれぞれに対応する .rsrファイルが作成されます。 これらのフォルダーには、アプリケーション実行のために必要な様々なファイルやフォルダー、および元の 4D Server や 4D Volume Desktop に追加されたカスタマイズ項目も格納されます。 -- *macOS* - 各フォルダーは `Client` (クライアント用) と `Server` (サーバー用) という名前のアプリケーションパッケージになっています。 各パッケージには動作に必要なすべてのファイルが含まれます。 macOS では、アプリケーションを実行するためにパッケージをダブルクリックします。 +- *Windows* - 各フォルダーに `Client.exe` (クライアント用) あるいは `Server.exe` (サーバー用) という名前の実行ファイル、およびそれぞれに対応する .rsrファイルが作成されます。これらのフォルダーには、アプリケーション実行のために必要な様々なファイルやフォルダー、および元の 4D Server や 4D Volume Desktop に追加されたカスタマイズ項目も格納されます。 +- *macOS* - 各フォルダーは `Client` (クライアント用) と `Server` (サーバー用) という名前のアプリケーションパッケージになっています。各パッケージには動作に必要なすべてのファイルが含まれます。 macOS では、アプリケーションを実行するためにパッケージをダブルクリックします。 -> ビルドされた macOSパッケージには、Windows版のサブフォルダーと同じものが格納されています。 ビルドされた macOS パッケージの内容を表示するにはアイコンを **Control+クリック** して、"パッケージの内容を表示"を選択します。 +> ビルドされた macOSパッケージには、Windows版のサブフォルダーと同じものが格納されています。ビルドされた macOS パッケージの内容を表示するにはアイコンを **Control+クリック** して、"パッケージの内容を表示"を選択します。 -"クライアントの自動更新を有効にする" オプションを選択している場合、`Server` フォルダー/パッケージには追加で *Upgrade4DClient* サブフォルダーが作成されます。 このサブフォルダーには macOS/Windows 版のクライアントアプリケーションが圧縮されて格納されます。 クライアントアプリケーションを自動更新するときに、このファイルは使用されます。 +"クライアントの自動更新を有効にする" オプションを選択している場合、`Server` フォルダー/パッケージには追加で *Upgrade4DClient* サブフォルダーが作成されます。このサブフォルダーには macOS/Windows 版のクライアントアプリケーションが圧縮されて格納されます。クライアントアプリケーションを自動更新するときに、このファイルは使用されます。 #### Webファイルの場所 @@ -404,9 +402,9 @@ Windows用サーバーアプリケーションのビルドに使用される App ### シングルユーザークライアントアプリケーションの埋め込み -4D ではクライアントアプリケーションにコンパイル済ストラクチャーを埋め込むことができます。 この機能を使用すると、たとえば、`.4dlink` ファイルを `OPEN DATABASE` コマンドで実行することで異なるサーバーアプリケーションにアクセスできるような "ポータル" アプリケーションをユーザーに提供することができます。 +4D ではクライアントアプリケーションにコンパイル済ストラクチャーを埋め込むことができます。この機能を使用すると、たとえば、`.4dlink` ファイルを `OPEN DATABASE` コマンドで実行することで異なるサーバーアプリケーションにアクセスできるような "ポータル" アプリケーションをユーザーに提供することができます。 -この機能を有効化するためには、 *buildApp* 設定ファイルに `DatabaseToEmbedInClientWinFolder` または `DatabaseToEmbedInClientMacFolder` キーを追加します。 いずれかのキーが存在する場合、アプリケーションビルドプロセスの途中で組み込みシングルユーザーアプリケーションが生成され、コンパイルされたストラクチャーが(EnginedServer.4Dlink ファイルの代わりに) "Database" フォルダー内に置かれます。 +この機能を有効化するためには、 *buildApp* 設定ファイルに `DatabaseToEmbedInClientWinFolder` または `DatabaseToEmbedInClientMacFolder` キーを追加します。いずれかのキーが存在する場合、アプリケーションビルドプロセスの途中で組み込みシングルユーザーアプリケーションが生成され、コンパイルされたストラクチャーが(EnginedServer.4Dlink ファイルの代わりに) "Database" フォルダー内に置かれます。 - シングルユーザーアプリケーション内に "Default Data" フォルダーがあれば、アプリケーションにはライセンスが埋め込まれます。 - シングルユーザーアプリケーション内に "Default Data" フォルダーがなければ、データファイルおよびライセンスなしでアプリケーションが実行されます。 @@ -419,7 +417,7 @@ Windows用サーバーアプリケーションのビルドに使用される App - `DatabaseToEmbedInClientWinFolder` - `DatabaseToEmbedInClientMacFolder` -3. クライアント/サーバーアプリケーションをビルドします。 これは以下のように動作します: +3. クライアント/サーバーアプリケーションをビルドします。これは以下のように動作します: - シングルユーザーアプリケーションのフォルダー全体が、組み込みクライアントの "Database" フォルダー内にコピーされます。 - "Database" フォルダーの *EnginedServer.4Dlink* ファイルは生成されません。 @@ -427,17 +425,17 @@ Windows用サーバーアプリケーションのビルドに使用される App - `PublishName` キーは、組み込みクライアントの *info.plist* にコピーされません。 - シングルユーザーデータベースに "Default Data" フォルダーがない場合、組み込みクライアントはデータなしで実行されます。 -4D Server の自動アップデート機能 ([現在のバージョン](#現在のバージョン) 番号、[`SET UPDATE FOLDER`](../commands/set-update-folder) コマンドなど...) は、シングルユーザーアプリケーションにおいても標準のリモートアプリケーションと同様に動きます。 接続時、シングルユーザーアプリケーションは `CurrentVers` キーを 4D Server バージョンレンジと比較します。 レンジ外だった場合、アップデートされているシングルユーザーアプリケーションがサーバーからダウンロードされ、アップデーターがローカルアップデートプロセスを実行します。 +4D Server の自動アップデート機能 ([現在のバージョン](#現在のバージョン) 番号、[`SET UPDATE FOLDER`](../commands/set-update-folder) コマンドなど...) は、シングルユーザーアプリケーションにおいても標準のリモートアプリケーションと同様に動きます。接続時、シングルユーザーアプリケーションは `CurrentVers` キーを 4D Server バージョンレンジと比較します。レンジ外だった場合、アップデートされているシングルユーザーアプリケーションがサーバーからダウンロードされ、アップデーターがローカルアップデートプロセスを実行します。 ### クライアントおよびサーバーキャッシュフォルダー名のカスタマイズ -クライアントおよびサーバーのキャッシュフォルダーは、リソースやコンポーネントなどの共有要素を格納するのに使用されます。 これらは、サーバーとリモートクライアント間の通信を管理するのに必要です。 クライアント/サーバーアプリケーションは、クライアントおよびサーバーシステム両方のキャッシュフォルダーにデフォルトパス名を使用します。 +クライアントおよびサーバーのキャッシュフォルダーは、リソースやコンポーネントなどの共有要素を格納するのに使用されます。これらは、サーバーとリモートクライアント間の通信を管理するのに必要です。クライアント/サーバーアプリケーションは、クライアントおよびサーバーシステム両方のキャッシュフォルダーにデフォルトパス名を使用します。 -特殊な場合においては、特定のアーキテクチャーを実装するために、これらのフォルダー名をカスタマイズする必要があるかもしれません (後述参照)。 このため、4D は *buildApp* 設定ファイルにて使用可能な `ClientServerSystemFolderName` および `ServerStructureFolderName` キーを提供しています。 +特殊な場合においては、特定のアーキテクチャーを実装するために、これらのフォルダー名をカスタマイズする必要があるかもしれません (後述参照)。このため、4D は *buildApp* 設定ファイルにて使用可能な `ClientServerSystemFolderName` および `ServerStructureFolderName` キーを提供しています。 #### クライアントキャッシュフォルダー -それぞれ異なるデータセットを使用している以外は同様の複数の組み込みサーバーにクライアントアプリケーションが接続するような場合、クライアント側のキャッシュフォルダー名をカスタマイズすると便利かもしれません。 このような場合に、同じローカルリソースを複数回ダウンロードするのを避けるため、同一のローカルキャッシュフォルダーを使用することができます。 +それぞれ異なるデータセットを使用している以外は同様の複数の組み込みサーバーにクライアントアプリケーションが接続するような場合、クライアント側のキャッシュフォルダー名をカスタマイズすると便利かもしれません。このような場合に、同じローカルリソースを複数回ダウンロードするのを避けるため、同一のローカルキャッシュフォルダーを使用することができます。 - デフォルトの設定 (*サーバーへの接続ごとに専用のキャッシュフォルダーがダウンロード/更新されます*): @@ -449,7 +447,7 @@ Windows用サーバーアプリケーションのビルドに使用される App #### サーバーキャッシュフォルダー -それぞれ異なる 4Dのバージョンでビルドされた同じサーバーアプリケーションを同一のマシン上で実行する場合、サーバー側のキャッシュフォルダー名をカスタマイズすると便利です。 各サーバーで独自のリソースを使用するには、サーバーキャッシュフォルダーをカスタマイズする必要があります。 +それぞれ異なる 4Dのバージョンでビルドされた同じサーバーアプリケーションを同一のマシン上で実行する場合、サーバー側のキャッシュフォルダー名をカスタマイズすると便利です。各サーバーで独自のリソースを使用するには、サーバーキャッシュフォルダーをカスタマイズする必要があります。 - デフォルトの設定 (*同じサーバーアプリケーションは同じキャッシュフォルダーを共有します*): @@ -467,7 +465,7 @@ Windows用サーバーアプリケーションのビルドに使用される App ![](../assets/en/Desktop/buildappcomps.png) -- **アクティブ** 列 - ビルドするアプリケーションパッケージに項目を統合するかどうかを指定します。 デフォルトですべての項目が選択されています。 プラグインやコンポーネント、モジュールを除外するには、チェックボックスの選択を外します。 +- **アクティブ** 列 - ビルドするアプリケーションパッケージに項目を統合するかどうかを指定します。デフォルトですべての項目が選択されています。プラグインやコンポーネント、モジュールを除外するには、チェックボックスの選択を外します。 - **プラグイン&コンポーネント** 列 - プラグイン/コンポーネント/モジュールの名称を表示します。 @@ -477,21 +475,21 @@ Windows用サーバーアプリケーションのビルドに使用される App ### プラグインやコンポーネントの追加 -実行可能なアプリケーションに他のプラグインやコンポーネントを統合したい場合、それらを4D Volume Desktop アプリケーションまたは4D Server アプリケーションの隣にある**Plugins** または **Components** フォルダー内に配置する必要があります。 ソースアプリケーション のフォルダーから内容をコピーするメカニズム ([4D Volume Desktop フォルダーのカスタマイズ](#4d-volume-desktop-フォルダーのカスタマイズ) 参照) により、どんなタイプのファイルでもアプリケーションに統合することができます。 +実行可能なアプリケーションに他のプラグインやコンポーネントを統合したい場合、それらを4D Volume Desktop アプリケーションまたは4D Server アプリケーションの隣にある**Plugins** または **Components** フォルダー内に配置する必要があります。ソースアプリケーション のフォルダーから内容をコピーするメカニズム ([4D Volume Desktop フォルダーのカスタマイズ](#4d-volume-desktop-フォルダーのカスタマイズ) 参照) により、どんなタイプのファイルでもアプリケーションに統合することができます。 -同じプラグインの異なるバージョンが見つかった場合 (現在 4D にロードされているものと同じプラグインが、ソースアプリケーションのフォルダーにも配置されている場合など)、4D Volume Desktop/4D Server フォルダーにインストールされているバージョンが優先されます。 他方、同じコンポーネントが両方にインストールされていた場合は、アプリケーションを開くことはできません。 +同じプラグインの異なるバージョンが見つかった場合 (現在 4D にロードされているものと同じプラグインが、ソースアプリケーションのフォルダーにも配置されている場合など)、4D Volume Desktop/4D Server フォルダーにインストールされているバージョンが優先されます。他方、同じコンポーネントが両方にインストールされていた場合は、アプリケーションを開くことはできません。 > 配布するアプリケーションでプラグインやコンポーネントを使用するには、それぞれ適切なライセンスが必要な場合があります。 ### モジュールの選択解除 -モジュールとは、特定の機能を制御するために 4D で使用される組み込みのコードライブラリです。 ビルドするアプリケーションがモジュールの機能を使用しないことが分かっている場合、アプリケーションのファイルサイズを小さくするために、そのモジュールの選択をリストで解除することができます。 +モジュールとは、特定の機能を制御するために 4D で使用される組み込みのコードライブラリです。ビルドするアプリケーションがモジュールの機能を使用しないことが分かっている場合、アプリケーションのファイルサイズを小さくするために、そのモジュールの選択をリストで解除することができます。 -> **警告**: モジュールの選択を解除すると、ビルドしたアプリケーションが期待通りに動作しなくなる可能性があります。 特定のモジュールが、アプリケーションから呼び出されることがないことが確実でない場合は、選択したままにしておくことが推奨されます。 +> **警告**: モジュールの選択を解除すると、ビルドしたアプリケーションが期待通りに動作しなくなる可能性があります。特定のモジュールが、アプリケーションから呼び出されることがないことが確実でない場合は、選択したままにしておくことが推奨されます。 以下の任意モジュールは、選択を解除することができます: -- **CEF**: Chromium Embedded Framework ライブラリ。 埋め込みWebレンダリングエンジンを使用する [Webエリア](../FormObjects/webArea_overview.md) や、[4D View Pro エリア](../FormObjects/viewProArea_overview.md) を実行する際に必要です。 CEF が選択されていない状態でこれらのエリアを呼び出すと、空白が表示されたり、エラーが発生したりします。 +- **CEF**: Chromium Embedded Framework ライブラリ。埋め込みWebレンダリングエンジンを使用する [Webエリア](../FormObjects/webArea_overview.md) や、[4D View Pro エリア](../FormObjects/viewProArea_overview.md) を実行する際に必要です。 CEF が選択されていない状態でこれらのエリアを呼び出すと、空白が表示されたり、エラーが発生したりします。 - **SpellChecker**: 入力エリアと 4D Write Proエリアで利用可能なビルトインの [スペルチェック機能](../FormObjects/properties_Entry.md#自動スペルチェック) とコマンドに使用されます。 - **4D Updater**: クライアントの [自動更新](#クライアントサーバーアプリケーションとは) をコントロールし、[サーバーの自動更新](#サーバーまたはシングルユーザーアプリケーションの自動更新) のための `SET UPDATE FOLDER` コマンドで使用されます。 - **4D Qodly Pro とデータエクスプローラー**: [Qodly Studio とWeb レンダリング機能](https://developer.4d.com/qodly/) に加えて[データエクスプローラー](../Admin/dataExplorer.md) が含まれます。 @@ -508,7 +506,7 @@ Windows用サーバーアプリケーションのビルドに使用される App ### ライセンスリスト -このタブには**アプリケーションタイプ** メニューが表示され、これを使用することでビルドされたアプリケーション内でどのようにライセンスを管理したいかを定義することができます。 次のオプションから選択することができます: +このタブには**アプリケーションタイプ** メニューが表示され、これを使用することでビルドされたアプリケーション内でどのようにライセンスを管理したいかを定義することができます。次のオプションから選択することができます: ![](../assets/en/Admin/buildappLic.png) @@ -516,13 +514,13 @@ Windows用サーバーアプリケーションのビルドに使用される App 埋め込みライセンスのないアプリケーションをビルドする場合にはこのオプションを選択してください。 -この場合、エンドユーザーはアプリケーションの初回起動時に *4D Desktop* または *4D Server* のライセンスを、ユーザーごとに購入・入力する必要があります(ライセンスを埋め込んだ場合には、ユーザーは自分のライセンスを入力したり使用したりする必要はありません)。 詳細な情報については、[**運用ライセンス**](../Admin/licenses.md#運用ライセンス) の章を参照して下さい。 +この場合、エンドユーザーはアプリケーションの初回起動時に *4D Desktop* または *4D Server* のライセンスを、ユーザーごとに購入・入力する必要があります(ライセンスを埋め込んだ場合には、ユーザーは自分のライセンスを入力したり使用したりする必要はありません)。詳細な情報については、[**運用ライセンス**](../Admin/licenses.md#運用ライセンス) の章を参照して下さい。 #### 評価版アプリケーション あなたのアプリケーションの評価版を作成したい場合にはこのオプションを選択してください。 -評価アプリケーションを使用すると、エンドユーザーは自身のマシン上で自身のスタンドアロンまたはサーバーアプリケーションを機能制約なく一定期間実行することができます。 期間のカウントは最初の起動から始まります。 評価期間が終わると、同一マシン上では一定期間アプリケーションを使用できなくなります。 +評価アプリケーションを使用すると、エンドユーザーは自身のマシン上で自身のスタンドアロンまたはサーバーアプリケーションを機能制約なく一定期間実行することができます。 期間のカウントは最初の起動から始まります。評価期間が終わると、同一マシン上では一定期間アプリケーションを使用できなくなります。 :::info @@ -542,15 +540,15 @@ Windows用サーバーアプリケーションのビルドに使用される App このオプションを使用すると、利用可能な[運用ライセンス](../Admin/licenses.md#運用ライセンス) を自動的に埋め込んだ、すぐに使用できるアプリケーション(スタンドアロンまたはクライアントサーバー)をビルドすることができます。 -アプリケーションをビルドする際、4D は、マシンの [Licenses フォルダー](../commands/get-4d-folder#licenses-folder) 内にある必要なライセンスを自動的に統合します。 もし有効なライセンスが複数見つかった場合、4D は以下の順番に基づいて、最も適切なものを使用します: +アプリケーションをビルドする際、4D は、マシンの [Licenses フォルダー](../commands/get-4d-folder#licenses-folder) 内にある必要なライセンスを自動的に統合します。もし有効なライセンスが複数見つかった場合、4D は以下の順番に基づいて、最も適切なものを使用します: 1. OEM ライセンス 2. 4D Desktop Business ライセンス 3. その他のライセンス -ライセンスタブには、ビルドに自動的に使用されたライセンスの一覧を表示します。 このリストは変更不可です。 +ライセンスタブには、ビルドに自動的に使用されたライセンスの一覧を表示します。このリストは変更不可です。 -ビルドを開始した後、有効なライセンスが見つからなかった場合、エラーが生成されます。 それ以外の場合、生成されたアプリケーションの一覧を表示するダイアログが表示されます。 詳細な情報については[Log ファイル](#logファイル) 内にも記録されています。 +ビルドを開始した後、有効なライセンスが見つからなかった場合、エラーが生成されます。それ以外の場合、生成されたアプリケーションの一覧を表示するダイアログが表示されます。詳細な情報については[Log ファイル](#logファイル) 内にも記録されています。 ライセンスつきのアプリケーションがビルドされると、実行可能アプリケーションの隣(Windows)、あるいはパッケージの中(macOS) にあるLicenses フォルダー内に配布ライセンスファイルが自動的に配置されます。 @@ -558,9 +556,9 @@ Windows用サーバーアプリケーションのビルドに使用される App このオプションを使用すると、指定した特定の必要な[運用ライセンス](../Admin/licenses.md#運用ライセンス) を埋め込んだ、すぐに使用できるアプリケーション(スタンドアロンまたはクライアントサーバー)をビルドすることができます。 -このオプションを選択した場合、タブにはライセンスの一覧が表示されます。 あなたのライセンスを格納しているファイルを指定する必要があります。 これらのファイルは*4D Developer Professional* ライセンスと配布ライセンスが購入された時に生成、またはアップデートされます。 カレントの *4D Developer Professional* ライセンスは、アプリケーションビルドで使用する各配布ライセンスと自動的に関連づけられています。 他の4D Developer Professional 番号やそれに関連づけられたライセンスを追加することができます。 +このオプションを選択した場合、タブにはライセンスの一覧が表示されます。あなたのライセンスを格納しているファイルを指定する必要があります。これらのファイルは*4D Developer Professional* ライセンスと配布ライセンスが購入された時に生成、またはアップデートされます。カレントの *4D Developer Professional* ライセンスは、アプリケーションビルドで使用する各配布ライセンスと自動的に関連づけられています。他の4D Developer Professional 番号やそれに関連づけられたライセンスを追加することができます。 -ライセンスを追加または取り除くにはウィンドウ下部の **[+]** または **[-]** ボタンをクリックします。 \[+] ボタンをクリックすると、ファイルを開くダイアログが表示され、マシンの *Licenses* フォルダーの内容が表示されます。 このフォルダーの場所については [Get 4D folder](../commands/get-4d-folder) コマンドの説明を参照してください。 +ライセンスを追加または取り除くにはウィンドウ下部の **[+]** または **[-]** ボタンをクリックします。 \[+] ボタンをクリックすると、ファイルを開くダイアログが表示され、マシンの *Licenses* フォルダーの内容が表示されます。このフォルダーの場所については [Get 4D folder](../commands/get-4d-folder) コマンドの説明を参照してください。 ファイルを選択すると、リストに選択内容が反映されます: @@ -571,7 +569,7 @@ Windows用サーバーアプリケーションのビルドに使用される App ライセンスが有効でない場合、警告が表示されます。 -必要なだけ有効なファイルを選択することができます。 実行可能アプリケーションをビルドする際に、4D は最も適切なライセンスを使用します。 +必要なだけ有効なファイルを選択することができます。実行可能アプリケーションをビルドする際に、4D は最も適切なライセンスを使用します。 > "R-リリース" バージョンのアプリケーションをビルドするには、専用の "R" ライセンスが必要です ("R" 製品用のライセンス番号は "R-" から始まる番号です)。 @@ -579,7 +577,7 @@ Windows用サーバーアプリケーションのビルドに使用される App ### macOS 署名に使用する証明書 -アプリケーションビルダーは、macOS 環境下において組み込み4Dアプリに署名をする機能を備えています (macOS のシングルユーザーアプリ、コンポーネント、サーバーおよびクライアントアプリ)。 アプリケーションを署名することにより、 macOS において「Mac App Store と確認済みの開発元からのアプリケーションを許可」のオプションが選択されているときに Gatekeeper の機能を使用してアプリケーションを実行することが可能になります (後述の "Gatekeeper について" を参照ください)。 +アプリケーションビルダーは、macOS 環境下において組み込み4Dアプリに署名をする機能を備えています (macOS のシングルユーザーアプリ、コンポーネント、サーバーおよびクライアントアプリ)。アプリケーションを署名することにより、 macOS において「Mac App Store と確認済みの開発元からのアプリケーションを許可」のオプションが選択されているときに Gatekeeper の機能を使用してアプリケーションを実行することが可能になります (後述の "Gatekeeper について" を参照ください)。 - macOS でのアプリケーションビルド手順に証明書を含めるには、**アプリケーションを署名** オプションをチェックしてください。 4D は、署名に必要な要素の可用性をビルド時にチェックします: @@ -587,15 +585,15 @@ Windows用サーバーアプリケーションのビルドに使用される App このオプションは Windows と macOS 両方の環境で表示されますが、macOS の場合においてのみ有効です。 -- **認証名** - Apple によって有効化されたデベロッパー認証名を入力してください。 この認証名は通常、キーチェーンアクセスユーティリティ内の証明書の名前と一緒です (下図の赤枠): +- **認証名** - Apple によって有効化されたデベロッパー認証名を入力してください。この認証名は通常、キーチェーンアクセスユーティリティ内の証明書の名前と一緒です (下図の赤枠): ![](../assets/en/Project/certificate.png) Apple からデベロッパー認証を取得するためには、キーチェーンアクセスのメニューのコマンドを使用するか、次のリンクへ移動してください: [http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html](http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html)。 -> この証明書の取得には Apple の codesign ユーティリティが必要になります。 このユーティリティはデフォルトで提供されており、通常 “/usr/bin/” フォルダーにあります。 エラーが起きた際には、このユーティリティがディスク上にあるかどうかを確認してください。 +> この証明書の取得には Apple の codesign ユーティリティが必要になります。 このユーティリティはデフォルトで提供されており、通常 “/usr/bin/” フォルダーにあります。エラーが起きた際には、このユーティリティがディスク上にあるかどうかを確認してください。 -- **自己署名証明書の生成** - 自己署名証明書を生成するための "証明書アシスタント" を実行します。 Apple 社のデベロッパー認証を持たない場合には、自己署名証明書を提供する必要があります。 この証明書を使うと、アプリケーションを内部的に運用する場合に警告が表示されません。 アプリケーションを外部で運用する場合 (http やメールを介した場合) には、アプリケーションの開発者が不明であるという警告が macOS での起動時に表示されます。 その場合でもユーザーはアプリケーションを "強制的" に起動することができます。 "証明書アシスタント" では、オプションを適切に選択します: +- **自己署名証明書の生成** - 自己署名証明書を生成するための "証明書アシスタント" を実行します。 Apple 社のデベロッパー認証を持たない場合には、自己署名証明書を提供する必要があります。この証明書を使うと、アプリケーションを内部的に運用する場合に警告が表示されません。アプリケーションを外部で運用する場合 (http やメールを介した場合) には、アプリケーションの開発者が不明であるという警告が macOS での起動時に表示されます。その場合でもユーザーはアプリケーションを "強制的" に起動することができます。"証明書アシスタント" では、オプションを適切に選択します: ![](../assets/en/Admin/Cert1.png) ![](../assets/en/Admin/Cert2.png) @@ -603,9 +601,9 @@ Apple からデベロッパー認証を取得するためには、キーチェ #### Gatekeeper について -Gatekeeper とは macOS のセキュリティ機能で、インターネットからダウンロードしてきたアプリケーションの実行を管理するものです。 もしダウンロードしたアプリケーションが Apple Store からダウンロードしたものではない、または署名されていない場合には実行が拒否されます。 +Gatekeeper とは macOS のセキュリティ機能で、インターネットからダウンロードしてきたアプリケーションの実行を管理するものです。もしダウンロードしたアプリケーションが Apple Store からダウンロードしたものではない、または署名されていない場合には実行が拒否されます。 -> Apple Silicon マシンでは、4D [コンポーネント](../Project/components.md) は実際に署名されている必要があります。 署名されていないコンポーネントの場合、アプリケーション起動時にエラー ("lib4d-arm64.dylib を開けません...") +> Apple Silicon マシンでは、4D [コンポーネント](../Project/components.md) は実際に署名されている必要があります。署名されていないコンポーネントの場合、アプリケーション起動時にエラー ("lib4d-arm64.dylib を開けません...") アプリケーションビルダーの **アプリケーションに署名** 機能によって、このセキュリティオプションと互換性のあるアプリケーションやコンポーネントをデフォルトで生成することができます。 @@ -613,7 +611,7 @@ Gatekeeper とは macOS のセキュリティ機能で、インターネット macOS 10.14.5 (Mojave) および 10.15 (Catalina) において、アプリケーションのノータリゼーション (公証) が Apple より強く推奨されています。 公証を得ていないアプリケーションをインターネットからダウンロードした場合、デフォルトでブロックされます。 -Apple の公証サービスを利用するのに必要な条件を満たすため、4D の [ビルトインの署名機能](#macos-署名に使用する証明書) が適合されました。 公証自体はデベロッパーによっておこなわなくてはいけないもので、4D とは直接関係ありません。 なお、Xcode のインストールが必須である点に注意してください。 公証についての詳細は [4D ブログ記事 (英語)](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) や関連の [テクニカルノート (日本語)](https://4d-jp.github.io/tech_notes/20-02-25-notarization/) を参照ください。 +Apple の公証サービスを利用するのに必要な条件を満たすため、4D の [ビルトインの署名機能](#macos-署名に使用する証明書) が適合されました。公証自体はデベロッパーによっておこなわなくてはいけないもので、4D とは直接関係ありません。 なお、Xcode のインストールが必須である点に注意してください。公証についての詳細は [4D ブログ記事 (英語)](https://blog.4d.com/how-to-notarize-your-merged-4d-application/) や関連の [テクニカルノート (日本語)](https://4d-jp.github.io/tech_notes/20-02-25-notarization/) を参照ください。 公証についての詳細は、[Apple のデベロッパー Web サイト](https://developer.apple.com/documentation/xcode/notarizing_your_app_before_distribution/customizing_the_notarization_workflow) を参照ください。 @@ -633,7 +631,7 @@ Apple の公証サービスを利用するのに必要な条件を満たすた アイコンファイルの名前は、プロジェクトファイル名 + "*.ico*" 拡張子でなければなりません。 4Dは自動でこのファイルを認識し、アイコンとして使用します。 -また、buildApp.4DSettings ファイルにて、使用すべきアイコンを [XML keys](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.ja.html) (SourcesFiles の項参照)によって指定することも可能です。 次のキーが利用できます: +また、buildApp.4DSettings ファイルにて、使用すべきアイコンを [XML keys](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.ja.html) (SourcesFiles の項参照)によって指定することも可能です。次のキーが利用できます: - RuntimeVLIconWinPath - RuntimeVLIconMacPath @@ -648,7 +646,7 @@ Apple の公証サービスを利用するのに必要な条件を満たすた ### データファイルを開く -ユーザーが組み込みアプリ、またはアプリのアップデート (シングルユーザー、またはクライアント/サーバーアプリ) を起動すると、4D は有効なデータファイルを選択しようとします。 アプリケーションによって、複数の場所が順次検索されます。 +ユーザーが組み込みアプリ、またはアプリのアップデート (シングルユーザー、またはクライアント/サーバーアプリ) を起動すると、4D は有効なデータファイルを選択しようとします。アプリケーションによって、複数の場所が順次検索されます。 組み込みアプリ起動時のオープニングシーケンスは以下のようになっています: @@ -673,17 +671,17 @@ userPrefs:=Get 4D folder(Active 4D Folder) これにより、アプリケーションのアップデートを提供したときにも、ローカルのユーザーデータファイル (最後に使用されたデータファイル) が初回の起動から自動的に開かれます。 -このメカニズムは標準的な運用に適しています。 しかしながら特定の場合、たとえば組み込みアプリケーションを複製した場合などにおいて、データファイルとアプリケーションのリンクを変えたいことがあるかもしれません (次章参照)。 +このメカニズムは標準的な運用に適しています。しかしながら特定の場合、たとえば組み込みアプリケーションを複製した場合などにおいて、データファイルとアプリケーションのリンクを変えたいことがあるかもしれません (次章参照)。 #### データリンクモードの設定 -コンパイルされたアプリケーションでは、4D は最後に使用されたデータファイルを自動的に使用します。 デフォルトでは、データファイルのパスはアプリケーションのユーザー設定フォルダー内に保存され、 \*\*アプリケーション名 \*\* でリンクされます。 +コンパイルされたアプリケーションでは、4D は最後に使用されたデータファイルを自動的に使用します。デフォルトでは、データファイルのパスはアプリケーションのユーザー設定フォルダー内に保存され、 \*\*アプリケーション名 \*\* でリンクされます。 -異なるデータファイルを使用するために組み込みアプリを複製する場合には、この方法は適さないかもしれません。 複製されたアプリは同じアプリケーションユーザー設定フォルダーを共有するため、同じデータファイルを使用することになります (最後に使用されたファイルが開かれるため、データファイル名を変更した場合でも結果は同じです)。 +異なるデータファイルを使用するために組み込みアプリを複製する場合には、この方法は適さないかもしれません。複製されたアプリは同じアプリケーションユーザー設定フォルダーを共有するため、同じデータファイルを使用することになります (最後に使用されたファイルが開かれるため、データファイル名を変更した場合でも結果は同じです)。 -そのため 4D では、アプリケーションパスを使用してデータファイルとリンクすることも可能です。 このとき、データファイルは特定のパスを使用してリンクされるので、最後に開かれたファイルであるかは問われません。 この設定を使うには、データリンクモードの基準を **アプリケーションパス** に設定します。 +そのため 4D では、アプリケーションパスを使用してデータファイルとリンクすることも可能です。このとき、データファイルは特定のパスを使用してリンクされるので、最後に開かれたファイルであるかは問われません。この設定を使うには、データリンクモードの基準を **アプリケーションパス** に設定します。 -このモードを使えば、組み込みアプリがいくつあっても、それぞれが専用のデータファイルを使えます。 ただし、デメリットもあります: アプリケーションパッケージを移動させてしまうとアプリケーションパスが変わってしまうため、データファイルを見つけられなくなります。 この場合、ユーザーは開くデータファイルを指定するダイアログを提示され、正しいファイルを選択しなくてはなりません。 一度選択されれば、*lastDataPath.xml* ファイルが更新され、新しい "executablePath" 属性のエントリーが保存されます。 +このモードを使えば、組み込みアプリがいくつあっても、それぞれが専用のデータファイルを使えます。ただし、デメリットもあります: アプリケーションパッケージを移動させてしまうとアプリケーションパスが変わってしまうため、データファイルを見つけられなくなります。 この場合、ユーザーは開くデータファイルを指定するダイアログを提示され、正しいファイルを選択しなくてはなりません。 一度選択されれば、*lastDataPath.xml* ファイルが更新され、新しい "executablePath" 属性のエントリーが保存されます。 *データがアプリケーション名でリンクされている場合の複製:* ![](../assets/en/Project/datalinking1.png) @@ -691,24 +689,24 @@ userPrefs:=Get 4D folder(Active 4D Folder) *データがアプリケーションパスでリンクされている場合の複製:* ![](../assets/en/Project/datalinking2.png) -このデータリンクモードはアプリケーションビルドの際に選択することができます。 これには、次の二つの方法があります: +このデータリンクモードはアプリケーションビルドの際に選択することができます。これには、次の二つの方法があります: - アプリケーションビルダーの[アプリケーションページ](#アプリケーションページ) あるいは [クライアント/サーバーページ](#クライアント-サーバーページ) を使用する。 - シングルユーザーまたはサーバーアプリケーションの **LastDataPathLookup** XMLキーを使用する。 ### デフォルトのデータフォルダーを定義する -4D では、アプリケーションビルド時にデフォルトのデータファイルを指定することができます。 アプリケーションの初回起動時に、開くべきローカルデータファイルが見つからなかった場合 (前述の [オープニングシーケンス](#データファイルを開く)参照)、デフォルトのデータファイルが読み取り専用モードで自動的に開かれます。 この機能を使って、組み込みアプリを初回起動したときのデータファイル作成・選択の操作をより制御することができます。 +4D では、アプリケーションビルド時にデフォルトのデータファイルを指定することができます。アプリケーションの初回起動時に、開くべきローカルデータファイルが見つからなかった場合 (前述の [オープニングシーケンス](#データファイルを開く)参照)、デフォルトのデータファイルが読み取り専用モードで自動的に開かれます。この機能を使って、組み込みアプリを初回起動したときのデータファイル作成・選択の操作をより制御することができます。 具体的には、次のような場合に対応できます: -- 新しい、またはアップデートされた組み込みアプリを起動したときに、"データファイルを開く" ダイアログが表示されるのを防ぐことができます。 たとえば、デフォルトデータファイルが開かれたことを起動時に検知して、独自のコードやダイアログを実行して、ローカルデータファイルの作成や選択を促すことができます。 +- 新しい、またはアップデートされた組み込みアプリを起動したときに、"データファイルを開く" ダイアログが表示されるのを防ぐことができます。たとえば、デフォルトデータファイルが開かれたことを起動時に検知して、独自のコードやダイアログを実行して、ローカルデータファイルの作成や選択を促すことができます。 - デモアプリなどの用途で、読み取り専用データしか持たない組み込みアプリを配布することができます。 デフォルトのデータファイルを定義・使用するには: -- デフォルトのデータファイル (名称は必ず "Default.4DD") を、データベースプロジェクトのデフォルトフォルダー (名称は必ず "Default Data") 内に保存します。 このデフォルトのデータファイルには、プロジェクト構成に応じて必要なファイルもすべて揃っている必要があります: インデックス (.4DIndx)、外部BLOB、ジャーナル、他。 必ず、有効なデフォルトデータファイルを用意するようにしてください。 なお、デフォルトデータファイルはつねに読み取り専用モードで開かれるため、データファイルの作成前に、あらかじめ大元のストラクチャー設定の "ログを使用" オプションを非選択にしておくことが推奨されます。 -- アプリケーションをビルドすると、このデフォルトデータフォルダーが組み込みアプリに統合されます。 同フォルダー内ファイルはすべて一緒に埋め込まれます。 +- デフォルトのデータファイル (名称は必ず "Default.4DD") を、データベースプロジェクトのデフォルトフォルダー (名称は必ず "Default Data") 内に保存します。このデフォルトのデータファイルには、プロジェクト構成に応じて必要なファイルもすべて揃っている必要があります: インデックス (.4DIndx)、外部BLOB、ジャーナル、他。必ず、有効なデフォルトデータファイルを用意するようにしてください。なお、デフォルトデータファイルはつねに読み取り専用モードで開かれるため、データファイルの作成前に、あらかじめ大元のストラクチャー設定の "ログを使用" オプションを非選択にしておくことが推奨されます。 +- アプリケーションをビルドすると、このデフォルトデータフォルダーが組み込みアプリに統合されます。同フォルダー内ファイルはすべて一緒に埋め込まれます。 この機能を図示すると次のようになります: @@ -742,26 +740,26 @@ userPrefs:=Get 4D folder(Active 4D Folder) ### 最後に使用したサーバーパスを保存する -最後に使用され検証されたサーバーパスは、アプリケーションのユーザー設定フォルダー内の "lastServer.xml" ファイルに自動的に保存されます。 このフォルダーは次の場所に保存されています: +最後に使用され検証されたサーバーパスは、アプリケーションのユーザー設定フォルダー内の "lastServer.xml" ファイルに自動的に保存されます。このフォルダーは次の場所に保存されています: ```4d userPrefs:=Get 4D folder(Active 4D Folder) ``` -このメカニズムは、最初に指定したサーバーが何らかの理由 (例えばメンテナンスモードなど) で一時的に使用できないケースに対応します。 こういった状態が初めて起こったときにはサーバー選択ダイアログボックスが表示され (ただし許可されていた場合に限ります、後述参照)、ほかのサーバーをユーザーが手動で選択すると、その接続が成功した場合にはそのパスが保存されます。 それ以降に接続ができなかった場合には、"lastServer.xml" のパス情報によって自動的に対処されます。 +このメカニズムは、最初に指定したサーバーが何らかの理由 (例えばメンテナンスモードなど) で一時的に使用できないケースに対応します。こういった状態が初めて起こったときにはサーバー選択ダイアログボックスが表示され (ただし許可されていた場合に限ります、後述参照)、ほかのサーバーをユーザーが手動で選択すると、その接続が成功した場合にはそのパスが保存されます。それ以降に接続ができなかった場合には、"lastServer.xml" のパス情報によって自動的に対処されます。 -> - ネットワークの設定などの影響で、クライアントアプリが恒久的に検索サービスを使ったサーバー接続ができない場合には、ビルド時にあらかじめ "BuildApp.4DSettings" ファイル内の [IPAddress](https://doc.4d.com/4Dv20/4D/20/IPAddress.300-6335763.ja.html) キーでホスト名を指定しておくことが推奨されます。 このメカニズムはあくまで一時的な接続不可状態の場合を想定しています。 +> - ネットワークの設定などの影響で、クライアントアプリが恒久的に検索サービスを使ったサーバー接続ができない場合には、ビルド時にあらかじめ "BuildApp.4DSettings" ファイル内の [IPAddress](https://doc.4d.com/4Dv20/4D/20/IPAddress.300-6335763.ja.html) キーでホスト名を指定しておくことが推奨されます。このメカニズムはあくまで一時的な接続不可状態の場合を想定しています。 > - スタートアップ時に **Alt/Option** キーを押しながら起動してサーバー接続ダイアログボックスを表示する方法は、すべての場合において可能です。 ### エラー時のサーバー選択ダイアログボックス使用の可・不可 -組み込みクライアントアプリがサーバーに接続できない場合、標準のサーバー選択ダイアログボックスを表示するかどうかは設定しておくことができます。 この設定は、アプリケーションをビルドするマシン上の [ServerSelectionAllowedXML](https://doc.4d.com/4Dv20/4D/20/ServerSelectionAllowed.300-6335767.ja.html) キーの値によって制御されます: +組み込みクライアントアプリがサーバーに接続できない場合、標準のサーバー選択ダイアログボックスを表示するかどうかは設定しておくことができます。この設定は、アプリケーションをビルドするマシン上の [ServerSelectionAllowedXML](https://doc.4d.com/4Dv20/4D/20/ServerSelectionAllowed.300-6335767.ja.html) キーの値によって制御されます: -- **エラーメッセージを表示し、サーバー選択ダイアログボックスを表示させない**。 ユーザーは 選択... ボタンをクリックすることによって、サーバー選択ウィンドウにアクセスできます。 アプリケーションは終了する以外の選択肢がありません。 +- **エラーメッセージを表示し、サーバー選択ダイアログボックスを表示させない**。ユーザーは 選択... ボタンをクリックすることによって、サーバー選択ウィンドウにアクセスできます。アプリケーションは終了する以外の選択肢がありません。 `ServerSelectionAllowed`: **False** 値、またはキーを省略 ![](../assets/en/Project/connect1.png) -- **エラーメッセージを表示し、サーバー選択ダイアログボックスへのアクセスを可能にする**。 ユーザーは **選択...** ボタンをクリックすることによって、サーバー選択ウィンドウにアクセスできます。 +- **エラーメッセージを表示し、サーバー選択ダイアログボックスへのアクセスを可能にする**。ユーザーは **選択...** ボタンをクリックすることによって、サーバー選択ウィンドウにアクセスできます。 `ServerSelectionAllowed`: **True** ![](../assets/en/Project/connect2.png) ![](../assets/en/Project/connect3.png) @@ -770,21 +768,21 @@ userPrefs:=Get 4D folder(Active 4D Folder) 原則的に、サーバーアプリケーションや組み込みのシングルユーザーアプリケーションを更新するには、ユーザーの介入 (またはカスタムのシステムルーチンのプログラミング) が必要です。 組み込みアプリケーションの新しいバージョンが利用可能になるたびに、運用中のアプリケーションを終了して、古いファイルを新しいファイルに手動で置き換え、その後アプリケーションを再起動してカレントのデータファイルを選択しなければなりません。 -この手順は、次のランゲージコマンドを使って大部分を自動化することができます: [`SET UPDATE FOLDER`](../commands/set-update-folder)、[`RESTART 4D`](../commands/restart-4d)、および[`Last update log path`](../commands/last-update-log-path)(モニタリング操作用)。 これらのコマンドを使い、4Dアプリケーションに、以下に説明する自動更新手順をトリガーする機能を実装します。 具体的には、メニューコマンドや、バックグラウンドで動作するプロセスなどを実装し、サーバーにアーカイブがあるかどうかを定期的にチェックします。 +この手順は、次のランゲージコマンドを使って大部分を自動化することができます: [`SET UPDATE FOLDER`](../commands/set-update-folder)、[`RESTART 4D`](../commands/restart-4d)、および[`Last update log path`](../commands/last-update-log-path)(モニタリング操作用)。これらのコマンドを使い、4Dアプリケーションに、以下に説明する自動更新手順をトリガーする機能を実装します。具体的には、メニューコマンドや、バックグラウンドで動作するプロセスなどを実装し、サーバーにアーカイブがあるかどうかを定期的にチェックします。 > また、Windows で保護されたファイルを使用できるように、インストール権限を昇格させる XMLキーもあります ([アプリケーションビルド設定ファイル](https://doc.4d.com/4Dv20/4D/20/4D-XML-Keys-BuildApplication.100-6335734.ja.html) のマニュアルを参照ください)。 以下に、サーバーや組み込みシングルユーザーアプリケーションをアップデートする場合のシナリオを説明します: 1. HTTPサーバーなどを使用して、サーバーアプリケーションまたは組み込みシングルユーザーアプリケーションの新バージョンを本番環境のマシンに転送します。 -2. 本番環境のアプリケーションでは、`SET UPDATE FOLDER` コマンドを呼び出します。このコマンドは、カレントアプリケーションの "保留中" のアップデートが置かれたフォルダーの場所を指定します。 任意で、本番環境バージョンのカスタム要素 (ユーザーファイル) をこのフォルダーにコピーすることもできます。 -3. 本番環境のアプリケーションで、`RESTART 4D` コマンドを呼び出します。 このコマンドは、"updater" という名前のユーティリティプログラムの実行を自動的にトリガーします。 このユーティリティは カレントのアプリケーションを終了し、 "保留中" のアップデートが指定されている場合はそれで置き換え、カレントのデータファイルでアプリケーションを再起動します。 旧バージョンは名称変更されます。 +2. 本番環境のアプリケーションでは、`SET UPDATE FOLDER` コマンドを呼び出します。このコマンドは、カレントアプリケーションの "保留中" のアップデートが置かれたフォルダーの場所を指定します。任意で、本番環境バージョンのカスタム要素 (ユーザーファイル) をこのフォルダーにコピーすることもできます。 +3. 本番環境のアプリケーションで、`RESTART 4D` コマンドを呼び出します。 このコマンドは、"updater" という名前のユーティリティプログラムの実行を自動的にトリガーします。 このユーティリティは カレントのアプリケーションを終了し、 "保留中" のアップデートが指定されている場合はそれで置き換え、カレントのデータファイルでアプリケーションを再起動します。旧バージョンは名称変更されます。 > この手順は、[サービスとして実行される](../server/service.md) Windowsサーバーアプリケーションでも使用することができます。 ### アップデートログ -インストール手順により、ターゲットマシン上の組み込みアプリケーション (クライアント、サーバー、またはシングルユーザー) の更新処理の詳細が記録されたログファイルが作成されます。 このファイルは、インストール中に発生したエラーの分析に役立ちます。 +インストール手順により、ターゲットマシン上の組み込みアプリケーション (クライアント、サーバー、またはシングルユーザー) の更新処理の詳細が記録されたログファイルが作成されます。このファイルは、インストール中に発生したエラーの分析に役立ちます。 アップデートログは、`YYYY-MM-DD_HH-MM-SS_log_X.txt` という名前で、たとえば、2021年 8月 25日の 14:23 に作成されたファイルに対しては `2021-08-25_14-23-00_log_1.txt` という名前になります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/clientServer.md b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/clientServer.md index fbead385150a25..122cea4aa4771a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/clientServer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/clientServer.md @@ -5,26 +5,26 @@ title: クライアント/サーバー 組み込みクライアント/サーバーアプリケーションまたはリモートプロジェクトの形で、4Dデスクトップアプリケーションをクライアント/サーバー構成で運用することができます。 -- **組み込みクライアント/サーバーアプリケーション** は [アプリケーションビルダー](building.md#クライアントサーバーページ) を使って生成します。 これらは、アプリケーションの運用に使います。 +- **組み込みクライアント/サーバーアプリケーション** は [アプリケーションビルダー](building.md#クライアントサーバーページ) を使って生成します。これらは、アプリケーションの運用に使います。 -- **リモートプロジェクト** とは、4D Server 上で開いた [.4DProject](Project/architecture.md) ファイルのことで、リモートモードの 4D を使って接続します。 4D Server は、プロジェクトの [圧縮形式](building.md#コンパイル済みストラクチャーをビルド) である .4dz ファイルをリモートの 4D に送信します。つまり、ストラクチャーファイルは読み取り専用です。 この構成は通常、アプリケーションのテストに使います。 +- **リモートプロジェクト** とは、4D Server 上で開いた [.4DProject](Project/architecture.md) ファイルのことで、リモートモードの 4D を使って接続します。 4D Server は、プロジェクトの [圧縮形式](building.md#コンパイル済みストラクチャーをビルド) である .4dz ファイルをリモートの 4D に送信します。つまり、ストラクチャーファイルは読み取り専用です。この構成は通常、アプリケーションのテストに使います。 ![](../assets/en/getStart/localremote.png) -> ただし、**4D Server と同じマシン** から接続している場合には、プロジェクトファイルの変更が可能です。 この [特殊機能](#4d-と-4d-server-の同じマシン上での使用) により、クライアント/サーバーアプリケーションを運用時と同じコンテキストで開発することができます。 +> ただし、**4D Server と同じマシン** から接続している場合には、プロジェクトファイルの変更が可能です。この [特殊機能](#4d-と-4d-server-の同じマシン上での使用) により、クライアント/サーバーアプリケーションを運用時と同じコンテキストで開発することができます。 ## 組み込みクライアント/サーバーアプリケーションを開く ビルドされたクライアント/サーバーアプリケーションは起動や接続処理が簡易です: -- サーバーを起動するには、サーバーアプリケーションをダブルクリックします。 プロジェクトファイルを選択する必要はありません。 +- サーバーを起動するには、サーバーアプリケーションをダブルクリックします。プロジェクトファイルを選択する必要はありません。 - クライアントを起動するにも、同様にクライアントアプリケーションをダブルクリックします。すると、サーバーアプリケーションへの接続が直接おこなわれるため、 詳細については [アプリケーションビルド](building.md#クライアント/サーバーアプリケーションとは) ページを参照ください。 ## リモートプロジェクトを開く -4D Server 上で動いているプロジェクトに初めて接続する場合は、通常は標準の接続ダイアログを使います。 以降は、**最近使用したプロジェクトを開く** メニューや、4DLink ショートカットファイルを使って直接接続できるようになります。 +4D Server 上で動いているプロジェクトに初めて接続する場合は、通常は標準の接続ダイアログを使います。以降は、**最近使用したプロジェクトを開く** メニューや、4DLink ショートカットファイルを使って直接接続できるようになります。 4D Server で実行されているプロジェクトに接続するには: @@ -32,22 +32,22 @@ title: クライアント/サーバー - Welcome ウィザードにて **4D Serverに接続** を選択します。 - **ファイル** メニューより \*\*開く > リモートプロジェクト...\*\*を選択するか、**開く** ツールバーボタンより同様に選択します。 -4D Server に接続するためのダイアログが表示されます。 ダイアログには **最近使用**、**利用可**、および **カスタム** という、3つのタブがあります。 +4D Server に接続するためのダイアログが表示されます。ダイアログには **最近使用**、**利用可**、および **カスタム** という、3つのタブがあります。 -リモートの 4D と同じサブネットワークに 4D Server が接続されている場合は **利用可** タブを選択します。 4D Server には組み込みのブロードキャストシステムがあり、デフォルトで、ネットワーク上に利用可能な 4D Server データベースの名前を公開します。 このリストは、名前が見つかった順に表示され、動的に更新されます。 +リモートの 4D と同じサブネットワークに 4D Server が接続されている場合は **利用可** タブを選択します。 4D Server には組み込みのブロードキャストシステムがあり、デフォルトで、ネットワーク上に利用可能な 4D Server データベースの名前を公開します。このリストは、名前が見つかった順に表示され、動的に更新されます。 ![](../assets/en/getStart/serverConnect.png) このリストからサーバーに接続するには、名前上でダブルクリックするか、名前を選択して **OK** ボタンをクリックします。 -公開されているプロジェクトが **利用可** タブに見つからない場合には、**カスタム** タブを開きます。 カスタムページでは、IPアドレスでネットワーク上のサーバーを指定し、それに任意の名前をつけられます。 +公開されているプロジェクトが **利用可** タブに見つからない場合には、**カスタム** タブを開きます。カスタムページでは、IPアドレスでネットワーク上のサーバーを指定し、それに任意の名前をつけられます。 ![](../assets/en/Desktop/serverConnect2.png) -- **プロジェクト名**: 4D Server プロジェクトのローカル名を指定できます。 この名前は **最近使用** ページでプロジェクトを参照する際に使用されます。 +- **プロジェクト名**: 4D Server プロジェクトのローカル名を指定できます。この名前は **最近使用** ページでプロジェクトを参照する際に使用されます。 - **ネットワークアドレス**: 4D Server が起動されたマシンの IPアドレスを指定します。 - 2つのサーバーが同じマシン上で同時に起動されているときは、IPアドレスの後にコロンとポート番号を続けます。例: `192.168.92.104:19820`。 - - デフォルトで、4D Server の公開ポートは 19813 です。 この番号は、プロジェクト設定で変更できます。 + - デフォルトで、4D Server の公開ポートは 19813 です。この番号は、プロジェクト設定で変更できます。 > [**開発モードを有効化する**](#開発モード) オプションは、特別な読み取り/書き込みモードでリモート接続を開きます。このモードでは、リモート4D からプロジェクトフォルダーへのアクセスが確保されている必要があります。 @@ -59,9 +59,9 @@ title: クライアント/サーバー インタープリターモードの場合、4D Server は *.4DProject* プロジェクトファイル (非圧縮) の [.4dz](building.md#コンパイル済みストラクチャーをビルド) ファイルを自動的に作成し、リモートマシンに送信します。 -- プロジェクトが編集され 4D Server にリロードされた場合など、必要に応じてプロジェクトの .4dzファイルは自動的に更新されます。 プロジェクトは次の場合にリロードされます: +- プロジェクトが編集され 4D Server にリロードされた場合など、必要に応じてプロジェクトの .4dzファイルは自動的に更新されます。プロジェクトは次の場合にリロードされます: - 4D Server アプリケーションウィンドウが OS の最前面に来たり、同じマシン上の 4D アプリケーションが編集を保存した場合 (後述参照) に自動でリロードされます。 - - [`RELOAD PROJECT`](../commands/reload-project) コマンドが実行されたとき。 プロジェクトの新しいバージョンをソース管理システムよりプルしたときなどに、このコマンドを呼び出す必要があります。 + - [`RELOAD PROJECT`](../commands/reload-project) コマンドが実行されたとき。プロジェクトの新しいバージョンをソース管理システムよりプルしたときなどに、このコマンドを呼び出す必要があります。 ### リモートマシンのプロジェクトファイルの更新 @@ -69,15 +69,15 @@ title: クライアント/サーバー ### 開発モード -4D Server における **開発モード** とは、接続したリモート4D アプリケーションに読み/書きアクセスが許可されるプロジェクトを開くときの特別なモードです。 プロジェクトは[**インタープリター** モード](../Concepts/interpreted.md) でなければなりません。 +4D Server における **開発モード** とは、接続したリモート4D アプリケーションに読み/書きアクセスが許可されるプロジェクトを開くときの特別なモードです。プロジェクトは[**インタープリター** モード](../Concepts/interpreted.md) でなければなりません。 -このモードでは、同じプロジェクトに対して複数のデベロッパーがデザイン環境で同時に作業することができます。 プロジェクトが**開発モード**で開かれている場合、以下のような特徴があります: +このモードでは、同じプロジェクトに対して複数のデベロッパーがデザイン環境で同時に作業することができます。プロジェクトが**開発モード**で開かれている場合、以下のような特徴があります: - プロジェクトファイルは読み/書きが可能な状態なので、メソッドやフォームなどを編集することができます。 -- 複数のリモート4D が、同じインタープリター版のプロジェクトファイルを同時に開いて、それを編集することができます。 この場合、自動ロックシステムが同じリソースへの同時アクセスを防止します。 -- 編集は全てのリモートデベロッパーに対して利用可能になります。 ただし、このときリモートデベロッパーに対しては自動的なプッシュは起こらなず、最新のバージョンのファイルを取得するためには更新を行う必要があります(更新は、デベロッパーがデザインモードからアプリケーションモードへと切り替えるか、あるいは **ファイル** メニューから **全て保存** を選択したときに毎回起こります)。 +- 複数のリモート4D が、同じインタープリター版のプロジェクトファイルを同時に開いて、それを編集することができます。この場合、自動ロックシステムが同じリソースへの同時アクセスを防止します。 +- 編集は全てのリモートデベロッパーに対して利用可能になります。ただし、このときリモートデベロッパーに対しては自動的なプッシュは起こらなず、最新のバージョンのファイルを取得するためには更新を行う必要があります(更新は、デベロッパーがデザインモードからアプリケーションモードへと切り替えるか、あるいは **ファイル** メニューから **全て保存** を選択したときに毎回起こります)。 -このモードを使用するには、リモート4D から[接続ダイアログボックス](#リモートプロジェクトを開く) から**開発モードを有効化する** を選択する必要があります。 次に**4D プロジェクトファイルを選択してください**と表示されます: 4D Server が開いている [.project ファイル](../Project/architecture.md#applicationname4dproject-ファイル) を選択する必要があります。 異なるファイルを選択した場合、開発モードが利用できないことを警告するアラートダイアログボックスが表示されます。 これは、リモート4D がプロジェクトフォルダーに対してネットワーク越しでもアクセス権を持っていなければならないことを意味します(例えばプロジェクトのroot フォルダーが共有されているなど、プロジェクトファイル全体が共有されている必要があります)。 +このモードを使用するには、リモート4D から[接続ダイアログボックス](#リモートプロジェクトを開く) から**開発モードを有効化する** を選択する必要があります。次に**4D プロジェクトファイルを選択してください**と表示されます: 4D Server が開いている [.project ファイル](../Project/architecture.md#applicationname4dproject-ファイル) を選択する必要があります。異なるファイルを選択した場合、開発モードが利用できないことを警告するアラートダイアログボックスが表示されます。これは、リモート4D がプロジェクトフォルダーに対してネットワーク越しでもアクセス権を持っていなければならないことを意味します(例えばプロジェクトのroot フォルダーが共有されているなど、プロジェクトファイル全体が共有されている必要があります)。 :::caution @@ -97,7 +97,7 @@ title: クライアント/サーバー :::note 互換性 -この機能は、バイナリーデータベースで作業するのに慣れていて、現在の構成を維持したままプロジェクトモードでの機能を利用したいような、小規模な開発チーム向けに設計されています。 しかしながら、4D プロジェクト上でのマルチユーザー開発については、デベロッパーがそれぞれのマシン上で開発を行い、その作業をソース管理リポジトリツール(Git、SVN など)で管理する標準のアーキテクチャーを使用することが強く推奨されます。 この構成であれば、デベロッパーが異なるブランチで作業をしたり、行った編集の比較、マージ、差し戻しなどが可能になり、大きな柔軟性を持ちます。 +この機能は、バイナリーデータベースで作業するのに慣れていて、現在の構成を維持したままプロジェクトモードでの機能を利用したいような、小規模な開発チーム向けに設計されています。しかしながら、4D プロジェクト上でのマルチユーザー開発については、デベロッパーがそれぞれのマシン上で開発を行い、その作業をソース管理リポジトリツール(Git、SVN など)で管理する標準のアーキテクチャーを使用することが強く推奨されます。この構成であれば、デベロッパーが異なるブランチで作業をしたり、行った編集の比較、マージ、差し戻しなどが可能になり、大きな柔軟性を持ちます。 ::: @@ -109,7 +109,7 @@ title: クライアント/サーバー ## 4D と 4D Server の同じマシン上での使用 -同じマシン上で 4D が 4D Server に接続すると、アプリケーションはシングルユーザーモードの 4D のようにふるまい、デザイン環境にてプロジェクトファイルの編集が可能です。 この機能により、クライアント/サーバーアプリケーションを運用時と同じコンテキストで開発することができます。 +同じマシン上で 4D が 4D Server に接続すると、アプリケーションはシングルユーザーモードの 4D のようにふるまい、デザイン環境にてプロジェクトファイルの編集が可能です。この機能により、クライアント/サーバーアプリケーションを運用時と同じコンテキストで開発することができます。 > 同じマシン上で 4D Server に 4D を接続する場合には、 [開発モード](#開発モード) オプションの設定にかかわらず **開発モード** が自動的に有効化されます。 @@ -117,8 +117,8 @@ title: クライアント/サーバー ただし、[標準のプロジェクトアーキテクチャー](Project/architecture.md) とは次のふるまいにおいて異なりますので、注意が必要です: -- 4D が使用する userPreferences.\{username\} フォルダーは、4D Server が使用するプロジェクトフォルダー内のものと同一ではありません。 この専用の "userPreferences" フォルダーはプロジェクトシステムフォルダー内 (つまり、.4dzプロジェクトを開く場合と同じ場所) に格納されます。 -- 4D が使用する DerivedData フォルダーは、4D Server が使用するプロジェクトフォルダー内のものと同一ではありません。 この専用の "DerivedDataRemote" フォルダーはプロジェクトのシステムフォルダー内に格納されます。 +- 4D が使用する userPreferences.\{username\} フォルダーは、4D Server が使用するプロジェクトフォルダー内のものと同一ではありません。この専用の "userPreferences" フォルダーはプロジェクトシステムフォルダー内 (つまり、.4dzプロジェクトを開く場合と同じ場所) に格納されます。 +- 4D が使用する DerivedData フォルダーは、4D Server が使用するプロジェクトフォルダー内のものと同一ではありません。この専用の "DerivedDataRemote" フォルダーはプロジェクトのシステムフォルダー内に格納されます。 - catalog.4DCatalog ファイルは 4D ではなく 4D Server によって編集されます。 catalog の情報はクライアント/サーバーリクエストによって同期されます。 - directory.json ファイルは 4D ではなく 4D Server によって編集されます。 directory の情報はクライアント/サーバーリクエストによって同期されます。 - 4D は、4D Server 上のものではなく、独自の内部的なコンポーネントやプラグインを使用します。 @@ -129,35 +129,35 @@ title: クライアント/サーバー ### コードの実行場所 -クライアント/サーバーアプリケーションにおいては、コードが実際に実行される場所を知っておくことが重要です: **サーバー側** あるいは **クライアント側** のどちらかです。 実行場所を知っておくことは、ユーザーセッション関連のコードの実装、プロセス間での情報の共有、またはデータのアクセスなどの際に非常に重要となります。 - -以下の表は、デフォルトでのコードの実行場所と、その実行場所を切り替えるための方法(許可されていれば)をまとめたものです。 この表での **ローカル** とは、コードはそれが実際に呼ばれたマシン上で実行されることを意味するという点に注意してください。 - -| コード | デフォルトの実行場所 | 切り替え方法 | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [ORDA データモデル関数](../ORDA/ordaClasses.md) | server | 関数定義内で `local` キーワードを使用 | -| ORDA 計算属性関数のうち [`get()`](../ORDA/ordaClasses.md#function-get-attributename)、 [`set()`](../ORDA/ordaClasses.md#function-set-attributename) | server | 関数定義内で `local` キーワードを使用 | -| ORDA 計算属性関数のうち [`query()`](../ORDA/ordaClasses.md#function-query-attributename)、 [`orderBy()`](../ORDA/ordaClasses.md#function-orderby-attributename) | server | n/a | -| ORDA イベント関数 [(全般)](../ORDA/orda-events.md) | server | n/a | -| ORDA イベント関数 [`constructor()`](../ORDA/ordaClasses.md#class-constructor-1) | local | n/a | -| ORDA イベント関数 [`event touched()`](../ORDA/orda-events.md#function-event-touched) | server | 関数定義内で `local` キーワードを使用 | -| [ユーザークラス関数](../Concepts/classes.md#function) | local | n/a | -| [共有シングルトンまたは施ッションシングルトンの関数](../Concepts/classes.md#シングルトンクラス) | local | 関数定義内で `server` キーワードを使用 | -| [トリガー](#トリガー) | server | n/a | -| クライアントから呼び出されたプロジェクトメソッド | client | [**サーバー上で実行する** オプション](../Project/project-method-properties.md#サーバー上で実行) をチェックする。 コードは、[ユーザーセッションプロセス](./sessions.md#remote-user-sessions) のツインプロセス内で実行されます。 | -| | | [`Execute on server`](../commands/execute-on-server) コマンドを呼び出す。 コードは[ストアドプロシージャーセッション](./sessions.md#ストアドプロシージャーセッション) 内で実行されます。 | -| サーバー上の[ストアドプロシージャー](#ストアドプロシージャー) から呼び出されたプロジェクトメソッド | server | [`EXECUTE ON CLIENT`](../commands/execute-on-client) コマンドを呼び出す。 ターゲットとなるクライアントは [登録されている](../commands/register-client) 必要があります。 | -| オブジェクトメソッド | local | n/a | -| データベースメソッド:
    • [On Backup Shutdown](../commands-legacy/on-backup-shutdown-database-method.md)
    • [On Backup Startup](../commands-legacy/on-backup-startup-database-method.md)
    • [On Server Close Connection](../commands-legacy/on-server-close-connection-database-method.md)
    • [On Server Open Connection](../commands-legacy/on-server-open-connection-database-method.md)
    • [On Server Shutdown](../commands-legacy/on-server-shutdown-database-method.md)
    • [On Server Startup](../commands-legacy/on-server-startup-database-method.md)
    • [On SQL Authentication](../commands-legacy/on-sql-authentication-database-method.md)
    • [On Web Authentication](../commands-legacy/on-web-authentication-database-method.md)
    • [On Web Connection](../commands-legacy/on-web-connection-database-method.md)
    | server | n/a | -| データベースメソッド:
    • [On Startup](../commands-legacy/on-startup-database-method.md)
    • [On Exit](../commands-legacy/on-exit-database-method.md)
    • [On Drop](../commands-legacy/on-drop-database-method.md)
    | client | n/a | +クライアント/サーバーアプリケーションにおいては、コードが実際に実行される場所を知っておくことが重要です: **サーバー側** あるいは **クライアント側** のどちらかです。実行場所を知っておくことは、ユーザーセッション関連のコードの実装、プロセス間での情報の共有、またはデータのアクセスなどの際に非常に重要となります。 + +以下の表は、デフォルトでのコードの実行場所と、その実行場所を切り替えるための方法(許可されていれば)をまとめたものです。この表での **ローカル** とは、コードはそれが実際に呼ばれたマシン上で実行されることを意味するという点に注意してください。 + +| コード | デフォルトの実行場所 | 切り替え方法 | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [ORDA データモデル関数](../ORDA/ordaClasses.md) | server | 関数定義内で `local` キーワードを使用 | +| ORDA 計算属性関数のうち [`get()`](../ORDA/ordaClasses.md#function-get-attributename)、 [`set()`](../ORDA/ordaClasses.md#function-set-attributename) | server | 関数定義内で `local` キーワードを使用 | +| ORDA 計算属性関数のうち [`query()`](../ORDA/ordaClasses.md#function-query-attributename)、 [`orderBy()`](../ORDA/ordaClasses.md#function-orderby-attributename) | server | n/a | +| ORDA イベント関数 [(全般)](../ORDA/orda-events.md) | server | n/a | +| ORDA イベント関数 [`constructor()`](../ORDA/ordaClasses.md#class-constructor-1) | local | n/a | +| ORDA イベント関数 [`event touched()`](../ORDA/orda-events.md#function-event-touched) | server | 関数定義内で `local` キーワードを使用 | +| [ユーザークラス関数](../Concepts/classes.md#function) | local | n/a | +| [共有シングルトンまたは施ッションシングルトンの関数](../Concepts/classes.md#シングルトンクラス) | local | 関数定義内で `server` キーワードを使用 | +| [トリガー](#トリガー) | server | n/a | +| クライアントから呼び出されたプロジェクトメソッド | client | [**サーバー上で実行する** オプション](../Project/project-method-properties.md#サーバー上で実行) をチェックする。コードは、[ユーザーセッションプロセス](./sessions.md#remote-user-sessions) のツインプロセス内で実行されます。 | +| | | [`Execute on server`](../commands/execute-on-server) コマンドを呼び出す。コードは[ストアドプロシージャーセッション](./sessions.md#ストアドプロシージャーセッション) 内で実行されます。 | +| サーバー上の[ストアドプロシージャー](#ストアドプロシージャー) から呼び出されたプロジェクトメソッド | server | [`EXECUTE ON CLIENT`](../commands/execute-on-client) コマンドを呼び出す。ターゲットとなるクライアントは [登録されている](../commands/register-client) 必要があります。 | +| オブジェクトメソッド | local | n/a | +| データベースメソッド:
    • [On Backup Shutdown](../commands-legacy/on-backup-shutdown-database-method.md)
    • [On Backup Startup](../commands-legacy/on-backup-startup-database-method.md)
    • [On Server Close Connection](../commands-legacy/on-server-close-connection-database-method.md)
    • [On Server Open Connection](../commands-legacy/on-server-open-connection-database-method.md)
    • [On Server Shutdown](../commands-legacy/on-server-shutdown-database-method.md)
    • [On Server Startup](../commands-legacy/on-server-startup-database-method.md)
    • [On SQL Authentication](../commands-legacy/on-sql-authentication-database-method.md)
    • [On Web Authentication](../commands-legacy/on-web-authentication-database-method.md)
    • [On Web Connection](../commands-legacy/on-web-connection-database-method.md)
    | server | n/a | +| データベースメソッド:
    • [On Startup](../commands-legacy/on-startup-database-method.md)
    • [On Exit](../commands-legacy/on-exit-database-method.md)
    • [On Drop](../commands-legacy/on-drop-database-method.md)
    | client | n/a | ### トリガー -[トリガー](../Develop/triggers) はデータベースエンジンが実際に存在するマシン上で実行されます。 4D Server では、トリガーはサーバーマシン上で実行されるプロセスのコンテキスト内で実行され、クライアントマシン上では実行されません。 具体的には、データベース操作を呼び出すユーザープロセスの "ツイン" プロセスのコンテキスト内で実行されます。 これらのツインプロセスはクライアント上のユーザープロセスと同じデータベースコンテキスト (具体的にはトランザクションの状態とレコードのロッキング) を共有しますが、ランゲージコンテキスト (変数、プロセス、セット、カレントセレクションなど) は共有しません。 ただしトリガーのテーブルのカレントレコードはすべてのコンテキストにおいて同じであるという点に注意してください。 +[トリガー](../Develop/triggers) はデータベースエンジンが実際に存在するマシン上で実行されます。 4D Server では、トリガーはサーバーマシン上で実行されるプロセスのコンテキスト内で実行され、クライアントマシン上では実行されません。具体的には、データベース操作を呼び出すユーザープロセスの "ツイン" プロセスのコンテキスト内で実行されます。これらのツインプロセスはクライアント上のユーザープロセスと同じデータベースコンテキスト (具体的にはトランザクションの状態とレコードのロッキング) を共有しますが、ランゲージコンテキスト (変数、プロセス、セット、カレントセレクションなど) は共有しません。ただしトリガーのテーブルのカレントレコードはすべてのコンテキストにおいて同じであるという点に注意してください。 :::note -サーバー上では、トリガーは割り当てられたアクション (作成/更新/削除) を処理するプロセス内で実行されます。 アクションが[サーバー上のプリエンプティブプロセス](../Develop/preemptive.md) (例: ストアドプロシージャーやスケーラブルセッションモードでの HTTPリクエスト) でトリガーされた場合には、トリガーは同じプリエンプティブプロセス内で実行されます。 ただし、アクションが 4Dリモートからトリガーされていた場合、トリガーはツインプロセスで実行され、このツインプロセスは必ずコオペラティブモードで実行されます (ツインプロセスはユーザーのすべての呼び出しに対して共有されます)。 +サーバー上では、トリガーは割り当てられたアクション (作成/更新/削除) を処理するプロセス内で実行されます。アクションが[サーバー上のプリエンプティブプロセス](../Develop/preemptive.md) (例: ストアドプロシージャーやスケーラブルセッションモードでの HTTPリクエスト) でトリガーされた場合には、トリガーは同じプリエンプティブプロセス内で実行されます。ただし、アクションが 4Dリモートからトリガーされていた場合、トリガーはツインプロセスで実行され、このツインプロセスは必ずコオペラティブモードで実行されます (ツインプロセスはユーザーのすべての呼び出しに対して共有されます)。 ::: @@ -165,7 +165,7 @@ title: クライアント/サーバー 4D のストアドプロシージャーとは、メソッドを実行したクライアントマシンではなく、サーバーマシン (あるいは登録されたクライアントマシン) 上で実行中のプロセス内でプロセスメソッドを実行するプロジェクトメソッドです。 -ローカルモードの 4D では、[`New process`](../commands/new-process) などのコマンドを使用すると、メソッドを実行できるユーザープロセスを開始することができます。 このメソッドは[プロセスメソッド](../Project/project-method-properties.md#プロセスメソッド) と呼ばれています。 同じことは、4D Server、クライアントマシンで行うことができます。 また、サーバーマシン上で[`Execute on server`](../commands/execute-on-server) コマンドを使用することで、メソッドを実行できるユーザープロセスを開始することができます。 さらに、[`EXECUTE ON CLIENT`](../commands/execute-on-client) コマンドを使用すると異なるクライアント上の他のプロセス内でメソッドを実行することができます。 どちらの場合においても、このメソッドは**ストアドプロシージャー**と呼ばれ、またサーバーマシンまたは他のクライアント上で開始されたプロセスについても(比喩から)同じくストアドプロシージャーと呼ばれます。 +ローカルモードの 4D では、[`New process`](../commands/new-process) などのコマンドを使用すると、メソッドを実行できるユーザープロセスを開始することができます。このメソッドは[プロセスメソッド](../Project/project-method-properties.md#プロセスメソッド) と呼ばれています。同じことは、4D Server、クライアントマシンで行うことができます。また、サーバーマシン上で[`Execute on server`](../commands/execute-on-server) コマンドを使用することで、メソッドを実行できるユーザープロセスを開始することができます。さらに、[`EXECUTE ON CLIENT`](../commands/execute-on-client) コマンドを使用すると異なるクライアント上の他のプロセス内でメソッドを実行することができます。どちらの場合においても、このメソッドは**ストアドプロシージャー**と呼ばれ、またサーバーマシンまたは他のクライアント上で開始されたプロセスについても(比喩から)同じくストアドプロシージャーと呼ばれます。 :::note @@ -179,20 +179,20 @@ title: クライアント/サーバー - テーブルごとのカレントセレクション: 各ストアドプロシージャーには、個別のカレントセレクションがあります。 1 つのテーブルは、別々のストアドプロシージャーで異なるカレントセレクションを持つことができます。 - テーブルごとのカレントレコード: 各テーブルは、ストアドプロシージャーごとに異なるカレントレコードを持つことができます。 -- 変数: 各ストアドプロシージャーには独自のプロセス変数があります。 プロセス変数は、その変数が設定されたストアドプロシージャーの範囲内でのみ認識されます。 +- 変数: 各ストアドプロシージャーには独自のプロセス変数があります。プロセス変数は、その変数が設定されたストアドプロシージャーの範囲内でのみ認識されます。 - デフォルトテーブル: 各ストアドプロシージャーには、独自のデフォルトテーブルがあります。 - プロセスセット: 各ストアドプロシージャーには、独自のプロセスセットがあります。 - エラー処理: 各ストアドプロシージャーには、独自のエラー処理メソッドを持てます。 - デバッガーウィンドウ: 各ストアドプロシージャーは、独自のデバッガーウィンドウを持てます。 -ユーザーインターフェースの点では、ストアドプロシージャーは、ウィンドウを開き、データを表示する (例えば[`DISPLAY RECORD`](../commands/display-records) を使用) ことができます。 4D クライアントマシン上で実行されるストアドプロシージャーではデータ入力ができます。 一方、サーバー上で実行されるストアドプロシージャーではデータ入力を開始することはできません。 +ユーザーインターフェースの点では、ストアドプロシージャーは、ウィンドウを開き、データを表示する (例えば[`DISPLAY RECORD`](../commands/display-records) を使用) ことができます。 4D クライアントマシン上で実行されるストアドプロシージャーではデータ入力ができます。一方、サーバー上で実行されるストアドプロシージャーではデータ入力を開始することはできません。 -ストアドプロシージャーは、システム (ハードウェアおよびメモリ) が許す限りいくつでも開始することができます。 事実、4D Server マシンは、4Dクライアントおよび Webブラウザーに応答するマシンであるだけではなく、サーバーマシンおよびリモート4D マシン上で実行中の他のプロセスと対話するプロセスを実行するマシンである、という見方をする必要があります。 +ストアドプロシージャーは、システム (ハードウェアおよびメモリ) が許す限りいくつでも開始することができます。事実、4D Server マシンは、4Dクライアントおよび Webブラウザーに応答するマシンであるだけではなく、サーバーマシンおよびリモート4D マシン上で実行中の他のプロセスと対話するプロセスを実行するマシンである、という見方をする必要があります。 :::note [**サーバー上で実行** メソッド属性](../Project/project-method-properties.md#サーバー上で実行) -を使用して、サーバー上のプロセスでメソッドを実行することもできます。ただしこの場合メソッドは、クライアントプロセスに対応するサーバー上のクライアントプロセスで実行されます。つまりクライアントプロセスの環境を使用できます。 この場合、これは 4D のストアドプロシージャーではありません。 +を使用して、サーバー上のプロセスでメソッドを実行することもできます。ただしこの場合メソッドは、クライアントプロセスに対応するサーバー上のクライアントプロセスで実行されます。つまりクライアントプロセスの環境を使用できます。この場合、これは 4D のストアドプロシージャーではありません。 ::: @@ -200,23 +200,23 @@ title: クライアント/サーバー サーバー上で実行されるストアドプロシージャーでのデータ入力を除き、ほとんどすべてのプロセスおよび4D ランゲージの機能は、ストアドプロシージャーにも適用されます。 -ストアドプロシージャーではデータの追加、検索、並べ替え、更新、削除が可能です。 ストアドプロシージャーではディスク上のドキュメントファイルへのアクセス、BLOB を使用した作業、レコードの印刷等を行うことができます。 ローカルの 4Dマシン上で作業を行う代わりに、サーバーマシン上や他の 4Dクライアントマシン上で実行していると考えてください。 +ストアドプロシージャーではデータの追加、検索、並べ替え、更新、削除が可能です。ストアドプロシージャーではディスク上のドキュメントファイルへのアクセス、BLOB を使用した作業、レコードの印刷等を行うことができます。ローカルの 4Dマシン上で作業を行う代わりに、サーバーマシン上や他の 4Dクライアントマシン上で実行していると考えてください。 -ローカルに実行されるストアドプロシージャーに対しサーバー上で実行されるストアドプロシージャーの明確な利点とは、データベースエンジンがあるサーバーマシン上でローカルに実行されるということです。 例えば、ネットワーク経由で[`APPLY TO SELECTION`](../commands/apply-to-selection) を行うと効率的ではありませんが、ストアドプロシージャー内では効率良く実行されます。 +ローカルに実行されるストアドプロシージャーに対しサーバー上で実行されるストアドプロシージャーの明確な利点とは、データベースエンジンがあるサーバーマシン上でローカルに実行されるということです。例えば、ネットワーク経由で[`APPLY TO SELECTION`](../commands/apply-to-selection) を行うと効率的ではありませんが、ストアドプロシージャー内では効率良く実行されます。 -クライアントマシン上で実行されるストアドプロシージャーを使用すれば、タスクの分割やクライアントマシン間の通信を最適化できます。 複数のマシンでストアドプロシージャーを実行する例題は、[`REGISTER CLIENT`](../commands/register-client) を参照してください。 +クライアントマシン上で実行されるストアドプロシージャーを使用すれば、タスクの分割やクライアントマシン間の通信を最適化できます。複数のマシンでストアドプロシージャーを実行する例題は、[`REGISTER CLIENT`](../commands/register-client) を参照してください。 -しかし、ストアドプロシージャーアーキテクチャーの最も重要な利点は、4D Server に追加の世界をもたらすところです。 ストアドプロシージャーを利用すると、独自の4D Server サービスを実現することができます。 唯一の制約はあなたの想像力だけです。 +しかし、ストアドプロシージャーアーキテクチャーの最も重要な利点は、4D Server に追加の世界をもたらすところです。ストアドプロシージャーを利用すると、独自の4D Server サービスを実現することができます。唯一の制約はあなたの想像力だけです。 #### ストアドプロシージャーが行わないこと -一般的に言って、サーバー上で実行されるストアドプロシージャーはインターフェース (メニューやウィンドウ、フォームなど) を扱うべきではありません。 実際インターフェースはサーバー上では管理されません。 +一般的に言って、サーバー上で実行されるストアドプロシージャーはインターフェース (メニューやウィンドウ、フォームなど) を扱うべきではありません。実際インターフェースはサーバー上では管理されません。 -サーバーマシン上でモーダルダイアログボックスを生成しうる可能性のあるコマンド(例: [`Open document`](../commands/open-document) に第一引数に空の文字列を渡して呼び出すなど)は、すべて避けるべきです。 サーバー画面の前には必ずしも常にユーザーがいるわけではないため、ユーザーアクションが必要なモーダルなダイアログボックスを表示することは、アプリケーションの一時的なブロックにつながることがあるという点に注意してください。 +サーバーマシン上でモーダルダイアログボックスを生成しうる可能性のあるコマンド(例: [`Open document`](../commands/open-document) に第一引数に空の文字列を渡して呼び出すなど)は、すべて避けるべきです。サーバー画面の前には必ずしも常にユーザーがいるわけではないため、ユーザーアクションが必要なモーダルなダイアログボックスを表示することは、アプリケーションの一時的なブロックにつながることがあるという点に注意してください。 #### サーバー上で禁止されるコマンド -以下はサーバー上で実行されるストアドプロシージャー内で使用すべきでないコマンドのリストです。 以下のコマンドの1つををストアドプロシージャー内で使用したら、4D Server 上で使ってはいけないというアラートが表示されます。 エラーは#67 が返ります。[`ON ERR CALL`](../commands/on-err-call) コマンドでインストールされたメソッドを通し、受け取ることができます。 +以下はサーバー上で実行されるストアドプロシージャー内で使用すべきでないコマンドのリストです。以下のコマンドの1つををストアドプロシージャー内で使用したら、4D Server 上で使ってはいけないというアラートが表示されます。エラーは#67 が返ります。[`ON ERR CALL`](../commands/on-err-call) コマンドでインストールされたメソッドを通し、受け取ることができます。 [`ADD RECORD`](../commands/add-record) [`APPEND MENU ITEM`](../commands/append-menu-item) @@ -253,7 +253,7 @@ title: クライアント/サーバー [`SHOW MENU BAR`](../commands/show-menu-bar) サーバー上で効果がないコマンド -以下のコマンドはサーバー上のストアドプロシージャーで呼び出された場合、効果がありません。 特定のエラーコードは返されません。 +以下のコマンドはサーバー上のストアドプロシージャーで呼び出された場合、効果がありません。特定のエラーコードは返されません。 [`GRAPH`](../commands/graph) [`MESSAGES OFF`](../commands/messages-off) @@ -267,7 +267,7 @@ title: クライアント/サーバー ![](../assets/en/Desktop/execute-method.png) -ここからメソッドを 4D Serverまたは他の 4Dクライアントマシン上で実行できます。 このリストに 4Dクライアントマシンを表示させるためには、まずそのマシンが[登録](#クライアントマシン上でのストアドプロシージャー) されていなければならないことに留意してください。 +ここからメソッドを 4D Serverまたは他の 4Dクライアントマシン上で実行できます。このリストに 4Dクライアントマシンを表示させるためには、まずそのマシンが[登録](#クライアントマシン上でのストアドプロシージャー) されていなければならないことに留意してください。 - また 4D 上では、[`Execute on server`](../commands/execute-on-server) または [`EXECUTE ON CLIENT`](../commands/execute-on-client) コマンドを使用してプログラムからストアドプロシージャーを開始できます。 - 4D Server上で実行されているメソッド (サーバーデータベースメソッド、**サーバー上で実行**属性付きのメソッド、またはストアドプロシージャー) は[`Execute on server`](../commands/execute-on-server)、 [`New process`](../commands/new-process)、または [`EXECUTE ON CLIENT`](../commands/execute-on-client) を使用してストアドプロシージャーを開始できます。 @@ -300,32 +300,31 @@ title: クライアント/サーバー (\*) サーバーマシンのインタープロセス変数も同様。 -重要: [`GET PROCESS VARIABLE`](../commands/get-process-variable)、 [`SET PROCESS VARIABLE`](../commands/set-process-variable) および [`VARIABLE TO VARIABLE`](../commands/variable-to-variable) コマンドを使用して行う“マシン間”のプロセス通信は、クライアントからサーバーに対してのみ可能です。 ストアドプロシージャーの変数を読み込んだり、書き込んだりするのは常にクライアントのプロセスです。 +重要: [`GET PROCESS VARIABLE`](../commands/get-process-variable)、 [`SET PROCESS VARIABLE`](../commands/set-process-variable) および [`VARIABLE TO VARIABLE`](../commands/variable-to-variable) コマンドを使用して行う“マシン間”のプロセス通信は、クライアントからサーバーに対してのみ可能です。ストアドプロシージャーの変数を読み込んだり、書き込んだりするのは常にクライアントのプロセスです。 #### クライアントマシン上でのストアドプロシージャー -ストアドプロシージャーを 1つあるいは複数の 4Dマシン上で実行できます。 クライアント上のストアドプロシージャーは、サーバー上のそれとおなじように実行されますが、クライアント上では[`ADD RECORD`](../commands/add-record) などの従来のコマンドを使用してデータ入力を行うことができます。 +ストアドプロシージャーを 1つあるいは複数の 4Dマシン上で実行できます。クライアント上のストアドプロシージャーは、サーバー上のそれとおなじように実行されますが、クライアント上では[`ADD RECORD`](../commands/add-record) などの従来のコマンドを使用してデータ入力を行うことができます。 サーバーまたは他のクライアントマシンによって起こされた、どのようなクライアントマシンで実行されているストアドプロシージャーも、明示的にこのセッションに登録されなければなりません。 4D クライアントを登録するには2つの方法があります。接続時に自動登録またはプログラミングによる登録です。 -- 4D Server へ接続する各 4Dクライアントマシンを自動的に登録する: データベース設定のクライアント-サーバーページ中、公開オプションタブの[**Execute On Client のために起動時にクライアント登録**](../settings/client-server.md#execute-on-clientのために起動時にクライアント登録)チェックボックスを利用します。 このオプションにチェックを入れると、データベースに接続した各 4Dクライアントマシンは、ストアドプロシージャーを実行することができるクライアントとして、4D Server から自動的に参照されます。 クライアントマシンに応じて名前がつけられた 4Dクライアントタイプのプロセスは、サーバー上に作成されます。 また対応するプロセスが、各クライアントマシン上に作成されます。 +- 4D Server へ接続する各 4Dクライアントマシンを自動的に登録する: データベース設定のクライアント-サーバーページ中、公開オプションタブの[**Execute On Client のために起動時にクライアント登録**](../settings/client-server.md#execute-on-clientのために起動時にクライアント登録)チェックボックスを利用します。このオプションにチェックを入れると、データベースに接続した各 4Dクライアントマシンは、ストアドプロシージャーを実行することができるクライアントとして、4D Server から自動的に参照されます。クライアントマシンに応じて名前がつけられた 4Dクライアントタイプのプロセスは、サーバー上に作成されます。また対応するプロセスが、各クライアントマシン上に作成されます。 - プログラミングによる 4Dクライアントの登録: プログラミングを使って 1つまたは複数の 4Dクライアントマシンを登録することができます。この方法では登録に必要なクライアントマシンを選択し、登録名を決めることができます。 [`REGISTER CLIENT`](../commands/register-client) コマンドで、どのような名前でもクライアントマシンを登録することができます。 -- 4D クライアントの登録解除: クライアントマシンが登録された方法にかかわらず、[`UNREGISTER CLIENT`](../commands/unregister-cient) コマンドで現在のセッションから指定したクライアントを登録解除することができます。 クライアントごとに付けられた名前の登録プロセスはサーバーマシンのユーザープロセスグループから消え、クライアント上の対応するプロセスも終了されます。 +- 4D クライアントの登録解除: クライアントマシンが登録された方法にかかわらず、[`UNREGISTER CLIENT`](../commands/unregister-cient) コマンドで現在のセッションから指定したクライアントを登録解除することができます。クライアントごとに付けられた名前の登録プロセスはサーバーマシンのユーザープロセスグループから消え、クライアント上の対応するプロセスも終了されます。 [`GET REGISTERED CLIENTS`](../commands/get-registered-clients) コマンドを使用して、セッションに登録されたクライアントのリストとタスク割り当て(実行待ちのメソッド数)を取得することができます。 ### 変数 -すべてのプロセス同様、各ストアドプロシージャーには独自のプロセス変数があります。 これらのプロセス変数、実行の各フェーズにおいて作成して動的に使用することができます。 +すべてのプロセス同様、各ストアドプロシージャーには独自のプロセス変数があります。これらのプロセス変数、実行の各フェーズにおいて作成して動的に使用することができます。 -4D Server は[インタープロセス変数](../Concepts/variables.md#インタープロセス変数) のテーブルを一つ管理しています(インタープロセス変数は *非推奨*です)。 これらの変数のスコープはサーバーマシンです。 コンパイルしたデータベースを実行している場合、インタープロセス変数テーブルの定義は、サーバーマシンとすべてのクライアントマシンとで共通です。各マシンはそれぞれ独自のインスタンスを保持します。 +4D Server は[インタープロセス変数](../Concepts/variables.md#インタープロセス変数) のテーブルを一つ管理しています(インタープロセス変数は *非推奨*です)。これらの変数のスコープはサーバーマシンです。コンパイルしたデータベースを実行している場合、インタープロセス変数テーブルの定義は、サーバーマシンとすべてのクライアントマシンとで共通です。各マシンはそれぞれ独自のインスタンスを保持します。 ### セットと命名セレクション -- プロセスセット/命名セレクション: プロセスオブジェクトには、それを作成したプロセス内、およびクライアントプロセスで作成された場合には対応するサーバー上のクライアントプロセス上でのみアクセスできます。 プロセスセットは、プロセスメソッドが終了すると直ちに消去されます。 プロセスオブジェクトはその名前に特別な接頭辞を必要としません。 -- インタープロセスセット/命名セレクション(*非推奨*): インタープロセスオブジェクトはそれが作成されたマシン上 (クライアントまたはサーバー) のすべてのプロセスで可視です。 名前の前に"小なり記号"と"大なり記号"の組合せ (\<>) が付いていれば、そのセットや命名セレクションはインタープロセスセットです。 -- ローカル/クライアントセット/命名セレクション: ローカル/クライアントオブジェクトはそれが作成されたプロセス内でのみ可視です。 ローカル/クライアントオブジェクトの名前の前には、ドル記号 ($) を付けます。 - 注: `UserSet` システムセットの名前は`$` で始まっていませんが、ローカル/クライアントセットです。 +- プロセスセット/命名セレクション: プロセスオブジェクトには、それを作成したプロセス内、およびクライアントプロセスで作成された場合には対応するサーバー上のクライアントプロセス上でのみアクセスできます。プロセスセットは、プロセスメソッドが終了すると直ちに消去されます。プロセスオブジェクトはその名前に特別な接頭辞を必要としません。 +- インタープロセスセット/命名セレクション(*非推奨*): インタープロセスオブジェクトはそれが作成されたマシン上 (クライアントまたはサーバー) のすべてのプロセスで可視です。名前の前に"小なり記号"と"大なり記号"の組合せ (\<>) が付いていれば、そのセットや命名セレクションはインタープロセスセットです。 +- ローカル/クライアントセット/命名セレクション: ローカル/クライアントオブジェクトはそれが作成されたプロセス内でのみ可視です。ローカル/クライアントオブジェクトの名前の前には、ドル記号 ($) を付けます。注: `UserSet` システムセットの名前は`$` で始まっていませんが、ローカル/クライアントセットです。 以下の表は命名セレクションとセットがどこで作成されたかに基づき、これらの可視性の原則を示しています (表は両タイプのオブジェクトで共通です): @@ -342,18 +341,17 @@ title: クライアント/サーバー x = 可視 -行いたい処理に基づき、この可視表を常に心にとめておいてください。 例えば[`DIFFERENCE`](../commands/difference)、 [`INTERSECTION`](../commands/intersection) あるいは[`UNION`](../commands/union) タイプの処理を行うとき、すべてのセットや命名セレクションが、処理を行うマシン上で可視であることを確認してください。 +行いたい処理に基づき、この可視表を常に心にとめておいてください。例えば[`DIFFERENCE`](../commands/difference)、 [`INTERSECTION`](../commands/intersection) あるいは[`UNION`](../commands/union) タイプの処理を行うとき、すべてのセットや命名セレクションが、処理を行うマシン上で可視であることを確認してください。 ### サーバー上で実行属性 -The **サーバー上で実行** プロジェクトメソッド属性は属性の一括設定ダイアログや[メソッドプロパティダイアログ](../Project/project-method-properties.md#サーバー上で実行) を使用して設定できます。 このオプションが選択されていると、そのプロジェクトメソッドは呼び出し方に関わらず常にサーバー上で実行されます。 +The **サーバー上で実行** プロジェクトメソッド属性は属性の一括設定ダイアログや[メソッドプロパティダイアログ](../Project/project-method-properties.md#サーバー上で実行) を使用して設定できます。このオプションが選択されていると、そのプロジェクトメソッドは呼び出し方に関わらず常にサーバー上で実行されます。 #### 実行コンテキスト -この属性が選択されている場合、そのプロジェクトメソッドの実行コンテキストは[トリガー](#トリガー)のそれと同じものになります。つまり、サーバー上で実行されるメソッドは、レコードロックやトランザクションについてクライアント側の対応する同じデータベースコンテキストを共有しますが、ランゲージコンテキスト (プロセス変数、セット、カレントセレクション) は共有しません。 しかしながらトリガーと異なり、サーバー上で実行されるメソッドはクライアントコンテキストのカレントレコードを共有しない点に留意してください (トリガーはトリガーテーブルのカレントレコードを共有します)。 -[メソッドのすべての引数](../Concepts/parameters.md) はサーバーに送信され、戻り値が (使用されていれば) クライアントに返されます。 +この属性が選択されている場合、そのプロジェクトメソッドの実行コンテキストは[トリガー](#トリガー)のそれと同じものになります。つまり、サーバー上で実行されるメソッドは、レコードロックやトランザクションについてクライアント側の対応する同じデータベースコンテキストを共有しますが、ランゲージコンテキスト (プロセス変数、セット、カレントセレクション) は共有しません。しかしながらトリガーと異なり、サーバー上で実行されるメソッドはクライアントコンテキストのカレントレコードを共有しない点に留意してください (トリガーはトリガーテーブルのカレントレコードを共有します)。[メソッドのすべての引数](../Concepts/parameters.md) はサーバーに送信され、戻り値が (使用されていれば) クライアントに返されます。 -[`Execute on server`](../commands/execute-on-server) コマンドと異なり、このオプションはサーバー上にプロセスを作成しません。 4D Server は、実行をリクエストしたクライアントプロセス("ツイン"プロセス)に対応するサーバー側のクライアントプロセスを使用します。 さらにこのオプションは、"普通"のメソッド呼び出しのように、引数の交換が両方向で自動化されるので、サーバーにメソッドの実行を移譲することが簡単になります。 [`Execute on server`](../commands/execute-on-server) コマンドの場合、これは非同期で動作するため、追加のプログラミングと、結果を読み込むための[セマフォー](../Develop/processes.md#セマフォー) が必要です。 +[`Execute on server`](../commands/execute-on-server) コマンドと異なり、このオプションはサーバー上にプロセスを作成しません。 4D Server は、実行をリクエストしたクライアントプロセス("ツイン"プロセス)に対応するサーバー側のクライアントプロセスを使用します。さらにこのオプションは、"普通"のメソッド呼び出しのように、引数の交換が両方向で自動化されるので、サーバーにメソッドの実行を移譲することが簡単になります。 [`Execute on server`](../commands/execute-on-server) コマンドの場合、これは非同期で動作するため、追加のプログラミングと、結果を読み込むための[セマフォー](../Develop/processes.md#セマフォー) が必要です。 #### 使用できるコマンド @@ -361,8 +359,7 @@ The **サーバー上で実行** プロジェクトメソッド属性は属性 #### ポインター -変数へのポインター (変数、配列、または配列要素) を渡した場合、参照先の値もサーバーに送信されます。 サーバー上でメソッドにより参照先の値が更新されると、更新された値がクライアントに返され、クライアント側の対応する変数が更新されます。 -テーブルやフィールドのポインターは参照として送られます (テーブル番号、フィールド番号)。 カレントのレコード値は自動では交換されません。 +変数へのポインター (変数、配列、または配列要素) を渡した場合、参照先の値もサーバーに送信されます。サーバー上でメソッドにより参照先の値が更新されると、更新された値がクライアントに返され、クライアント側の対応する変数が更新されます。テーブルやフィールドのポインターは参照として送られます (テーブル番号、フィールド番号)。カレントのレコード値は自動では交換されません。 :::note @@ -396,18 +393,18 @@ The **サーバー上で実行** プロジェクトメソッド属性は属性 ## Resources フォルダー -データベースの [**Resources** フォルダー](../Project/architecture.md#resources) を使用して、カスタムデータ (ピクチャー、ファイル、サブフォルダー等) を サーバーマシンとすべてのクライアントマシンで共有できます。 **Resources** フォルダーはサーバーマシン上で [プロジェクトルートフォルダー](../Project/architecture.md) の第一階層になければなりません。 +データベースの [**Resources** フォルダー](../Project/architecture.md#resources) を使用して、カスタムデータ (ピクチャー、ファイル、サブフォルダー等) をサーバーマシンとすべてのクライアントマシンで共有できます。 **Resources** フォルダーはサーバーマシン上で [プロジェクトルートフォルダー](../Project/architecture.md) の第一階層になければなりません。 **Resources** フォルダーに関連付けられたすべての参照メカニズムは、クライアント/サーバーモードでもサポートされています (.lprojフォルダー、XLIFF、ピクチャーなど)。 -クライアントはそれぞれこのフォルダーのローカルコピーを持ちます。 ローカルフォルダーの内容は、クライアントがサーバーに接続するたびに自動でサーバーのそれと同期されます。 +クライアントはそれぞれこのフォルダーのローカルコピーを持ちます。ローカルフォルダーの内容は、クライアントがサーバーに接続するたびに自動でサーバーのそれと同期されます。 -さらに、サーバーデータベース上の **Resources** フォルダーの内容が開発者によりセッション中に更新されたとき、クライアントマシンはその通知を受け取ることもできます。 この通知は以下をトリガーとして行われます: +さらに、サーバーデータベース上の **Resources** フォルダーの内容が開発者によりセッション中に更新されたとき、クライアントマシンはその通知を受け取ることもできます。この通知は以下をトリガーとして行われます: - クライアントから最新の更新が行われてから2分後、サーバーが自動で行う (この遅延は多数のファイルがコピーされた場合の不適切な通知を避けるためのものです)。 - または更新を行ったクライアントマシン上の[**リソースエクスプローラー**](https://doc.4d.com/4Dv20/4D/20.2/Using-the-Resources-explorer.300-6750254.ja.html) のアクションメニューから[**クライアントに通知コマンド**]を選択する。 -- または[`NOTIFY RESOURCES FOLDER MODIFICATION`](../commands/notify-resources-folder-notification) コマンドを使用してプログラミングで行う。 このコマンドは **Resources** フォルダーの内容がストアドプロシージャーを使用してサーバー上で更新された場合に便利です。 +- または[`NOTIFY RESOURCES FOLDER MODIFICATION`](../commands/notify-resources-folder-notification) コマンドを使用してプログラミングで行う。このコマンドは **Resources** フォルダーの内容がストアドプロシージャーを使用してサーバー上で更新された場合に便利です。 -クライアント側では、環境設定の[**セッション中に"Resources"フォルダーを更新**](../settings/client-server.md#update-resources-folder-during-a-session) の設定に基づき、この通知に対する処理が決定されます。 この設定は[`SET DATABASE PARAMETER` コマンドの`Auto synchro resources folder` セレクター](../commands/set-database-parameter#auto-synchro-resources-folder-48) を使用して、個々に設定することもできます。 3つの選択肢があります: **同期しない**、 **自動で同期する** そして **その都度指定**。 詳細はネットワーク/クライアント-サーバー通信 [**ネットワーク/クライアント-サーバー通信** の節](../settings/client-server.md#update-resources-folder-during-a-session) を参照してください。 +クライアント側では、環境設定の[**セッション中に"Resources"フォルダーを更新**](../settings/client-server.md#update-resources-folder-during-a-session) の設定に基づき、この通知に対する処理が決定されます。この設定は[`SET DATABASE PARAMETER` コマンドの`Auto synchro resources folder` セレクター](../commands/set-database-parameter#auto-synchro-resources-folder-48) を使用して、個々に設定することもできます。 3つの選択肢があります: **同期しない**、 **自動で同期する** そして **その都度指定**。詳細はネットワーク/クライアント-サーバー通信 [**ネットワーク/クライアント-サーバー通信** の節](../settings/client-server.md#update-resources-folder-during-a-session) を参照してください。 最後に、それぞれのクライアントマシンはいつでも[リソースエクスプローラー](https://doc.4d.com/4Dv20/4D/20.2/Resources-explorer.200-6750091.ja.html) のアクションメニューの**ローカルリソースを更新**コマンドを使用してサーバーと同期できます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/drag-and-drop.md b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/drag-and-drop.md index e534328af344ea..301999fe23cbf6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/drag-and-drop.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/drag-and-drop.md @@ -5,24 +5,24 @@ title: ドラッグ&ドロップ ## 概要 -4Dにはフォームやアプリケーションのオブジェクト間で動作する組み込のドラック&ドロップ機能があります。 一つのオブジェクトを同一のウインドウ内、または別のウインドウにドラック&ドロップすることが出来ます。 言い換えれば、同一のプロセスまたは別のプロセスに対してドラック&ドロップすることが出来ます。 +4Dにはフォームやアプリケーションのオブジェクト間で動作する組み込のドラック&ドロップ機能があります。一つのオブジェクトを同一のウインドウ内、または別のウインドウにドラック&ドロップすることが出来ます。言い換えれば、同一のプロセスまたは別のプロセスに対してドラック&ドロップすることが出来ます。 -またオブジェクトを4Dフォームと他のアプリケーション間でドラッグ&ドロップできます。 例えば PNGピクチャーを 4D のピクチャーフィールドにドラッグ&ドロップできます。 またワードプロセッサーアプリケーションでテキストを選択し、4D のテキスト変数やリストボックスなどにドロップできます。 +またオブジェクトを4Dフォームと他のアプリケーション間でドラッグ&ドロップできます。例えば PNGピクチャーを 4D のピクチャーフィールドにドラッグ&ドロップできます。またワードプロセッサーアプリケーションでテキストを選択し、4D のテキスト変数やリストボックスなどにドロップできます。 -そして、フォームが最前面になくとも、アプリケーションに直接オブジェクトをドロップできます。 [`On Drop` データベースメソッド](../commands-legacy/on-drop-database-method.md) を使用して、このケースのドラッグ&ドロップを管理できます。 つまり、例えば、4Dアプリケーションアイコンに 4D Write Pro ドキュメントをドロップして開くことができます。 +そして、フォームが最前面になくとも、アプリケーションに直接オブジェクトをドロップできます。 [`On Drop` データベースメソッド](../commands-legacy/on-drop-database-method.md) を使用して、このケースのドラッグ&ドロップを管理できます。つまり、例えば、4Dアプリケーションアイコンに 4D Write Pro ドキュメントをドロップして開くことができます。 4D では二つのドラッグ&ドロップモードを提供しています: -- ドラッグ&ドロップオペレーション全体がプログラマーによって管理される**カスタムモード**。 このモードでは、ドラッグ&ドロップに基づいたあらゆるインターフェースを実装することができます。 これにはデータの転送を必ずしも伴わないものも含まれ、ファイルを開くや計算をトリガーするなどの任意のアクションを実行することができます。 -- ドラッグ&ドロップオペレーションによってあるオブジェクトから別のオブジェクトへと、データが自動的にコピーあるいは移動される**自動モード**。 このモードはテキストベースのオブジェクトと (一部の) ピクチャーにおいて利用可能で、プロパティをチェックするだけで有効化されます。 +- ドラッグ&ドロップオペレーション全体がプログラマーによって管理される**カスタムモード**。このモードでは、ドラッグ&ドロップに基づいたあらゆるインターフェースを実装することができます。 これにはデータの転送を必ずしも伴わないものも含まれ、ファイルを開くや計算をトリガーするなどの任意のアクションを実行することができます。 +- ドラッグ&ドロップオペレーションによってあるオブジェクトから別のオブジェクトへと、データが自動的にコピーあるいは移動される**自動モード**。このモードはテキストベースのオブジェクトと (一部の) ピクチャーにおいて利用可能で、プロパティをチェックするだけで有効化されます。 ## ドラッグ可能オブジェクトとドロップ可能オブジェクト -複数のフォームオブジェクトはカスタムモードまたは自動モードにおいてドラッグ可/ドロップ可に設定可能です(以下参照)。 デフォルトで、新しく作成されたオブジェクトはドラッグもドロップもできません("none" 値)。 これらのプロパティを設定するかどうかは開発者に任されています。 +複数のフォームオブジェクトはカスタムモードまたは自動モードにおいてドラッグ可/ドロップ可に設定可能です(以下参照)。デフォルトで、新しく作成されたオブジェクトはドラッグもドロップもできません("none" 値)。これらのプロパティを設定するかどうかは開発者に任されています。 -あるオブジェクトから別のオブジェクトにドラッグ&ドロップを実行するには、[**ドラッグ可** プロパティ](../FormObjects/properties_Action.md#ドラッグ有効) を"自動" あるいは "カスタム" に設定する必要があります。 ドラッグ&ドロップ処理では、ドラッグされるオブジェクトがソースオブジェクトになります。 +あるオブジェクトから別のオブジェクトにドラッグ&ドロップを実行するには、[**ドラッグ可** プロパティ](../FormObjects/properties_Action.md#ドラッグ有効) を"自動" あるいは "カスタム" に設定する必要があります。ドラッグ&ドロップ処理では、ドラッグされるオブジェクトがソースオブジェクトになります。 -あるオブジェクトをドラッグ&ドロップ処理のドロップ先にするには、[**ドロップ可** プロパティ](../FormObjects/properties_Action.md#ドロップ有効) を "自動" あるいは "カスタム" に設定する必要があります。 ドラッグ&ドロップ処理では、データを受け取るオブジェクトがドロップ先オブジェクトになります。 +あるオブジェクトをドラッグ&ドロップ処理のドロップ先にするには、[**ドロップ可** プロパティ](../FormObjects/properties_Action.md#ドロップ有効) を "自動" あるいは "カスタム" に設定する必要があります。ドラッグ&ドロップ処理では、データを受け取るオブジェクトがドロップ先オブジェクトになります。 以下の表はドラッグ可能またはドロップ可能なオブジェクトでの利用可能なプロパティの一覧をまとめたものです: @@ -37,19 +37,19 @@ title: ドラッグ&ドロップ | [ボタン](../FormObjects/button_overview.md) | | ○ | | | | [ピクチャーボタン](../FormObjects/pictureButton_overview.md) | | ○ | | | -改装リスト内の項目、またはリストボックス内の行はドラッグ&ドロップすることができます。 逆に、あるオブジェクトを改装リスト内の項目またはリストボックスの行にドラッグ&ドロップすることもできます。 ただし、出力フォームの詳細エリアからオブジェクトをドラッグ&ドロップすることはできません。 アプリケーションのフォーム外へのドラッグアンドドロップも、[`On Drop` データベースメソッド](../commands-legacy/on-drop-database-method.md) で管理できます。 +改装リスト内の項目、またはリストボックス内の行はドラッグ&ドロップすることができます。逆に、あるオブジェクトを改装リスト内の項目またはリストボックスの行にドラッグ&ドロップすることもできます。ただし、出力フォームの詳細エリアからオブジェクトをドラッグ&ドロップすることはできません。アプリケーションのフォーム外へのドラッグアンドドロップも、[`On Drop` データベースメソッド](../commands-legacy/on-drop-database-method.md) で管理できます。 :::note 注記 -- デフォルトで、ピクチャーフィールドや変数の場合は、ピクチャーとその参照は両方ともドラッグされます。 変数やフィールドの参照のみをドラッグしたい場合は、**Alt** ボタン(Windows) または **Option** ボタン(macOS) を押す必要があります。 -- 配列型リストボックスオブジェクトで“カスタム”のドラック可プロパティと[“行の移動可”](../FormObjects/properties_Action.md#行の移動可) が同時に選択されている場合、行が移動された場合は“行の移動可”が優先されます。 この場合ドラッグはできません。 +- デフォルトで、ピクチャーフィールドや変数の場合は、ピクチャーとその参照は両方ともドラッグされます。変数やフィールドの参照のみをドラッグしたい場合は、**Alt** ボタン(Windows) または **Option** ボタン(macOS) を押す必要があります。 +- 配列型リストボックスオブジェクトで“カスタム”のドラック可プロパティと[“行の移動可”](../FormObjects/properties_Action.md#行の移動可) が同時に選択されている場合、行が移動された場合は“行の移動可”が優先されます。この場合ドラッグはできません。 - ドラッグとドロップの両方ができるオブジェクトは、開発者が禁止しない限り、自分自身にもドロップできます。 ::: ## カスタムのドラッグ&ドロップ -カスタムのドラッグ&ドロップインターフェースを実装するということは、プロパティ、イベント、そして一般的には [*ペーストボード* テーマ](../commands/theme/Pasteboard.md) のコマンドを組み合わせるということを意味します。 以下の図ではカスタムのドラッグ&ドロップシークエンスのキーポイントを描写しています: +カスタムのドラッグ&ドロップインターフェースを実装するということは、プロパティ、イベント、そして一般的には [*ペーストボード* テーマ](../commands/theme/Pasteboard.md) のコマンドを組み合わせるということを意味します。以下の図ではカスタムのドラッグ&ドロップシークエンスのキーポイントを描写しています: ![](../assets/en/Desktop/dragdrop1.png) @@ -62,7 +62,7 @@ title: ドラッグ&ドロップ - 互換性がある場合、マウスボタンがリリースされた時にドロップを受け入れ、[`On Drop`](../Events/onDrop.md) イベントを実行するためには**0** を返します。 - そうでない場合、**-1** を返してドロップを拒否します。 このやりとりにおけるインターフェース側の側面は4D によって自動的に管理され、ドロップが受け入れられたか拒否されたかによってカーソルの表示を変えます。 -4. ドロップ先オブジェクト([**ドロップ可** プロパティが"カスタム"](../FormObjects/properties_Action.md#droppable) に設定済み)の[`On Drop`](../Events/onDrop.md) イベントにおいて、ドロップに対応するアクションを実行します。 例えばドラッグ&ドロップの操作がドラッグしているデータをコピーする目的であった場合、そのデータをドロップ先オブジェクトへ割り当てます。 ドラッグ&ドロップがデータの移動ではなく、特定の操作のためのユーザーインターフェースメタファーであった場合、例えば[`Get file from pasteboard`](../commands/get-file-from-pasteboard) コマンドを使用してファイルパスを取得するなど、必要な処理を実行します。 +4. ドロップ先オブジェクト([**ドロップ可** プロパティが"カスタム"](../FormObjects/properties_Action.md#droppable) に設定済み)の[`On Drop`](../Events/onDrop.md) イベントにおいて、ドロップに対応するアクションを実行します。例えばドラッグ&ドロップの操作がドラッグしているデータをコピーする目的であった場合、そのデータをドロップ先オブジェクトへ割り当てます。ドラッグ&ドロップがデータの移動ではなく、特定の操作のためのユーザーインターフェースメタファーであった場合、例えば[`Get file from pasteboard`](../commands/get-file-from-pasteboard) コマンドを使用してファイルパスを取得するなど、必要な処理を実行します。 [`On Begin Drag Over`](../Events/onBeginDragOver.md) イベントは**ドラッグのソースオブジェクトのコンテキスト**で生成される点に注意してください。対して[`On Drag Over`](../Events/onDragOver.md) および [`On Drop`](../Events/onDrop.md) イベントはドロップ先オブジェクトに送信されます。 @@ -72,21 +72,20 @@ title: ドラッグ&ドロップ ## 自動ドラッグ&ドロップ -自動ドラッグ&ドロップは、単一のクリックで一つのエリアから他のエリアへと、テキストまたはピクチャーの選択範囲を移動またはコピーすることです。 このコピーは、同じ 4D エリア内、2つの 4D エリア間、4D と他のアプリケーション間で使用できます。 +自動ドラッグ&ドロップは、単一のクリックで一つのエリアから他のエリアへと、テキストまたはピクチャーの選択範囲を移動またはコピーすることです。このコピーは、同じ 4D エリア内、2つの 4D エリア間、4D と他のアプリケーション間で使用できます。 :::note -2つの4D エリア間の自動ドラッグ&ドロップの場合、データは移動されます。言い換えれば、データはソースエリアから削除されます。 データをコピーしたい場合、アクションの間**Ctrl** (Windows) または**Option** (macOS) キーを押します(macOS の場合、ドラッグを開始した*後* に **Option** を押す必要があります)。 +2つの4D エリア間の自動ドラッグ&ドロップの場合、データは移動されます。言い換えれば、データはソースエリアから削除されます。データをコピーしたい場合、アクションの間**Ctrl** (Windows) または**Option** (macOS) キーを押します(macOS の場合、ドラッグを開始した*後* に **Option** を押す必要があります)。 ::: [自動ドラッグ](../FormObjects/properties_Action.md#ドラッグ有効) プロパティと[自動ドロップ](../FormObjects/properties_Action.md#ドロップ有効) はフォームオブジェクトごとに個別に設定できます: -- **自動ドラッグ**: このオプションがチェックされると、オブジェクトの自動ドラッグモードが有効になります。 このモードでは、[`On Begin Drag`](../Events/onBeginDragOver.md) フォームイベントは生成されません。 - 自動ドラッグが有効のときに標準のドラッグを"強制"したい場合、アクションの間**Alt** (Windows) または **Option** (macOS) キーを押しながら操作します(macOS の場合、ドラッグを開始する *前* に**Option** を押す必要があります)。 このオプションはピクチャーでは利用できません。 -- **自動ドロップ:**: このモードでは、4D は可能な限り自動で、オブジェクトにドロップされたテキストやピクチャー型データの挿入を管理します (データはオブジェクトにペーストされます)。 この場合[`On Drag Over`](../Events/onDragOver.md) および [`On Drop`](../Events/onDrop.md) フォームイベントは生成されません。 他方、ドロップ中の[`On After Edit`](../Events/onAfterEdit.md) とオブジェクトがフォーカスを失った時の[`On Data Change`](../Events/onDataChange.md) イベントは生成されます。 +- **自動ドラッグ**: このオプションがチェックされると、オブジェクトの自動ドラッグモードが有効になります。このモードでは、[`On Begin Drag`](../Events/onBeginDragOver.md) フォームイベントは生成されません。自動ドラッグが有効のときに標準のドラッグを"強制"したい場合、アクションの間**Alt** (Windows) または **Option** (macOS) キーを押しながら操作します(macOS の場合、ドラッグを開始する *前* に**Option** を押す必要があります)。このオプションはピクチャーでは利用できません。 +- **自動ドロップ:**: このモードでは、4D は可能な限り自動で、オブジェクトにドロップされたテキストやピクチャー型データの挿入を管理します (データはオブジェクトにペーストされます)。この場合[`On Drag Over`](../Events/onDragOver.md) および [`On Drop`](../Events/onDrop.md) フォームイベントは生成されません。他方、ドロップ中の[`On After Edit`](../Events/onAfterEdit.md) とオブジェクトがフォーカスを失った時の[`On Data Change`](../Events/onDataChange.md) イベントは生成されます。 -テキストやピクチャー以外のデータ (他の 4Dオブジェクトやファイルなど) や 複合データがドロップされた場合、アプリケーションは"ドロップ可"オプションを参照します。オプションがチェックされていれば、[`On Drag Over`](../Events/onDragOver.md) および [`On Drop`](../Events/onDrop.md) フォームイベントが生成されます。そうでなければドロップは拒否されます。 +テキストやピクチャー以外のデータ (他の 4Dオブジェクトやファイルなど) や複合データがドロップされた場合、アプリケーションは"ドロップ可"オプションを参照します。オプションがチェックされていれば、[`On Drag Over`](../Events/onDragOver.md) および [`On Drop`](../Events/onDrop.md) フォームイベントが生成されます。そうでなければドロップは拒否されます。 ## 例題 @@ -123,7 +122,7 @@ If(Form event code=On Drop) // プロパティリストでドロップ可を有 ### セレクション型リストボックスからテキストエリアへ -カスタムモード・自動モードの両方のドラッグ&ドロップ機構を組み合わせることで、シンプルで強力なインターフェースを作成することができます。 この例題ではリストボックスからドラッグしてきたデータを入力テキストエリアに入れたい場合を考えます: +カスタムモード・自動モードの両方のドラッグ&ドロップ機構を組み合わせることで、シンプルで強力なインターフェースを作成することができます。この例題ではリストボックスからドラッグしてきたデータを入力テキストエリアに入れたい場合を考えます: ![](../assets/en/Desktop/dragdrop4.png) @@ -212,19 +211,18 @@ If(Form event code=On Drop) // プロパティリストでドロップ可を有 [“ペーストボード” テーマのコマンド](../commands/theme/Pasteboard.md) は、コピー/ペーストアクション (**クリップボード管理**) とアプリケーション間のドラッグ&ドロップの管理両方に使用できます。 -4D は2つのデータペーストボードを使用します。1つはコピーあるいはカットされたデータ用で、もう1つはドラッグ&ドロップされたデータ用です。 -これら2つのペーストボードは同じコマンドを使用して管理されます。 コンテキストにより、どちらかにアクセスします: +4D は2つのデータペーストボードを使用します。1つはコピーあるいはカットされたデータ用で、もう1つはドラッグ&ドロップされたデータ用です。これら2つのペーストボードは同じコマンドを使用して管理されます。コンテキストにより、どちらかにアクセスします: -- ドラッグ&ドロップペーストボードには、[**On Drop** データベースメソッド](../commands-legacy/on-drop-database-method.md) 内での[`On Begin Drag Over`](../Events/onBeginDragOver.md), [`On Drag over`](../Events/onDragOver.md) あるいは [`On Drop`](../Events/onDrop.md) フォームイベントや内でのみアクセスできます。 これらのコンテキスト外では、ドラッグ&ドロップペーストボードは使用できません。 -- コピー/ペーストペーストボードには、他のすべてのケースでアクセスできます。 ドラッグ&ドロップペーストボードと異なり、そこに置かれたデータはクリアされるか再利用されるまで、セッション中保持されます。 +- ドラッグ&ドロップペーストボードには、[**On Drop** データベースメソッド](../commands-legacy/on-drop-database-method.md) 内での[`On Begin Drag Over`](../Events/onBeginDragOver.md), [`On Drag over`](../Events/onDragOver.md) あるいは [`On Drop`](../Events/onDrop.md) フォームイベントや内でのみアクセスできます。これらのコンテキスト外では、ドラッグ&ドロップペーストボードは使用できません。 +- コピー/ペーストペーストボードには、他のすべてのケースでアクセスできます。ドラッグ&ドロップペーストボードと異なり、そこに置かれたデータはクリアされるか再利用されるまで、セッション中保持されます。 ### データのタイプ -ドラッグ&ドロップアクション中、異なるタイプのデータがペーストボードに置かれたり、あるいはペーストボードから読み込まれます。 データタイプには複数の方法でアクセスします: +ドラッグ&ドロップアクション中、異なるタイプのデータがペーストボードに置かれたり、あるいはペーストボードから読み込まれます。データタイプには複数の方法でアクセスします: - 4Dシグネチャ: 4Dシグネチャは4Dアプリケーションにより参照されるデータタイプを示す文字列です。 4D シグネチャはmacOS およびWindows で同じであるため、マルチプラットフォームアプリケーションの開発に適しています。 4D シグネチャの一覧は以下に示します。 -- UTI (Uniform Type Identifier, macOS のみ): Apple 社が定めるUTI 標準は、ネイティブタイプのオブジェクトごとに文字列を割り当てたものです。 例えば GIFピクチャーには UTIタイプ “com.apple.gif” が割り当てられています。 UTI は Apple社のドキュメント、あるいは関連するエディターで公開されています。 -- 数値またはフォーマット名 (Windowsのみ): Windowsでは、ネイティブデータタイプは数値 (“3”, “12”, 等) と名前 (“Rich Text Edit”)で参照されます。 デフォルトでMicrosoft社は標準データフォーマットと呼ばれるネイティブタイプを複数定義しています。 さらにサードパーティエディターはシステムにフォーマットを “保存” し、対応する番号を得ることもできます。 この点に関する詳細とネイティブタイプについては、Microsoft developer documentation (特に http://msdn2.microsoft.com/en-us/library/ms649013.aspx ) を参照してください。 +- UTI (Uniform Type Identifier, macOS のみ): Apple 社が定めるUTI 標準は、ネイティブタイプのオブジェクトごとに文字列を割り当てたものです。例えば GIFピクチャーには UTIタイプ “com.apple.gif” が割り当てられています。 UTI は Apple社のドキュメント、あるいは関連するエディターで公開されています。 +- 数値またはフォーマット名 (Windowsのみ): Windowsでは、ネイティブデータタイプは数値 (“3”, “12”, 等) と名前 (“Rich Text Edit”)で参照されます。デフォルトでMicrosoft社は標準データフォーマットと呼ばれるネイティブタイプを複数定義しています。さらにサードパーティエディターはシステムにフォーマットを “保存” し、対応する番号を得ることもできます。この点に関する詳細とネイティブタイプについては、Microsoft developer documentation (特に http://msdn2.microsoft.com/en-us/library/ms649013.aspx ) を参照してください。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/labels.md b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/labels.md index fd357b6188c761..4af79e4ca322f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/labels.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Desktop/labels.md @@ -3,7 +3,7 @@ id: labels title: ラベル --- -4Dのラベルエディターにより、さまざまなラベルを容易に印刷することができます。 ラベルエディターを使用し、次の操作を行うことができます: +4Dのラベルエディターにより、さまざまなラベルを容易に印刷することができます。ラベルエディターを使用し、次の操作を行うことができます: - 宛名やファイルフォルダー、ファイルカードなど、その他数々のニーズに対応するラベルをデザインする。 - 装飾用のオブジェクトを作成し、ラベルテンプレートに挿入する。 @@ -16,17 +16,15 @@ title: ラベル :::note -ラベルは、[フォームエディター](../FormEditor/formEditor.md) を使用して作成することもできます。 変数を含むラベルや、フォームエディターの描画用ツールを利用する特殊なラベルを作成しそれらをラベルエディターや [`PRINT LABEL`](../commands/print-label) コマンドを使用して印刷したい場合には、フォームエディターを使用してください。 +ラベルは、[フォームエディター](../FormEditor/formEditor.md) を使用して作成することもできます。変数を含むラベルや、フォームエディターの描画用ツールを利用する特殊なラベルを作成しそれらをラベルエディターや [`PRINT LABEL`](../commands/print-label) コマンドを使用して印刷したい場合には、フォームエディターを使用してください。 ::: -ラベルエディターを使用して、ラベルの作成やフォーマット、印刷を行います。 ラベルエディター には、ラベルを設計したり、ラベル用紙上でのラベル位置を決めるための各種設定が用意されています。 例えば、宛名ラベルを作成する場合、1行目に相手先の 名字と名前、2行目にその人の住所を納めたラベルを設計することができます。 ラベルエディターでは、ページ上のラベル数を指定したり、ラベル用紙のマージ ンを指定することで、ラベルテキストがラベルの中央に配置されるようデザインを調整することができます。 -ラベルデザインが完成したら、いつでも再利用できるようにディスクに保存することができます。 +ラベルエディターを使用して、ラベルの作成やフォーマット、印刷を行います。ラベルエディター には、ラベルを設計したり、ラベル用紙上でのラベル位置を決めるための各種設定が用意されています。例えば、宛名ラベルを作成する場合、1行目に相手先の 名字と名前、2行目にその人の住所を納めたラベルを設計することができます。ラベルエディターでは、ページ上のラベル数を指定したり、ラベル用紙のマージ ンを指定することで、ラベルテキストがラベルの中央に配置されるようデザインを調整することができます。ラベルデザインが完成したら、いつでも再利用できるようにディスクに保存することができます。 ラベルエディターは、次のように開きます: -- デザインモードでは、**ツール**メニュー、あるいは4Dツールバーにあるツールボタンのメニューから\*\*ラベル...\*\*を選択します。 - または +- デザインモードでは、**ツール**メニュー、あるいは4Dツールバーにあるツールボタンのメニューから\*\*ラベル...\*\*を選択します。または - アプリケーションモードでは、 [`PRINT LABEL`](../commands/print-label) コマンドを使用します。 ![](../assets/en/Desktop/label-wizard.png) @@ -41,7 +39,7 @@ title: ラベル ### フィールドのリスト -カレントテーブルのフィールド名が階層リスト形式で表示されます。 そのテーブルが別のテーブルにリレートしている場合は、外部キーフィー ルドにプラス記号 (Windows) または矢印 (Macintosh) が表示されます。 リレートフィールドを展開すると、リレートテーブルのフィールドを表示することができます。 リレートテーブルのフィールドはインデント (字下げ) されます。 リストから右のラベルプレビューエリアにドラッグすると、フィールドをラベルテンプレートに追加できます。 +カレントテーブルのフィールド名が階層リスト形式で表示されます。そのテーブルが別のテーブルにリレートしている場合は、外部キーフィー ルドにプラス記号 (Windows) または矢印 (Macintosh) が表示されます。リレートフィールドを展開すると、リレートテーブルのフィールドを表示することができます。リレートテーブルのフィールドはインデント (字下げ) されます。リストから右のラベルプレビューエリアにドラッグすると、フィールドをラベルテンプレートに追加できます。 :::note 注記 @@ -56,13 +54,13 @@ title: ラベル ### ラベルプレビューエリア -このエリアを使用して、ラベルに表示させるすべてのオブジェクトの配置を調整し、ラベルを設計します。 白い長方形は一つのラベルを表します(ラベルの大きさは [レイアウトページ](#レイアウトページ)) を指定できます)。ラベルにはフィールドをドラッグすることができます。 +このエリアを使用して、ラベルに表示させるすべてのオブジェクトの配置を調整し、ラベルを設計します。白い長方形は一つのラベルを表します(ラベルの大きさは [レイアウトページ](#レイアウトページ)) を指定できます)。ラベルにはフィールドをドラッグすることができます。 - ラベルにはフィールドをドラッグすることができます。 -- 一つ目のフィールドの上に他のフィールドをドロップする事で二つのフィールドを結合する事もできます。 これらは自動的にスペースで区切られます。
    +- 一つ目のフィールドの上に他のフィールドをドロップする事で二つのフィールドを結合する事もできます。これらは自動的にスペースで区切られます。
    ![](../assets/en/Desktop/label-concat.png)
    - **Shift** キーを押しながらドロップすると、改行で区切られます。 これによって、住所などの複数のフィールドにまたがるラベル(住所1、住所2など)を、住所が一行で済む場合にも無駄な余白行を作らずに作成する事ができることができます。 -- **フォーミュラ** ツール ![](../assets/en/Desktop/label-tool6.png) (あるいはコンテキストメニュー内の **ツール>フォーミュラ**) を選択しながらエリアを描画することで、ラベルにフォーミュラを追加することができます。 すると **フォーミュラエディター** が表示されます: + **Shift** キーを押しながらドロップすると、改行で区切られます。これによって、住所などの複数のフィールドにまたがるラベル(住所1、住所2など)を、住所が一行で済む場合にも無駄な余白行を作らずに作成する事ができることができます。 +- **フォーミュラ** ツール ![](../assets/en/Desktop/label-tool6.png) (あるいはコンテキストメニュー内の **ツール>フォーミュラ**) を選択しながらエリアを描画することで、ラベルにフォーミュラを追加することができます。すると **フォーミュラエディター** が表示されます: ![](../assets/en/Desktop/label-formula1.png)
    例えば、 [`String`](../commands/string) コマンドを使用してフィールドにフォーマットを適用することができます:
    @@ -70,20 +68,18 @@ title: ラベル :::note -フォーミュラエディター内では、データベースにおいて"許可された"メソッドしか入力できないという点に注意して下さい。 許可されたメソッドは [プロジェクト設定](../settings/security.md#オプション) と [`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドによります。 +フォーミュラエディター内では、データベースにおいて"許可された"メソッドしか入力できないという点に注意して下さい。許可されたメソッドは [プロジェクト設定](../settings/security.md#オプション) と [`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドによります。 ::: - OS のデスクトップからピクチャーファイル、またはラベルファイル(".4lbp" ファイル) をドラッグ&ドロップすることができます。 -- エリアを変更するには、中身をダブルクリックして編集モードにスイッチして下さい。 フィールドやフォーミュラをダブルクリックすると、 **フォーミュラエディター** が表示され、これにより項目を削除や変更することができます: +- エリアを変更するには、中身をダブルクリックして編集モードにスイッチして下さい。フィールドやフォーミュラをダブルクリックすると、 **フォーミュラエディター** が表示され、これにより項目を削除や変更することができます: ![](../assets/en/Desktop/label-formula.png) ### 使用するフォーム -このドロップダウンリストを使用すると選択したテーブルフォームをラベルテンプレートとして定義できるようになります。 選択されたフォームはラベルの作成に特化している必要があります。 -この場合、ラベルエディターは部分的に無効化される事になります:[レイアウトページ](#layout-page) の機能のみが使用可能です。これによりフォームに基づいたページの設定が可能です。 選択されたフォームのイメージは、ラベルプレビューエリアに表示されます。 -フォームを使用する場合、4Dはそれに関連づけられたあらゆるフォームメソッド・オブジェクトメソッドを実行します。 このオプションを使用する場合、各レコードあるいは各ラベルに対して実行するプロジェクトメソッドを指定し、変数を割り当てることができます(以下の [この例題](#フォームとメソッドを使用してラベルを印刷する) を参照して下さい)。 エディター自身を使用してラベルを作成したい場合、**フォームなし** オプションを選ぶ必要があります。 +このドロップダウンリストを使用すると選択したテーブルフォームをラベルテンプレートとして定義できるようになります。選択されたフォームはラベルの作成に特化している必要があります。この場合、ラベルエディターは部分的に無効化される事になります:[レイアウトページ](#layout-page) の機能のみが使用可能です。これによりフォームに基づいたページの設定が可能です。選択されたフォームのイメージは、ラベルプレビューエリアに表示されます。フォームを使用する場合、4Dはそれに関連づけられたあらゆるフォームメソッド・オブジェクトメソッドを実行します。このオプションを使用する場合、各レコードあるいは各ラベルに対して実行するプロジェクトメソッドを指定し、変数を割り当てることができます(以下の [この例題](#フォームとメソッドを使用してラベルを印刷する) を参照して下さい)。エディター自身を使用してラベルを作成したい場合、**フォームなし** オプションを選ぶ必要があります。 :::note 注記 @@ -96,16 +92,16 @@ title: ラベル エディターのグラフィックエリアではツールバーとコンテキストメニューの両方が使え、これを使ってラベリテンプレートをデザインするすることができます。 -ツールバーの左側にはオブジェクトの選択と挿入のためのコマンドを含めるためのツールバーがあります。 これらのツールはエリアのコンテキストメニュー内の**ツール >** コマンドによってもアクセスする事ができます。 +ツールバーの左側にはオブジェクトの選択と挿入のためのコマンドを含めるためのツールバーがあります。これらのツールはエリアのコンテキストメニュー内の**ツール >** コマンドによってもアクセスする事ができます。 -| アイコン | ツール名 | 説明 | -| ----------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------ | -| ![](../assets/en/Desktop/label-tool1.png) | セレクション | 選択ツール。単一のオブジェクトをクリックするか、複数のオブジェクトを指定する選択範囲を選んでください。 隣り合っていない複数のオブジェクトを選択するためには、 **Shift** キーを押しながら選択したオブジェクトを一つずつ選んで下さい。 | -| ![](../assets/en/Desktop/label-tool2.png) | 線作成ツール | | -| ![](../assets/en/Desktop/label-tool3.png) | 四角作成ツール | 四角または角の丸い四角を作成できます。 | -| ![](../assets/en/Desktop/label-tool4.png) | 円作成ツール | | -| ![](../assets/en/Desktop/label-tool5.png) | テキスト挿入ツール | 四角形を描画して内部にテキストを入力して下さい。 テキストエリアであればどのようなものでも編集可能です。フィールド参照を含んでいるものも編集可能で、これらに対してはダブルクリックして下さい。 | -| ![](../assets/en/Desktop/label-tool6.png) | フォーミュラ挿入ツール | 四角形を描画して **フォーミュラエディター** を表示して下さい。これを使用して動的なラベルコンテンツ(フィールドやフォーミュラ)を定義することができます。 | +| アイコン | ツール名 | 説明 | +| ----------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/Desktop/label-tool1.png) | セレクション | 選択ツール。単一のオブジェクトをクリックするか、複数のオブジェクトを指定する選択範囲を選んでください。隣り合っていない複数のオブジェクトを選択するためには、 **Shift** キーを押しながら選択したオブジェクトを一つずつ選んで下さい。 | +| ![](../assets/en/Desktop/label-tool2.png) | 線作成ツール | | +| ![](../assets/en/Desktop/label-tool3.png) | 四角作成ツール | 四角または角の丸い四角を作成できます。 | +| ![](../assets/en/Desktop/label-tool4.png) | 円作成ツール | | +| ![](../assets/en/Desktop/label-tool5.png) | テキスト挿入ツール | 四角形を描画して内部にテキストを入力して下さい。テキストエリアであればどのようなものでも編集可能です。フィールド参照を含んでいるものも編集可能で、これらに対してはダブルクリックして下さい。 | +| ![](../assets/en/Desktop/label-tool6.png) | フォーミュラ挿入ツール | 四角形を描画して **フォーミュラエディター** を表示して下さい。これを使用して動的なラベルコンテンツ(フィールドやフォーミュラ)を定義することができます。 | 以下のショートカットを使用する事で、キーボードの矢印キーを使用してより細かくオブジェクトを移動・リサイズすることができます: @@ -116,14 +112,14 @@ title: ラベル 右側のツールバーにはラベルテンプレートの項目を変更するのに使用するコマンドが含まれます: -| アイコン | ツール名 | 説明 | -| ------------------------------------------ | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/Desktop/label-tool7.png) | 塗りカラー | 全てのカラーアイコンは選択されたカラーを表示します | -| ![](../assets/en/Desktop/label-tool8.png) | 線カラー | | -| ![](../assets/en/Desktop/label-tool9.png) | 線の太さ | | -| ![](../assets/en/Desktop/label-tool10.png) | フォントメニュー | フォントとそのサイズに加え、テキストスタイル、選択されたテキストのブロックのカラーと行揃えを設定します。 | -| ![](../assets/en/Desktop/label-tool11.png) | 揃えと間隔ツール | 揃えオプションを利用するためには二つ以上のオブジェクトを選択する必要があります。 "間隔"ツールは三つ以上のオブジェクトに対して水平あるいは垂直方向の間隔を自動的に同じ幅に揃えることを意味します。 最終的な間隔は選択範囲内にある既存の幅(または高さ)全ての平均になります。 | -| ![](../assets/en/Desktop/label-tool12.png) | オブジェクトレベル | オブジェクトを最前面に、あるいは複数のオブジェクトを一つレベルを上げるか下げるかします。 | +| アイコン | ツール名 | 説明 | +| ------------------------------------------ | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/Desktop/label-tool7.png) | 塗りカラー | 全てのカラーアイコンは選択されたカラーを表示します | +| ![](../assets/en/Desktop/label-tool8.png) | 線カラー | | +| ![](../assets/en/Desktop/label-tool9.png) | 線の太さ | | +| ![](../assets/en/Desktop/label-tool10.png) | フォントメニュー | フォントとそのサイズに加え、テキストスタイル、選択されたテキストのブロックのカラーと行揃えを設定します。 | +| ![](../assets/en/Desktop/label-tool11.png) | 揃えと間隔ツール | 揃えオプションを利用するためには二つ以上のオブジェクトを選択する必要があります。"間隔"ツールは三つ以上のオブジェクトに対して水平あるいは垂直方向の間隔を自動的に同じ幅に揃えることを意味します。最終的な間隔は選択範囲内にある既存の幅(または高さ)全ての平均になります。 | +| ![](../assets/en/Desktop/label-tool12.png) | オブジェクトレベル | オブジェクトを最前面に、あるいは複数のオブジェクトを一つレベルを上げるか下げるかします。 | ## レイアウトページ @@ -132,38 +128,33 @@ title: ラベル ![](../assets/en/Desktop/label-layout.png) - **ラベル順**: ラベルが行ごとに印刷されるべきかあるいは列ごとに印刷されるべきかを指定します。 -- **ラベル列数** と**ラベル行数** : ラベル用紙に印刷されるラベル"列数"と"行数"を指定します。 "自動サイズ調整"オプションが有効化されている場合、この設定を使用してラベルのサイズが決定されます。 +- **ラベル列数** と**ラベル行数** : ラベル用紙に印刷されるラベル"列数"と"行数"を指定します。"自動サイズ調整"オプションが有効化されている場合、この設定を使用してラベルのサイズが決定されます。 - **ラベル数/レコード**: レコード毎に印刷するラベルの枚数を指定することができます(指定された数だけ連続して印刷されます)。 -- **印刷設定...**: ラベルが印刷される用紙のページ設定を設定します。 このボタンをクリックすると、システムで選択されているプリンターの設定ダイアログボックスが表示されます。 デフォルトでは、ラベルの用紙はA4 サイズの縦向きモードをベースに生成されています。 - **注意:** エディターを使用して作成された用紙はプリンターの理論上のページサイズに基づいています。つまり物理的なページサイズ(例: A4など)と比べて、使用不可なマージンの分だけサイズが(両面とも)小さくなります。 ページの物理的なマージンは、プレビューエリア内にて青い線で表示されます。 -- **単位**: ラベルとラベルページのサイズ指定に使用する単位を変更することができます。 ピクセル、ミリメートル、センチメートル、またはインチを使用することができます。 -- **自動サイズ調整**: このオプションを設定すると、他のパラメーターを変更する度にラベルのサイズ(幅および高さパラメーター)の値が4D によって自動的に計算されます。 このオプションがチェックされていると、ページのパラメーターを変更するたびにラベルのサイズが調整されます。 幅と高さのパラメーターは手動で設定することはできなくなります。 -- **幅** および **高さ**: それぞれのラベルの高さと幅を手動で設定します。 これらは、**自動サイズ調整** オプションがチェックされている場合には変更することはできません。 -- **マージン** (上、右、左、下): 用紙のマージンを設定します。 これらのマージンはプレビューエリア内にて青い線で表示されています。 **プリンターのマージンを使用** をクリックすると、選択されたプリンターから提供されたマージン情報がプレビューエリアに再現されます(これらの値は変更可能です)。 +- **印刷設定...**: ラベルが印刷される用紙のページ設定を設定します。このボタンをクリックすると、システムで選択されているプリンターの設定ダイアログボックスが表示されます。デフォルトでは、ラベルの用紙はA4 サイズの縦向きモードをベースに生成されています。**注意:** エディターを使用して作成された用紙はプリンターの理論上のページサイズに基づいています。つまり物理的なページサイズ(例: A4など)と比べて、使用不可なマージンの分だけサイズが(両面とも)小さくなります。ページの物理的なマージンは、プレビューエリア内にて青い線で表示されます。 +- **単位**: ラベルとラベルページのサイズ指定に使用する単位を変更することができます。ピクセル、ミリメートル、センチメートル、またはインチを使用することができます。 +- **自動サイズ調整**: このオプションを設定すると、他のパラメーターを変更する度にラベルのサイズ(幅および高さパラメーター)の値が4D によって自動的に計算されます。このオプションがチェックされていると、ページのパラメーターを変更するたびにラベルのサイズが調整されます。幅と高さのパラメーターは手動で設定することはできなくなります。 +- **幅** および **高さ**: それぞれのラベルの高さと幅を手動で設定します。これらは、**自動サイズ調整** オプションがチェックされている場合には変更することはできません。 +- **マージン** (上、右、左、下): 用紙のマージンを設定します。これらのマージンはプレビューエリア内にて青い線で表示されています。**プリンターのマージンを使用** をクリックすると、選択されたプリンターから提供されたマージン情報がプレビューエリアに再現されます(これらの値は変更可能です)。 - **間隔**: ラベルの行と列の間の垂直方向/水平方向の間隔の量を設定します。 -- **メソッド**: 印刷時に実行されるメソッドを選択することができます。 例えば、各ラベルが印刷された日付と時間をポストするメソッドを実行することができます。 この機能は専用のテーブルフォームを使用してラベルを印刷するときにも有用です。この場合にはメソッドからの変数を使用することもできます。 - ラベル処理に適用するためにはプロジェクトメソッドは以下の設定に適合している必要があります: +- **メソッド**: 印刷時に実行されるメソッドを選択することができます。例えば、各ラベルが印刷された日付と時間をポストするメソッドを実行することができます。この機能は専用のテーブルフォームを使用してラベルを印刷するときにも有用です。この場合にはメソッドからの変数を使用することもできます。ラベル処理に適用するためにはプロジェクトメソッドは以下の設定に適合している必要があります: - メソッドはデータベース内において"許可されている"必要があります(許可されているメソッドは[プロジェクト設定](../settings/security.md#オプション) および [`SET ALLOWED METHODS`](../commands/set-allowed-methods) コマンドによります)。許可されていない場合には**メソッド**メニュー内には表示されません。 - - [コンポーネントとホストデータベース間で共有](../Project/project-method-properties.md#コンポーネントとホストプロジェクト間で共有) オプションがチェックされている必要があります。 - 以下の [こちらの例題](#フォームとメソッドを使用したラベルの印刷-例題) も参照して下さい。 + - [コンポーネントとホストデータベース間で共有](../Project/project-method-properties.md#コンポーネントとホストプロジェクト間で共有) オプションがチェックされている必要があります。以下の [こちらの例題](#フォームとメソッドを使用したラベルの印刷-例題) も参照して下さい。 :::note -高度な使用法として、 [特定のjson ファイル](#利用可能なフォームとメソッドを管理する) を使用して利用可能なメソッドの一覧を制限することができます。 -**実行頻度: レコードあるいはラベル** オプションを使用すると、メソッドの実行をラベル毎またはレコード毎のいずれに行うかを指定します。 この項目は、各ラベルを複数印刷し、かつ印刷時にメソッドを実行する場合にのみ意味があります。 +高度な使用法として、 [特定のjson ファイル](#利用可能なフォームとメソッドを管理する) を使用して利用可能なメソッドの一覧を制限することができます。**実行頻度: レコードあるいはラベル** オプションを使用すると、メソッドの実行をラベル毎またはレコード毎のいずれに行うかを指定します。この項目は、各ラベルを複数印刷し、かつ印刷時にメソッドを実行する場合にのみ意味があります。 ::: -- **レイアウトプレビューエリア**: このエリアには、ラベルエディターで入力したサイズに基づき、ラベルページ全体の状態が縮小表示されます。 また、ページのプレビューでは、用紙設定ダイア ログボックスで選択した用紙サイズが反映されます。 ページ上で最初に印刷されるラベルを選択することも可能です(このオプションは複数ページの印刷の場合には最初のページにのみ影響します)。 これは、例えば一部が使用済みのラベルシールに印刷したいような場合に有用です。 またラベルをクリックすることでページ上で印刷される最初のラベルを選択することもできます: +- **レイアウトプレビューエリア**: このエリアには、ラベルエディターで入力したサイズに基づき、ラベルページ全体の状態が縮小表示されます。また、ページのプレビューでは、用紙設定ダイア ログボックスで選択した用紙サイズが反映されます。ページ上で最初に印刷されるラベルを選択することも可能です(このオプションは複数ページの印刷の場合には最初のページにのみ影響します)。これは、例えば一部が使用済みのラベルシールに印刷したいような場合に有用です。またラベルをクリックすることでページ上で印刷される最初のラベルを選択することもできます: ![](../assets/en/Desktop/label-start.png) ## フォームとメソッドを使用したラベルの印刷(例題) -専用のテーブルフォームとプロジェクトメソッドを使用することで、計算された変数を含むラベルを印刷することができます。 この単純な例題では、異なる要素の設定の仕方を紹介していきます。 +専用のテーブルフォームとプロジェクトメソッドを使用することで、計算された変数を含むラベルを印刷することができます。この単純な例題では、異なる要素の設定の仕方を紹介していきます。 -1. 専用のテーブルフォームの中に、自分のラベルフィールドや変数を追加していきます。 - 専用のテーブルフォームの中に、自分のラベルフィールドや変数を追加していきます。 +1. 専用のテーブルフォームの中に、自分のラベルフィールドや変数を追加していきます。専用のテーブルフォームの中に、自分のラベルフィールドや変数を追加していきます。 ここでは、"label" という名前のテーブルフォームに、 *myVar* という名前の変数を追加します: ![](../assets/en/Desktop/label-example1.png) @@ -215,7 +206,7 @@ title: ラベル ## ラベルファイルの管理 -4D のラベルデザインはそれぞれファイルとして保存することができ、保存したデザインはウィザード内で呼び出すことができます。 ラベルデザインを保存すれば、必要に応じたラベルライブラリを作ることができます。 各ラベルデザインにはラベルおよびレイアウトページで定義された設定が格納されます。 +4D のラベルデザインはそれぞれファイルとして保存することができ、保存したデザインはウィザード内で呼び出すことができます。ラベルデザインを保存すれば、必要に応じたラベルライブラリを作ることができます。各ラベルデザインにはラベルおよびレイアウトページで定義された設定が格納されます。 なお、ラベルファイルはデスクトップ上からラベルデザインエリアにドラッグ & ドロップすることもできます。 @@ -226,7 +217,7 @@ title: ラベル ### ファイル形式 -ウィザードが保存する 4D ラベルファイルの拡張子は ".4lbp" です。 このファイルは内部的には XML で書かれているため、編集することができます。 +ウィザードが保存する 4D ラベルファイルの拡張子は ".4lbp" です。このファイルは内部的には XML で書かれているため、編集することができます。 ### ラベルファイルのプリロード @@ -242,7 +233,7 @@ title: ラベル ::: -ラベルウィザードが起動するとこのフォルダーが検知され、中に有効なラベルファイルがあった場合には、**読み込み** ボタンにポップアップアイコンが追加されます。 このポップアップメニューの行からラベルデザインを選択することが可能になります: +ラベルウィザードが起動するとこのフォルダーが検知され、中に有効なラベルファイルがあった場合には、**読み込み** ボタンにポップアップアイコンが追加されます。このポップアップメニューの行からラベルデザインを選択することが可能になります: ![](../assets/en/Desktop/label-resources2.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/async.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/async.md index 7194a4e8bf08e6..611c42eac25275 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/async.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/async.md @@ -9,7 +9,7 @@ title: 非同期実行 #### 同期的実行 -同期実行は **シーケンシャル** なフローに従います。これはそれぞれの指示が、次の指示が始まるまでに完了するというステップ・バイ・ステップ方式です。 これはつまりオペレーションが完了するまで実行スレッドがブロックされるということを意味します。 +同期実行は **シーケンシャル** なフローに従います。これはそれぞれの指示が、次の指示が始まるまでに完了するというステップ・バイ・ステップ方式です。これはつまりオペレーションが完了するまで実行スレッドがブロックされるということを意味します。 同期的実行は以下のような場合で使用されます: @@ -21,7 +21,7 @@ title: 非同期実行 #### 非同期実行 -非同期実行は**イベント駆動型**であり、タスクを実行中でも他の操作を完了させることができます。 これは実行フローを管理するために、 **コールバック**、**ワーカー**、および **イベントハンドラー** といったものに依存します。 +非同期実行は**イベント駆動型**であり、タスクを実行中でも他の操作を完了させることができます。これは実行フローを管理するために、 **コールバック**、**ワーカー**、および **イベントハンドラー** といったものに依存します。 非同期実行は以下のような場合で使用されます: @@ -42,29 +42,29 @@ title: 非同期実行 ## 基本原理 -4D はさまざまなクラスやコマンドを通して、ビルトインの**非同期実行**機能を提供します。 これらを使用することで、カレントプロセスをブロックすることなく、他のオペレーションが完了するのを待ちながら、バックグラウンド処理、ネットワーク通信、そして大量のデータ処理などを行うことができます。 +4D はさまざまなクラスやコマンドを通して、ビルトインの**非同期実行**機能を提供します。これらを使用することで、カレントプロセスをブロックすることなく、他のオペレーションが完了するのを待ちながら、バックグラウンド処理、ネットワーク通信、そして大量のデータ処理などを行うことができます。 -4D における非同期イベントの管理の一般的な概念は、**ワーカー**(イベントをリッスンするプロセス)および**コールバック**(あるイベントが発生した際に自動的に実行される関数またはフォーミュラ)を使用した非同期メッセージモデルに基づいています。 ここでは何かの結果を待つ(同期モード)のではなく、特定のイベントが発生した際に自動的に呼び出される関数を提供します。 コールバックはクラス関数(推奨)またはフォーミュラオブジェクトとして渡すことができます。 +4D における非同期イベントの管理の一般的な概念は、**ワーカー**(イベントをリッスンするプロセス)および**コールバック**(あるイベントが発生した際に自動的に実行される関数またはフォーミュラ)を使用した非同期メッセージモデルに基づいています。ここでは何かの結果を待つ(同期モード)のではなく、特定のイベントが発生した際に自動的に呼び出される関数を提供します。コールバックはクラス関数(推奨)またはフォーミュラオブジェクトとして渡すことができます。 -このモデルは [`CALL WORKER`](../commands/call-worker)、 [`CALL FORM`](../commands/call-form)、 および [非同期実行をサポートするクラス](#asynchronous-programming-with-4d-classes) などにおいて共通しています。 これらのコマンド/クラスはすべて、バックグラウンドで実行されるオペレーションを開始します。 オペレーションを開始するステートメントは、オペレーションが終わるのを待たずに即座に戻ります。 +このモデルは [`CALL WORKER`](../commands/call-worker)、 [`CALL FORM`](../commands/call-form)、 および [非同期実行をサポートするクラス](#asynchronous-programming-with-4d-classes) などにおいて共通しています。これらのコマンド/クラスはすべて、バックグラウンドで実行されるオペレーションを開始します。オペレーションを開始するステートメントは、オペレーションが終わるのを待たずに即座に戻ります。 ### ワーカー -非同期プログラミングは [**ワーカー**](../Develop/processes.md#ワーカープロセス) (ワーカープロセス) というシステムに依存しています。これを使用することでメインプロセスをブロックすることなく、コードを実行することができます。 これは特に、インターフェースをレスポンシブな状態にしたまま、長時間にわたるタスク(HTTP 呼び出し、外部プロセスの実行、バックグラウンド処理など)を処理するのに有効です。 +非同期プログラミングは [**ワーカー**](../Develop/processes.md#ワーカープロセス) (ワーカープロセス) というシステムに依存しています。これを使用することでメインプロセスをブロックすることなく、コードを実行することができます。これは特に、インターフェースをレスポンシブな状態にしたまま、長時間にわたるタスク(HTTP 呼び出し、外部プロセスの実行、バックグラウンド処理など)を処理するのに有効です。 -非同期プログラミングにおいてワーカープロセスの使用は**必須**です。いわゆる"クラシック"なプロセスはプロセスメソッドが終了した時に実行を自動的に終了するため、コールバックを使用するようなことができないからです。 ワーカープロセスであればその後も生き続け、**イベントをリッスンする**ことができます。 +非同期プログラミングにおいてワーカープロセスの使用は**必須**です。いわゆる"クラシック"なプロセスはプロセスメソッドが終了した時に実行を自動的に終了するため、コールバックを使用するようなことができないからです。ワーカープロセスであればその後も生き続け、**イベントをリッスンする**ことができます。 ### イベントキュー(メールボックス) -それぞれのワーカー(または [`CALL FORM`](../commands/call-form) の場合にはフォームウィンドウ)は、独自のメッセージキューを持っています。 [`CALL WORKER`](../commands/call-worker) あるいは [`CALL FORM`](../commands/call-form) コマンドは、メッセージをそのキューへと送信します。 ワーカーは、独自のコンテキスト内において、メッセージを一つずつ受信した順番で管理していきます。 プロセス変数、カレントレクション、などは保持されます。 +それぞれのワーカー(または [`CALL FORM`](../commands/call-form) の場合にはフォームウィンドウ)は、独自のメッセージキューを持っています。 [`CALL WORKER`](../commands/call-worker) あるいは [`CALL FORM`](../commands/call-form) コマンドは、メッセージをそのキューへと送信します。ワーカーは、独自のコンテキスト内において、メッセージを一つずつ受信した順番で管理していきます。プロセス変数、カレントレクション、などは保持されます。 ### メッセージを介した双方向通信 -呼び出しプロセスがメッセージを投稿すると、ワーカーはそれを実行します。 呼び出しプロセスがメッセージを投稿すると、ワーカーはそれを実行します。 反対にワーカーは呼び出し元、あるいは他のワーカーに対して( [`CALL WORKER`](../commands/call-worker) あるいは [`CALL FORM`](../commands/call-form) を介して)メッセージを送信して、イベント(タスクの完了、データの受信、エラー、進捗など)を通知することができます。 この機構により、クラシックな同期呼び出しの応答を置き換えることができます。 +呼び出しプロセスがメッセージを投稿すると、ワーカーはそれを実行します。呼び出しプロセスがメッセージを投稿すると、ワーカーはそれを実行します。 反対にワーカーは呼び出し元、あるいは他のワーカーに対して( [`CALL WORKER`](../commands/call-worker) あるいは [`CALL FORM`](../commands/call-form) を介して)メッセージを送信して、イベント(タスクの完了、データの受信、エラー、進捗など)を通知することができます。この機構により、クラシックな同期呼び出しの応答を置き換えることができます。 ### イベントリスニング -イベント駆動型の開発において、一部のコードが、入ってくるイベントを聞ける(リッスンできる)状態でなければならい事は明らかです。 イベントは、ユーザーインターフェース(オブジェクトのマウスクリックやキーボードのキーが押されたなど)や、HTTP リクエストや他のアクションの完了などのその他のインタラクションによって生成され得ます。 たとえば、フォームが [`DIALOG`](../commands/dialog) コマンドを使用して表示されている場合、ユーザーアクションによってイベントがトリガーされ、それをコードで処理することが可能です。 ボタンをクリックした場合はボタンに割り当てられたコードがトリガーされることになります。 +イベント駆動型の開発において、一部のコードが、入ってくるイベントを聞ける(リッスンできる)状態でなければならい事は明らかです。イベントは、ユーザーインターフェース(オブジェクトのマウスクリックやキーボードのキーが押されたなど)や、HTTP リクエストや他のアクションの完了などのその他のインタラクションによって生成され得ます。たとえば、フォームが [`DIALOG`](../commands/dialog) コマンドを使用して表示されている場合、ユーザーアクションによってイベントがトリガーされ、それをコードで処理することが可能です。ボタンをクリックした場合はボタンに割り当てられたコードがトリガーされることになります。 非同期実行のコンテキストにおいては、以下の機能がリスニングモード内でコードを配置します: @@ -84,9 +84,9 @@ title: 非同期実行 ### 非同期オブジェクトのリリース -4D では、全てのオブジェクトは、メモリ内に [そのオブジェクトへの参照がもう残っていない](../Concepts/dt_object.md#resources) 場合にそのオブジェクトがリリースされます。 これは一般的に、メソッド実行の最後にローカル変数が消去される時に発生します。 +4D では、全てのオブジェクトは、メモリ内に [そのオブジェクトへの参照がもう残っていない](../Concepts/dt_object.md#resources) 場合にそのオブジェクトがリリースされます。これは一般的に、メソッド実行の最後にローカル変数が消去される時に発生します。 -非同期クラスにおいては、オブジェクトをインスタンス化したプロセス内において **追加の参照** が必ず4D によって維持されています。 この参照はオペレーションが完了したときにのみリリースされます。つまり、 `onTerminate` イベントがトリガーされたあとです。 この自動参照によって、変数から特別に参照していなくても、オブジェクトを最後まで存続させることができます。 +非同期クラスにおいては、オブジェクトをインスタンス化したプロセス内において **追加の参照** が必ず4D によって維持されています。この参照はオペレーションが完了したときにのみリリースされます。つまり、 `onTerminate` イベントがトリガーされたあとです。この自動参照によって、変数から特別に参照していなくても、オブジェクトを最後まで存続させることができます。 オブジェクトを任意のタイミングで"強制的に"リリースしたい場合、`.shutdown()` あるいは `terminate()` 関数を使用します: これらは`onTerminate` イベントをトリガーするため、オブジェクトはリリースされます。 @@ -110,13 +110,13 @@ title: 非同期実行 - [`WebSocket`](../API/WebSocketClass.md) – WebSocket クライアント接続を管理します。 - [`WebSocketServer`](../API/WebSocketServerClass.md) – WebSocket サーバー接続を管理します。 -これらのクラスは非同期実行に関しては同じルールに従います。 これらのクラスのコンストラクターは、非同期オブジェクトを設定するために使用される *options* 引数を受付ます。 この場合の *options* オブジェクトには、コールバック関数を備えた[ユーザークラス](../Concepts/classes.md) インスタンスであることが推奨されます。 例えば、クラス内に `onResponse()` 関数を作成した場合、*reponse* イベントが発生した際にそれが自動的に非同期で呼び出されます。 +これらのクラスは非同期実行に関しては同じルールに従います。これらのクラスのコンストラクターは、非同期オブジェクトを設定するために使用される *options* 引数を受付ます。この場合の *options* オブジェクトには、コールバック関数を備えた[ユーザークラス](../Concepts/classes.md) インスタンスであることが推奨されます。例えば、クラス内に `onResponse()` 関数を作成した場合、*reponse* イベントが発生した際にそれが自動的に非同期で呼び出されます。 以下のような手順が推奨されます: 1. コールバック関数を宣言するユーザークラスを作成します。例えば、`onError()` および `onResponse()` 関数を持つ、`cs.Params` クラスなどです。 2. そのユーザークラスをインスタンス化し(ここでの例では`cs.Params.new()` クラスを使用)、それを使用して非同期オブジェクトを設定します。 -3. 4D クラスのコンストラクターを呼び出し(例えば`4D.SystemWorker.new()` など)、*options* オブジェクトを引数として渡します。 渡されたオペレーションは、遅延なくすぐに開始されます。 +3. 4D クラスのコンストラクターを呼び出し(例えば`4D.SystemWorker.new()` など)、*options* オブジェクトを引数として渡します。渡されたオペレーションは、遅延なくすぐに開始されます。 以下は、ユーザークラスに基づいた *options* オブジェクトの実装の完全な一例です: @@ -162,7 +162,7 @@ Function _createFile($title : Text; $textBody : Text) :::tip -一部の場合においては、クラス関数の代わりに、プロパティ値としてフォーミュラを使用したい場合があるかもしれません。 これはベストプラクティスではありませんが、以下のようなシンタックスがサポートされています: +一部の場合においては、クラス関数の代わりに、プロパティ値としてフォーミュラを使用したい場合があるかもしれません。これはベストプラクティスではありませんが、以下のようなシンタックスがサポートされています: ```4d var $options.onResponse:=Formula(myMethod) @@ -172,11 +172,11 @@ var $options.onResponse:=Formula(myMethod) ## 非同期コード内での同期的な実行 -現代的な非同期コードを使用している場合でも、ある程度の同期実行が必要となる場合があるかもしれません。 例えば、ある関数が結果を得るまで、ある程度の時間待つようにしたいかもしれません。 これは例えば、保証された速いネットワーク接続や、システムワーカーなどが考えられます。 このような場合、`wait()` 関数を使用することで、同期的な実行を強制することができます。 +現代的な非同期コードを使用している場合でも、ある程度の同期実行が必要となる場合があるかもしれません。例えば、ある関数が結果を得るまで、ある程度の時間待つようにしたいかもしれません。これは例えば、保証された速いネットワーク接続や、システムワーカーなどが考えられます。このような場合、`wait()` 関数を使用することで、同期的な実行を強制することができます。 -**`.wait()`** 関数はカレントプロセスの実行を一時停止させ、4D を[イベントリスニング](#イベントリスニング) モードにします。 ただし、これは `wait()` 関数が呼ばれたオブジェクトからだけでなく、どのソースから受信したイベントであってもトリガーされるという点に注意してください。 +**`.wait()`** 関数はカレントプロセスの実行を一時停止させ、4D を[イベントリスニング](#イベントリスニング) モードにします。ただし、これは `wait()` 関数が呼ばれたオブジェクトからだけでなく、どのソースから受信したイベントであってもトリガーされるという点に注意してください。 -`wait()` 関数は、`onTerminate` イベントがオブジェクト上でトリガーされた場合か、あるいは指定されたタイムアウト(あれば)が経過した場合に実行を返します。 結果として、コールバック内から `shutdown()` あるいは `terminate()` を呼び出すことで、`.wait()` から明示的に抜け出すことができます。 それ以外の場合は、 `.wait()` はカレントのオペレーションが終了した際に終了します。 +`wait()` 関数は、`onTerminate` イベントがオブジェクト上でトリガーされた場合か、あるいは指定されたタイムアウト(あれば)が経過した場合に実行を返します。結果として、コールバック内から `shutdown()` あるいは `terminate()` を呼び出すことで、`.wait()` から明示的に抜け出すことができます。それ以外の場合は、 `.wait()` はカレントのオペレーションが終了した際に終了します。 例: 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 9486f8be71ad93..c207e4c85057fb 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 @@ -9,7 +9,7 @@ title: フィールドプロパティ ![](../assets/en/Develop/inspector-class.png) -このプロパティは**オブジェクト**型のフィールドにおいてのみ利用可能です(プロジェクトモードのみ)。 これを使用すると**クラス型のオブジェクトフィールド**を定義することができ、これによってコード保管、シンタックスチェック、そしてオブジェクトフィールドに絡んだコードを打ち込んでいる際のランタイム評価などを改善することができます。 +このプロパティは**オブジェクト**型のフィールドにおいてのみ利用可能です(プロジェクトモードのみ)。これを使用すると**クラス型のオブジェクトフィールド**を定義することができ、これによってコード保管、シンタックスチェック、そしてオブジェクトフィールドに絡んだコードを打ち込んでいる際のランタイム評価などを改善することができます。 ここには有効なクラス名であればなんでも入力することができます。これには以下のものも含まれます: @@ -21,11 +21,11 @@ title: フィールドプロパティ :::note -[ORDA データモデルクラス](../ORDA/ordaClasses.md)、[ファイルハンドラー](../API/FileHandleClass.md)、[Web サーバー](../API/WebServerClass.md)...などの[**ストリーム不可のクラス**](../Concepts/dt_object.md#ストリーミングサポート) はオブジェクトフィールドに代入することはできません。 +[ORDA データモデルクラス](../ORDA/ordaClasses.md)、[ファイルハンドラー](../API/FileHandleClass.md)、[Web サーバー](../API/WebServerClass.md)...などの[**ストリーム不可のクラス**](../Concepts/dt_object.md#ストリーミングサポート)はオブジェクトフィールドに代入することはできません。 ::: -コード内において、値をクラス型のオブジェクトフィールドに代入する場合、4D はその値が宣言されたクラスに所属しているかどうかを検証します。 クラスに所属していない場合、あるいはオブジェクトがどのクラスにも属していない場合、エラーがトリガーされます。 不明な属性へのアクセスもまたシンタックスエラーを発生させます。 +コード内において、値をクラス型のオブジェクトフィールドに代入する場合、4D はその値が宣言されたクラスに所属しているかどうかを検証します。クラスに所属していない場合、あるいはオブジェクトがどのクラスにも属していない場合、エラーがトリガーされます。不明な属性へのアクセスもまたシンタックスエラーを発生させます。 ランタイムにおいて関連づけられたクラス名を取得するためには、[`classID`](../API/DataClassClass.md#attributename) プロパティを使用してください。例: `ds.MyTable.MyField.classID` 。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/preemptive.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/preemptive.md index 59f04182188826..8f3647df6fbe95 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/preemptive.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/preemptive.md @@ -3,15 +3,15 @@ id: preemptive-processes title: プリエンプティブプロセス --- -コンパイルされたコードは、**プリエンプティブプロセス** として実行できます。 この新機能のおかげで、コンパイルされた 4Dアプリケーションはマルチコアコンピューターの利点をすべて活かすことができ、それによって実行速度が向上し、またより多くのユーザーの接続をサポートすることができます。 +コンパイルされたコードは、**プリエンプティブプロセス** として実行できます。この新機能のおかげで、コンパイルされた 4Dアプリケーションはマルチコアコンピューターの利点をすべて活かすことができ、それによって実行速度が向上し、またより多くのユーザーの接続をサポートすることができます。 ## プリエンプティブプロセスとは? -*プリエンプティブ* モードで実行された場合、プロセスは CPU に割り当てられます。 プロセス管理はシステムへと委任され、マルチコアのマシン上にてシステムはプロセスをそれぞれのCPUへと個別に割り当てます。 +*プリエンプティブ* モードで実行された場合、プロセスは CPU に割り当てられます。プロセス管理はシステムへと委任され、マルチコアのマシン上にてシステムはプロセスをそれぞれのCPUへと個別に割り当てます。 *コオペラティブ* モードで実行された場合には、たとえマルチコアのマシン上であっても、すべてのプロセスは親アプリケーションのスレッドにより管理され、同じ CPU を共有します。 -結果として、プリエンプティブモードでは、アプリケーションの全体的なパフォーマンスは向上します。マルチコアのマシン上では複数のプロセス (スレッド) が真実同時実行可能であるため、パフォーマンスの向上はさらに顕著になります。 (ただし、実際のパフォーマンスの差は、実行される処理に依存します。) その一方で、プリエンプティブモードではそれぞれのスレッドが他から独立しており、アプリケーションによって直接管理されている訳ではないため、プリエンプティブに準拠させるにあたってはメソッドに特定の制約が課されます。 それに加え、プリエンプティブ実行は特定のコンテキストでのみ使用可能です。 +結果として、プリエンプティブモードでは、アプリケーションの全体的なパフォーマンスは向上します。マルチコアのマシン上では複数のプロセス (スレッド) が真実同時実行可能であるため、パフォーマンスの向上はさらに顕著になります。(ただし、実際のパフォーマンスの差は、実行される処理に依存します。)その一方で、プリエンプティブモードではそれぞれのスレッドが他から独立しており、アプリケーションによって直接管理されている訳ではないため、プリエンプティブに準拠させるにあたってはメソッドに特定の制約が課されます。それに加え、プリエンプティブ実行は特定のコンテキストでのみ使用可能です。 ## プリエンプティブモードの利用可否について{#availability-of-preemptive-mode} @@ -31,11 +31,11 @@ title: プリエンプティブプロセス ## スレッドセーフとスレッドアンセーフ -4Dコードは、いくつかの特定の条件に合致していた場合に限りプリエンプティブスレッド内で実行することができます。 実行コードのそれぞれの部分 (コマンド、メソッド、変数など) が プリエンプティブ実行に準拠している必要性があります。 プリエンプティブスレッドで実行可能な要素はスレッドセーフと呼ばれ、プリエンプティブスレッドで実行できない要素はスレッドアンセーフと呼ばれます。 +4Dコードは、いくつかの特定の条件に合致していた場合に限りプリエンプティブスレッド内で実行することができます。実行コードのそれぞれの部分 (コマンド、メソッド、変数など) がプリエンプティブ実行に準拠している必要性があります。プリエンプティブスレッドで実行可能な要素はスレッドセーフと呼ばれ、プリエンプティブスレッドで実行できない要素はスレッドアンセーフと呼ばれます。 :::note -スレッドは、親プロセスメソッドをスタートとして独自に管理されているので、呼び出しチェーン全体のどこにおいてもスレッドアンセーフなコードが含まれていてはいけません。そのようなコードが含まれていた場合、プリエンプティブに実行することはできません。 この点については、[こちらの章](#プロセスがプリエンプティブに実行される条件とは) で詳細な説明があります。 +スレッドは、親プロセスメソッドをスタートとして独自に管理されているので、呼び出しチェーン全体のどこにおいてもスレッドアンセーフなコードが含まれていてはいけません。そのようなコードが含まれていた場合、プリエンプティブに実行することはできません。この点については、[こちらの章](#プロセスがプリエンプティブに実行される条件とは) で詳細な説明があります。 ::: @@ -44,13 +44,13 @@ title: プリエンプティブプロセス - 4Dコマンド: スレッドセーフティは内部プロパティです。 4D ドキュメンテーション内においては、スレッドセーフなコマンドには ![](../assets/en/Develop/thread-safe.png) アイコンが表示されています。 [`Command name`](../commands/command-name) コマンドを使用して、コマンドがスレッドセーフであるかどうかを知ることもできます。 4Dコマンドの大部分はプリエンプティブモードで実行可能です。 - プロジェクトメソッド: スレッドセーフであるための条件は [こちらの段落](#スレッドセーフなメソッドの書き方) にまとめられています。 -原則として、プリエンプティブスレッド内で実行されるコードは外部との相互作用する部分、たとえばプラグインコードやインタープロセス変数などを呼び出すことはできません。 しかしながら、4Dデータサーバーと ORDA はプリエンプティブ実行をサポートしていることから、データアクセスは可能です。 +原則として、プリエンプティブスレッド内で実行されるコードは外部との相互作用する部分、たとえばプラグインコードやインタープロセス変数などを呼び出すことはできません。しかしながら、4Dデータサーバーと ORDA はプリエンプティブ実行をサポートしていることから、データアクセスは可能です。 ## プリエンプティブ実行宣言 -デフォルトでは、4D はアプリケーション内のプロジェクトメソッドをすべてコオペラティブモードで実行します。 プリエンプティブモードを利用したい場合は、まず最初に、可能な限りプリエンプティブモードで開始したいメソッドをすべて明示的に宣言することから始まります。これはつまり、プリエンプティブプロセスで実行可能なメソッドであるということです。 コンパイラーは、[それらのメソッドが実際にスレッドセーフであるかどうかをチェックします](#スレッドセーフなメソッドの書き方)。 また、必要であれば、一部のメソッドに対してプリエンプティブモードを禁止することもできます。 +デフォルトでは、4D はアプリケーション内のプロジェクトメソッドをすべてコオペラティブモードで実行します。プリエンプティブモードを利用したい場合は、まず最初に、可能な限りプリエンプティブモードで開始したいメソッドをすべて明示的に宣言することから始まります。これはつまり、プリエンプティブプロセスで実行可能なメソッドであるということです。コンパイラーは、[それらのメソッドが実際にスレッドセーフであるかどうかをチェックします](#スレッドセーフなメソッドの書き方)。また、必要であれば、一部のメソッドに対してプリエンプティブモードを禁止することもできます。 -プリエンプティブで使用可能 ("capable") であると宣言することは、当該メソッドにプリエンプティブ実行の資格を与えますが、実行時にそのメソッドが実際にプリエンプティブモードで実行されることを保障するものではないことに留意が必要です。 プロセスをプリエンプティブモードで開始することは、プロセス内の呼び出しチェーン内のすべてのメソッドの関連プロパティを [4Dが評価して](#プロセスがプリエンプティブに実行される条件とは) 初めて可能になります。 +プリエンプティブで使用可能 ("capable") であると宣言することは、当該メソッドにプリエンプティブ実行の資格を与えますが、実行時にそのメソッドが実際にプリエンプティブモードで実行されることを保障するものではないことに留意が必要です。プロセスをプリエンプティブモードで開始することは、プロセス内の呼び出しチェーン内のすべてのメソッドの関連プロパティを [4Dが評価して](#プロセスがプリエンプティブに実行される条件とは) 初めて可能になります。 メソッドがプリエンプティブモードに則していることを宣言するためには、メソッドプロパティダイアログボックスの "実行モード" 宣言オプションを使用する必要があります: @@ -58,25 +58,25 @@ title: プリエンプティブプロセス 以下のオプションが提供されています: -- **プリエンプティブプロセスで実行可能**: このオプションをチェックすると、メソッドがプリエンプティブプロセスでの実行が可能であると宣言し、可能な場合にはプリエンプティブモードで実行するべきと宣言します。 メソッドの "preemptive" プロパティは "capable" に設定されます。 +- **プリエンプティブプロセスで実行可能**: このオプションをチェックすると、メソッドがプリエンプティブプロセスでの実行が可能であると宣言し、可能な場合にはプリエンプティブモードで実行するべきと宣言します。メソッドの "preemptive" プロパティは "capable" に設定されます。 - このオプションがチェックされている場合、4Dコンパイラーはメソッドが実際にプリエンプティブモードで実行可能かどうかを検証し、そうでない場合 (たとえば、プリエンプティブモードで実行不可能なコマンドやメソッドを直接的あるいは間接的に呼び出している場合など) にはエラーを返します。 なお、コールチェーンはすべて解析されますが、最初のサブレベルに対してのみエラーが報告されます。 エラーの場合には、メソッドを編集してスレッドセーフにするか、あるいは別のオプションを選択します。 + このオプションがチェックされている場合、4Dコンパイラーはメソッドが実際にプリエンプティブモードで実行可能かどうかを検証し、そうでない場合 (たとえば、プリエンプティブモードで実行不可能なコマンドやメソッドを直接的あるいは間接的に呼び出している場合など) にはエラーを返します。 なお、コールチェーンはすべて解析されますが、最初のサブレベルに対してのみエラーが報告されます。エラーの場合には、メソッドを編集してスレッドセーフにするか、あるいは別のオプションを選択します。 - メソッドのプリエンプティブ性が証明されると、内部で "thread safe" というタグ付けがされ、すべての要件が満たされればプリエンプティブモードで実行されます。 このプロパティはプリエンプティブモードの資格を定義しますが、メソッドが実際にプリエンプティブモードで実行されることを保証するものではありません。プリエンプティブ実行モードは [特定のコンテキスト](#プロセスがプリエンプティブに実行される条件とは) を必要とするからです。 + メソッドのプリエンプティブ性が証明されると、内部で "thread safe" というタグ付けがされ、すべての要件が満たされればプリエンプティブモードで実行されます。このプロパティはプリエンプティブモードの資格を定義しますが、メソッドが実際にプリエンプティブモードで実行されることを保証するものではありません。プリエンプティブ実行モードは [特定のコンテキスト](#プロセスがプリエンプティブに実行される条件とは) を必要とするからです。 -- **プリエンプティブプロセスでは実行不可**: このオプションをチェックすると、当該メソッドはプリエンプティブモードでの実行は不可能であると宣言し、以前の 4D のバージョンと同様に常にコオペラティブモードで実行されます。 メソッドの "preemptive" プロパティは "incapable" に設定されます。 +- **プリエンプティブプロセスでは実行不可**: このオプションをチェックすると、当該メソッドはプリエンプティブモードでの実行は不可能であると宣言し、以前の 4D のバージョンと同様に常にコオペラティブモードで実行されます。メソッドの "preemptive" プロパティは "incapable" に設定されます。 - このオプションがチェックされている場合、4Dコンパイラーはメソッドがプリエンプティブ実行可能かどうかを検証しません。メソッドは内部で自動的に "thread unsafe" とタグ付けされます (たとえ、理論的にはスレッドセーフであってもです)。 ランタイムで呼び出された場合、このメソッドは同じスレッド内の他のメソッドを "汚染" し、他のメソッドがスレッドセーフであったとしても、スレッドはコオペラティブモードでの実行を強制されます。 + このオプションがチェックされている場合、4Dコンパイラーはメソッドがプリエンプティブ実行可能かどうかを検証しません。メソッドは内部で自動的に "thread unsafe" とタグ付けされます (たとえ、理論的にはスレッドセーフであってもです)。ランタイムで呼び出された場合、このメソッドは同じスレッド内の他のメソッドを "汚染" し、他のメソッドがスレッドセーフであったとしても、スレッドはコオペラティブモードでの実行を強制されます。 -- **特に設定しない** (デフォルト): このオプションをチェックすると、当該メソッドについてはプリエンプティブプロパティを管理しないことを宣言します。 メソッドの "preemptive" プロパティは "indifferent" に設定されます。 +- **特に設定しない** (デフォルト): このオプションをチェックすると、当該メソッドについてはプリエンプティブプロパティを管理しないことを宣言します。メソッドの "preemptive" プロパティは "indifferent" に設定されます。 - このオプションがチェックされているとき、4Dコンパイラーはメソッドのプリエンプティブ性を評価し、内部的に "thread safe" あるいは "thread unsafe" のタグ付けをします。 プリエンプティブ実行に関するエラーは報告されません。 メソッドがスレッドセーフと評価されていれば、ランタイムでプリエンプティブコンテキストから呼び出された場合にはプリエンプティブスレッド実行を妨げません。 逆に、メソッドがスレッドアンセーフであると評価された場合には、ランタイムで呼び出された場合に、プリエンプティブなスレッド実行を不可能にします。 + このオプションがチェックされているとき、4Dコンパイラーはメソッドのプリエンプティブ性を評価し、内部的に "thread safe" あるいは "thread unsafe" のタグ付けをします。プリエンプティブ実行に関するエラーは報告されません。メソッドがスレッドセーフと評価されていれば、ランタイムでプリエンプティブコンテキストから呼び出された場合にはプリエンプティブスレッド実行を妨げません。逆に、メソッドがスレッドアンセーフであると評価された場合には、ランタイムで呼び出された場合に、プリエンプティブなスレッド実行を不可能にします。 -このオプションを使用した場合、内部でのスレッドセーフ評価に関わらず、最初の親メソッドとしてメソッドが 4D から直接呼び出された場合 (たとえば `New process` コマンドから呼び出された場合など)、メソッドは常にコオペラティブモードで実行されます。 内部で "thread-safe" とタグ付けされている場合、そのタグはコールチェーン内で他のメソッドから呼び出された場合に限り考慮されます。 +このオプションを使用した場合、内部でのスレッドセーフ評価に関わらず、最初の親メソッドとしてメソッドが 4D から直接呼び出された場合 (たとえば `New process` コマンドから呼び出された場合など)、メソッドは常にコオペラティブモードで実行されます。内部で "thread-safe" とタグ付けされている場合、そのタグはコールチェーン内で他のメソッドから呼び出された場合に限り考慮されます。 :::note 特殊なケース -メソッドの [**コンポーネントとホストプロジェクト間で共有**](../Project/project-method-properties.md#コンポーネントとホストプロジェクト間で共有) プロパティがチェックされている場合、**特に設定しない** オプションを選択するとメソッドは自動的にスレッドアンセーフであるとタグ付けされます。 共有コンポーネントメソッドをスレッドセーフにしたい場合には、**プリエンプティブプロセスで実行可能** オプションを明示的に選択する必要があります。 +メソッドの [**コンポーネントとホストプロジェクト間で共有**](../Project/project-method-properties.md#コンポーネントとホストプロジェクト間で共有) プロパティがチェックされている場合、**特に設定しない** オプションを選択するとメソッドは自動的にスレッドアンセーフであるとタグ付けされます。共有コンポーネントメソッドをスレッドセーフにしたい場合には、**プリエンプティブプロセスで実行可能** オプションを明示的に選択する必要があります。 ::: @@ -92,10 +92,9 @@ title: プリエンプティブプロセス - プロセスメソッドが "thread safe" であった場合 (コンパイル時に評価)、プロセスはプリエンプティブスレッド内で実行されます。 - プロセスメソッドが "thread unsafe" であった場合、プロセスはコオペラティブスレッド内で実行されます。 -- プロセスメソッドのプリエンプティブプロパティが "indifferent" であった場合、(メソッドが実際にはプリエンプティブに実行可能だったとしても) 互換性のためにプロセスはコオペラティブスレッド内で実行されます。 この互換性機能はメソッドがプロセスメソッドとして使用された場合にのみ適用されるという点に注意してください。また "indifferent" と宣言されたもののコンパイラーによって内部で "thread safe" とタグ付けされたメソッドに関しては、他のメソッドからプリエンプティブに呼び出すことが可能です (以下参照)。 +- プロセスメソッドのプリエンプティブプロパティが "indifferent" であった場合、(メソッドが実際にはプリエンプティブに実行可能だったとしても) 互換性のためにプロセスはコオペラティブスレッド内で実行されます。この互換性機能はメソッドがプロセスメソッドとして使用された場合にのみ適用されるという点に注意してください。また "indifferent" と宣言されたもののコンパイラーによって内部で "thread safe" とタグ付けされたメソッドに関しては、他のメソッドからプリエンプティブに呼び出すことが可能です (以下参照)。 -実際のスレッドセーフプロパティは呼び出しチェーンによります。 "capable" と宣言されたプロパティを持つメソッドが、スレッドアンセーフなメソッドをサブレベル (どの階層でも) で呼び出した場合、コンパイルエラーが返されます。呼び出しチェーン全体の中で一つでもメソッドがスレッドアンセーフであれば、それは他のすべてのメソッドをいわば "汚染" し、プリエンプティブ実行はコンパイラーによって拒否されます。 プリエンプティブスレッドは、呼び出しチェーン全体がスレッドセーフであり、プロセスメソッドが "プリエンプティブプロセスで実行可能" と宣言されている場合にのみ作成可能です。 -その一方で、同じスレッドセーフメソッドを、呼び出しチェーン内ではプリエンプティブスレッド内で実行し、他の呼び出しチェーン内ではコオペラティブスレッド内で実行することが可能です。 +実際のスレッドセーフプロパティは呼び出しチェーンによります。 "capable" と宣言されたプロパティを持つメソッドが、スレッドアンセーフなメソッドをサブレベル (どの階層でも) で呼び出した場合、コンパイルエラーが返されます。呼び出しチェーン全体の中で一つでもメソッドがスレッドアンセーフであれば、それは他のすべてのメソッドをいわば "汚染" し、プリエンプティブ実行はコンパイラーによって拒否されます。プリエンプティブスレッドは、呼び出しチェーン全体がスレッドセーフであり、プロセスメソッドが "プリエンプティブプロセスで実行可能" と宣言されている場合にのみ作成可能です。その一方で、同じスレッドセーフメソッドを、呼び出しチェーン内ではプリエンプティブスレッド内で実行し、他の呼び出しチェーン内ではコオペラティブスレッド内で実行することが可能です。 たとえば、次のプロジェクトメソッドの場合: @@ -125,17 +124,17 @@ title: プリエンプティブプロセス MyComp($vAge) ``` -プリエンプティブモードでのメソッド実行は、"プリエンプティブ" プロパティや呼び出しチェーンに依存します。 以下の表は、これらの様々な状況をまとめたものです: +プリエンプティブモードでのメソッド実行は、"プリエンプティブ" プロパティや呼び出しチェーンに依存します。以下の表は、これらの様々な状況をまとめたものです: ![](../assets/en/Develop/legend.png) -| 宣言と呼び出しチェーン | コンパイル | スレッドセーフの結果 | 実行モード | 説明 | -| ------------------------------------- | ----- | -------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/Develop/scenar1.png) | OK | ![](../assets/en/Develop/scenar2.png) | プリエンプティブ | CallComp は親メソッドで、プリエンプティブな使用が "capable" (可能) と宣言されています。MyComp は内部的にスレッドセーフなので、CallComp も内部的にスレッドセーフとなり、プロセスはプリエンプティブになります | -| ![](../assets/en/Develop/scenar3.png) | エラー発生 | ![](../assets/en/Develop/scenar4.png) | 実行不可能 | CallDial は親メソッドでプリエンプティブ "capable" (可能)、MyDialog は "indifferent" と宣言されています。 しかし、MyDialog が内部的にはスレッドアンセーフのため、呼び出しチェーンを "汚染" してしまいます。 CallDial の宣言と実際の実効性が矛盾するためコンパイルは失敗します。 解決方法は、MyDialog を変更してスレッドセーフにして実行をプリエンプティブにするか、CallDial のプロパティを変更してコオペラティブに実行するようにします。 | -| ![](../assets/en/Develop/scenar5.png) | OK | ![](../assets/en/Develop/scenar6.png) | コオペラティブ | CallDial はプリエンプティブな使用が "incapable"(不可) と宣言されているのでコンパイル時には内部的にスレッドアンセーフとなり、MyDialog の状況に関わらず実行はかならずコオペラティブになります。 | -| ![](../assets/en/Develop/scenar7.png) | OK | ![](../assets/en/Develop/scenar8.png) | コオペラティブ | CallComp が親メソッドでプロパティが "indifferent" のため、呼び出しチェーンがすべてスレッドセーフでも、プロセスはコオペラティブになります。 | -| ![](../assets/en/Develop/scenar9.png) | OK | ![](../assets/en/Develop/scenar10.png) | コオペラティブ | CallDial が親メソッドでプロパティが "indifferent" のため、プロセスはコオペラティブになり、コンパイルは成功します。 | +| 宣言と呼び出しチェーン | コンパイル | スレッドセーフの結果 | 実行モード | 説明 | +| ------------------------------------- | ----- | -------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/Develop/scenar1.png) | OK | ![](../assets/en/Develop/scenar2.png) | プリエンプティブ | CallComp は親メソッドで、プリエンプティブな使用が "capable" (可能) と宣言されています。MyComp は内部的にスレッドセーフなので、CallComp も内部的にスレッドセーフとなり、プロセスはプリエンプティブになります | +| ![](../assets/en/Develop/scenar3.png) | エラー発生 | ![](../assets/en/Develop/scenar4.png) | 実行不可能 | CallDial は親メソッドでプリエンプティブ "capable" (可能)、MyDialog は "indifferent" と宣言されています。しかし、MyDialog が内部的にはスレッドアンセーフのため、呼び出しチェーンを "汚染" してしまいます。 CallDial の宣言と実際の実効性が矛盾するためコンパイルは失敗します。解決方法は、MyDialog を変更してスレッドセーフにして実行をプリエンプティブにするか、CallDial のプロパティを変更してコオペラティブに実行するようにします。 | +| ![](../assets/en/Develop/scenar5.png) | OK | ![](../assets/en/Develop/scenar6.png) | コオペラティブ | CallDial はプリエンプティブな使用が "incapable"(不可) と宣言されているのでコンパイル時には内部的にスレッドアンセーフとなり、MyDialog の状況に関わらず実行はかならずコオペラティブになります。 | +| ![](../assets/en/Develop/scenar7.png) | OK | ![](../assets/en/Develop/scenar8.png) | コオペラティブ | CallComp が親メソッドでプロパティが "indifferent" のため、呼び出しチェーンがすべてスレッドセーフでも、プロセスはコオペラティブになります。 | +| ![](../assets/en/Develop/scenar9.png) | OK | ![](../assets/en/Develop/scenar10.png) | コオペラティブ | CallDial が親メソッドでプロパティが "indifferent" のため、プロセスはコオペラティブになり、コンパイルは成功します。 | ### 実際の実行モードの調べ方 @@ -155,8 +154,7 @@ title: プリエンプティブプロセス - インタープロセス変数を使用していない(1) - インターフェースオブジェクトを呼び出していない(2) (例外あり、以下参照) -(1) プリエンプティブプロセス間(あるいは全てのプロセス間)でデータをやり取りするためには、プロセスへの引数として[共有コレクションまたは共有オブジェクト](../Concepts/shared.md) を渡すか、あるいは[`Storage`](../commands/storage) カタログを使うという方法もあります。 -[ワーカープロセス](processes.md#ワーカープロセス) は、プリエンプティブプロセスを含むあらゆるプロセス間でデータの交換ができます。 +(1) プリエンプティブプロセス間(あるいは全てのプロセス間)でデータをやり取りするためには、プロセスへの引数として[共有コレクションまたは共有オブジェクト](../Concepts/shared.md) を渡すか、あるいは[`Storage`](../commands/storage) カタログを使うという方法もあります。[ワーカープロセス](processes.md#ワーカープロセス) は、プリエンプティブプロセスを含むあらゆるプロセス間でデータの交換ができます。 (2) [`CALL FORM`](../commands/call-form) コマンドは、プリエンプティブプロセスからインターフェースオブジェクトを呼び出すためのエレガントなソリューションを提供します。 @@ -164,12 +162,12 @@ title: プリエンプティブプロセス - "コンポーネントとホストデータベース間で共有" メソッドの場合、"プリエンプティブプロセスで実行可能" プロパティが選択されている必要があります。 - すべての SQLステートメントはスレッドセーフです。 `Begin SQL`/`End SQL` ブロックに挿入される SQLコードは、以下の条件に従う必要があります: - - 4D Server あるいは 4Dローカルデータベースに適用される (ODBC あるいは `SQL LOGIN` 経由のリモートデータベースではスレッドセーフではありません。 ただし、`USE DATABASE` を使用したローカルなデータベースはスレッドセーフです)。 + - 4D Server あるいは 4Dローカルデータベースに適用される (ODBC あるいは `SQL LOGIN` 経由のリモートデータベースではスレッドセーフではありません。ただし、`USE DATABASE` を使用したローカルなデータベースはスレッドセーフです)。 * SQLステートメントから呼び出されるトリガーはすべてスレッドセーフでなければなりません (以下の[トリガー](#トリガー) を参照ください)。 ::: -"プリエンプティブプロセスで実行可能" プロパティを持つメソッドは、コンパイル時に 4D によってチェックされます。 メソッドがスレッドセーフになるのを妨げる要因をコンパイラーが見つけた場合にはコンパイルエラーが生成されます: +"プリエンプティブプロセスで実行可能" プロパティを持つメソッドは、コンパイル時に 4D によってチェックされます。メソッドがスレッドセーフになるのを妨げる要因をコンパイラーが見つけた場合にはコンパイルエラーが生成されます: ![](../assets/en/Develop/thread-unsafe.png) @@ -187,9 +185,9 @@ title: プリエンプティブプロセス プリエンプティブスレッドからアクセス可能なユーザーインターフェースは以下のものに限られます: -- [標準のエラーダイアログ](../Debugging/basics)。 ダイアログはユーザーモードプロセス (4D)、あるいはサーバーユーザーインターフェースプロセス (4D Server) 内で表示されます。 ただし **トレース** ボタンは無効化されます。 +- [標準のエラーダイアログ](../Debugging/basics)。ダイアログはユーザーモードプロセス (4D)、あるいはサーバーユーザーインターフェースプロセス (4D Server) 内で表示されます。ただし **トレース** ボタンは無効化されます。 - 標準の進捗インジケーター -- `ALERT`、`Request` そして `CONFIRM` ダイアログ。 ダイアログはユーザーモードプロセス (4D)、あるいはサーバーユーザーインターフェースプロセス (4D Server) 内で表示されます。 ただし、4D Server を Windows上でユーザー操作を許可しないサービスとしてローンチした場合には、ダイアログは表示されないという点に注意して下さい。 +- `ALERT`、`Request` そして `CONFIRM` ダイアログ。ダイアログはユーザーモードプロセス (4D)、あるいはサーバーユーザーインターフェースプロセス (4D Server) 内で表示されます。ただし、4D Server を Windows上でユーザー操作を許可しないサービスとしてローンチした場合には、ダイアログは表示されないという点に注意して下さい。 ### Triggers @@ -203,7 +201,7 @@ title: プリエンプティブプロセス `SAVE RECORD`, `SAVE RELATED ONE`, `DELETE RECORD`, `DELETE SELECTION`, `ARRAY TO SELECTION`, `JSON TO SELECTION`, `APPLY TO SELECTION`, `IMPORT DATA`, `IMPORT DIF`, `IMPORT ODBC`, `IMPORT SYLK`, `IMPORT TEXT` -テーブルが動的に渡された場合、コンパイラーはどのトリガーを評価すべきなのかが分からない場合があります。 以下はそのような状況の一例です: +テーブルが動的に渡された場合、コンパイラーはどのトリガーを評価すべきなのかが分からない場合があります。以下はそのような状況の一例です: ```4d DEFAULT TABLE([Table_1]) @@ -212,17 +210,17 @@ title: プリエンプティブプロセス SAVE RECORD(Table(myMethodThatReturnsATableNumber())->) ``` -この場合、すべてのトリガーが評価されます。 スレッドセーフでないコマンドの使用が検出されたトリガーが 1つでもあれば、グループ全体がチェックに失敗し、メソッドはスレッドアンセーフと宣言されます。 +この場合、すべてのトリガーが評価されます。スレッドセーフでないコマンドの使用が検出されたトリガーが 1つでもあれば、グループ全体がチェックに失敗し、メソッドはスレッドアンセーフと宣言されます。 :::note -[クライアント/サーバーアプリケーション](../Desktop/clientServer.md)では、トリガーのコードがスレッドセーフである場合でも、実行はコオペラティブモードでおこなわれることがあります。 これは、リモートプロセスからトリガーが呼び出された場合に発生します: この場合、トリガーはサーバーマシン上の [クライアントプロセスの "双子" プロセス](https://doc.4d.com/4Dv20/4D/20/4D-Server-and-the-4D-Language.300-6330554.ja.html#68972) で実行されます。 このプロセスは、クライアントからのすべての呼び出しに使用されるため、常にコオペラティブモードで実行されます。 +[クライアント/サーバーアプリケーション](../Desktop/clientServer.md)では、トリガーのコードがスレッドセーフである場合でも、実行はコオペラティブモードでおこなわれることがあります。これは、リモートプロセスからトリガーが呼び出された場合に発生します: この場合、トリガーはサーバーマシン上の [クライアントプロセスの "双子" プロセス](https://doc.4d.com/4Dv20/4D/20/4D-Server-and-the-4D-Language.300-6330554.ja.html#68972) で実行されます。このプロセスは、クライアントからのすべての呼び出しに使用されるため、常にコオペラティブモードで実行されます。 ::: ### エラー処理メソッド -`ON ERR CALL` コマンドによって実装された [エラーキャッチメソッド](../Concepts/error-handling.md) は、プリエンプティブプロセスから呼び出される可能性が高いのであれば、スレッドセーフでなければなりません。 このような状況を管理するため、コンパイラーは `ON ERR CALL` コマンドに渡されたエラーキャッチプロジェクトメソッドのスレッドセーフプロパティをコンパイル時にチェックし、メソッドがプリエンプティブ実行に適応していない場合には適切なエラーを返します。 +`ON ERR CALL` コマンドによって実装された [エラーキャッチメソッド](../Concepts/error-handling.md) は、プリエンプティブプロセスから呼び出される可能性が高いのであれば、スレッドセーフでなければなりません。このような状況を管理するため、コンパイラーは `ON ERR CALL` コマンドに渡されたエラーキャッチプロジェクトメソッドのスレッドセーフプロパティをコンパイル時にチェックし、メソッドがプリエンプティブ実行に適応していない場合には適切なエラーを返します。 このチェックはメソッド名が定数として渡された場合にのみ可能であり、以下に示すような、計算された値の場合にはチェックされないという点に注意してください: @@ -235,7 +233,7 @@ title: プリエンプティブプロセス ### ポインターの互換性 -あるプロセスにおいてポインターをデリファレンスし、別のプロセス変数の値へアクセスすることができますが、これは、両プロセスがともにコオペラティブである場合にかぎります。それ以外の場合、4D はエラーを生成します。 プリエンプティブプロセスにおいては、4Dコードがインタープロセス変数の値をポインター経由で照会しようとした場合、エラーが生成されます。 +あるプロセスにおいてポインターをデリファレンスし、別のプロセス変数の値へアクセスすることができますが、これは、両プロセスがともにコオペラティブである場合にかぎります。それ以外の場合、4D はエラーを生成します。プリエンプティブプロセスにおいては、4Dコードがインタープロセス変数の値をポインター経由で照会しようとした場合、エラーが生成されます。 以下のメソッドでそのような例を考えます: @@ -276,5 +274,5 @@ DocRef 参照番号 (開かれたドキュメントの参照番号。次のコ // %T+ 検証を有効に戻します ``` -無効化および有効化用のディレクティブでコードを挟んだ場合、そのコードがスレッドセーフかどうかについては、開発者が熟知している必要があります。 プリエンプティブなスレッドでスレッドセーフでないコードが実行された場合には、ランタイムエラーが発生します。 +無効化および有効化用のディレクティブでコードを挟んだ場合、そのコードがスレッドセーフかどうかについては、開発者が熟知している必要があります。プリエンプティブなスレッドでスレッドセーフでないコードが実行された場合には、ランタイムエラーが発生します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/processes.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/processes.md index b21c1a190579c5..d7eb693b4a3da8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/processes.md @@ -3,7 +3,7 @@ id: processes title: プロセスとワーカー --- -4D のマルチタスク機能は、複数の処理を同時に実行することを可能にします。 これらの処理を **プロセス** と呼びます。 マルチプロセスは、1つのコンピューター上でのマルチユーザーのようなもので、それぞれの処理は個別のタスクです。 つまり、それぞれのメソッドを個別のデータベースタスクとして実行できるということです。 +4D のマルチタスク機能は、複数の処理を同時に実行することを可能にします。これらの処理を **プロセス** と呼びます。マルチプロセスは、1つのコンピューター上でのマルチユーザーのようなもので、それぞれの処理は個別のタスクです。つまり、それぞれのメソッドを個別のデータベースタスクとして実行できるということです。 コードがスレッドセーフであれば [**プリエンプティブプロセス**](preemptive.md) を作成できるため、コンパイル済みアプリケーションをマルチコアコンピューターで実行することで、処理がより高速になります。 @@ -17,14 +17,14 @@ title: プロセスとワーカー 新規プロセスを作成するにはいくつかの方法があります: -- デザインモードにおいて、"メソッド実行" ダイアログボックスで **新規プロセス** チェックボックスをチェックした後、メソッドを実行する。 メソッド実行ダイアログボックスで選択したメソッドが (そのプロセスをコントロールする) プロセスメソッドとなります。 +- デザインモードにおいて、"メソッド実行" ダイアログボックスで **新規プロセス** チェックボックスをチェックした後、メソッドを実行する。メソッド実行ダイアログボックスで選択したメソッドが (そのプロセスをコントロールする) プロセスメソッドとなります。 - [`New process`](../commands/new-process) コマンドを使用する。 [`New process`](../commands/new-process) コマンドの引数として渡されたメソッドがプロセスメソッドです。 -- サーバー上ですトアドプロシージャーを作成するためには、[`Execute on server`](../commands/execute-on-server) コマンドを使用します。 コマンドの引数として渡されたメソッドがプロセスメソッドです。 -- [`CALL WORKER`](../commands/call-worker) コマンドを使用する。 ワーカープロセスが既に存在していない場合、新たに作成されます。 +- サーバー上ですトアドプロシージャーを作成するためには、[`Execute on server`](../commands/execute-on-server) コマンドを使用します。コマンドの引数として渡されたメソッドがプロセスメソッドです。 +- [`CALL WORKER`](../commands/call-worker) コマンドを使用する。ワーカープロセスが既に存在していない場合、新たに作成されます。 :::note -デスクトップアプリケーションでは、メニューコマンドを選択することでプロセスを開始できます。 [`メニューエディター`](../Menus/creating.md) において、メニューコマンドを選択して、**新規プロセスで開始** チェックボックスをクリックします。 メニューコマンドに関連付けられたメソッドがプロセスメソッドです。 +デスクトップアプリケーションでは、メニューコマンドを選択することでプロセスを開始できます。[`メニューエディター`](../Menus/creating.md) において、メニューコマンドを選択して、**新規プロセスで開始** チェックボックスをクリックします。メニューコマンドに関連付けられたメソッドがプロセスメソッドです。 ::: @@ -35,7 +35,7 @@ title: プロセスとワーカー - メソッドからプロセスを中止するか、またはデバッガーまたはランタイムエクスプローラーで **アボート** ボタンを使用した場合。 - [`KILL WORKER`](../commands/kill-worker) コマンドを呼び出した場合(ただしこれで削除できるのはワーカープロセスのみです)。 -プロセスは別のプロセスを作成することができます。 プロセスは階層構造にはなっていません。どのプロセスから作成されようと、すべてのプロセスは同等です。 いったん、“親” プロセスが “子” プロセスを作成すると、親プロセスの実行状況に関係なく、子プロセスは処理を続行します。 +プロセスは別のプロセスを作成することができます。プロセスは階層構造にはなっていません。どのプロセスから作成されようと、すべてのプロセスは同等です。いったん、“親” プロセスが “子” プロセスを作成すると、親プロセスの実行状況に関係なく、子プロセスは処理を続行します。 ## プロセスの要素 @@ -43,8 +43,8 @@ title: プロセスとワーカー ### ランゲージ要素 -- 変数: すべてのプロセスは独自の [`プロセス変数`](../Concepts/variables#プロセス変数) を持っています。 プロセス変数はその変数を作成したプロセスの範囲内でのみ認識されます。 -- プロセスセット: 各プロセスは、独自のプロセスセットを持っています。 `LockedSet` はプロセスセットです。 プロセスセットは、プロセスメソッドが終了すると直ちに消去されます。 +- 変数: すべてのプロセスは独自の [`プロセス変数`](../Concepts/variables#プロセス変数) を持っています。プロセス変数はその変数を作成したプロセスの範囲内でのみ認識されます。 +- プロセスセット: 各プロセスは、独自のプロセスセットを持っています。 `LockedSet` はプロセスセットです。プロセスセットは、プロセスメソッドが終了すると直ちに消去されます。 - [`エラー処理メソッド`](../Concepts/error-handling#エラー処理メソッドの実装): 各プロセスは、独自のエラー処理メソッドを持てます。 - [`デバッガーウィンドウ`](../Debugging/debugger#デバッガーの呼び出し): 各プロセスは、独自のデバッガーウィンドウを持つことができます。 @@ -52,21 +52,21 @@ title: プロセスとワーカー インターフェース要素は、[デスクトップアプリケーション](../category/desktop-applications) で使用されます。 以下のものがあります: 以下のものがあります: -- [メニューバー](../Menus/creating.md): 各プロセスは、独自のカレントメニューバーを持つことができます。 最前面のプロセスのメニューバーがアプリケーションのカレントメニューバーになります。 -- 1つ以上のウィンドウ: 各プロセスは、1つまたは複数のウィンドウを同時に開くことができます。 他方、ウィンドウをまったく持たないプロセスもあります。 -- 1つのアクティブ (最前面) ウィンドウ: プロセスは、複数のウィンドウを同時に開くことができますが、アクティブウィンドウは各プロセスに1つしかありません。 複数のアクティブウィンドウを持つには、アクティブウィンドウの数だけプロセスを起動しなければなりません。 +- [メニューバー](../Menus/creating.md): 各プロセスは、独自のカレントメニューバーを持つことができます。最前面のプロセスのメニューバーがアプリケーションのカレントメニューバーになります。 +- 1つ以上のウィンドウ: 各プロセスは、1つまたは複数のウィンドウを同時に開くことができます。他方、ウィンドウをまったく持たないプロセスもあります。 +- 1つのアクティブ (最前面) ウィンドウ: プロセスは、複数のウィンドウを同時に開くことができますが、アクティブウィンドウは各プロセスに1つしかありません。複数のアクティブウィンドウを持つには、アクティブウィンドウの数だけプロセスを起動しなければなりません。 - 入力フォームと出力フォーム: 各プロセスの各テーブルに対して、デフォルトの入力フォームと出力フォームをメソッドから設定することができます。 :::info -- プロセスはデフォルトではメニューバーを含みません。つまり、**編集** メニューのショートカット (具体的には、カット/コピー/ペースト) はプロセスウィンドウでは利用できません。 プロセスからダイアログボックスや 4Dエディター (フォームエディター、クエリエディター、Request等) を呼び出した場合、 ユーザーがコピー/ペーストなどのショートカットを利用できるようにするためには、**編集** メニューに相当するものがプロセスにインストールしておく必要があります。 +- プロセスはデフォルトではメニューバーを含みません。つまり、**編集** メニューのショートカット (具体的には、カット/コピー/ペースト) はプロセスウィンドウでは利用できません。プロセスからダイアログボックスや 4Dエディター (フォームエディター、クエリエディター、Request等) を呼び出した場合、ユーザーがコピー/ペーストなどのショートカットを利用できるようにするためには、**編集** メニューに相当するものがプロセスにインストールしておく必要があります。 - [プリエンプティブプロセス](preemptive.md) と、サーバー上で実行されるプロセス (ストアドプロシージャー) にインターフェース要素を含めてはいけません。 ::: :::note -各プロセスは、テーブルごとのカレントセレクションおよびカレントレコードも持ちます。 これらのコンセプトの詳細については、[doc.4d.com](https://doc.4d.com/4Dv20/4D/20.1/Displaying-and-selecting-records.300-6602144.ja.html) を参照ください。 +各プロセスは、テーブルごとのカレントセレクションおよびカレントレコードも持ちます。これらのコンセプトの詳細については、[doc.4d.com](https://doc.4d.com/4Dv20/4D/20.1/Displaying-and-selecting-records.300-6602144.ja.html) を参照ください。 ::: @@ -78,7 +78,7 @@ title: プロセスとワーカー ## ワーカープロセス -ワーカープロセスとは、簡単かつ強力なプロセス間通信の方法です。 この機能は非同期のメッセージシステムに基づいており、プロセスやフォームを呼び出して、呼び出し先のコンテキストにおいて任意のメソッドを指定パラメーターとともに実行させることができます。 +ワーカープロセスとは、簡単かつ強力なプロセス間通信の方法です。この機能は非同期のメッセージシステムに基づいており、プロセスやフォームを呼び出して、呼び出し先のコンテキストにおいて任意のメソッドを指定パラメーターとともに実行させることができます。 あらゆるプロセスは [`CALL WORKER`](../commands/call-worker) コマンドを使用することでワーカープロセスを "雇用" することができ、ワーカーのコンテキストにおいて任意のプロジェクトメソッドを指定のパラメーターで実行させることができます。つまり、呼び出し元のプロセスとワーカーの間で情報の共有が可能です。 @@ -101,32 +101,32 @@ title: プロセスとワーカー ### ワーカーの使用 -ワーカーは、プロジェクトメソッドの実行を別プロセスに依頼するときに使います。 ワーカーには次のものが付随します: +ワーカーは、プロジェクトメソッドの実行を別プロセスに依頼するときに使います。ワーカーには次のものが付随します: - ワーカーを特定する一意の名称 (*警告: ワーカー名は文字の大小を区別します*)。これは、関連プロセスの名称にも使われます。 - ワーカーに関連付けられたプロセス (特定の時点において存在しない場合もあります) - メッセージボックス - 初期メソッド (任意) -[`CALL WORKER`](../commands/call-worker) コマンドを使って、プロジェクトメソッドの実行をワーカーに依頼します。 初めてワーカーを使用するときに、ワーカーはメッセージボックスとともに生成され、依頼内容を関連プロセスにて実行します。 ワーカープロセスが終了してもメッセージボックスは開いたままで、次のメッセージを受け取るとワーカープロセスが再開します。 +[`CALL WORKER`](../commands/call-worker) コマンドを使って、プロジェクトメソッドの実行をワーカーに依頼します。初めてワーカーを使用するときに、ワーカーはメッセージボックスとともに生成され、依頼内容を関連プロセスにて実行します。ワーカープロセスが終了してもメッセージボックスは開いたままで、次のメッセージを受け取るとワーカープロセスが再開します。 この一連の流れをアニメーションで表しました: ![](../assets/en/Develop/WorkerAnimation.gif) -[`New process`](../commands/new-process) コマンドで作成されるプロセスとは異なり、ワーカープロセスは **プロセスメソッドの実行終了後も生きています**。 つまり、特定のワーカーにおけるメソッド実行はすべて同一プロセス内でおこなわれ、すべてのプロセス情報 (プロセス変数、カレントレコード、カレントセレクション、など) が保持されます。 続けて実行されるメソッドはこれらの情報を共有することになるため、プロセス間の通信が可能になります。 ワーカーのメッセージボックスは連続した呼び出しを非同期的に扱います。 +[`New process`](../commands/new-process) コマンドで作成されるプロセスとは異なり、ワーカープロセスは **プロセスメソッドの実行終了後も生きています**。つまり、特定のワーカーにおけるメソッド実行はすべて同一プロセス内でおこなわれ、すべてのプロセス情報 (プロセス変数、カレントレコード、カレントセレクション、など) が保持されます。続けて実行されるメソッドはこれらの情報を共有することになるため、プロセス間の通信が可能になります。ワーカーのメッセージボックスは連続した呼び出しを非同期的に扱います。 -[`CALL WORKER`](../commands/call-worker) はメソッド名と引数をカプセル化し、メッセージとしてワーカーのメッセージボックスに受け渡します。 ワーカープロセスは、存在していなければ生成され、メッセージボックスに格納されたメッセージを実行します。 したがって、大体の場合において [`CALL WORKER`](../commands/call-worker) は、受け取ったメソッドをワーカーが実行するより先に終了します (非同期的な処理)。 このため、[`CALL WORKER`](../commands/call-worker) は値を何も返しません。 実行後の情報をワーカーから返してもらうには、[`CALL WORKER`](../commands/call-worker) を利用してワーカーの呼び出し元に情報を返す必要があります (コールバック)。 つまり、この場合には、呼び出し元のプロセスもワーカーである必要があります。 +[`CALL WORKER`](../commands/call-worker) はメソッド名と引数をカプセル化し、メッセージとしてワーカーのメッセージボックスに受け渡します。ワーカープロセスは、存在していなければ生成され、メッセージボックスに格納されたメッセージを実行します。したがって、大体の場合において [`CALL WORKER`](../commands/call-worker) は、受け取ったメソッドをワーカーが実行するより先に終了します (非同期的な処理)。このため、[`CALL WORKER`](../commands/call-worker) は値を何も返しません。実行後の情報をワーカーから返してもらうには、[`CALL WORKER`](../commands/call-worker) を利用してワーカーの呼び出し元に情報を返す必要があります (コールバック)。つまり、この場合には、呼び出し元のプロセスもワーカーである必要があります。 -[`CALL WORKER`](../commands/call-worker) を使用して、[`New process`](../commands/new-process) コマンドで作成されたプロセス内においてメソッドを実行させることはできません。 メッセージボックスを持つワーカープロセスのみが、`CALL WORKER` によって呼び出し可能です。 [`New process`](../commands/new-process) で作成されたプロセスがワーカーをコールすることは可能でも、ワーカーからのコールバックは受けられないことに留意が必要です。 +[`CALL WORKER`](../commands/call-worker) を使用して、[`New process`](../commands/new-process) コマンドで作成されたプロセス内においてメソッドを実行させることはできません。メッセージボックスを持つワーカープロセスのみが、`CALL WORKER` によって呼び出し可能です。 [`New process`](../commands/new-process) で作成されたプロセスがワーカーをコールすることは可能でも、ワーカーからのコールバックは受けられないことに留意が必要です。 ワーカープロセスは、ストアドプロシージャーを使って 4D Server 上に作成することもできます。たとえば、[`CALL WORKER`](../commands/call-worker) コマンドを実行するメソッドを `Execute on server` コマンドから実行できます。 ワーカープロセスを閉じるには [`KILL WORKER`](../commands/kill-worker) コマンドをコールします。これによってワーカーのメッセージボックスが空にされ、関連プロセスはメッセージの処理を停止し、現在のタスク完了後に実行を終了します。 -ワーカープロセスを新規生成する際に指定したメソッドがワーカーの初期メソッドになります。 次回以降の呼び出しで *method* パラメーターに空の文字列を受け渡した場合、[`CALL WORKER`](../commands/call-worker) はこの初期メソッドの実行をワーカーに依頼します。 +ワーカープロセスを新規生成する際に指定したメソッドがワーカーの初期メソッドになります。次回以降の呼び出しで *method* パラメーターに空の文字列を受け渡した場合、[`CALL WORKER`](../commands/call-worker) はこの初期メソッドの実行をワーカーに依頼します。 -ユーザーおよびアプリケーションモードで 4Dデータベースを開く際に作成されるメインプロセスはワーカーです。したがって、[`CALL WORKER`](../commands/call-worker)で呼び出すことができます。 メインプロセスの名称は 4D の使用言語により異なりますが、プロセス番号は常に 1 です。[`CALL WORKER`](../commands/call-worker) でメインプロセスを呼び出す場合には、プロセス番号を使うのが便利でしょう。 +ユーザーおよびアプリケーションモードで 4Dデータベースを開く際に作成されるメインプロセスはワーカーです。したがって、[`CALL WORKER`](../commands/call-worker)で呼び出すことができます。メインプロセスの名称は 4D の使用言語により異なりますが、プロセス番号は常に 1 です。[`CALL WORKER`](../commands/call-worker) でメインプロセスを呼び出す場合には、プロセス番号を使うのが便利でしょう。 ### ワーカープロセスの識別 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md index 968158784d82c6..a6e756af5af7dd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/triggers-new.md @@ -9,7 +9,7 @@ to import ## トリガーとORDAエンティティイベントの比較 -**トリガー** (別名データベースイベント) と[**ORDA エンティティイベント**](../ORDA/orda-events.md) には類似した目的があります。どちらもデータに対する基礎的な操作(作成、編集、削除)を管理するためのルールを設定するということです。 しかしながら、両者は同じレベルでは動作しません: +**トリガー** (別名データベースイベント) と[**ORDA エンティティイベント**](../ORDA/orda-events.md) には類似した目的があります。どちらもデータに対する基礎的な操作(作成、編集、削除)を管理するためのルールを設定するということです。しかしながら、両者は同じレベルでは動作しません: - トリガーはデータベースレベルで管理されます。これはもっとも低いレベルに当たります。 - ORDA エンティティイベントは[データストア](../ORDA/dsMapping.md#datastore) レベルで管理されます。これはあなたのビジネスロジックに関連しています。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onActivate.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onActivate.md index b6e7570b7e63dc..e2cf65a5d3215a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onActivate.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onActivate.md @@ -11,6 +11,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/current/Events/onAfterKeystroke.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterKeystroke.md index 916a7ea5acac25..b1753a78fa2359 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterKeystroke.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterKeystroke.md @@ -26,11 +26,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/current/Events/onAfterSort.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterSort.md index eca8672dcc99d7..5667af12fb5fc2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterSort.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAfterSort.md @@ -9,4 +9,4 @@ title: On After Sort ## 説明 -このイベントは標準の並べ替えがおこなわれた直後に生成されます (ただし [`On Header Click`](onHeaderClick.md) イベントで $0 に -1 が返された場合には生成されません)。 このメカニズムは、ユーザーによっておこなわれた直近の並べ替えの方向を保存するのに使用できます。 このイベント内で `Self` コマンドは、並べ替えられたカラムヘッダー変数へのポインターを返します。 +このイベントは標準の並べ替えがおこなわれた直後に生成されます (ただし [`On Header Click`](onHeaderClick.md) イベントで $0 に -1 が返された場合には生成されません)。このメカニズムは、ユーザーによっておこなわれた直近の並べ替えの方向を保存するのに使用できます。このイベント内で `Self` コマンドは、並べ替えられたカラムヘッダー変数へのポインターを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAlternativeClick.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAlternativeClick.md index cbd57848a53cc3..d8f4d4d06bb57d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onAlternativeClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/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` イベントを使用してこの動作を管理できます。このイベントは、ユーザーが矢印をクリックすると、マウスボタンが押されてすぐに生成されます: -- ポップアップメニューが **分離** されている場合、このイベントはボタン中で矢印のあるエリアがクリックされた場合のみ生成されます。 ボタンに適用されている [標準アクション](/Desktop/standard-actions) があったとしても、この場合には実行されないことに留意してください。 -- ポップアップメニューが **リンク** されている場合、このイベントはボタン上どこをクリックしても生成されます。 このタイプのボタンでは [`On Long Click`](onLongClick.md) イベントが生成されないことに注意してください。 +- ポップアップメニューが **分離** されている場合、このイベントはボタン中で矢印のあるエリアがクリックされた場合のみ生成されます。ボタンに適用されている [標準アクション](/Desktop/standard-actions) があったとしても、この場合には実行されないことに留意してください。 +- ポップアップメニューが **リンク** されている場合、このイベントはボタン上どこをクリックしても生成されます。このタイプのボタンでは [`On Long Click`](onLongClick.md) イベントが生成されないことに注意してください。 ![](../assets/en/Events/clickevents.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeforeDataEntry.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeforeDataEntry.md index 9b7d7a5bf0c85e..16eaea41c670e5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeforeDataEntry.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeforeDataEntry.md @@ -9,7 +9,7 @@ title: On Before Data Entry ## 説明 -このイベントは、リストボックス中のセルが編集される直前に生成されます (入力カーソルが表示される前)。 このイベントを使用して、たとえば表示中と編集中で異なるテキストを表示させることができます。 +このイベントは、リストボックス中のセルが編集される直前に生成されます (入力カーソルが表示される前)。このイベントを使用して、たとえば表示中と編集中で異なるテキストを表示させることができます。 カーソルがセルに入ると、そのリストボックスまたは列のメソッドで `On Before Data Entry` イベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeforeKeystroke.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeforeKeystroke.md index bbbd8b8e8e92e5..48f30ca0b49d61 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeforeKeystroke.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeforeKeystroke.md @@ -24,15 +24,15 @@ title: On Before Keystroke `On Before Keystroke` イベントは次の場合には生成されません: - [リストボックス列](FormObjects/listbox-column.md) メソッドの場合、ただし、セルを編集している場合を除きます ([リストボックス](FormObjects/listbox_overview.md) メソッドではどのような場合でも生成されます)。 -- キーボードを使用せずに (ペーストやドラッグ&ドロップ、チェックボックス、ドロップダウンリスト、コンボボックス) おこなわれた変更の場合。 これらのイベントを処理するには [`On After Edit`](onAfterEdit.md) を使用します。 +- キーボードを使用せずに (ペーストやドラッグ&ドロップ、チェックボックス、ドロップダウンリスト、コンボボックス) おこなわれた変更の場合。これらのイベントを処理するには [`On After Edit`](onAfterEdit.md) を使用します。 ### 入力不可オブジェクト -`On Before Keystroke` イベントは、入力不可能なオブジェクトでも発生させることができます。たとえば、リストボックスのセルが入力不可能であったり、行が選択不可能であったりしても、リストボックスで発生させることができます。 これにより、ユーザーが値の最初の文字を入力することで、リストボックスの特定の行に動的にスクロールできるようなインターフェースを構築することができます。 リストボックスのセルが入力可能な場合は、`Is editing text` コマンドを使用して、ユーザーが実際にセルにテキストを入力しているのか、タイプアヘッド機能を使用しているのかを確認し、適切なコードを実行することができます。 +`On Before Keystroke` イベントは、入力不可能なオブジェクトでも発生させることができます。たとえば、リストボックスのセルが入力不可能であったり、行が選択不可能であったりしても、リストボックスで発生させることができます。これにより、ユーザーが値の最初の文字を入力することで、リストボックスの特定の行に動的にスクロールできるようなインターフェースを構築することができます。リストボックスのセルが入力可能な場合は、`Is editing text` コマンドを使用して、ユーザーが実際にセルにテキストを入力しているのか、タイプアヘッド機能を使用しているのかを確認し、適切なコードを実行することができます。 ### キーストロークシーケンス -入力に一連のキーストロークが必要な場合、`On Before Keystroke` と [`On After Keystroke`](onAfterKeystroke.md) イベントは、入力がユーザーによって完全に確定されたときにのみ生成されます。 `Keystroke` コマンドは、確定済みの文字を返します。 このケースは主に以下のように発生します: +入力に一連のキーストロークが必要な場合、`On Before Keystroke` と [`On After Keystroke`](onAfterKeystroke.md) イベントは、入力がユーザーによって完全に確定されたときにのみ生成されます。 `Keystroke` コマンドは、確定済みの文字を返します。このケースは主に以下のように発生します: - ^ や ~ のような特殊キーが使用された場合: その後に拡張された文字が入力された場合にのみ生成されます (例: "ê" や "ñ")。 - IME (Input Method Editor) が、文字の組み合わせを入力するための中間的なダイアログボックスを表示している場合: IME のダイアログが確定されたときにのみイベントが発生します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeginDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeginDragOver.md index e3a08a6dbb49a7..670ddc11c11536 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeginDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onBeginDragOver.md @@ -9,11 +9,11 @@ title: On Begin Drag Over ## 説明 -`On Begin Drag Over` フォームイベントは、ドラッグ可能なすべてのフォームオブジェクト で選択できます。 このイベントは、オブジェクトが [ドラッグ有効](FormObjects/properties_Action.md#ドラッグ有効) プロパティを持っているすべてのケースで生成されます。 このイベントは、ソースオブジェクトのメソッドまたはソースオブジェクトのフォームメソッドから呼び出すことができます。 +`On Begin Drag Over` フォームイベントは、ドラッグ可能なすべてのフォームオブジェクト で選択できます。このイベントは、オブジェクトが [ドラッグ有効](FormObjects/properties_Action.md#ドラッグ有効) プロパティを持っているすべてのケースで生成されます。このイベントは、ソースオブジェクトのメソッドまたはソースオブジェクトのフォームメソッドから呼び出すことができます。 > [`On Drag Over`](onDragOver.md) フォームイベントとは異なり、`On Begin Drag Over` イベントはドラッグアクションの **ソースオブジェクト** のコンテキスト内で呼び出されます。 -`On Begin Drag Over` イベントは、ドラッグアクションの準備に役立ちます。 このイベントは以下のように使用できます: +`On Begin Drag Over` イベントは、ドラッグアクションの準備に役立ちます。このイベントは以下のように使用できます: - `APPEND DATA TO PASTEBOARD` コマンドを使って、ペーストボードにデータや署名を追加する。 - `SET DRAG ICON` コマンドを使って、ドラッグアクション中にカスタムアイコンを表示する。 @@ -22,4 +22,4 @@ title: On Begin Drag Over - ドラッグアクションを拒否するには、ソースオブジェクトのメソッドは -1 (マイナス1) を返さなければなりません。 - 結果が返されない場合は、ドラッグアクションが受け入れられたと 4D は判断します。 -4D のデータは、イベントが呼び出される前に、ペーストボードに置かれます。 たとえば、**自動ドラッグ** アクションなしでドラッグした場合、ドラッグされたテキストは、イベントが呼び出される時にはペーストボードにあります。 +4D のデータは、イベントが呼び出される前に、ペーストボードに置かれます。たとえば、**自動ドラッグ** アクションなしでドラッグした場合、ドラッグされたテキストは、イベントが呼び出される時にはペーストボードにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md index 7eefd1171ea557..1bdd76111ebfce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onClicked.md @@ -11,13 +11,13 @@ title: On Clicked `On Clicked` イベントは、ユーザーがオブジェクト上でクリックしたときに発生します。 -> いくつかのフォームオブジェクトはキーボードからも操作可能です。 たとえば、チェックボックスがフォーカスを得ると、スペースバーでオン/オフを切り替えることができます。 この場合でも `On Clicked` イベントは生成されます。 +> いくつかのフォームオブジェクトはキーボードからも操作可能です。たとえば、チェックボックスがフォーカスを得ると、スペースバーでオン/オフを切り替えることができます。この場合でも `On Clicked` イベントは生成されます。 -`On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。 しかし、いくつか例外があります: +`On Clicked` イベントは通常、マウスボタンが離されたときに生成されます。しかし、いくつか例外があります: - [非表示ボタン](FormObjects/properties_Display.md#レンダリングしない): マウスがクリックされると、ボタンが離されるのを待たずに `On Clicked` イベントが生成されます。 - [ルーラー](FormObjects/ruler.md): [オブジェクトメソッド実行](FormObjects/properties_Action.md#オブジェクトメソッド実行) オプションが **true** に設定されていると、`On Clicked` イベントはクリックがおこなわれるとすぐに生成されます。 -- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。 [コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。 つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 +- [コンボボックス](FormObjects/comboBox_overview.md): `On Clicked`イベントは、割り当てられたメニューでユーザーが別の値を選択した場合にのみ発生します。[コンボボックス](FormObjects/comboBox_overview.md) は、割り当てられたドロップダウンリストにデフォルト値が提供された、入力可能なテキストエリアとして扱われます。つまり、コンボボックス内におけるデータ入力処理は、`On Before Keystroke` や `On After Keystroke`、`On Data Change` イベントを使用しておこなう必要があります。 - [ドロップダウンリスト](FormObjects/dropdownList_Overview.md): `On Clicked` イベントは、 ユーザーがメニューで別の値を選択した場合にのみ発生します。 `On Data Change` イベントは、現在の値とは異なる値が選択されたときに、オブジェクトが操作されたことを検出することができます。 - リストボックスの入力セルが [編集中](FormObjects/listbox_overview.md#入力の管理) のとき、マウスボタンが押されると `On Clicked` イベントが発生するので、`Contextual click` コマンドなどを使用することができます。 @@ -31,7 +31,7 @@ title: On Clicked ### 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/current/Events/onCloseDetail.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onCloseDetail.md index 57af792b544da9..d3936adca8a7bb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onCloseDetail.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onCloseDetail.md @@ -11,6 +11,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/current/Events/onColumnMoved.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onColumnMoved.md index e66365c67a12ed..3eed62bb40d206 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onColumnMoved.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onColumnMoved.md @@ -9,6 +9,6 @@ title: On Column Moved ## 説明 -このイベントは、ユーザーのドラッグ&ドロップでリストボックスの列が移動されたときに生成されます ([許可されている場合](../FormObjects/propertiesListBox.md#スクロールしない列とドラッグしない列))。 ただし、元の場所にドロップされた場合には生成されません。 +このイベントは、ユーザーのドラッグ&ドロップでリストボックスの列が移動されたときに生成されます ([許可されている場合](../FormObjects/propertiesListBox.md#スクロールしない列とドラッグしない列))。ただし、元の場所にドロップされた場合には生成されません。 `LISTBOX MOVED COLUMN NUMBER` コマンドは列の新しい位置を返します。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onColumnResize.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onColumnResize.md index 0cb1941c7e4634..e6b03cd4111aff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onColumnResize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onColumnResize.md @@ -11,13 +11,13 @@ title: On Column Resize ### リストボックス -このイベントは、ユーザーによってリストボックスの列幅が変更されたときに生成されます。 このイベントは "ライブ" にトリガーされます。つまり、対象となるリストボックスあるいはカラムがリサイズされている間はずっと継続して送信されつづけます。 リサイズはユーザーによって手動でおこなわれるか、あるいはフォームウィンドウ自身のリサイズの結果リストボックスとそのカラムがリサイズされる場合も含みます (手動によるフォームのリサイズおよび `RESIZE FORM WINDOW` コマンドを使用したリサイズ)。 +このイベントは、ユーザーによってリストボックスの列幅が変更されたときに生成されます。このイベントは "ライブ" にトリガーされます。つまり、対象となるリストボックスあるいはカラムがリサイズされている間はずっと継続して送信されつづけます。リサイズはユーザーによって手動でおこなわれるか、あるいはフォームウィンドウ自身のリサイズの結果リストボックスとそのカラムがリサイズされる場合も含みます (手動によるフォームのリサイズおよび `RESIZE FORM WINDOW` コマンドを使用したリサイズ)。 > [余白カラム](../FormObjects/propertiesResizingOptions.md#余白カラムについて) がリサイズされた場合には、`On Column Resize` イベントはトリガーされません ### 4D View Pro -このイベントはカラムの幅がユーザーによって変更されたときに生成されます。 このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.md#イベントオブジェクト) には以下のプロパティが含まれています: +このイベントはカラムの幅がユーザーによって変更されたときに生成されます。このコンテキストにおいて、`FORM Event` コマンドによって返される [イベントオブジェクト](overview.md#イベントオブジェクト) には以下のプロパティが含まれています: | プロパティ | 型 | 説明 | | ----------- | ------- | ---------------------------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDeactivate.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDeactivate.md index f7200f15f5d301..03f4a6bb2965e0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDeactivate.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDeactivate.md @@ -11,7 +11,7 @@ title: On Deactivate フォームのウィンドウが最前面にあった場合、そのウィンドウが背面に送られたときにこのイベントが呼ばれます。 -このイベントは個々のオブジェクトには適用されず、フォーム全体に適用されます。 ゆえに `On Deactivate` フォームイベントプロパティが選択されていれば、そのフォームのメソッドのみが呼び出されます。 +このイベントは個々のオブジェクトには適用されず、フォーム全体に適用されます。ゆえに `On Deactivate` フォームイベントプロパティが選択されていれば、そのフォームのメソッドのみが呼び出されます。 ### 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDeleteAction.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDeleteAction.md index dc8715a7eb1931..fde4a25245a6d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDeleteAction.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDeleteAction.md @@ -11,4 +11,4 @@ title: On Delete Action このイベントは、ユーザーが削除キー (**Delete** や **Backspace** キー) を押して、またはクリア標準アクションが割り当てられたメニュー項目 (**編集** メニューの **クリア** 等) を選択して、選択された項目の削除を指示したときに生成されます。 -4D はイベントの生成だけをおこなうことに留意してください。 4D は項目を消去しません。 実際の削除処理や事前警告の表示などは開発者の責任です。 +4D はイベントの生成だけをおこなうことに留意してください。 4D は項目を消去しません。実際の削除処理や事前警告の表示などは開発者の責任です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDisplayDetail.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDisplayDetail.md index cb9957481d6730..d213a1b81d1a7d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDisplayDetail.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDisplayDetail.md @@ -26,7 +26,7 @@ title: On Display Detail > ヘッダーエリアは、[`On Header`](onHeader.md) イベントで処理されます。 -`On Display Detail` イベントから、ダイアログボックスを表示する 4Dコマンドを呼び出すことはできません。これはシンタックスエラーを起こします。 以下のコマンドが該当します: `ALERT`, `DIALOG`, `CONFIRM`, `Request`, `ADD RECORD`, `MODIFY RECORD`, `DISPLAY SELECTION`, `MODIFY SELECTION`。 +`On Display Detail` イベントから、ダイアログボックスを表示する 4Dコマンドを呼び出すことはできません。これはシンタックスエラーを起こします。以下のコマンドが該当します: `ALERT`, `DIALOG`, `CONFIRM`, `Request`, `ADD RECORD`, `MODIFY RECORD`, `DISPLAY SELECTION`, `MODIFY SELECTION`。 ### セレクションリストボックス @@ -34,4 +34,4 @@ title: On Display Detail ### Displayed line number -`Displayed line number` 4Dコマンドは、`On Display Detail` フォームイベントと連動します。 このコマンドは、レコードのリストまたはリストボックスの行が画面に表示されるときに処理されている行の番号を返します。 +`Displayed line number` 4Dコマンドは、`On Display Detail` フォームイベントと連動します。このコマンドは、レコードのリストまたはリストボックスの行が画面に表示されるときに処理されている行の番号を返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDoubleClicked.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDoubleClicked.md index cf7c93a501c8f0..d0cbb75a984f93 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDoubleClicked.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDoubleClicked.md @@ -15,7 +15,7 @@ title: On Double Clicked ## 説明 -`On Double Clicked` イベントは、ユーザーがオブジェクトをダブルクリック したときに発生します。 ダブルクリック間隔の最大時間は、システム環境設定で定義されています。 +`On Double Clicked` イベントは、ユーザーがオブジェクトをダブルクリック したときに発生します。ダブルクリック間隔の最大時間は、システム環境設定で定義されています。 [`On Clicked`](onClicked.md) や `On Double Clicked` オブジェクトイベントプロパティを選択したのち、`FORM Event` コマンドを使用してオブジェクト上でのクリックを検知し処理することができます。`FORM Event` コマンドはユーザーアクションに応じ、[`On Clicked`](onClicked.md) または `On Double Clicked` を返します。 @@ -23,7 +23,7 @@ title: On Double Clicked ### 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/current/Events/onDragOver.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md index bd3a6327447c6d..dafe25951d4e6a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDragOver.md @@ -9,20 +9,19 @@ title: On Drag Over ## 説明 -`On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。 このイベントの応答として、開発者は通常、以下のことをおこないます: +`On Drag Over` イベントは、マウスポインターがオブジェクトの上を移動する時に、繰り返しドロップ先オブジェクトに送られます。このイベントの応答として、開発者は通常、以下のことをおこないます: - ペーストボード内にあるデータや署名を (`GET PASTEBOARD DATA` コマンドを使用して) 取得する。 - ペーストボードのデータの状態や型に基づき、ドラッグ&ドロップの **受け付け** または **拒否** をおこないます。 -ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。 -ドラッグを **拒否** するには、オブジェクトメソッドが -1 (マイナス1) を返さなければなりません。 -`On Drag Over` イベント中、4D はこのオブジェクトメソッドを関数として扱います。 結果が返されない場合には、4D はドラッグが受け付けられたものと認識します。 +ドラッグを **受け付ける** には、ドロップ先のオブジェクトメソッドが 0 (ゼロ) を返さなければなりません。ドラッグを **拒否** するには、オブジェクトメソッドが -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/current/Events/onDrop.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDrop.md index 9ecad2db906cc5..fbe1e2bebfe9c3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDrop.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onDrop.md @@ -9,9 +9,9 @@ title: On Drop ## 説明 -`On Drop` イベントはマウスポインターがドロップ先オブジェクト上でリリースされたときにそのオブジェクトに一度送られます。 このイベントはドラッグ&ドロップ処理の第2段階であり、ユーザーアクションの応答として処理を実行します。 +`On Drop` イベントはマウスポインターがドロップ先オブジェクト上でリリースされたときにそのオブジェクトに一度送られます。このイベントはドラッグ&ドロップ処理の第2段階であり、ユーザーアクションの応答として処理を実行します。 -このイベントは、[`On Drag Over`](onDragOver.md) イベント中にドラッグが受け付けられなかった場合には、オブジェクトに送られません。 オブジェクトに対して `On Drag Over` イベントを処理し、ドラッグを拒否した場合には、`On Drop` イベントは発生しません。 つまり、`On Drag Over` イベント中にソースオブジェクトとドロップ先オブジェクト間のデータタイプの互換性をテストして、有効なドロップを受け付けた場合には、`On Drop` 中にデータの再テストをする必要はありません。 データがドロップ先オブジェクトに対して適切であることは既にわかっているためです。 +このイベントは、[`On Drag Over`](onDragOver.md) イベント中にドラッグが受け付けられなかった場合には、オブジェクトに送られません。オブジェクトに対して `On Drag Over` イベントを処理し、ドラッグを拒否した場合には、`On Drop` イベントは発生しません。つまり、`On Drag Over` イベント中にソースオブジェクトとドロップ先オブジェクト間のデータタイプの互換性をテストして、有効なドロップを受け付けた場合には、`On Drop` 中にデータの再テストをする必要はありません。データがドロップ先オブジェクトに対して適切であることは既にわかっているためです。 #### 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onFooterClick.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onFooterClick.md index f4a97685bc6caf..088c4e3268a94d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onFooterClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onFooterClick.md @@ -9,6 +9,6 @@ title: On Footer Click ## 説明 -このイベントはリストボックスやリストボックス列で利用できます。 このイベントは、リストボックスやリストボックス列のフッターエリアがクリックされたときに生成されます。 この場合、`OBJECT Get pointer` コマンドはクリックされたフッター変数へのポインターを返します。 イベントは左および右クリックどちらでも生成されます。 +このイベントはリストボックスやリストボックス列で利用できます。このイベントは、リストボックスやリストボックス列のフッターエリアがクリックされたときに生成されます。この場合、`OBJECT Get pointer` コマンドはクリックされたフッター変数へのポインターを返します。イベントは左および右クリックどちらでも生成されます。 `Clickcount` コマンドを使うことによってユーザーがおこなったクリック数をテストすることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onGettingFocus.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onGettingFocus.md index 50d893480e4849..2dc2eb349f3716 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onGettingFocus.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onGettingFocus.md @@ -11,4 +11,4 @@ title: On Getting focus `On Getting Focus` イベントや [`On Losing Focus`](onLosingFocus.md) イベントを使って、[フォーカス可](FormObjects/properties_Entry.md#フォーカス可) オブジェクトのフォーカスの変更を処理できます。 -[サブフォームオブジェクト](FormObjects/subform_overview.md) の場合、このイベントがプロパティリスト中でチェックされていれば、サブフォームオブジェクトのメソッド内で生成されます。 これによってたとえば、フォーカスに応じてサブフォーム中のナビゲーションボタンの表示を管理できます。 サブフォームオブジェクトは、それ自体がフォーカスを持つ点に留意してください。 +[サブフォームオブジェクト](FormObjects/subform_overview.md) の場合、このイベントがプロパティリスト中でチェックされていれば、サブフォームオブジェクトのメソッド内で生成されます。これによってたとえば、フォーカスに応じてサブフォーム中のナビゲーションボタンの表示を管理できます。サブフォームオブジェクトは、それ自体がフォーカスを持つ点に留意してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeader.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeader.md index 752873c06f6b07..a90632b5481768 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeader.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeader.md @@ -21,4 +21,4 @@ title: On Header > 印刷されるレコードは、[`On Display Detail`](onDisplayDetail.md) イベントで処理されます。 -`On Header` イベントから、ダイアログボックスを表示する 4Dコマンドを呼び出すことはできません。これはシンタックスエラーを起こします。 以下のコマンドが該当します: `ALERT`, `DIALOG`, `CONFIRM`, `Request`, `ADD RECORD`, `MODIFY RECORD`, `DISPLAY SELECTION`, `MODIFY SELECTION`。 \ No newline at end of file +`On Header` イベントから、ダイアログボックスを表示する 4Dコマンドを呼び出すことはできません。これはシンタックスエラーを起こします。以下のコマンドが該当します: `ALERT`, `DIALOG`, `CONFIRM`, `Request`, `ADD RECORD`, `MODIFY RECORD`, `DISPLAY SELECTION`, `MODIFY SELECTION`。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md index 6db9ade11281cd..9106f3a03396ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onHeaderClick.md @@ -11,18 +11,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/current/Events/onLoad.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLoad.md index 4a5b3b469bb1fe..4e06b2a43078dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLoad.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLoad.md @@ -14,11 +14,11 @@ title: On Load `On Load` オブジェクトイベントプロパティが選択されている、フォームの全ページの全オブジェクトのオブジェクトメソッドが呼び出されます。 その後、`On Load` フォームイベントプロパティが選択されていれば、フォームメソッドが呼び出されます。 -> オブジェクトの `On Load` と[`On Unload`](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォームの両方で有効にされていなければなりません。 オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 +> オブジェクトの `On Load` と[`On Unload`](onUnload.md) イベントが生成されるには、オブジェクトとオブジェクトが属するフォームの両方で有効にされていなければなりません。オブジェクトのみでイベントが有効になっている場合、イベントは生成されません。 これら 2つのイベントはフォームレベルでも有効にされていなければなりません。 ### サブフォーム -`On Load` イベントは、サブフォームを開く際に生成されます。これらのイベントは親フォームレベルでも有効にされていなければなりません。 このイベントは、親フォームのイベントよりも前に生成される点に留意してください。 また、フォームイベント動作の原則に従い、サブフォームが 0 もしくは 1 以外のページに配置されている場合、このイベントはページが開かれるときに生成され、フォームが開かれるときではないことに留意してください。 +`On Load` イベントは、サブフォームを開く際に生成されます。これらのイベントは親フォームレベルでも有効にされていなければなりません。このイベントは、親フォームのイベントよりも前に生成される点に留意してください。また、フォームイベント動作の原則に従い、サブフォームが 0 もしくは 1 以外のページに配置されている場合、このイベントはページが開かれるときに生成され、フォームが開かれるときではないことに留意してください。 ### 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLoadRecord.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLoadRecord.md index affa6c9dc1fb32..188197a7b5cdd5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLoadRecord.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLoadRecord.md @@ -9,7 +9,7 @@ title: On Load Record ## 説明 -`On Load Record` イベントは、**出力フォーム** のコンテキストでのみ使用できます。 このイベントはリスト更新中に、レコードがハイライトされ、フィールドが編集モードになったときに生成されます。 +`On Load Record` イベントは、**出力フォーム** のコンテキストでのみ使用できます。このイベントはリスト更新中に、レコードがハイライトされ、フィールドが編集モードになったときに生成されます。 > このイベントは、プロジェクトフォームでは選択できず、**テーブルフォーム** でのみ利用できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLongClick.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLongClick.md index 4c400d9ce1c23d..19236bb2490e43 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLongClick.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLongClick.md @@ -9,7 +9,7 @@ title: On Long Click ## 説明 -このイベントはボタンがクリックされ、一定時間以上マウスボタンが押され続けていると生成されます。 理論上、このイベントが生成されるためのクリック保持時間は、システムの環境設定に設定されたダブルクリックの間隔最大時間に等しくなります。 +このイベントはボタンがクリックされ、一定時間以上マウスボタンが押され続けていると生成されます。理論上、このイベントが生成されるためのクリック保持時間は、システムの環境設定に設定されたダブルクリックの間隔最大時間に等しくなります。 このイベントは、次のボタンスタイルで生成することができます: @@ -23,7 +23,7 @@ title: On Long Click - [サークル](FormObjects/button_overview.md#サークル) - [カスタム](FormObjects/button_overview.md#カスタム) -このイベントは一般的に、ロングクリック時にポップアップメニューを表示するために使用します。 ユーザーがロングクリックが有効になる時間前にマウスボタンを離すと、[`On Clicked`](onClicked.md) イベントが (有効であれば) 生成されます。 +このイベントは一般的に、ロングクリック時にポップアップメニューを表示するために使用します。ユーザーがロングクリックが有効になる時間前にマウスボタンを離すと、[`On Clicked`](onClicked.md) イベントが (有効であれば) 生成されます。 ### 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLosingFocus.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLosingFocus.md index dbe6d0c6376469..1e19d1d0fe68db 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLosingFocus.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onLosingFocus.md @@ -11,4 +11,4 @@ title: On Losing focus `On Losing Focus` イベントや [`On Getting Focus`](onGettingFocus.md) イベントを使って、[フォーカス可](FormObjects/properties_Entry.md#フォーカス可) オブジェクトのフォーカスの変更を処理できます。 -[サブフォームオブジェクト](FormObjects/subform_overview.md) の場合、このイベントがプロパティリスト中でチェックされていれば、サブフォームオブジェクトのメソッド内で生成されます。 これによってたとえば、フォーカスに応じてサブフォーム中のナビゲーションボタンの表示を管理できます。 サブフォームオブジェクトは、それ自体がフォーカスを持つ点に留意してください。 +[サブフォームオブジェクト](FormObjects/subform_overview.md) の場合、このイベントがプロパティリスト中でチェックされていれば、サブフォームオブジェクトのメソッド内で生成されます。これによってたとえば、フォーカスに応じてサブフォーム中のナビゲーションボタンの表示を管理できます。サブフォームオブジェクトは、それ自体がフォーカスを持つ点に留意してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMenuSelected.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMenuSelected.md index 5cce2c0e203944..ae78b5d54d026c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMenuSelected.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMenuSelected.md @@ -9,6 +9,6 @@ title: On Menu Selected ## 説明 -`On Menu Selected` イベントは、フォームに関連付けられたメニューバーのコマンドが選択されると、フォームメソッドに送られます。 その後、`Menu selected` ランゲージコマンドを呼び出して、選択されたメニューをテストすることができます。 +`On Menu Selected` イベントは、フォームに関連付けられたメニューバーのコマンドが選択されると、フォームメソッドに送られます。その後、`Menu selected` ランゲージコマンドを呼び出して、選択されたメニューをテストすることができます。 -> メニューバーをフォームに関連付けるには、フォームのプロパティで設定します。 フォームメニューバーのメニューは、アプリケーション環境でフォームが出力フォームとして表示されたときに、現在のメニューバーに追加されます。 +> メニューバーをフォームに関連付けるには、フォームのプロパティで設定します。フォームメニューバーのメニューは、アプリケーション環境でフォームが出力フォームとして表示されたときに、現在のメニューバーに追加されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseEnter.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseEnter.md index 3eaf03f78dd952..f0d6da26e251fd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseEnter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseEnter.md @@ -17,7 +17,7 @@ title: On Mouse Enter ### コールスタック -`On Mouse Enter` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。 あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。 重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 +`On Mouse Enter` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 ### 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseLeave.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseLeave.md index da75898aa55078..33d6e1e2d3a2a3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseLeave.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseLeave.md @@ -17,7 +17,7 @@ title: On Mouse Leave ### コールスタック -`On Mouse Leave` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。 あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。 重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 +`On Mouse Leave` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 ### 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseMove.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseMove.md index 0a84a80d53440e..2eaaab1d66c0f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseMove.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseMove.md @@ -12,7 +12,7 @@ title: On Mouse Move このイベントは次の場合に生成されます: - マウスカーソルが 1ピクセル以上動いた -- または、変更キー (**Shift**, **Alt/Option**, **Shift Lock**) が押された。 これにより、ドラッグ&ドロップによるコピーや移動も管理できるようになります +- または、変更キー (**Shift**, **Alt/Option**, **Shift Lock**) が押された。これにより、ドラッグ&ドロップによるコピーや移動も管理できるようになります イベントがオブジェクトに対してのみチェックされていた場合は、マウスカーソルがオブジェクトの描画エリア内にあった場合にのみイベントが生成されます。 @@ -22,7 +22,7 @@ title: On Mouse Move ### コールスタック -`On Mouse Move` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。 あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。 重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 +`On Mouse Move` イベントがフォームにおいてチェックされている場合、各フォームオブジェクトに対してイベントが生成されます。あるオブジェクトにおいてチェックされている場合は、そのオブジェクトに対してのみ生成されます。重なったオブジェクトがある場合はトップレベルから順に、イベントを処理することができる最初のオブジェクトによって生成されます。 ### 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseUp.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseUp.md index d4e2ce5ad041b0..443e26451c1f08 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseUp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onMouseUp.md @@ -9,10 +9,10 @@ title: On Mouse Up ## 説明 -ピクチャー型の入力オブジェクト内で、ドラッグ中に左マウスボタンをリリースしたときに `On Mouse Up` イベントが生成されます。 このイベントはたとえば、SVGエリア内でユーザーがオブジェクトを移動、リサイズ、描画することを可能にしたい場合に有用です。 +ピクチャー型の入力オブジェクト内で、ドラッグ中に左マウスボタンをリリースしたときに `On Mouse Up` イベントが生成されます。このイベントはたとえば、SVGエリア内でユーザーがオブジェクトを移動、リサイズ、描画することを可能にしたい場合に有用です。 -`On Mouse Up` イベントが生成されると、マウスボタンがリリースされたローカルの座標を取得することができます。 座標は `MouseX` と `MouseY` システム変数 に返されます。 座標はピクセル単位で表現され、ピクチャーの左上隅が起点 (0,0) となります。 +`On Mouse Up` イベントが生成されると、マウスボタンがリリースされたローカルの座標を取得することができます。座標は `MouseX` と `MouseY` システム変数 に返されます。座標はピクセル単位で表現され、ピクチャーの左上隅が起点 (0,0) となります。 -このイベントを使用する場合、フォームの "ステートマネージャー" が非同期の可能性がある場合 (つまり、クリック後に `On Mouse Up` イベントを受け取らなかった場合) を管理するために、`Is waiting mouse up` コマンドも使用する必要があります。 これはたとえば、マウスボタンがリリースされる前にフォーム上にアラートダイアログボックスが表示された場合などです。 `On Mouse Up` イベントのより詳細な情報と使用例については、`Is waiting mouse up` コマンドの詳細を参照ください。 +このイベントを使用する場合、フォームの "ステートマネージャー" が非同期の可能性がある場合 (つまり、クリック後に `On Mouse Up` イベントを受け取らなかった場合) を管理するために、`Is waiting mouse up` コマンドも使用する必要があります。これはたとえば、マウスボタンがリリースされる前にフォーム上にアラートダイアログボックスが表示された場合などです。 `On Mouse Up` イベントのより詳細な情報と使用例については、`Is waiting mouse up` コマンドの詳細を参照ください。 > ピクチャーオブジェクトの [ドラッグ有効](FormObjects/properties_Action.md#ドラッグ有効)オプションがチェックされている場合、`On Mouse Up` イベントはいかなる場合も生成されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onOpenDetail.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onOpenDetail.md index ddf0968284237f..be47a7c6adf13f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onOpenDetail.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onOpenDetail.md @@ -11,9 +11,9 @@ title: On Open Detail `On Open Detail` イベントは次のコンテキストで利用できます: -- **出力フォーム**: 出力フォームに関連づけられた詳細フォームにレコードが表示されようとしているときに生成されます。 このイベントは、プロジェクトフォームでは選択できず、**テーブルフォーム** でのみ利用できます。 +- **出力フォーム**: 出力フォームに関連づけられた詳細フォームにレコードが表示されようとしているときに生成されます。このイベントは、プロジェクトフォームでは選択できず、**テーブルフォーム** でのみ利用できます。 - [**セレクション型のリストボックス**](FormObjects/listbox_overview.md#セレクションリストボックス): セレクション型リストボックスに関連付けられた (まだ開かれていない) 詳細フォームにレコードが表示されようとしているときに生成されます。 ### Displayed line number -`Displayed line number` 4Dコマンドは、`On Open Detail` フォームイベントと連動します。 このコマンドは、レコードのリストまたはリストボックスの行が画面に表示されるときに処理されている行の番号を返します。 +`Displayed line number` 4Dコマンドは、`On Open Detail` フォームイベントと連動します。このコマンドは、レコードのリストまたはリストボックスの行が画面に表示されるときに処理されている行の番号を返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onOutsideCall.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onOutsideCall.md index 3ce8039f660180..2f7649396b04f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onOutsideCall.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onOutsideCall.md @@ -11,5 +11,5 @@ title: On Outside Call このイベントは、`POST OUTSIDE CALL` コマンドによって他のプロセスからフォームが呼び出されたときに生成されます。 -> `On Outside Call` イベントは、受信した入力フォームの入力コンテキストを変更します。 特に、フィールドが編集されていた場合には、[`On Data Change`](onDataChange.md) イベントが生成されます。 +> `On Outside Call` イベントは、受信した入力フォームの入力コンテキストを変更します。特に、フィールドが編集されていた場合には、[`On Data Change`](onDataChange.md) イベントが生成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPageChange.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPageChange.md index 0038b772abaa0f..b41d7ea3192f53 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPageChange.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPageChange.md @@ -9,10 +9,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/current/Events/onPrintingBreak.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingBreak.md index 82e0b81206926e..ce9f6ab3a62add 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingBreak.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingBreak.md @@ -9,7 +9,7 @@ title: On Printing Break ## 説明 -`On Printing Break` イベントは、**出力フォーム** のコンテキストでのみ使用できます。 このイベントは、出力フォームのブレークエリアが印刷されようとするたびに発生し、これによってブレーク値を評価できるようになります。 +`On Printing Break` イベントは、**出力フォーム** のコンテキストでのみ使用できます。このイベントは、出力フォームのブレークエリアが印刷されようとするたびに発生し、これによってブレーク値を評価できるようになります。 このイベントは通常、`Subtotal` コマンドの呼び出し後に発生します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingDetail.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingDetail.md index 13890bb2b58779..153350edf1797b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingDetail.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingDetail.md @@ -9,7 +9,7 @@ title: On Printing Detail ## 説明 -`On Printing Detail` イベントは、**出力フォーム** のコンテキストでのみ使用できます。 このイベントは、`Print form` コマンドの呼び出しの後など、出力フォームの詳細エリアが印刷されようとしているときに発生します。 +`On Printing Detail` イベントは、**出力フォーム** のコンテキストでのみ使用できます。このイベントは、`Print form` コマンドの呼び出しの後など、出力フォームの詳細エリアが印刷されようとしているときに発生します。 `Print form` コマンドは `On Printing Detail` イベントを 1つだけ、フォームメソッドに対して生成します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingFooter.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingFooter.md index 37aa420f5effb3..bd2b8a612d6220 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingFooter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onPrintingFooter.md @@ -9,7 +9,7 @@ title: On Printing Footer ## 説明 -`On Printing Footer` イベントは、**出力フォーム** のコンテキストでのみ使用できます。 このイベントは、出力フォームのフッターエリアが印刷されようとするときに発生し、これによってフッター値を評価できるようになります。 +`On Printing Footer` イベントは、**出力フォーム** のコンテキストでのみ使用できます。このイベントは、出力フォームのフッターエリアが印刷されようとするときに発生し、これによってフッター値を評価できるようになります。 このイベントは、`PRINT SELECTION` コマンドのコンテキストで発生することが可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onResize.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onResize.md index 9a1bd936ea4b9e..da94e506659f8b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onResize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onResize.md @@ -12,4 +12,4 @@ title: On Resize このイベントは次の場合に生成されます: - フォームのウィンドウがリサイズされた -- サブフォームのコンテキストでは、親フォームにおいてサブフォームオブジェクトのサイズが変更された場合。 この場合、イベントはサブフォームのフォームメソッドが受け取ります。 +- サブフォームのコンテキストでは、親フォームにおいてサブフォームオブジェクトのサイズが変更された場合。この場合、イベントはサブフォームのフォームメソッドが受け取ります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onRowMoved.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onRowMoved.md index d639fb14c8ad02..246c52adc7822b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onRowMoved.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onRowMoved.md @@ -9,6 +9,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/current/Events/onRowResize.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onRowResize.md index ef0f84520cd88c..227742f8a810ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onRowResize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onRowResize.md @@ -9,7 +9,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/current/Events/onScroll.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onScroll.md index 03302d85363367..c57f11da3a8152 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onScroll.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onScroll.md @@ -11,13 +11,13 @@ 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/current/Events/onSelectionChange.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onSelectionChange.md index 905f0792c1425f..05852f7b07494f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onSelectionChange.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onSelectionChange.md @@ -13,7 +13,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/current/Events/onUnload.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onUnload.md index d9b88db4bd9a83..02d373ce03b447 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onUnload.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onUnload.md @@ -11,14 +11,13 @@ 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/current/Events/onUrlResourceLoading.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onUrlResourceLoading.md index 18fa10a19fcef8..cc83b1362e943e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onUrlResourceLoading.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onUrlResourceLoading.md @@ -9,7 +9,7 @@ title: On URL Resource Loading ## 説明 -このイベントは、現在の Webページに (ピクチャーやフレームなどの) 新しいリソースをロードするたびに生成されます。 +このイベントは、現在の Webページに (ピクチャーやフレームなどの)新しいリソースをロードするたびに生成されます。 Webエリアに関連付けられた [進捗状況変数](FormObjects/properties_WebArea.md#進捗状況変数) 変数を使用してロード状況を知ることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onVpRangeChanged.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onVpRangeChanged.md index 8883fb077331ba..15caea35a73cfc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onVpRangeChanged.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onVpRangeChanged.md @@ -20,7 +20,7 @@ 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/current/Events/onVpReady.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onVpReady.md index d04cb37cad2b0d..d8bc3b2ada1afe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onVpReady.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onVpReady.md @@ -11,6 +11,6 @@ title: On VP Ready このイベントは、4D View Pro エリアのロードが終わった時に生成されます。 -このイベントは、エリアの初期化コードを書く際に必要になります。 4D View Pro エリアを初期化するためのコード (値の読み込みなど) は当該エリアの `On VP Ready` フォームイベント内に書く必要があります。 このフォームイベントは、エリアの読み込みが完了したときに一回生成されます。 同イベントの利用によって、有効なコンテキスト内でコードが実行されることを確実にできます。 `On VP Ready` フォームイベントが生成される前に 4D View Pro コマンドを呼び出してしまうと、エラーが返されます。 +このイベントは、エリアの初期化コードを書く際に必要になります。 4D View Pro エリアを初期化するためのコード (値の読み込みなど) は当該エリアの `On VP Ready` フォームイベント内に書く必要があります。このフォームイベントは、エリアの読み込みが完了したときに一回生成されます。同イベントの利用によって、有効なコンテキスト内でコードが実行されることを確実にできます。 `On VP Ready` フォームイベントが生成される前に 4D View Pro コマンドを呼び出してしまうと、エラーが返されます。 -> 4D View Pro エリアは非同期的に 4Dフォーム上に読み込まれます。 したがって、標準の [On load](onLoad.md) フォームイベントは 4D View Pro エリアの読み込み完了を保証せず、4D View Pro の初期化コードに利用することはできません。 `On VP Ready` は常に [On load](onLoad.md) の後に生成されます。 \ No newline at end of file +> 4D View Pro エリアは非同期的に 4Dフォーム上に読み込まれます。したがって、標準の [On load](onLoad.md) フォームイベントは 4D View Pro エリアの読み込み完了を保証せず、4D View Pro の初期化コードに利用することはできません。 `On VP Ready` は常に [On load](onLoad.md) の後に生成されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md index a2e307612375f4..d88383285bafe9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Events/onWindowOpeningDenied.md @@ -21,7 +21,7 @@ title: On Window Opening Denied `WA Get last filtered URL` コマンドコマンドを使用してブロックされた URL を知ることができます。 -このイベントは、Webエリア (埋め込みおよび Windowsシステム [エンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用)) で [ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効になっている場合に、ドロップ操作がおこなわれたときにも発生します。 次を呼び出すことで、ドロップを受け入れることができます: +このイベントは、Webエリア (埋め込みおよび Windowsシステム [エンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用)) で [ドラッグ&ドロップ](../FormObjects/webArea_overview.md#ユーザーインターフェース) オプションが有効になっている場合に、ドロップ操作がおこなわれたときにも発生します。次を呼び出すことで、ドロップを受け入れることができます: ```4d // Webエリアオブジェクトメソッド 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 58d02f9125599f..cae603f495ca60 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 @@ -5,13 +5,13 @@ title: コンポーネントの開発 ## コンポーネント -4D のコンポーネントとは、[4Dアプリケーションにインストール可能](Concepts/components.md) な、1つ以上の機能を持つ 4D関数やメソッド、フォームの一式です。 たとえば、メールの送受信をおこない、それらを 4D アプリケーションに格納するための機能を持ったコンポーネントを作成できます。 +4D のコンポーネントとは、[4Dアプリケーションにインストール可能](Concepts/components.md) な、1つ以上の機能を持つ 4D関数やメソッド、フォームの一式です。たとえば、メールの送受信をおこない、それらを 4D アプリケーションに格納するための機能を持ったコンポーネントを作成できます。 -ニーズに合わせて独自の 4Dコンポーネントを開発し、それを非公開とすることができます。 また、[それらを4D Corner にアップロード](https://corner.4d.com/) して、[4D コミュニティと共有する](https://github.com/topics/4d-component)こともできます。 +ニーズに合わせて独自の 4Dコンポーネントを開発し、それを非公開とすることができます。また、[それらを4D Corner にアップロード](https://corner.4d.com/) して、[4D コミュニティと共有する](https://github.com/topics/4d-component)こともできます。 ## 定義 -- **マトリクスプロジェクト**: コンポーネント開発に使用する4D プロジェクト。 マトリクスプロジェクトは特別な属性を持たない標準のプロジェクトです。 マトリクスプロジェクトはひとつのコンポーネントを構成します。 +- **マトリクスプロジェクト**: コンポーネント開発に使用する4D プロジェクト。マトリクスプロジェクトは特別な属性を持たない標準のプロジェクトです。マトリクスプロジェクトはひとつのコンポーネントを構成します。 - **ホストプロジェクト**: コンポーネントがインストールされ、それを使用するアプリケーションプロジェクト。 - **コンポーネント**: [ホストアプリケーションにインストール](../Project/components.md) され、同アプリケーションによって使用されるマトリクスプロジェクトのこと。マトリクスプロジェクトはコンパイルし、[ビルド](Desktop/building.md#コンポーネントをビルド) することができます。 @@ -25,11 +25,11 @@ title: コンポーネントの開発 4D コンポーネントの作成とインストールは直接 4D を使用しておこないます: -- コンポーネントを使用するには、[アプリケーションにインストール](../Project/components.md) するだけです。 ホストから直接コンポーネントを作成することもできます。この場合、このコンポーネントは直ちに使用することが可能です。 -- 言い換えれば、マトリクスプロジェクト自体も1 つ以上のコンポーネントを使用できます。 しかしコンポーネントが "サブコンポーネント" を使用することはできません。 -- コンポーネントは次の 4D の要素を呼び出すことができます: データストア([`ds`](../commands/ds))、クラス、関数、プロジェクトメソッド、プロジェクトフォーム、メニューバー、選択リストなど。 以下のデータベースメソッドを使用することが可能です: [On Web Connection](../commands/on-web-connection-database-method)、 [On Web Authentication](../commands/on-web-authentication-database-method)、 [On Host Database Event](../commands/on-host-database-event-database-method) 。 -- 外部データベースのメカニズムを使用すればテーブルやフィールドを作成し、そこにデータを格納したり読み出したりすることができます。 外部データベースは、メインの 4D データベースとは独立して存在し、SQLコマンドでアクセスします。 -- インタープリターモードで動作するホストプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。 コンパイルモードで実行されるホストデータベースでは、インタープリターのコンポーネントを使用できません。 この場合、コンパイル済みコンポーネントのみが利用可能です。 +- コンポーネントを使用するには、[アプリケーションにインストール](../Project/components.md) するだけです。ホストから直接コンポーネントを作成することもできます。この場合、このコンポーネントは直ちに使用することが可能です。 +- 言い換えれば、マトリクスプロジェクト自体も1 つ以上のコンポーネントを使用できます。しかしコンポーネントが "サブコンポーネント" を使用することはできません。 +- コンポーネントは次の 4D の要素を呼び出すことができます: データストア([`ds`](../commands/ds))、クラス、関数、プロジェクトメソッド、プロジェクトフォーム、メニューバー、選択リストなど。以下のデータベースメソッドを使用することが可能です: [On Web Connection](../commands/on-web-connection-database-method)、 [On Web Authentication](../commands/on-web-authentication-database-method)、 [On Host Database Event](../commands/on-host-database-event-database-method) 。 +- 外部データベースのメカニズムを使用すればテーブルやフィールドを作成し、そこにデータを格納したり読み出したりすることができます。外部データベースは、メインの 4D データベースとは独立して存在し、SQLコマンドでアクセスします。 +- インタープリターモードで動作するホストプロジェクトは、インタープリターまたはコンパイル済みどちらのコンポーネントも使用できます。コンパイルモードで実行されるホストデータベースでは、インタープリターのコンポーネントを使用できません。この場合、コンパイル済みコンポーネントのみが利用可能です。 :::note @@ -39,7 +39,7 @@ title: コンポーネントの開発 ## ホストからのコンポーネント作成と編集 -インタープリターモードでは、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 注記 @@ -83,7 +83,7 @@ title: コンポーネントの開発 エクスプローラーでは、コンポーネントに共有されたコードが含まれていることを表す特定のアイコンが表示されます:
    ![](../assets/en/Develop/editable-component.png) -**編集...** を選択するとコードエディターでコンポーネントのコードが開きます。 そこで編集し保存することができます。 +**編集...** を選択するとコードエディターでコンポーネントのコードが開きます。そこで編集し保存することができます。 #### 全てのコンポーネントコードを編集する @@ -93,7 +93,7 @@ title: コンポーネントの開発 ![edit-component](../assets/en/Project/Edit-component.png) -それを選択すると、エクスプローラーに専用のタブが追加されます(あるいは既に追加されていた場合にはそれがハイライトされます)。 このタブ内では、以下の標準のページが利用でき、コンポーネントの中身へとアクセスできます: +それを選択すると、エクスプローラーに専用のタブが追加されます(あるいは既に追加されていた場合にはそれがハイライトされます)。このタブ内では、以下の標準のページが利用でき、コンポーネントの中身へとアクセスできます: ![tab-component](../assets/en/Project/tab-component.png) @@ -108,7 +108,7 @@ title: コンポーネントの開発 ![tab-component](../assets/en/Project/tab-component.gif) -標準の4D IDE 機能がコンポーネントに対して利用可能です。 以下のアクションを実行することができます: +標準の4D IDE 機能がコンポーネントに対して利用可能です。以下のアクションを実行することができます: - [メソッドおよびクラス](../Project/code-overview.md)の追加、複製、削除、編集/保存 - コードのプレビュー、[ドキュメンテーション](../Project/documentation.md) の表示/編集、[メソッドプロパティ](../Project/project-method-properties.md) の表示/編集 @@ -121,7 +121,7 @@ title: コンポーネントの開発 ### 検索と置換 -ホストプロジェクトの[**検索と置換** 機能](../Project/search-replace.md) を使用して、編集可能なコンポーネントのコードやフォーム内の要素を検索することができます。 **プロジェクト内を検索** メニューを使用することで、ひとつまたは全てのコンポーネントを検索ターゲットとして選択することができます: +ホストプロジェクトの[**検索と置換** 機能](../Project/search-replace.md) を使用して、編集可能なコンポーネントのコードやフォーム内の要素を検索することができます。**プロジェクト内を検索** メニューを使用することで、ひとつまたは全てのコンポーネントを検索ターゲットとして選択することができます: ![](../assets/en/Project/find-components.png) @@ -129,9 +129,9 @@ title: コンポーネントの開発 [使用できないコマンド](#使用できないコマンド) を除き、コンポーネントではすべての 4D ランゲージコマンドが使用できます。 -コマンドがコンポーネントから呼ばれると、コマンドはコンポーネントのコンテキストで実行されます。 ただし[`EXECUTE FORMULA`](../commands/execute-formula) と [`EXECUTE METHOD`](../commands/execute-method) コマンドは除きます。これらはコマンドで指定されたメソッドのコンテキストを使用します。 また、ユーザー&グループテーマの読み出しコマンドはコンポーネントで使用することができますが、読み出されるのはホストプロジェクトのユーザー&グループ情報であることに注意してください (コンポーネントに固有のユーザー&グループはありません)。 +コマンドがコンポーネントから呼ばれると、コマンドはコンポーネントのコンテキストで実行されます。 ただし[`EXECUTE FORMULA`](../commands/execute-formula) と [`EXECUTE METHOD`](../commands/execute-method) コマンドは除きます。これらはコマンドで指定されたメソッドのコンテキストを使用します。また、ユーザー&グループテーマの読み出しコマンドはコンポーネントで使用することができますが、読み出されるのはホストプロジェクトのユーザー&グループ情報であることに注意してください (コンポーネントに固有のユーザー&グループはありません)。 -[`SET DATABASE PARAMETER`](../commands/set-database-parameter) および [`Get database parameter`](../commands/get-database-parameter) コマンドは例外となります: これらのコマンドのスコープはグローバルです。 これらのコマンドがコンポーネントから呼び出されると、結果はホストプロジェクトに適用されます。 +[`SET DATABASE PARAMETER`](../commands/set-database-parameter) および [`Get database parameter`](../commands/get-database-parameter) コマンドは例外となります: これらのコマンドのスコープはグローバルです。これらのコマンドがコンポーネントから呼び出されると、結果はホストプロジェクトに適用されます。 さらに、`Structure file` と `Get 4D folder` コマンドは、コンポーネントで使用するための設定ができるようになっています。 @@ -139,7 +139,7 @@ title: コンポーネントの開発 ### 使用できないコマンド -(読み取り専用モードで開かれるため) ストラクチャーファイルを更新する以下のコマンドは、コンポーネントで使用することができません。 コンポーネント中で以下のコマンドを実行すると、-10511, "CommandName コマンドをコンポーネントでコールすることはできません" のエラーが生成されます: +(読み取り専用モードで開かれるため) ストラクチャーファイルを更新する以下のコマンドは、コンポーネントで使用することができません。コンポーネント中で以下のコマンドを実行すると、-10511, "CommandName コマンドをコンポーネントでコールすることはできません" のエラーが生成されます: - `ON EVENT CALL` - `Method called on event` @@ -161,24 +161,24 @@ title: コンポーネントの開発 **注:** -- `Current form table` コマンドは、プロジェクトフォームのコンテキストで呼び出されると `Nil` を返します。 ゆえにこのコマンドをコンポーネントで使用することはできません。 -- SQLデータ定義言語のコマンド (`CREATE TABLE`、`DROP TABLE`等) をコンポーネントのフレームワークで使用することはできません。 ただし、外部データベースの場合は使用することができます (`CREATE DATABASE` SQL コマンド参照)。 +- `Current form table` コマンドは、プロジェクトフォームのコンテキストで呼び出されると `Nil` を返します。ゆえにこのコマンドをコンポーネントで使用することはできません。 +- SQLデータ定義言語のコマンド (`CREATE TABLE`、`DROP TABLE`等)をコンポーネントのフレームワークで使用することはできません。ただし、外部データベースの場合は使用することができます (`CREATE DATABASE` SQL コマンド参照)。 ## プロジェクトメソッドの共有 マトリクスプロジェクトのすべてのプロジェクトメソッドは 、コンポーネントに含まれます。 つまり、マトリクスプロジェクトをコンポーネント化した後、これらのプロジェクトメソッドは同コンポーネント内で呼び出して実行することができます。 -他方、デフォルトでは、これらのプロジェクトメソッドはホストプロジェクトに表示されず、呼び出すこともできません。 マトリクスプロジェクトで、メソッドプロパティダイアログボックスの **コンポーネントとホストプロジェクト間で共有** ボックスをチェックすることで、ホストプロジェクトおよびそのコンポーネントと共有したいメソッドを明示的に設定することができます。 +他方、デフォルトでは、これらのプロジェクトメソッドはホストプロジェクトに表示されず、呼び出すこともできません。マトリクスプロジェクトで、メソッドプロパティダイアログボックスの **コンポーネントとホストプロジェクト間で共有** ボックスをチェックすることで、ホストプロジェクトおよびそのコンポーネントと共有したいメソッドを明示的に設定することができます。 ![](../assets/en/Concepts/shared-methods.png) -設定することで、共有されたプロジェクトメソッドはホストプロジェクトにおいて呼び出せるようになります (しかしホストプロジェクトのコードエディターで編集することはできません)。 これらのメソッドはコンポーネントの **エントリーポイント** となります。 +設定することで、共有されたプロジェクトメソッドはホストプロジェクトにおいて呼び出せるようになります (しかしホストプロジェクトのコードエディターで編集することはできません)。これらのメソッドはコンポーネントの **エントリーポイント** となります。 -セキュリティのため、デフォルトでは、コンポーネントはホストプロジェクトのプロジェクトメソッドを実行することはできません。 特定の場合に、ホストプロジェクトのプロジェクトメソッドにコンポーネントがアクセスできるようにする必要があるかもしれません。 そうするには、ホストプロジェクトのプロジェクトメソッド側で、コンポーネントからのアクセスを可能にするよう明示的に指定しなければなりません。これはメソッドプロパティダイアログボックスの、**コンポーネントとホストプロジェクト間で共有** で設定します。 +セキュリティのため、デフォルトでは、コンポーネントはホストプロジェクトのプロジェクトメソッドを実行することはできません。特定の場合に、ホストプロジェクトのプロジェクトメソッドにコンポーネントがアクセスできるようにする必要があるかもしれません。そうするには、ホストプロジェクトのプロジェクトメソッド側で、コンポーネントからのアクセスを可能にするよう明示的に指定しなければなりません。これはメソッドプロパティダイアログボックスの、**コンポーネントとホストプロジェクト間で共有** で設定します。 ![](../assets/en/Concepts/pict516563.en.png) -ホストプロジェクトのプロジェクトメソッドがコンポーネントから利用可能になっていれば、[`EXECUTE FORMULA`](../commands/execute-formula) または [`EXECUTE METHOD`](../commands/execute-method) コマンドを使用して、コンポーネント側からホストのメソッドを実行することができます。 例: +ホストプロジェクトのプロジェクトメソッドがコンポーネントから利用可能になっていれば、[`EXECUTE FORMULA`](../commands/execute-formula) または [`EXECUTE METHOD`](../commands/execute-method) コマンドを使用して、コンポーネント側からホストのメソッドを実行することができます。例: ```4d // ホストメソッド @@ -191,26 +191,26 @@ component_method("host_method_name") EXECUTE METHOD($param) ``` -> インタープリターコンポーネントがインストールされたインタープリターホストデータベースは、それがインタープリターコンポーネントのメソッドを呼び出さなければ、コンパイル/シンタックスチェックができます。 そうでない場合、コンパイルまたはシンタックスチェックを実行しようとすると警告ダイアログが表示され、操作を実行することはできません。 +> インタープリターコンポーネントがインストールされたインタープリターホストデータベースは、それがインタープリターコンポーネントのメソッドを呼び出さなければ、コンパイル/シンタックスチェックができます。そうでない場合、コンパイルまたはシンタックスチェックを実行しようとすると警告ダイアログが表示され、操作を実行することはできません。 > 一般的に、インタープリターメソッドはコンパイル済みメソッドを呼び出せますが、逆はできません。これをおこなうには `EXECUTE METHOD` や `EXECUTE FORMULA` コマンドを使用します。 ## クラスの共有 -デフォルトでは、ホストプロジェクトの 4Dコードエディターからコンポーネントのクラスを呼び出すことはできません。 ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開したい場合は、**コンポーネント名前空間を宣言** する必要があります。 また、コンポーネントのクラスがホストコードエディターでどのように提案されるかをコントロールすることもできます。 +デフォルトでは、ホストプロジェクトの 4Dコードエディターからコンポーネントのクラスを呼び出すことはできません。ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開したい場合は、**コンポーネント名前空間を宣言** する必要があります。また、コンポーネントのクラスがホストコードエディターでどのように提案されるかをコントロールすることもできます。 ### コンポーネント名前空間の宣言 -ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開するには、マトリクスプロジェクトの設定の [一般ページにある **クラスストア内でのコンポーネント名前空間** オプション](../settings/general.md#クラスストア内でのコンポーネント名前空間) に値を入力します。 デフォルトでは、このエリアは空です(ただしコンポーネントが[ホストから作成された](#デフォルトの名前空間) 場合を除く): コンポーネントのクラスは、コンポーネントのコンテキスト外では利用できません。 +ホストプロジェクトおよび読み込まれているコンポーネントに対してコンポーネントのクラスを公開するには、マトリクスプロジェクトの設定の [一般ページにある **クラスストア内でのコンポーネント名前空間** オプション](../settings/general.md#クラスストア内でのコンポーネント名前空間) に値を入力します。デフォルトでは、このエリアは空です(ただしコンポーネントが[ホストから作成された](#デフォルトの名前空間) 場合を除く): コンポーネントのクラスは、コンポーネントのコンテキスト外では利用できません。 ![](../assets/en/settings/namespace.png) :::note -*名前空間* は、同じ名前のクラスや関数を持つ異なるコンポーネントがホストプロジェクトで使用されている場合に、競合が発生しないようにします。 コンポーネント名前空間は、[プロパティの命名規則](../Concepts/identifiers.md#オブジェクトプロパティ) に準拠する必要があります。 +*名前空間* は、同じ名前のクラスや関数を持つ異なるコンポーネントがホストプロジェクトで使用されている場合に、競合が発生しないようにします。コンポーネント名前空間は、[プロパティの命名規則](../Concepts/identifiers.md#オブジェクトプロパティ) に準拠する必要があります。 ::: -値を入力すると、ホストプロジェクトおよび読み込まれているコンポーネントのコードにおいて、[ユーザークラスストア (**cs**)](../Concepts/classes.md#cs) 内の cs.<値> 名前空間を介して、コンポーネントのクラスが利用可能になることを宣言することになります。 たとえば、`getArea()` 関数を持つ `Rectangle` クラスが存在する場合に、コンポーネント名前空間として "eGeometry" を入力すると、このプロジェクトがコンポーネントとしてインストールされると、ホストプロジェクトの開発者は次のように記述することができます: +値を入力すると、ホストプロジェクトおよび読み込まれているコンポーネントのコードにおいて、[ユーザークラスストア (**cs**)](../Concepts/classes.md#cs) 内の cs.<値> 名前空間を介して、コンポーネントのクラスが利用可能になることを宣言することになります。たとえば、`getArea()` 関数を持つ `Rectangle` クラスが存在する場合に、コンポーネント名前空間として "eGeometry" を入力すると、このプロジェクトがコンポーネントとしてインストールされると、ホストプロジェクトの開発者は次のように記述することができます: ```4d // ホストプロジェクトまたは読み込まれているコンポーネントにて @@ -227,27 +227,27 @@ $area:=$rect.getArea() ::: -競合を避けるためには、優れた識別名の使用が推奨されます。 もし、コンポーネントの名前空間と同じ名前のユーザークラスがすでにプロジェクトに存在していた場合、そのユーザークラスが考慮され、コンポーネントクラスは無視されます。 +競合を避けるためには、優れた識別名の使用が推奨されます。もし、コンポーネントの名前空間と同じ名前のユーザークラスがすでにプロジェクトに存在していた場合、そのユーザークラスが考慮され、コンポーネントクラスは無視されます。 -コンポーネントの ORDAクラスは、ホストプロジェクトでは使用できません。 たとえば、コンポーネントに Employees というデータクラスがある場合、ホストプロジェクトで "cs.Mycomponent.Employee" クラスを使用することはできません。 +コンポーネントの ORDAクラスは、ホストプロジェクトでは使用できません。たとえば、コンポーネントに Employees というデータクラスがある場合、ホストプロジェクトで "cs.Mycomponent.Employee" クラスを使用することはできません。 #### デフォルトの名前空間 新しいコンポーネントが[ホストから作成された](#コンポーネントの作成) 場合、そのコンポーネントにはデフォルトの名前空間が自動的に割り当てられます。 -デフォルトの名前空間は、コンポーネントの名前から、[プロパティの命名規則](../Concepts/identifiers.md#オブジェクトプロパティ) に合致しない文字があればそれらを取り除いたものになります。 例えば、"My Component-2" と名前がつけられたコンポーネントは、デフォルトの名前空間は"MyComponent2" となります。 +デフォルトの名前空間は、コンポーネントの名前から、[プロパティの命名規則](../Concepts/identifiers.md#オブジェクトプロパティ) に合致しない文字があればそれらを取り除いたものになります。例えば、"My Component-2" と名前がつけられたコンポーネントは、デフォルトの名前空間は"MyComponent2" となります。 ### 非表示クラス -アンダースコア ("_") を名前の前に付けることで、コンポーネントのクラスや関数を非表示にすることができます。 [コンポーネント名前空間が定義されている](#コンポーネント名前空間の宣言) 場合、非表示のクラスや関数はコード補完の際に提案されません。 +アンダースコア ("_") を名前の前に付けることで、コンポーネントのクラスや関数を非表示にすることができます。[コンポーネント名前空間が定義されている](#コンポーネント名前空間の宣言) 場合、非表示のクラスや関数はコード補完の際に提案されません。 -ただし、名前がわかっていれば使用することは可能です。 たとえば、`_Rectangle` クラスが非表示の場合でも、次のシンタックスは有効です: +ただし、名前がわかっていれば使用することは可能です。たとえば、`_Rectangle` クラスが非表示の場合でも、次のシンタックスは有効です: ```4d $rect:=cs.eGeometry._Rectangle.new(10;20) ``` -> 非表示のクラス内の、非表示でない関数は、そのクラスを [継承](../Concepts/classes.md#継承) するクラスでコード補完を使用すると提案されます。 たとえば、あるコンポーネントに `_Person` クラスを継承した `Teacher` クラスがある場合、`Teacher` のコード補完では `_Person` の非表示でない関数が提案されます。 +> 非表示のクラス内の、非表示でない関数は、そのクラスを [継承](../Concepts/classes.md#継承) するクラスでコード補完を使用すると提案されます。たとえば、あるコンポーネントに `_Person` クラスを継承した `Teacher` クラスがある場合、`Teacher` のコード補完では `_Person` の非表示でない関数が提案されます。 ## コンパイル済みコンポーネントのコード補完 @@ -262,7 +262,7 @@ $rect:=cs.eGeometry._Rectangle.new(10;20) ## 変数の渡し方 -変数はコンポーネントとホストプロジェクト間では共有されません。 ホストプロジェクトからコンポーネントの変数を編集、またはその逆をおこなう唯一の方法はポインターを使用することです。 +変数はコンポーネントとホストプロジェクト間では共有されません。ホストプロジェクトからコンポーネントの変数を編集、またはその逆をおこなう唯一の方法はポインターを使用することです。 配列を使用した例: @@ -302,14 +302,13 @@ component_method($input_t) - `Get pointer` をコンポーネント内で使用した場合、このコマンドはホストプロジェクトの変数へのポインターを返しません。また逆にこのコマンドをホストプロジェクトで使用した場合も同様です。 -- コンパイル済みプロジェクトでは、コンパイルされたコンポーネントしか使用できませんが、インタープリタープロジェクトの場合には、インタープリターおよびコンパイル済みコンポーネントを同時に使用することができます。 この場合、ポインターの利用は以下の原則を守らなければなりません: インタープリターモードでは、コンパイルモードにおいて作成されたポインターを解釈できます。逆にコンパイルモードでは、インタープリターモードにて作成されたポインターを解釈することはできません。 - 以下の例でこの原則を説明します: 同じホストプロジェクトにインストールされた 2つのコンポーネント C ( コンパイル済) と I ( インタープリター) があります: +- コンパイル済みプロジェクトでは、コンパイルされたコンポーネントしか使用できませんが、インタープリタープロジェクトの場合には、インタープリターおよびコンパイル済みコンポーネントを同時に使用することができます。この場合、ポインターの利用は以下の原則を守らなければなりません: インタープリターモードでは、コンパイルモードにおいて作成されたポインターを解釈できます。逆にコンパイルモードでは、インタープリターモードにて作成されたポインターを解釈することはできません。以下の例でこの原則を説明します: 同じホストプロジェクトにインストールされた 2つのコンポーネント C ( コンパイル済) と I ( インタープリター) があります: - コンポーネントC が定義する変数 `myCvar` があるとき、コンポーネントI はポインター `->myCvar` を使用して変数の値にアクセスすることができます。 -- コンポーネントI が定義する変数 `myIvar` があるとき、コンポーネントC はポインター `->myIvar` を使用しても変数の値にアクセスすることはできません。 このシンタックスは実行エラーを起こします。 +- コンポーネントI が定義する変数 `myIvar` があるとき、コンポーネントC はポインター `->myIvar` を使用しても変数の値にアクセスすることはできません。このシンタックスは実行エラーを起こします。 -- [`RESOLVE POINTER`](../commands/resolve-pointer) コマンドを使用したポインターの比較はお勧めできません。変数の分離の原則により、ホストプロジェクトとコンポーネント (あるいは他のコンポーネント) で同じ名前の変数が存在することができますが、根本的にそれらは異なる内容を持ちます。 両コンテキストで、変数のタイプが違うことさえありえます。 ポインター `myptr1` と `myptr2` がそれぞれ変数を指すとき、以下の比較は正しくない結果となるかもしれません: +- [`RESOLVE POINTER`](../commands/resolve-pointer) コマンドを使用したポインターの比較はお勧めできません。変数の分離の原則により、ホストプロジェクトとコンポーネント (あるいは他のコンポーネント) で同じ名前の変数が存在することができますが、根本的にそれらは異なる内容を持ちます。両コンテキストで、変数のタイプが違うことさえありえます。ポインター `myptr1` と `myptr2` がそれぞれ変数を指すとき、以下の比較は正しくない結果となるかもしれません: ```4d RESOLVE POINTER(myptr1;vVarName1;vtablenum1;vfieldnum1) @@ -326,13 +325,13 @@ component_method($input_t) ## エラー処理 -[`ON ERR CALL`](../commands/on-err-call) コマンドを使用して実装された[エラー処理メソッド](Concepts/error-handling.md) は実行中のアプリケーションに対してのみ適用されます。 コンポーネントによって生成されたエラーの場合、ホストプロジェクトの `ON ERR CALL` エラー処理メソッドは呼び出されず、その逆もまた然りです。 +[`ON ERR CALL`](../commands/on-err-call) コマンドを使用して実装された[エラー処理メソッド](Concepts/error-handling.md) は実行中のアプリケーションに対してのみ適用されます。コンポーネントによって生成されたエラーの場合、ホストプロジェクトの `ON ERR CALL` エラー処理メソッドは呼び出されず、その逆もまた然りです。 しかしながら、[ホストアプリケーションにコンポーネントエラーハンドラーを実装する](../Concepts/error-handling.md#scope-and-components) ことで、コンポーネントでキャッチされなかったエラーを管理することができます。 ## ホストプロジェクトのテーブルへのアクセス -コンポーネントでテーブルを使用することはできませんが、ホストプロジェクトとコンポーネントはポインターを使用して通信をおこなうことができます。 たとえば、以下はコンポーネントで実行可能なメソッドです: +コンポーネントでテーブルを使用することはできませんが、ホストプロジェクトとコンポーネントはポインターを使用して通信をおこなうことができます。たとえば、以下はコンポーネントで実行可能なメソッドです: ```4d // コンポーネントメソッドの呼び出し @@ -354,7 +353,7 @@ SAVE RECORD($tablepointer->) ## テーブルやフィールドの利用 -コンポーネントは、マトリクスプロジェクトのストラクチャーで定義されたテーブルやフィールドを使用することはできません。 しかし外部データベースを作成し、そのテーブルやフィールドを必要に応じ利用することはできます。 外部データベースの作成と管理は SQL を用いておこないます。 外部データベースは、メインの4Dプロジェクトから独立している別の 4Dプロジェクトですが、メインプロジェクトから操作が可能です。 外部データベースの利用は、そのデータベースを一時的にカレントデータベースに指定することです。言い換えれば、4Dが実行する SQL クエリのターゲットデータベースとして外部データベースを指定します。 外部データベースの作成は SQL の `CREATE DATABASE` コマンドを使用します。 +コンポーネントは、マトリクスプロジェクトのストラクチャーで定義されたテーブルやフィールドを使用することはできません。しかし外部データベースを作成し、そのテーブルやフィールドを必要に応じ利用することはできます。外部データベースの作成と管理は SQL を用いておこないます。外部データベースは、メインの4Dプロジェクトから独立している別の 4Dプロジェクトですが、メインプロジェクトから操作が可能です。外部データベースの利用は、そのデータベースを一時的にカレントデータベースに指定することです。言い換えれば、4Dが実行する SQL クエリのターゲットデータベースとして外部データベースを指定します。外部データベースの作成は SQL の `CREATE DATABASE` コマンドを使用します。 #### 例題 @@ -437,14 +436,14 @@ SAVE RECORD($tablepointer->) ## フォームの使用 -- 特定のテーブルに属さない" プロジェクトフォーム" のみが、コンポーネント内で利用できます。 マトリクスプロジェクトのすべてのプロジェクトフォームをコンポーネントで使用することができます。 -- コンポーネントはホストプロジェクトのテーブルフォームを使用できます。 この場合、コンポーネントのコードでフォームを指定するにあたっては、テーブル名ではなく、テーブルへのポインターを使用しなければならないことに注意してください。 +- 特定のテーブルに属さない" プロジェクトフォーム" のみが、コンポーネント内で利用できます。マトリクスプロジェクトのすべてのプロジェクトフォームをコンポーネントで使用することができます。 +- コンポーネントはホストプロジェクトのテーブルフォームを使用できます。この場合、コンポーネントのコードでフォームを指定するにあたっては、テーブル名ではなく、テーブルへのポインターを使用しなければならないことに注意してください。 -> コンポーネントが `ADD RECORD` コマンドを使用すると、ホストプロジェクトのコンテキストで、ホストプロジェクトのカレントの入力フォームが表示されます。 したがって、その入力フォーム上に変数が含まれている場合、コンポーネントはその変数にアクセスできません。 +> コンポーネントが `ADD RECORD` コマンドを使用すると、ホストプロジェクトのコンテキストで、ホストプロジェクトのカレントの入力フォームが表示されます。したがって、その入力フォーム上に変数が含まれている場合、コンポーネントはその変数にアクセスできません。 -- コンポーネントフォームをホストプロジェクト内で [サブフォームとして公開](../FormEditor/properties_FormProperties.md#サブフォームとして公開) することができます。 これは具体的には、グラフィックオブジェクトを提供するコンポーネントを開発できることを意味します。 たとえば、4D社が提供するウィジェットはコンポーネントのサブフォーム利用に基づいています。 +- コンポーネントフォームをホストプロジェクト内で [サブフォームとして公開](../FormEditor/properties_FormProperties.md#サブフォームとして公開) することができます。これは具体的には、グラフィックオブジェクトを提供するコンポーネントを開発できることを意味します。たとえば、4D社が提供するウィジェットはコンポーネントのサブフォーム利用に基づいています。 -> コンポーネントのコンテキストにおいては、参照されるプロジェクトフォームはすべてコンポーネント内に存在している必要があります。 たとえば、コンポーネント内において、`DIALOG` または `Open form window` コマンドを使用してホスト側のプロジェクトフォームを参照しようとした場合にはエラーが生成されます。 +> コンポーネントのコンテキストにおいては、参照されるプロジェクトフォームはすべてコンポーネント内に存在している必要があります。たとえば、コンポーネント内において、`DIALOG` または `Open form window` コマンドを使用してホスト側のプロジェクトフォームを参照しようとした場合にはエラーが生成されます。 ## リソースの使用 @@ -452,7 +451,7 @@ SAVE RECORD($tablepointer->) これによって自動メカニズムが有効となり、コンポーネントの Resources フォルダー内で見つかった XLIFF ファイルは、 同コンポーネントによってロードされます。 -1つ以上のコンポーネントを含むホストプロジェクトでは、ホストプロジェクトと同様にそれぞれのコンポーネントも固有のリソースチェーンを持っています。 リソースは異なるプロジェクト間で分離されます。 コンポーネントA のリソースにコンポーネントB やホストプロジェクトからアクセスすることはできません。 +1つ以上のコンポーネントを含むホストプロジェクトでは、ホストプロジェクトと同様にそれぞれのコンポーネントも固有のリソースチェーンを持っています。リソースは異なるプロジェクト間で分離されます。 コンポーネントA のリソースにコンポーネントB やホストプロジェクトからアクセスすることはできません。 ## 初期化のコードの実行 @@ -460,7 +459,7 @@ SAVE RECORD($tablepointer->) 初期化やデータベースを閉じるコードの実行は、 `On Host Database Event` データベースメソッド を使用しておこなわれます。 -> セキュリティ上の理由から、`On Host Database Event` データベースメソッドを使用可能にするためには、その実行をホストデータベースで明示的に許可する必要があります。 このためには、ストラクチャー設定画面のセキュリティページ内の、[**コンポーネントの "On Host Database Event" メソッドを実行**](../settings/security.md#オプション) オプションにチェックを入れます: +> セキュリティ上の理由から、`On Host Database Event` データベースメソッドを使用可能にするためには、その実行をホストデータベースで明示的に許可する必要があります。このためには、ストラクチャー設定画面のセキュリティページ内の、[**コンポーネントの "On Host Database Event" メソッドを実行**](../settings/security.md#オプション) オプションにチェックを入れます: ## カスタムアイコン @@ -472,7 +471,7 @@ SAVE RECORD($tablepointer->) コンポーネントに対してカスタムアイコンを宣言したい場合: -1. アイコン用のピクチャーファイルを作成し、 `logo.svg` あるいは `logo.png` という名前をつけます。 ピクチャーは正方形で表示されるという点に注意してください(必要であれば自動的にリサイズされます)。 推奨されるのは **svg** フォーマットです。 +1. アイコン用のピクチャーファイルを作成し、 `logo.svg` あるいは `logo.png` という名前をつけます。ピクチャーは正方形で表示されるという点に注意してください(必要であれば自動的にリサイズされます)。推奨されるのは **svg** フォーマットです。 2. アイコンファイルをコンポーネントの [**Resources フォルダー**](../Project/architecture.md#resources) にコピーします。 @@ -492,11 +491,11 @@ SAVE RECORD($tablepointer->) :::note -このファイルは必須ではありませんが、macOS 用の[公証可能でステープル可能な](../Desktop/building.md#ノータリゼーション-公証-について) コンポーネントをビルドするためには必要です。 そのため、これがまだ存在しない場合にはに[ビルド時に](../Desktop/building.md#build-component)自動的に作成されます。 一部のキーはbuildApp XML キーを使用して設定可能である点に留意してください([コンポーネントのビルド](../Desktop/building.md#コンポーネントをビルド) を参照してください)。 +このファイルは必須ではありませんが、macOS 用の[公証可能でステープル可能な](../Desktop/building.md#ノータリゼーション-公証-について) コンポーネントをビルドするためには必要です。そのため、これがまだ存在しない場合にはに[ビルド時に](../Desktop/building.md#build-component)自動的に作成されます。一部のキーはbuildApp XML キーを使用して設定可能である点に留意してください([コンポーネントのビルド](../Desktop/building.md#コンポーネントをビルド) を参照してください)。 ::: -コンポーネントの`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) によって使用されます。 定義可能なキーは以下の通りです: @@ -537,20 +536,20 @@ macOS 上では、Finder からこの情報を見ることができます: ## コンポーネントの保護: コンパイル -コンポーネントとしてインストールされたマトリクスプロジェクトのコードは、ホストプロジェクトからデフォルトでアクセス可能です。 特に: +コンポーネントとしてインストールされたマトリクスプロジェクトのコードは、ホストプロジェクトからデフォルトでアクセス可能です。特に: -- エクスプローラーのメソッドページに存在する共有のプロジェクトメソッドは、ホストプロジェクトのメソッドから呼び出し可能です。 エクスプローラーのプレビューエリアでそれらの内容を選択してコピーすることが可能です。 また、その内容はデバッガーで見ることもできます。 しかし、それらをコードエディター上で開いたり編集したりすることはできません。 +- エクスプローラーのメソッドページに存在する共有のプロジェクトメソッドは、ホストプロジェクトのメソッドから呼び出し可能です。エクスプローラーのプレビューエリアでそれらの内容を選択してコピーすることが可能です。また、その内容はデバッガーで見ることもできます。しかし、それらをコードエディター上で開いたり編集したりすることはできません。 - マトリクスプロジェクトの他のプロジェクトメソッドはエクスプローラーに現れません。 しかし、ホストプロジェクトのデバッガーには内容が表示されます。 - [名前空間が宣言されていれば](#コンポーネント名前空間の宣言)、非表示でないクラスや関数はデバッガーで確認することができます。 -コンポーネントのコードを効果的に保護するには、マトリクスプロジェクトを [コンパイルしビルドして](Desktop/building.md#コンポーネントをビルド)、.4dz ファイルとして提供します。 コンパイルされたマトリクスプロジェクトがコンポーネントとしてインストールされると: +コンポーネントのコードを効果的に保護するには、マトリクスプロジェクトを [コンパイルしビルドして](Desktop/building.md#コンポーネントをビルド)、.4dz ファイルとして提供します。コンパイルされたマトリクスプロジェクトがコンポーネントとしてインストールされると: -- 共有のプロジェクトメソッド、クラス、および関数は、ホストプロジェクトのメソッドから呼び出し可能です。 共有のプロジェクトメソッドは、エクスプローラーのメソッドページにも表示されます。 しかし、その内容はプレビューエリアにもデバッガーにも表示されません。 +- 共有のプロジェクトメソッド、クラス、および関数は、ホストプロジェクトのメソッドから呼び出し可能です。 共有のプロジェクトメソッドは、エクスプローラーのメソッドページにも表示されます。しかし、その内容はプレビューエリアにもデバッガーにも表示されません。 - マトリクスプロジェクトの他のプロジェクトメソッドは一切表示されません。 ## GitHub上でコンポーネントを共有する -開発したコンポーネントを [GitHub](https://github.com/topics/4d-component) で公開し、4D開発者のコミュニティをサポートすることをお勧めします。 正しく参照されるためには、**`4d-component`** トピックをご利用ください。 +開発したコンポーネントを [GitHub](https://github.com/topics/4d-component) で公開し、4D開発者のコミュニティをサポートすることをお勧めします。正しく参照されるためには、**`4d-component`** トピックをご利用ください。 既存のコンポーネントを探したいとき、あるいは自分独自の4D コンポーネントを登録したい場合には、[4D Corner プラットフォーム](https://corner.4d.com/) を是非ご使用ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-plug-ins.md b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-plug-ins.md index b635c830cd3e20..b91f218be7fbab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-plug-ins.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-plug-ins.md @@ -7,13 +7,13 @@ title: プラグインの開発 オブジェクトやレコードの操作、ユーザーインターフェースの実装のため、4D は数百のビルトインコマンドを提供していますが、さらに特殊な機能 (プラットフォーム依存のものなど) が必要になることがあります。 たとえば、Windows上のODBC 、macOS上のアップルサービス、特殊な統計機能、ソーシャルネットワークログイン、決済用のプラットフォーム、ネットワークを介したファイルアクセス、特殊なユーザーインターフェース、独自のピクチャー構造などです。 -これらの機能をすべて、macOS と Windows の両方で 4D コマンドによって提供しようとした場合、コマンド数は数千に膨れ上がると同時に、ほとんどのユーザーはそれらの追加機能を必要としないでしょう。 また、そのような万能ツールを作り上げたとしても、その結果として 4D 環境は複雑化することになり、4D の学習が困難になるだけでなく、成果が得られるまで時間を要するようになるでしょう。 +これらの機能をすべて、macOS と Windows の両方で 4D コマンドによって提供しようとした場合、コマンド数は数千に膨れ上がると同時に、ほとんどのユーザーはそれらの追加機能を必要としないでしょう。また、そのような万能ツールを作り上げたとしても、その結果として 4D 環境は複雑化することになり、4D の学習が困難になるだけでなく、成果が得られるまで時間を要するようになるでしょう。 4D 環境のモジュール性により、基礎的なアプリケーションの作成はもちろんのこと、非常に複雑なシステムの開発も可能です。 4D プラグインのアーキテクチャーによって、4D 環境はあらゆるアプリケーションとユーザーに対して開かれています。 4D プラグインによってアプリケーションやユーザーの生産性を飛躍させることができます。 ## プラグインとは何か -プラグインとは、4D 起動時にロードされるコードのことです。 プラグインは、4D に機能を追加します。 +プラグインとは、4D 起動時にロードされるコードのことです。プラグインは、4D に機能を追加します。 通常、プラグインは: @@ -21,23 +21,23 @@ title: プラグインの開発 - 4D だけでは難しいことを実現します - プラグインのエントリーポイントの形でのみ提供されている機能を提供します -プラグインには通常複数のルーチンが含まれています。 プラグインは外部エリアを操作でき、外部プロセスを実行できます。 +プラグインには通常複数のルーチンが含まれています。プラグインは外部エリアを操作でき、外部プロセスを実行できます。 - **プラグインルーチン** とは、ネイティブ言語 (通常は C あるいは C++) で書かれたルーチンで、なんらかの処理を実行します。 - **外部エリア** とはフォームの一部で、あらゆるものを表示することができ、必要に応じてユーザー操作を受け付けることができます。 -- **外部プロセス** とは、通常はループ形式で単独実行されるプロセスのことです。 プロセスのコードはすべてプラグインに属しており、4D はプロセスに対してイベントを送受信するだけです。 +- **外部プロセス** とは、通常はループ形式で単独実行されるプロセスのことです。プロセスのコードはすべてプラグインに属しており、4D はプロセスに対してイベントを送受信するだけです。 ### 重要な注記 -プラグインは、小さな処理をおこなう一つのルーチンを実行するだけの、とても簡単なものでありえます。 また、百以上のルーチンとエリアを扱うような、非常に複雑なものでもありえます。 プラグインの機能に制限はありませんが、プラグインの開発にあたっては、プラグインがあくまで従たるコードであることに留意が必要です。 プラグインは 4D内で実行されるのであり、その逆ではありません。 プラグインは独立したアプリケーションではなく、4D の一部です。 プラグインは、他のプラグインや 4D 自身と CPU 時間とメモリを共有します。 したがって、プラグインのコードは、必要なリソースだけを使用する控えめなコードであるべきです。 たとえば、非常に長いループ処理においては (その重要性が絶対的な優先権を要求しないかぎり)、プラグインは `PA_Yield()` を呼び出して、4D のスケジューラーにも処理時間を割り当てるべきです。 +プラグインは、小さな処理をおこなう一つのルーチンを実行するだけの、とても簡単なものでありえます。 また、百以上のルーチンとエリアを扱うような、非常に複雑なものでもありえます。プラグインの機能に制限はありませんが、プラグインの開発にあたっては、プラグインがあくまで従たるコードであることに留意が必要です。プラグインは 4D内で実行されるのであり、その逆ではありません。プラグインは独立したアプリケーションではなく、4D の一部です。プラグインは、他のプラグインや 4D 自身と CPU 時間とメモリを共有します。 したがって、プラグインのコードは、必要なリソースだけを使用する控えめなコードであるべきです。たとえば、非常に長いループ処理においては (その重要性が絶対的な優先権を要求しないかぎり)、プラグインは `PA_Yield()` を呼び出して、4D のスケジューラーにも処理時間を割り当てるべきです。 ## プラグインの作り方 4D は GitHub 上に、4D Plugin API と the 4D Plugin Wizard を含んだオープンソースの [**プラグイン SDK**](https://github.com/4d/4D-Plugin-SDK) (英語) を提供しています: - [**4D Plugin API**](https://github.com/4d/4D-Plugin-SDK/blob/master/4D%20Plugin%20API) は C で書かれており、プラグインの開発を助けるための機能を400以上追加します。 4D Plug-in API の機能は、4D とプラグイン間の通信を管理します。 -- [**4D Plugin Wizard**](https://github.com/4d/4D-Plugin-SDK/blob/master/4D%20Plugin%20Wizard) は、4D プラグインの開発を簡略化するために不可欠なツールです。 プラグインのロードや、プラグインとの通信に 4D が必要とするコードがツールによって提供されることで、デベロッパーはプラグインの根幹をなすコードに集中することができます。 +- [**4D Plugin Wizard**](https://github.com/4d/4D-Plugin-SDK/blob/master/4D%20Plugin%20Wizard) は、4D プラグインの開発を簡略化するために不可欠なツールです。プラグインのロードや、プラグインとの通信に 4D が必要とするコードがツールによって提供されることで、デベロッパーはプラグインの根幹をなすコードに集中することができます。 ## プラグインの共有 -開発したプラグインを [GitHub](https://github.com/topics/4d-plugin) で公開し、4D開発者のコミュニティをサポートすることをお勧めします。 正しく参照されるためには、**`4d-plugin`** トピックをご利用ください。 \ No newline at end of file +開発したプラグインを [GitHub](https://github.com/topics/4d-plugin) で公開し、4D開発者のコミュニティをサポートすることをお勧めします。正しく参照されるためには、**`4d-plugin`** トピックをご利用ください。 \ No newline at end of file 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 760ebb9a331717..4eb830b6fcbbda 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -7,16 +7,16 @@ title: 4D アプリケーションの拡張 4D [プロジェクトアーキテクチャー](../Project/architecture.md) はオープンであり、様々な方法で拡張することができます。 4D でネイティブに利用できない機能が必要な場合、以下のような様々な方法でアプリケーションに統合することができます: -- [**System workers**](../API/SystemWorkerClass.md) を使用すると、4D コードからどんな外部プロセス(シェルコマンド、PHP、任意のスクリプト、など) でも呼び出すことができます。 またその実行をモニターすることもできます。 +- [**System workers**](../API/SystemWorkerClass.md) を使用すると、4D コードからどんな外部プロセス(シェルコマンド、PHP、任意のスクリプト、など) でも呼び出すことができます。またその実行をモニターすることもできます。 - [**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 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 で閲覧することができます。 +- [**コンポーネント**](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 コミュニティに対して提供しており、これは幅広い開発需要をカバーしています。 全ての4D 製のコンポーネントは[**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/FormEditor/createStylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md index ba75cffec3f6d7..8e117c8d4b6b3f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md @@ -9,7 +9,7 @@ title: スタイルシート - 開発時間の削減: オブジェクトのさまざまな属性を一括で設定できます。 - メンテナンスの容易化: スタイルシートは、それが使用されているすべてのオブジェクトの外観を一括で設定します。 つまり、スタイルシートのフォントサイズを変更するだけで、その変更は同じスタイルシートを使用するすべてのオブジェクトに適用されます。 -- マルチプラットフォーム開発のコントロール: macOS と Windows 両用のほか、macOS 専用、Windows 専用のスタイルシートを作成することができます。 スタイルシートが設定されていると、4Dは自動で適切なスタイルシートを使用します。 +- マルチプラットフォーム開発のコントロール: macOS と Windows 両用のほか、macOS 専用、Windows 専用のスタイルシートを作成することができます。スタイルシートが設定されていると、4Dは自動で適切なスタイルシートを使用します。 ## スタイルシートの作成と編集 @@ -35,7 +35,7 @@ title: スタイルシート | styleSheets_mac.css | macOS 専用の属性スタイル定義用 | | styleSheets_windows.css | Windows 専用の属性スタイル定義用 | -これらのファイルはプロジェクトの "/SOURCES" フォルダーに格納されます。 また、フォームエディターのツールバーにある、[スタイルシートプレビュー](formEditor.md#スタイルシートプレビュー) から直接アクセスすることもできます。 +これらのファイルはプロジェクトの "/SOURCES" フォルダーに格納されます。また、フォームエディターのツールバーにある、[スタイルシートプレビュー](formEditor.md#スタイルシートプレビュー) から直接アクセスすることもできます。 ## スタイルシートアーキテクチャー @@ -45,7 +45,7 @@ title: スタイルシート - *セレクター* はスタイルの適用対象を指定します。 4D では "オブジェクトタイプ", "オブジェクト名", "クラス", "すべてのオブジェクト", および "属性値" のセレクターが使えます。 -- *宣言* は対象に適用すべきスタイルを指定します。 複数のまとまった宣言文は宣言ブロックを構成します。 CSS 宣言ブロック内の各文はセミコロン ";" で区切り、ブロック全体は中カッコ { } でくくります。 +- *宣言* は対象に適用すべきスタイルを指定します。複数のまとまった宣言文は宣言ブロックを構成します。 CSS 宣言ブロック内の各文はセミコロン ";" で区切り、ブロック全体は中カッコ { } でくくります。 ## スタイルシートセレクター @@ -126,7 +126,7 @@ text.center { } ``` -4D フォームの詳細では、[CSSクラス](../FormObjects/properties_Object.md#cssクラス) 属性を使用してクラス名を割り当てます。 この属性には一つ以上のクラス名を指定することができます。 複数の場合はクラス名を半角スペースで区切ります: +4D フォームの詳細では、[CSSクラス](../FormObjects/properties_Object.md#cssクラス) 属性を使用してクラス名を割り当てます。この属性には一つ以上のクラス名を指定することができます。 複数の場合はクラス名を半角スペースで区切ります: ```css class: "okButtons important" @@ -326,7 +326,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス - 16 進数表記値: `fill: #FF0000;` (6 文字のみ、透明度はサポートされていません) - `rgb()` 関数: `fill:rgb(255,0,0)` -- CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。 例: +- CSS では禁じられている文字を使用している文字列については、その文字列を単一引用符または二重引用符でくくることができます。例: - xliff 参照の場合: `tooltip: ":xliff:CommonMenuFile";` - データソースがフィールド式の場合: `dataSource: "[Table_1:1]ID:1";` @@ -358,7 +358,7 @@ icon: url("edit.png"); /* フォームファイルを基準とした相対パス 1. 4D フォームはまずデフォルトの CSS ファイル `/SOURCES/styleSheets.css` を読み込みます。 2. 次に、カレントプラットフォーム専用の CSS ファイル `/SOURCES/styleSheets_mac.css` または `/SOURCES/styleSheets_windows.css` がロードされます。 -3. [フォームプロパティの"css" 属性](../FormEditor/properties_FormProperties.md#css) が4D フォームで定義されている場合、その4D フォームは特定のCSS ファイルをロードします。 以下のものを渡すことができます: +3. [フォームプロパティの"css" 属性](../FormEditor/properties_FormProperties.md#css) が4D フォームで定義されている場合、その4D フォームは特定のCSS ファイルをロードします。以下のものを渡すことができます: - 両プラットフォーム用のファイル: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md index 7d588fea110821..b5e95b48be57d7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md @@ -4,25 +4,25 @@ slug: overview title: フォームエディター --- -4D が提供するフォームエディターを使用して、必要とされる機能に達するまでフォームを完全にカスタマイズできます。 フォームエディターでは、オブジェクトの作成や削除、操作、フォームやオブジェクトのプロパティの設定がおこなえます。 +4D が提供するフォームエディターを使用して、必要とされる機能に達するまでフォームを完全にカスタマイズできます。フォームエディターでは、オブジェクトの作成や削除、操作、フォームやオブジェクトのプロパティの設定がおこなえます。 ## インターフェース -フォームエディターは各JSONフォームを個別のウィンドウに表示し、ウィンドウごとにオブジェクトバーとツールバーがあります。 複数のフォームを同時に開くことができます。 +フォームエディターは各JSONフォームを個別のウィンドウに表示し、ウィンドウごとにオブジェクトバーとツールバーがあります。複数のフォームを同時に開くことができます。 ### 表示オプション フォームのカレントページの大部分のインターフェース要素は、表示したり非表示にしたりすることができます。 - **継承されたフォーム**: 継承されたフォームオブジェクト ([継承されたフォーム](forms.md#継承フォーム) が存在する場合) -- **ページ0**: [ページ0](forms.md#フォームのページ) のオブジェクト。 このオプションで、フォームのカレントページのオブジェクトとページ0 のオブジェクトを区別することができます。 -- **用紙**: 印刷ページの用紙境界を示す灰色の線。 この要素は、[印刷用](properties_FormProperties.md#フォームタイプ) タイプのフォームでのみデフォルトで表示できます。 +- **ページ0**: [ページ0](forms.md#フォームのページ) のオブジェクト。このオプションで、フォームのカレントページのオブジェクトとページ0 のオブジェクトを区別することができます。 +- **用紙**: 印刷ページの用紙境界を示す灰色の線。この要素は、[印刷用](properties_FormProperties.md#フォームタイプ) タイプのフォームでのみデフォルトで表示できます。 - **ルーラー**: フォームエディターウィンドウのルーラー。 -- **マーカー**: フォームのエリアを識別する出力コントロールラインとマーカー。 この要素は、[リストフォーム](properties_FormProperties.md#フォームタイプ) タイプのフォームでのみデフォルトで表示できます。 -- **マーカーラベル**: マーカーラベル。 これは出力コントロールラインが表示されている場合のみ有効です。 この要素は、[リストフォーム](properties_FormProperties.md#フォームタイプ) タイプのフォームでのみデフォルトで表示できます。 -- **境界**: フォームの境界。 このオプションが選択されていると、アプリケーションモードで表示されるとおりに、フォームがフォームエディターに表示されます。 これによりアプリケーションモードに移動しなくてもフォームを調整しやすくなります。 +- **マーカー**: フォームのエリアを識別する出力コントロールラインとマーカー。この要素は、[リストフォーム](properties_FormProperties.md#フォームタイプ) タイプのフォームでのみデフォルトで表示できます。 +- **マーカーラベル**: マーカーラベル。 これは出力コントロールラインが表示されている場合のみ有効です。この要素は、[リストフォーム](properties_FormProperties.md#フォームタイプ) タイプのフォームでのみデフォルトで表示できます。 +- **境界**: フォームの境界。このオプションが選択されていると、アプリケーションモードで表示されるとおりに、フォームがフォームエディターに表示されます。これによりアプリケーションモードに移動しなくてもフォームを調整しやすくなります。 -> [**サイズを決めるもの**](properties_FormSize.md#サイズを決めるもの)、[**水平マージン**](properties_FormSize.md#水平マージン) そして [**垂直マージン**](properties_FormSize.md#垂直マージン) フォームプロパティ設定はフォーム境界に影響します。 これらの設定を使用すると、フォーム上のオブジェクトに基づいて境界を設定できます。 フォームの境界を決定する位置にオブジェクトを配置したり、サイズを変更したりすると、境界も変更されます。 +> [**サイズを決めるもの**](properties_FormSize.md#サイズを決めるもの)、[**水平マージン**](properties_FormSize.md#水平マージン) そして [**垂直マージン**](properties_FormSize.md#垂直マージン) フォームプロパティ設定はフォーム境界に影響します。これらの設定を使用すると、フォーム上のオブジェクトに基づいて境界を設定できます。フォームの境界を決定する位置にオブジェクトを配置したり、サイズを変更したりすると、境界も変更されます。 #### デフォルト表示 @@ -41,40 +41,40 @@ title: フォームエディター ### ルーラー -右と下にあるルーラーが、オブジェクトの配置を手助けします。 これらは、[表示または非表示](#表示オプション) にすることができます。 +右と下にあるルーラーが、オブジェクトの配置を手助けします。これらは、[表示または非表示](#表示オプション) にすることができます。 **フォーム** メニューの **ルーラー定義...** を選択すると、単位を変更して、インチ、センチ、ピクセルのいずれかで表示させることができます。 ### ツールバー -フォームエディターのツールバーはフォームを操作・更新するための一連のツールを提供します。 ウィンドウごとに固有のツールバーを持ちます。 +フォームエディターのツールバーはフォームを操作・更新するための一連のツールを提供します。ウィンドウごとに固有のツールバーを持ちます。 ![](../assets/en/FormEditor/toolbar.png) ツールバーには以下の要素があります: -| アイコン | 名称 | 説明 | -| ------------------------------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/FormEditor/execute.png) | フォーム実行 | フォームの実行をテストするために使用します。 このボタンをクリックすると、4D は新しいウィンドウを開き、そのコンテキストでフォームを表示します (リストフォームの場合レコードリスト、詳細フォームの場合カレントレコード)。 フォームはメインプロセスで実行されます。 | -| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#オブジェクトの選択) | フォームオブジェクトの選択・移動・リサイズをおこないます。
    **注**: テキストやグループボックスタイプのオブジェクトが選択されている場合、**Enter**キーで編集モードになります。 | -| ![](../assets/en/FormEditor/zOrder.png) | [入力順](#データの入力順) | "入力順" モードに切り替わり、フォームの現在の入力順を表示・変更できます。 入力順は、バッジを使用して確認することもできます。 | -| ![](../assets/en/FormEditor/moving.png) | [移動](#オブジェクトの移動) | "移動" モードに移行し、ウィンドウ中をドラッグ&ドロップすることで素早くフォームの表示部分を移動することができます。 このモードでカーソルは手の形になります。 このモードは、フォームを拡大表示している時に特に便利です。 | -| ![](../assets/en/FormEditor/zoom.png) | [拡大](#拡大) | フォーム表示の拡大/縮小率を変更できます (デフォルトで100%)。 "拡大/縮小" モードにするには虫眼鏡をクリックするか、拡大/縮小率バーをクリックします。 この機能は前節で説明しています。 | -| ![](../assets/en/FormEditor/alignment.png) | [整列](#オブジェクトの整列) | このボタンには、フォーム中でオブジェクトを均等に配置するためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
    選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | -| ![](../assets/en/FormEditor/distribution.png) | [均等配置](#オブジェクトの均等配置) | このボタンには、フォーム中でオブジェクトの並びを揃えるためのメニューがリンクされています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。
    選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | -| ![](../assets/en/FormEditor/level.png) | [レベル](#オブジェクトを重ねる) | このボタンには、フォーム上のオブジェクトの階層を変更するためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | -| ![](../assets/en/FormEditor/group.png) | [グループ化/グループ解除](#オブジェクトのグループ化) | このボタンには、フォーム上の選択オブジェクトのグループ化やグループ解除をおこなうためのメニューが関連付けられています。 このボタンは選択されているオブジェクトに応じて有効/無効になります。 | -| ![](../assets/en/FormEditor/displyAndPage.png) | [表示とページ管理](forms.html#フォームのページ) | このエリアを使用して、フォームページ間の移動やページの追加ができます。 フォームページを移動するには矢印ボタンをクリックするか、または中央のエリアをクリックすると現われるメニューから表示したいページを選択します。 最終ページが表示されている状態で、右矢印ボタンをクリックすると、4D はページを追加します。 | -| ![](../assets/en/FormEditor/cssPreviewicon.png) | [CSSプレビュー](#cssプレビュー) | このボタンで、使用する CSSモードを選択します。 | -| ![](../assets/en/FormEditor/views.png) | [ビュー管理](#オブジェクトビュー) | このボタンは、ビューパレットの表示や非表示をおこないます。 この機能については "オブジェクトビューを使用する" で説明しています。 | -| ![](../assets/en/FormEditor/shields2.png) | [バッジ表示](#バッジ) | このボタンをクリックするたびに、すべてのタイプのフォームバッジが順に表示されます。 また、このボタンには、表示するバッジタイプを直接選択できるメニューが関連付けられています。 | -| ![](../assets/en/FormEditor/library.png) | [定義済みオブジェクトライブラリ](objectLibrary.html) | このボタンは定義済みオブジェクトライブラリを表示します。 このライブラリは定義済みのプロパティを持つオブジェクトを多数提供します。 | -| ![](../assets/en/FormEditor/listBoxBuilder1.png) | [リストボックスビルダー](#リストボックスビルダー) | このボタンは、新しいエンティティセレクション型リストボックスを作成します。 | -| ![](../assets/en/FormEditor/insertFields.png) | [フィールドを挿入](#フィールドを挿入) | このボタンは、テーブルフォームにおいて、親テーブルの全フィールド (オブジェクト型と BLOB型を除く) をインターフェース標準に従ってラベル付きで挿入します。 | +| アイコン | 名称 | 説明 | +| ------------------------------------------------ | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/FormEditor/execute.png) | フォーム実行 | フォームの実行をテストするために使用します。このボタンをクリックすると、4D は新しいウィンドウを開き、そのコンテキストでフォームを表示します (リストフォームの場合レコードリスト、詳細フォームの場合カレントレコード)。フォームはメインプロセスで実行されます。 | +| ![](../assets/en/FormEditor/selection.png) | [選択ツール](#オブジェクトの選択) | フォームオブジェクトの選択・移動・リサイズをおこないます。
    **注**: テキストやグループボックスタイプのオブジェクトが選択されている場合、**Enter**キーで編集モードになります。 | +| ![](../assets/en/FormEditor/zOrder.png) | [入力順](#データの入力順) | "入力順" モードに切り替わり、フォームの現在の入力順を表示・変更できます。入力順は、バッジを使用して確認することもできます。 | +| ![](../assets/en/FormEditor/moving.png) | [移動](#オブジェクトの移動) | "移動" モードに移行し、ウィンドウ中をドラッグ&ドロップすることで素早くフォームの表示部分を移動することができます。このモードでカーソルは手の形になります。このモードは、フォームを拡大表示している時に特に便利です。 | +| ![](../assets/en/FormEditor/zoom.png) | [拡大](#拡大) | フォーム表示の拡大/縮小率を変更できます (デフォルトで100%)。"拡大/縮小" モードにするには虫眼鏡をクリックするか、拡大/縮小率バーをクリックします。この機能は前節で説明しています。 | +| ![](../assets/en/FormEditor/alignment.png) | [整列](#オブジェクトの整列) | このボタンには、フォーム中でオブジェクトを均等に配置するためのメニューがリンクされています。このボタンは選択されているオブジェクトに応じて有効/無効になります。
    選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | +| ![](../assets/en/FormEditor/distribution.png) | [均等配置](#オブジェクトの均等配置) | このボタンには、フォーム中でオブジェクトの並びを揃えるためのメニューがリンクされています。このボタンは選択されているオブジェクトに応じて有効/無効になります。
    選択オブジェクトの位置が CSSプロパティによりロックされている場合は無効です。 | +| ![](../assets/en/FormEditor/level.png) | [レベル](#オブジェクトを重ねる) | このボタンには、フォーム上のオブジェクトの階層を変更するためのメニューが関連付けられています。このボタンは選択されているオブジェクトに応じて有効/無効になります。 | +| ![](../assets/en/FormEditor/group.png) | [グループ化/グループ解除](#オブジェクトのグループ化) | このボタンには、フォーム上の選択オブジェクトのグループ化やグループ解除をおこなうためのメニューが関連付けられています。このボタンは選択されているオブジェクトに応じて有効/無効になります。 | +| ![](../assets/en/FormEditor/displyAndPage.png) | [表示とページ管理](forms.html#フォームのページ) | このエリアを使用して、フォームページ間の移動やページの追加ができます。フォームページを移動するには矢印ボタンをクリックするか、または中央のエリアをクリックすると現われるメニューから表示したいページを選択します。最終ページが表示されている状態で、右矢印ボタンをクリックすると、4D はページを追加します。 | +| ![](../assets/en/FormEditor/cssPreviewicon.png) | [CSSプレビュー](#cssプレビュー) | このボタンで、使用する CSSモードを選択します。 | +| ![](../assets/en/FormEditor/views.png) | [ビュー管理](#オブジェクトビュー) | このボタンは、ビューパレットの表示や非表示をおこないます。この機能については "オブジェクトビューを使用する" で説明しています。 | +| ![](../assets/en/FormEditor/shields2.png) | [バッジ表示](#バッジ) | このボタンをクリックするたびに、すべてのタイプのフォームバッジが順に表示されます。また、このボタンには、表示するバッジタイプを直接選択できるメニューが関連付けられています。 | +| ![](../assets/en/FormEditor/library.png) | [定義済みオブジェクトライブラリ](objectLibrary.html) | このボタンは定義済みオブジェクトライブラリを表示します。 このライブラリは定義済みのプロパティを持つオブジェクトを多数提供します。 | +| ![](../assets/en/FormEditor/listBoxBuilder1.png) | [リストボックスビルダー](#リストボックスビルダー) | このボタンは、新しいエンティティセレクション型リストボックスを作成します。 | +| ![](../assets/en/FormEditor/insertFields.png) | [フィールドを挿入](#フィールドを挿入) | このボタンは、テーブルフォームにおいて、親テーブルの全フィールド (オブジェクト型と BLOB型を除く) をインターフェース標準に従ってラベル付きで挿入します。 | ### オブジェクトバー -オブジェクトバーには、4Dフォーム上で使用できるアクティブオブジェクトや非アクティブオブジェクトがすべて含まれています。 一部のオブジェクトは、テーマ別にまとめられています。 各テーマでは、複数の項目のなかから選択することができます。 オブジェクトバーにフォーカスがある場合、キーボードのキーを使用してボタンを選択できます。 以下の表で利用可能なオブジェクトグループとショートカットを示します。 +オブジェクトバーには、4Dフォーム上で使用できるアクティブオブジェクトや非アクティブオブジェクトがすべて含まれています。一部のオブジェクトは、テーマ別にまとめられています。各テーマでは、複数の項目のなかから選択することができます。オブジェクトバーにフォーカスがある場合、キーボードのキーを使用してボタンを選択できます。以下の表で利用可能なオブジェクトグループとショートカットを示します。 | ボタン | グループ | キー | | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-: | @@ -90,23 +90,23 @@ title: フォームエディター | ![](../assets/en/FormEditor/splitter.png) | [スプリッター](FormObjects/splitters.md) / [タブコントロール](FormObjects/tabControl.md) | D | | ![](../assets/en/FormEditor/plugin.png) | [プラグインエリア](FormObjects/pluginArea_overview.md) / [サブフォーム](FormObjects/subform_overview.md) / [Webエリア](FormObjects/webArea_overview.md) / [4D Write Pro](FormObjects/writeProArea_overview.md) / [4D View Pro](FormObjects/viewProArea_overview.md) | X | -任意のオブジェクトタイプを描画するには、該当するボタンを選択してから、フォーム上でそのオブジェクトを描きます。 オブジェクトを作成した後でも、プロパティリストを用いてオブジェクトのタイプを変更することができます。 強制的にオブジェクトを規則正しい形で描画するには、**Shift**キーを押しながらオブジェクトを作成します。 この場合、線は水平方向、45度、または垂直方向に引かれます。また、四角は正方形に、楕円は正円に固定されます。 +任意のオブジェクトタイプを描画するには、該当するボタンを選択してから、フォーム上でそのオブジェクトを描きます。オブジェクトを作成した後でも、プロパティリストを用いてオブジェクトのタイプを変更することができます。強制的にオブジェクトを規則正しい形で描画するには、**Shift**キーを押しながらオブジェクトを作成します。この場合、線は水平方向、45度、または垂直方向に引かれます。また、四角は正方形に、楕円は正円に固定されます。 -そのテーマで現在選択されているオブジェクトがフォームに挿入されます。 ボタンの右側をクリックすると、バリエーションメニューが表示されます: +そのテーマで現在選択されているオブジェクトがフォームに挿入されます。ボタンの右側をクリックすると、バリエーションメニューが表示されます: ![](../assets/en/FormEditor/objectBar.png) -ボタンを 2回クリックすると、フォーム上にオブジェクトを描画した後も、そのボタンが選択されたままになります (連続選択)。 この機能により、同じタイプのオブジェクトを複数連続して作成しやすくなります。 連続選択を解除したい場合は、別のオブジェクトやツールをクリックします。 +ボタンを 2回クリックすると、フォーム上にオブジェクトを描画した後も、そのボタンが選択されたままになります (連続選択)。この機能により、同じタイプのオブジェクトを複数連続して作成しやすくなります。連続選択を解除したい場合は、別のオブジェクトやツールをクリックします。 ### プロパティリスト ![](../assets/en/FormEditor/property-list.png) -フォームおよびフォームオブジェクトはプロパティを持ち、フォームへのアクセスやフォームの外観、およびフォーム使用時の動作が制御されます。 フォームプロパティには、たとえばフォーム名、メニューバー、フォームサイズなどがあります。 またオブジェクトプロパティには、たとえばオブジェクト名、オブジェクトサイズ、背景色、フォントなどがあります。 +フォームおよびフォームオブジェクトはプロパティを持ち、フォームへのアクセスやフォームの外観、およびフォーム使用時の動作が制御されます。フォームプロパティには、たとえばフォーム名、メニューバー、フォームサイズなどがあります。またオブジェクトプロパティには、たとえばオブジェクト名、オブジェクトサイズ、背景色、フォントなどがあります。 -プロパティリストを使用して、フォームおよびオブジェクトプロパティを表示・変更できます。 エディター上でオブジェクト選択していればそのプロパティが、オブジェクトを選択していない場合はフォームのプロパティがプロパティリストに表示されます。 +プロパティリストを使用して、フォームおよびオブジェクトプロパティを表示・変更できます。エディター上でオブジェクト選択していればそのプロパティが、オブジェクトを選択していない場合はフォームのプロパティがプロパティリストに表示されます。 -プロパティリストを表示/非表示にするには、**フォーム** メニュー、またはフォームエディターのコンテキストメニューから **プロパティリスト** を選択します。 さらに、フォームの空のエリアをダブルクリックすることでも表示させることができます。 +プロパティリストを表示/非表示にするには、**フォーム** メニュー、またはフォームエディターのコンテキストメニューから **プロパティリスト** を選択します。さらに、フォームの空のエリアをダブルクリックすることでも表示させることができます。 #### ショートカット @@ -136,9 +136,9 @@ title: フォームエディター フォームでは 2つのタイプのオブジェクトを扱います: -- **スタティックオブジェクト** (線、枠、背景ピクチャー等): これらは一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 これらはフォームエディターのオブジェクトバーから利用できます。 プロパティリストを使用して、これらのグラフィック属性 (サイズ、カラー、フォント等) やリサイズオプションも指定できます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 +- **スタティックオブジェクト** (線、枠、背景ピクチャー等): これらは一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。これらはフォームエディターのオブジェクトバーから利用できます。プロパティリストを使用して、これらのグラフィック属性 (サイズ、カラー、フォント等)やリサイズオプションも指定できます。アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 -- アクティブオブジェクト: この種のオブジェクトはインターフェース中でタスクや機能を実行します。 フィールド、ボタン、リストボックスなど様々な種類があります。 各アクティブオブジェクトにはフィールドまたは変数が割り当てられます。 +- アクティブオブジェクト: この種のオブジェクトはインターフェース中でタスクや機能を実行します。 フィールド、ボタン、リストボックスなど様々な種類があります。各アクティブオブジェクトにはフィールドまたは変数が割り当てられます。 ### オブジェクトの選択 @@ -150,43 +150,41 @@ title: フォームエディター
    マウスカーソルをフォームエリアに移動させると、カーソルは標準の矢印の形をしたポインターに変わります。 -2. 選択したいオブジェクトをクリックします。 サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表わします。
    ![](../assets/en/FormEditor/selectResize.png) +2. 選択したいオブジェクトをクリックします。サイズ変更ハンドルが表示され、オブジェクトが選択されたことを表わします。
    ![](../assets/en/FormEditor/selectResize.png) プロパティリストを使用してオブジェクトを選択するには: -1. プロパティリストの一番上にあるオブジェクトリストドロップダウンリストからオブジェクト名を選択します。 この方法では、他のオブジェクトの下に隠れているオブジェクトや、カレントウィンドウの表示領域外に置かれているオブジェクトを選択することができます。 - オブジェクトの選択を解除するには、オブジェクト境界の外側をクリックするか、またはオブジェクト上で **Shift+クリック** します。 +1. プロパティリストの一番上にあるオブジェクトリストドロップダウンリストからオブジェクト名を選択します。この方法では、他のオブジェクトの下に隠れているオブジェクトや、カレントウィンドウの表示領域外に置かれているオブジェクトを選択することができます。オブジェクトの選択を解除するには、オブジェクト境界の外側をクリックするか、またはオブジェクト上で **Shift+クリック** します。 > "デザインモードを検索" の結果ウィンドウでオブジェクトをダブルクリックすることで選択することもできます。 ### 複数オブジェクトの選択 -複数のフォームオブジェクトに関して同じ操作を適用したい場合があります。 たとえば、オブジェクトの移動や整列、外観の変更をおこなう場合などです。 4D では一度に複数のオブジェクトを選択することができます。 複数のオブジェクトを選択する方法はいくつかあります: +複数のフォームオブジェクトに関して同じ操作を適用したい場合があります。 たとえば、オブジェクトの移動や整列、外観の変更をおこなう場合などです。 4D では一度に複数のオブジェクトを選択することができます。複数のオブジェクトを選択する方法はいくつかあります: - 編集メニューから **すべてを選択** を選択して、すべてのオブジェクトを選択する。 - オブジェクト上で右クリックし、コンテキストメニューから **同じ種類のオブジェクトを選択** コマンドを選択する。 - **Shift**キーを押しながら、選択したいオブジェクトをクリックする。 -- 選択したいオブジェクトグループの外側から各オブジェクトを囲むようにマーキー (選択矩形とも呼ばれます) を描画する。 マウスボタンを離すと、マーキー内及びマーキーに重なるオブジェクトが選択されます。 -- **Alt**キー (Windows) または、**Option**キー (macOS) を押しながら、マーキーを描画します。 マーキーに完全に囲まれたオブジェクトが選択されます。 +- 選択したいオブジェクトグループの外側から各オブジェクトを囲むようにマーキー (選択矩形とも呼ばれます) を描画する。マウスボタンを離すと、マーキー内及びマーキーに重なるオブジェクトが選択されます。 +- **Alt**キー (Windows) または、**Option**キー (macOS) を押しながら、マーキーを描画します。マーキーに完全に囲まれたオブジェクトが選択されます。 次の図はマーキーが描画され、2つのオブジェクトが選択されている様子を示しています: ![](../assets/en/FormEditor/selectMultiple.png) -一連の選択オブジェクトから任意のオブジェクトを除外するには、**Shift**キーを押しながらそのオブジェクトをクリックします。 この場合、他のオブジェクトは選択されたままになります。 選択されているオブジェクトをすべて選択解除するには、いずれのオブジェクトの境界にもかからない場所をクリックします。 +一連の選択オブジェクトから任意のオブジェクトを除外するには、**Shift**キーを押しながらそのオブジェクトをクリックします。この場合、他のオブジェクトは選択されたままになります。選択されているオブジェクトをすべて選択解除するには、いずれのオブジェクトの境界にもかからない場所をクリックします。 ### オブジェクトの複製 -アクティブオブジェクトを含む任意のオブジェクトをフォーム上で複製できます。 アクティブオブジェクトのコピーはオブジェクト名を除き、変数名、型、標準アクション、表示フォーマット、オブジェクトメソッドなどすべてのプロパティが保持されます。 +アクティブオブジェクトを含む任意のオブジェクトをフォーム上で複製できます。アクティブオブジェクトのコピーはオブジェクト名を除き、変数名、型、標準アクション、表示フォーマット、オブジェクトメソッドなどすべてのプロパティが保持されます。 -ツールパレットの複製ツールを使用してオブジェクトを直接複製するか、"行列を指定して複製" ダイアログボックスでオブジェクトを複数一気に作成できます。 このダイアログでは、2つのコピー間の間隔も指定できます。 +ツールパレットの複製ツールを使用してオブジェクトを直接複製するか、"行列を指定して複製" ダイアログボックスでオブジェクトを複数一気に作成できます。このダイアログでは、2つのコピー間の間隔も指定できます。 オブジェクトを複製するには: 1. 複製したいオブジェクトを選択します。 2. **編集** メニューから **複製** を選択します。 4D は選択されたオブジェクトのコピーを作成し、オリジナルオブジェクトの基点から右下に配置します。 複製されたコピーはオリジナルの前面におかれます。 -3. コピーを適切な場所に配置します。 - ここで複製メニュー項目を再び選択すると、4D はもう一つコピーを作成し、最初のコピーと元のオブジェクトの間との同じ距離同じ方向に配置します。 これを活かし、オブジェクトのコピーをあるライン上に配置する必要がある場合は、以下の手順でおこないます。 元のオブジェクトを複製し、そのコピーをフォーム内の別の場所に移動させてから、コピーを複製します。 1つ目のコピーと元のオブジェクトの位置関係を再現する形で、2つ目のコピーも 1つ目のコピーに対して、自動的に配置されます。 後続のコピーも、それぞれのコピー元オブジェクトと同じ位置関係に配置されます。 以下の図は、この相対的なコピーの配置が動作する様子を示しています: +3. コピーを適切な場所に配置します。ここで複製メニュー項目を再び選択すると、4D はもう一つコピーを作成し、最初のコピーと元のオブジェクトの間との同じ距離同じ方向に配置します。これを活かし、オブジェクトのコピーをあるライン上に配置する必要がある場合は、以下の手順でおこないます。元のオブジェクトを複製し、そのコピーをフォーム内の別の場所に移動させてから、コピーを複製します。 1つ目のコピーと元のオブジェクトの位置関係を再現する形で、2つ目のコピーも 1つ目のコピーに対して、自動的に配置されます。後続のコピーも、それぞれのコピー元オブジェクトと同じ位置関係に配置されます。以下の図は、この相対的なコピーの配置が動作する様子を示しています: ![](../assets/en/FormEditor/duplicateObjects.png) @@ -196,53 +194,52 @@ title: フォームエディター ![](../assets/en/FormEditor/duplcateMany.png) -- 上のエリアには、作成したいオブジェクトの列数と行数を入力します。 たとえば、3列 2行のオブジェクトを作成したい場合、列に 3 を、行に 2 を入力します。 横に 3つの新しいコピーを作成したい場合は、列欄に 4 を入力し、行はデフォルトの 1 のままにします。 +- 上のエリアには、作成したいオブジェクトの列数と行数を入力します。たとえば、3列 2行のオブジェクトを作成したい場合、列に 3 を、行に 2 を入力します。横に 3つの新しいコピーを作成したい場合は、列欄に 4 を入力し、行はデフォルトの 1 のままにします。 -- 列と行それぞれに、コピー間のオフセットを指定できます。 値はポイント単位で指定します。 オフセットは、元のオブジェクトに対して相対的に、コピー毎に適用されます。 たとえば、元のオブジェクトの高さが 50ポイントである場合、オブジェクトごとに 20ポイント縦オフセットするには、列の "オフセット" エリアに 70 を入力します。 +- 列と行それぞれに、コピー間のオフセットを指定できます。値はポイント単位で指定します。オフセットは、元のオブジェクトに対して相対的に、コピー毎に適用されます。 たとえば、元のオブジェクトの高さが 50ポイントである場合、オブジェクトごとに 20ポイント縦オフセットするには、列の "オフセット" エリアに 70 を入力します。 -- 格子状に変数を作成したい場合、**変数に番号設定** オプションを選択し、番号を振る方向を行または列から選択します。 - 選択したオブジェクトが変数の場合にのみ、このオプションは有効になります。 詳細は *デザインリファレンス* で [**グリッド上にオブジェクト作成**](https://doc.4d.com/4Dv19/4D/19/Duplicating-on-a-matrix.300-5416673.ja.html) を参照ください。 +- 格子状に変数を作成したい場合、**変数に番号設定** オプションを選択し、番号を振る方向を行または列から選択します。選択したオブジェクトが変数の場合にのみ、このオプションは有効になります。詳細は *デザインリファレンス* で [**グリッド上にオブジェクト作成**](https://doc.4d.com/4Dv19/4D/19/Duplicating-on-a-matrix.300-5416673.ja.html) を参照ください。 ### オブジェクトの移動 -テンプレートで作成されたフィールドやオブジェクトを含め、フォーム上のグラフィックやアクティブオブジェクトはすべて移動可能です。 オブジェクトを移動するには、次のような方法があります: +テンプレートで作成されたフィールドやオブジェクトを含め、フォーム上のグラフィックやアクティブオブジェクトはすべて移動可能です。オブジェクトを移動するには、次のような方法があります: - オブジェクトをドラッグして移動する。 - 矢印キーを使用して、オブジェクトを 1ピクセルずつ移動する。 - Shiftキーと矢印キーを使用して、オブジェクトを 1ステップずつ移動する (デフォルトで 1ステップ=20ピクセル)。 -選択したオブジェクトのドラッグを開始すると、ハンドルが消えます。 4D はルーラーにオブジェクトの座標を示すマーカーを表示するので、適切な位置にオブジェクトを配置することができます。 このとき、ハンドルをドラッグしないようにしてください。 ハンドルをドラッグすると、オブジェクトのサイズが変更されます。 **Shift**キーを押しながらドラッグすると、制約付きの移動になります。 +選択したオブジェクトのドラッグを開始すると、ハンドルが消えます。 4D はルーラーにオブジェクトの座標を示すマーカーを表示するので、適切な位置にオブジェクトを配置することができます。このとき、ハンドルをドラッグしないようにしてください。ハンドルをドラッグすると、オブジェクトのサイズが変更されます。 **Shift**キーを押しながらドラッグすると、制約付きの移動になります。 [マグネティックグリッド](#マグネティックグリッドを使用する) が有効な場合、グリッドに吸着するようにオブジェクトが移動されます。 オブジェクトを 1ピクセルずつ移動するには: -- 移動したいオブジェクトを選択し、キーボード上の矢印キーを使用してオブジェクトを移動します。 矢印キーを押すたびに、矢印の方向へオブジェクトが 1ピクセルずつ移動します。 +- 移動したいオブジェクトを選択し、キーボード上の矢印キーを使用してオブジェクトを移動します。矢印キーを押すたびに、矢印の方向へオブジェクトが 1ピクセルずつ移動します。 オブジェクトを 1ステップずつ移動するには: -- 移動したいオブジェクトを選択し、**Shift**キーを押しながらキーボード上の矢印キーを使用して、オブジェクトを移動します。 デフォルトで 1ステップにつき 20ピクセル移動します。 このピクセル数は、環境設定のフォームページで変更できます。 +- 移動したいオブジェクトを選択し、**Shift**キーを押しながらキーボード上の矢印キーを使用して、オブジェクトを移動します。デフォルトで 1ステップにつき 20ピクセル移動します。このピクセル数は、環境設定のフォームページで変更できます。 ### オブジェクトのグループ化 -4D ではオブジェクトをグループ化して、そのグループを一つのオブジェクトとして選択・移動・変更することができます。 グループ化されたオブジェクト同士の相対位置は保持されます。 一般的には、フィールドとそのラベル、透明ボタンとそのアイコン等をグループ化するでしょう。 +4D ではオブジェクトをグループ化して、そのグループを一つのオブジェクトとして選択・移動・変更することができます。グループ化されたオブジェクト同士の相対位置は保持されます。一般的には、フィールドとそのラベル、透明ボタンとそのアイコン等をグループ化するでしょう。 グループの大きさを変更すると、そのグループ内の全オブジェクトのサイズが同じ比率で変更されます (テキストエリアは除きます。 テキストエリアのサイズは、そのフォントサイズに合わせて変更されます)。 グループ化を解除すると、再び個々にオブジェクトを扱えるようになります。 -グループ化されたアクティブオブジェクトのプロパティやメソッドにアクセスするには、グループ化を解除しなければなりません。 しかし、グループに属するオブジェクトを、グループ化を解除せずに選択することは可能です。 これには、オブジェクトを **Ctrl+クリック** (Windows) または **Command+クリック** (macOS) します (グループはあらかじめ選択されている必要があります)。 +グループ化されたアクティブオブジェクトのプロパティやメソッドにアクセスするには、グループ化を解除しなければなりません。しかし、グループに属するオブジェクトを、グループ化を解除せずに選択することは可能です。 これには、オブジェクトを **Ctrl+クリック** (Windows) または **Command+クリック** (macOS) します (グループはあらかじめ選択されている必要があります)。 -グループ化はフォームエディター上でのみ意味を持ちます。 フォームの実行中は、グループ化されたすべてのオブジェクトが、グループ化されていないのと同じに動作します。 +グループ化はフォームエディター上でのみ意味を持ちます。フォームの実行中は、グループ化されたすべてのオブジェクトが、グループ化されていないのと同じに動作します。 > 異なるビューに属するオブジェクトをグループ化することはできず、カレントビューに属するオブジェクトのみをグループ化することができます ([オブジェクトビュー](#オブジェクトビュー) 参照)。 オブジェクトをグループ化するには: 1. グループ化したいオブジェクトを選択します。 -2. オブジェクトメニューから **グループ化** を選択します。 または +2. オブジェクトメニューから **グループ化** を選択します。または フォームエディターのツールバーでグループ化ボタンをクリックします。
    ![](../assets/en/FormEditor/group.png) - 4D は、新たにグループ化されたオブジェクトの境界をハンドルで表わします。 または フォームエディターのツールバーでグループ化ボタンをクリックします:
    4D は、新たにグループ化されたオブジェクトの境界をハンドルで表わします。 グループ内の各オブジェクトの境界にはハンドルが表示されません。 + 4D は、新たにグループ化されたオブジェクトの境界をハンドルで表わします。または フォームエディターのツールバーでグループ化ボタンをクリックします:
    4D は、新たにグループ化されたオブジェクトの境界をハンドルで表わします。グループ内の各オブジェクトの境界にはハンドルが表示されません。 オブジェクトのグループ化を解除するには: @@ -253,7 +250,7 @@ title: フォームエディター フォーム上のオブジェクトを互いに整列させたり、または透明グリッドを用いて揃えることができます。 -- オブジェクト同士を整列させる場合、オブジェクトの上端、下端、側面で揃えたり、または別のオブジェクトの縦や横の中心線に沿って揃えることができます。 整列ツールを使用して選択オブジェクトを直接揃えたり、または整列アシスタントを用いてさらに詳細な整列を適用することも可能です。 整列アシスタントを使用した場合、たとえば、整列の基準となるオブジェクトを選択したり、整列を適用する前にフォーム上の整列状態をプレビューできるようになります。 +- オブジェクト同士を整列させる場合、オブジェクトの上端、下端、側面で揃えたり、または別のオブジェクトの縦や横の中心線に沿って揃えることができます。整列ツールを使用して選択オブジェクトを直接揃えたり、または整列アシスタントを用いてさらに詳細な整列を適用することも可能です。整列アシスタントを使用した場合、たとえば、整列の基準となるオブジェクトを選択したり、整列を適用する前にフォーム上の整列状態をプレビューできるようになります。 - その際、移動中のオブジェクトが別のオブジェクトに接近すると、"目に見える" 位置ガイドとして点線が表示され、これに基づいて各オブジェクトの整列を実行することができます。 #### 即時整列ツールを使用する @@ -262,8 +259,7 @@ title: フォームエディター ![](../assets/en/FormEditor/alignmentMenu.png) -4D がオブジェクトを揃える場合、選択オブジェクトのうち 1つを定位置に置いたまま、そのオブジェクトを基準に残りのオブジェクトを整列させます。 この基準オブジェクトが "アンカー" となります。 整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 -次の図は整列なし、左揃え、縦中央揃え、右揃えの状態を示しています: +4D がオブジェクトを揃える場合、選択オブジェクトのうち 1つを定位置に置いたまま、そのオブジェクトを基準に残りのオブジェクトを整列させます。この基準オブジェクトが "アンカー" となります。整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。次の図は整列なし、左揃え、縦中央揃え、右揃えの状態を示しています: ![](../assets/en/FormEditor/alignmentTools.png) @@ -277,17 +273,17 @@ title: フォームエディター - "左/右整列" や "上/下整列" エリアで、実行しようとする整列に対応する整列アイコンをクリックします。
    見本エリアには、選択結果が表示されます。 -- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。 この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。 たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。 または:
    特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。 この場合、基準オブジェクトの位置は変わりません。 +- 標準のアンカー方式による整列を実行するには、**プレビュー** または **適用** をクリックします。この場合、整列をおこなう方向で最も離れた位置にあるオブジェクトがアンカーとして使用され、他のオブジェクトはこのオブジェクトに合わせられます。たとえば、一連のオブジェクトに対して右揃えを実行したい場合、一番右側に位置するオブジェクトがアンカーとして使用されます。または:
    特定のオブジェクトを基準にオブジェクトを揃えるには、**整列** オプションを選択し、整列基準としたいオブジェクトを一覧から選択します。この場合、基準オブジェクトの位置は変わりません。 -**プレビュー** ボタンをクリックすると、整列の結果をプレビューすることができます。 するとフォームエディター上のオブジェクトは見かけ上整列しますが、ダイアログボックスが表示されたままなので、この整列のキャンセルや適用をおこなうことができます。 +**プレビュー** ボタンをクリックすると、整列の結果をプレビューすることができます。するとフォームエディター上のオブジェクトは見かけ上整列しますが、ダイアログボックスが表示されたままなので、この整列のキャンセルや適用をおこなうことができます。 -> このダイアログボックスでは、整列と均等配置を合わせて実行することができます。 整列に関する詳細は [オブジェクトの整列](#オブジェクトの整列) を参照ください。 +> このダイアログボックスでは、整列と均等配置を合わせて実行することができます。整列に関する詳細は [オブジェクトの整列](#オブジェクトの整列) を参照ください。 #### マグネティックグリッドを使用する -フォームエディターには仮想的なマグネティックグリッド機能があります。 オブジェクトのマグネティック整列は、オブジェクト同士の相対位置に基づいておこなわれます。 マグネティックグリッドは、2つ以上のオブジェクトがフォーム上に存在する場合のみ使用可能です。 +フォームエディターには仮想的なマグネティックグリッド機能があります。オブジェクトのマグネティック整列は、オブジェクト同士の相対位置に基づいておこなわれます。マグネティックグリッドは、2つ以上のオブジェクトがフォーム上に存在する場合のみ使用可能です。 -フォーム上のあるオブジェクトを移動する際、4D は他のフォームオブジェクトとの相対的な位置関係に基づき、このオブジェクトの位置候補を示します。 次のような場合に候補が示されます: 次のような場合に候補が示されます: +フォーム上のあるオブジェクトを移動する際、4D は他のフォームオブジェクトとの相対的な位置関係に基づき、このオブジェクトの位置候補を示します。次のような場合に候補が示されます: 次のような場合に候補が示されます: - 水平方向に 2つのオブジェクトの端または中央が同じ位置になる場合。 - 垂直方向に 2つのオブジェクトの端が同じ位置になる場合。 @@ -296,17 +292,17 @@ title: フォームエディター ![](../assets/en/FormEditor/magneticGrid1.png) -オブジェクトを均等配置する場合、4D はインターフェース標準に基づいてオブジェクト間の距離を提示します。 マグネティック整列と同様に、配置が決定した時点で、その間隔が赤いラインで表わされます。 +オブジェクトを均等配置する場合、4D はインターフェース標準に基づいてオブジェクト間の距離を提示します。マグネティック整列と同様に、配置が決定した時点で、その間隔が赤いラインで表わされます。 ![](../assets/en/FormEditor/magneticGrid2.png) -この処理は、あらゆるタイプのフォームオブジェクトに対して適用されます。 **フォーム** メニューまたはエディターのコンテキストメニューの **マグネティックグリッド** コマンドを使用して、マグネティック機能をいつでも有効または無効に設定できます。 また、**環境設定** の **フォーム** ページにおいて、この機能をデフォルトで有効に設定しておくことも可能です (**デフォルトで自動揃えを有効にする** オプション)。 **Ctrl**キー (Windows) または **Control**キー (macOS) を押してオブジェクトを選択すると、手動でマグネティックグリッドが有効/無効に設定されます。 +この処理は、あらゆるタイプのフォームオブジェクトに対して適用されます。**フォーム** メニューまたはエディターのコンテキストメニューの **マグネティックグリッド** コマンドを使用して、マグネティック機能をいつでも有効または無効に設定できます。また、**環境設定** の **フォーム** ページにおいて、この機能をデフォルトで有効に設定しておくことも可能です (**デフォルトで自動揃えを有効にする** オプション)。 **Ctrl**キー (Windows) または **Control**キー (macOS) を押してオブジェクトを選択すると、手動でマグネティックグリッドが有効/無効に設定されます。 > 手動でオブジェクトサイズを変更する場合も、このマグネティックグリッドの影響を受けます。 ### オブジェクトの均等配置 -各オブジェクトが同じ間隔で配置されるように、オブジェクトを均等配置することができます。 これには、ツールパレットまたは整列アシスタントの均等配置ツールを用います。 整列アシスタントを使用すると、1回の操作でオブジェクトの整列や均等配置をおこなえます。 +各オブジェクトが同じ間隔で配置されるように、オブジェクトを均等配置することができます。これには、ツールパレットまたは整列アシスタントの均等配置ツールを用います。整列アシスタントを使用すると、1回の操作でオブジェクトの整列や均等配置をおこなえます。 > [マグネティックグリッド](#using-the-magnetic-grid) が有効の場合、オブジェクトを手動で動かすと、均等配置のためガイドが表示されます。 @@ -315,28 +311,28 @@ title: フォームエディター 1. 3つ以上のオブジェクトを選択し、希望する均等配置ツールをクリックします。 2. 適用したい均等配置に対応する整列ツールをツールバー上で選択します。
    ![](../assets/en/FormEditor/distributionTool.png)
    または
    **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから均等揃えメニューコマンドを選択します。 - 4D は各オブジェクトを均等に配置します。 各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 + 4D は各オブジェクトを均等に配置します。各オブジェクトの中心までの間隔、および隣接する 2つのオブジェクトの間隔のうち最も広い間隔が基準として用いられます。 "整列と均等配置" ダイアログボックスを用いてオブジェクトを均等に配置するには: 1. 均等配置したいオブジェクトを選択します。 -2. **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。 次のダイアログボックスが表示されます: [](../assets/en/FormEditor/alignmentAssistant.png) +2. **オブジェクト** メニュー、またはエディターのコンテキストメニューの **整列** サブメニューから **整列...** コマンドを選択します。次のダイアログボックスが表示されます: [](../assets/en/FormEditor/alignmentAssistant.png) 3. "左/右整列" や "上/下整列" エリアで、標準の均等配置アイコンをクリックします: ![](../assets/en/FormEditor/horizontalDistribution.png)
    (標準の横均等揃えアイコン)
    見本エリアには、選択結果が表示されます。 -4. 標準の均等配置を実行するには、**プレビュー** または *適用* をクリックします。
    この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。
    または:
    特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。 このオプションはスイッチのように機能します。 均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:
    +4. 標準の均等配置を実行するには、**プレビュー** または *適用* をクリックします。
    この場合、4D は標準の均等配置を実行し、オブジェクトは等間隔で配置されます。
    または:
    特定の均等配置を実行するには、**均等配置** オプションを選択します (たとえば各オブジェクトの右辺までの距離をもとにしてオブジェクトを均等に配置したい場合)。このオプションはスイッチのように機能します。均等配置チェックボックスが選択されていると、このオプションの下にあるアイコンは異なる動作をおこないます:
    -- 左/右整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの左辺、中央 (横)、 右辺で均等に揃えます。 -- 上/下整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの上辺、中央 (縦)、 下辺で均等に揃えます。 +- 左/右整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの左辺、中央 (横)、右辺で均等に揃えます。 +- 上/下整列の場合、各アイコンは次の均等配置に対応します: 選択オブジェクトの上辺、中央 (縦)、下辺で均等に揃えます。 -**プレビュー** ボタンをクリックすると、この設定による結果をプレビューすることができます。 この表示はフォームエディター上で実行されますが、ダイアログボックスは前面に表示されたままです。 この後、変更の **キャンセル** または **適用** をおこなうことができます。 +**プレビュー** ボタンをクリックすると、この設定による結果をプレビューすることができます。 この表示はフォームエディター上で実行されますが、ダイアログボックスは前面に表示されたままです。この後、変更の **キャンセル** または **適用** をおこなうことができます。 -> 整列アシスタントを使用すると、1回の操作でオブジェクトの整列や均等配置をおこなえます。 オブジェクトを均等配置する方法についての詳細は、[オブジェクトの均等配置](#オブジェクトの均等配置) を参照ください。 +> 整列アシスタントを使用すると、1回の操作でオブジェクトの整列や均等配置をおこなえます。オブジェクトを均等配置する方法についての詳細は、[オブジェクトの均等配置](#オブジェクトの均等配置) を参照ください。 ### オブジェクトを重ねる -フォーム上で他のオブジェクトを隠しているオブジェクトの配置を調整する必要が生じることもあります。 たとえば、フォーム上のフィールドの背景にグラフィックを配置したい場合です。 4D には **前面へ**、**背面へ**、**一つ上のレベルへ**、**一つ下のレベルへ** という 4つのメニュー項目があり、これらのコマンドを使用してフォーム上のオブジェクトを "重ねる (レイヤー)" ことができます。 この重なりは、デフォルトの入力順も規定します (下の データの入力順 参照)。 次の図は、他のオブジェクトの前面/背面に置かれたオブジェクトを示しています: +フォーム上で他のオブジェクトを隠しているオブジェクトの配置を調整する必要が生じることもあります。たとえば、フォーム上のフィールドの背景にグラフィックを配置したい場合です。 4D には **前面へ**、**背面へ**、**一つ上のレベルへ**、**一つ下のレベルへ** という 4つのメニュー項目があり、これらのコマンドを使用してフォーム上のオブジェクトを "重ねる (レイヤー)" ことができます。この重なりは、デフォルトの入力順も規定します (下の データの入力順 参照)。次の図は、他のオブジェクトの前面/背面に置かれたオブジェクトを示しています: ![](../assets/en/FormEditor/layering.png) @@ -356,7 +352,7 @@ title: フォームエディター ::: -レベルの順序を考えるにあたって、4D は常に背面から全面へと進みます。 したがって、前・次で表現した場合、"前レベル" は 1つ背面のレベルのことになります。 "次レベルは" 1つ前面のレベルのことです。 +レベルの順序を考えるにあたって、4D は常に背面から全面へと進みます。したがって、前・次で表現した場合、"前レベル" は 1つ背面のレベルのことになります。"次レベルは" 1つ前面のレベルのことです。 ### データの入力順 @@ -368,9 +364,9 @@ title: フォームエディター JSONフォームの入力順序の設定は、[`entryOrder`](properties_JSONref.md) プロパティで行います。 -独自の入力順を指定しない場合、4D はオブジェクトの階層に従い、"背面から前面" へ向けてデフォルトの入力順を決定します。 したがって、標準の入力順はフォーム上でのオブジェクトの作成順になります。 +独自の入力順を指定しない場合、4D はオブジェクトの階層に従い、"背面から前面" へ向けてデフォルトの入力順を決定します。したがって、標準の入力順はフォーム上でのオブジェクトの作成順になります。 -フォームでは度々、独自の入力順が必要になります。 たとえば、次の図ではフォームの作成後に、住所に関連するフィールドが追加されています。 この結果、標準の入力順が意味をなさなくなり、扱いづらい順番でデータを入力しなければなりません: +フォームでは度々、独自の入力順が必要になります。たとえば、次の図ではフォームの作成後に、住所に関連するフィールドが追加されています。この結果、標準の入力順が意味をなさなくなり、扱いづらい順番でデータを入力しなければなりません: ![](../assets/en/FormEditor/entryOrder1.png) @@ -380,15 +376,15 @@ JSONフォームの入力順序の設定は、[`entryOrder`](properties_JSONref. #### データ入力順の表示と変更 -"入力順" バッジまたは "入力順" モードを使用して、現在の入力順を表示することができます。 しかし、入力順を変更するには、"入力順" モードを使用しなければなりません。 +"入力順" バッジまたは "入力順" モードを使用して、現在の入力順を表示することができます。しかし、入力順を変更するには、"入力順" モードを使用しなければなりません。 -この節では "入力順" モードを用いて、入力順の表示と変更をおこなう方法について説明します。 バッジを用いた入力順の表示についての詳細は、[バッジを使用する](#バッジを使用する) を参照ください。 +この節では "入力順" モードを用いて、入力順の表示と変更をおこなう方法について説明します。バッジを用いた入力順の表示についての詳細は、[バッジを使用する](#バッジを使用する) を参照ください。 入力順モードに切り替え、入力順を変更するには: 1. **フォーム** メニューから **入力順** を選択するか、ツールバーの入力順ボタンをクリックします:
    ![](../assets/en/FormEditor/zOrder.png)
    - ポインターが入力順ポインターに変わり、4D はフォーム上に線を引いて、データ入力時にオブジェクトが選択される順序を示します。 ツールパレット上の他のツールをクリックするまでは、入力順序の表示と変更操作しかおこなえません。 + ポインターが入力順ポインターに変わり、4D はフォーム上に線を引いて、データ入力時にオブジェクトが選択される順序を示します。ツールパレット上の他のツールをクリックするまでは、入力順序の表示と変更操作しかおこなえません。 2. データ入力順を変更するには、フォームオブジェクト上にポインターを置き、マウスボタンを押したまま、次の入力順に設定したいオブジェクトまでポインターをドラッグします。
    ![](../assets/en/FormEditor/entryOrder3.png)
    これに応じて、4D はデータ入力順を調整します。 @@ -396,22 +392,22 @@ JSONフォームの入力順序の設定は、[`entryOrder`](properties_JSONref. 4. 入力順の設定が終了したら、ツールバーの他のツールをクリックするか、**フォーム** メニューから **入力順** を選択します。 4Dは、フォームエディターの通常操作に戻ります。 -> フォームのカレントページの入力順だけが表示されます。 フォームのページ0 や継承フォームに入力可オブジェクトが含まれている場合、デフォルトの入力順は次のようになります: 継承フォームのページ0 のオブジェクト→ 継承フォームのページ1 のオブジェクト→ 開かれているフォームのページ0 のオブジェクト→ 開かれているフォームのカレントページのオブジェクト。 +> フォームのカレントページの入力順だけが表示されます。フォームのページ0 や継承フォームに入力可オブジェクトが含まれている場合、デフォルトの入力順は次のようになります: 継承フォームのページ0 のオブジェクト→ 継承フォームのページ1 のオブジェクト→ 開かれているフォームのページ0 のオブジェクト→ 開かれているフォームのカレントページのオブジェクト。 #### データ入力グループを使用する -入力順序を変更する際に、フォーム上のオブジェクトグループを選択し、そのグループ内のオブジェクトに対して標準の入力順序を適用することも可能です。 これにより、フィールドがグループや列に分かれているフォーム上で、データ入力順序を簡単に設定することができます。 +入力順序を変更する際に、フォーム上のオブジェクトグループを選択し、そのグループ内のオブジェクトに対して標準の入力順序を適用することも可能です。これにより、フィールドがグループや列に分かれているフォーム上で、データ入力順序を簡単に設定することができます。 データ入力グループを作成するには: 1. **フォーム** メニューから *入力順* を選択するか、ツールバーの入力順ボタンをクリックします。 2. データ入力用のグループに指定したいオブジェクトの周囲をマーキーで囲みます。 -マウスボタンを放すと、マーキーに囲まれているオブジェクトや、その矩形に接しているオブジェクトが標準入力順に設定されます。 それ以外のオブジェクトのデータ入力順は、必要に応じて調整されます。 +マウスボタンを放すと、マーキーに囲まれているオブジェクトや、その矩形に接しているオブジェクトが標準入力順に設定されます。それ以外のオブジェクトのデータ入力順は、必要に応じて調整されます。 #### フィールドを入力順から除外する -デフォルトでは、すべてのフォーカス可オブジェクトが入力順に組み込まれています。 任意のオブジェクトを入力順から除外するには: +デフォルトでは、すべてのフォーカス可オブジェクトが入力順に組み込まれています。任意のオブジェクトを入力順から除外するには: 1. 入力順モードに切り替えます。 @@ -434,11 +430,11 @@ JSONフォームの入力順序の設定は、[`entryOrder`](properties_JSONref. メニューから、以下のプレビューモードのいずれかを選択します: -| ツールバーアイコン | CSSプレビューモード | 説明 | -| --------------------------------------- | ----------- | ---------------------------------------------------------------- | -| ![](../assets/en/FormEditor/cssNo.png) | なし | CSS の値はフォームに適用されず、CSS の値やアイコンはプロパティリストに表示されません。 | -| ![](../assets/en/FormEditor/cssWin.png) | Windows | Windowsプラットフォーム用の CSS値がフォームに適用されます。 プロパティリストに CSSの値とアイコンが表示されます。 | -| ![](../assets/en/FormEditor/cssMac.png) | macOS | macOSプラットフォーム用の CSS値がフォームに適用されます。 プロパティリストに CSSの値とアイコンが表示されます。 | +| ツールバーアイコン | CSSプレビューモード | 説明 | +| --------------------------------------- | ----------- | --------------------------------------------------------------- | +| ![](../assets/en/FormEditor/cssNo.png) | なし | CSS の値はフォームに適用されず、CSS の値やアイコンはプロパティリストに表示されません。 | +| ![](../assets/en/FormEditor/cssWin.png) | Windows | Windowsプラットフォーム用の CSS値がフォームに適用されます。プロパティリストに CSSの値とアイコンが表示されます。 | +| ![](../assets/en/FormEditor/cssMac.png) | macOS | macOSプラットフォーム用の CSS値がフォームに適用されます。プロパティリストに CSSの値とアイコンが表示されます。 | > オブジェクトに対して大きすぎるフォントサイズがスタイルシートまたは JSON で定義されている場合、オブジェクトは自動的にフォントに合わせてレンダリングされますが、オブジェクトのサイズは変更されません。 @@ -450,7 +446,7 @@ CSSプレビューモードを選択すると、オブジェクトは自動的 ### プロパティリストの CSSサポート -CSSプレビューモードでは、スタイルシートで属性値が定義されている場合、その属性名が表示され、その横に CSSアイコンが表示されます。 たとえば、このスタイルシートで定義されている属性値は: +CSSプレビューモードでは、スタイルシートで属性値が定義されている場合、その属性名が表示され、その横に CSSアイコンが表示されます。たとえば、このスタイルシートで定義されている属性値は: ```4d .myButton { @@ -464,7 +460,7 @@ stroke: #800080; ![](../assets/en/FormEditor/cssPpropList.png) -スタイルシートで定義された属性値は、JSONフォームの記述でオーバーライドすることができます (ただし、CSS に `!important` 宣言が含まれている場合は除きます。 後述参照)。 この場合、プロパティリストでは、JSONフォームの値が **太字** で表示されます。 **Ctrl+クリック** (Windows) または **Command+クリック** (macOs) のショートカットで、値をスタイルシートの定義に戻すことができます。 +スタイルシートで定義された属性値は、JSONフォームの記述でオーバーライドすることができます (ただし、CSS に `!important` 宣言が含まれている場合は除きます。 後述参照)。この場合、プロパティリストでは、JSONフォームの値が **太字** で表示されます。 **Ctrl+クリック** (Windows) または **Command+クリック** (macOs) のショートカットで、値をスタイルシートの定義に戻すことができます。 > グループ、グループ内のオブジェクト、または複数オブジェクトの選択範囲内のオブジェクトに対して、`!important` 宣言とともに属性が定義されている場合、その属性値はロックされ、プロパティリストで変更することはできません。 @@ -478,7 +474,7 @@ stroke: #800080; ## リストボックスビルダー -**リストボックスビルダー** を使用して、エンティティセレクション型リストボックスを素早く作成することができます。 作成したリストボックスは、すぐに使用することも、フォームエディターで編集することもできます。 +**リストボックスビルダー** を使用して、エンティティセレクション型リストボックスを素早く作成することができます。作成したリストボックスは、すぐに使用することも、フォームエディターで編集することもできます。 リストボックスビルダーでは、いくつかの簡単な操作で、エンティティセレクション型リストボックスの作成と入力ができます。 @@ -500,7 +496,7 @@ stroke: #800080; ![](../assets/en/FormEditor/listboxBuilderFields.png) -デフォルトでは、すべてのフィールドが選択されています。 フィールドは個別に選択/選択解除するか、**Ctrl+クリック** (Windows) または **Cmd+クリック** (macOS) で一括に選択/選択解除することができます。 +デフォルトでは、すべてのフィールドが選択されています。フィールドは個別に選択/選択解除するか、**Ctrl+クリック** (Windows) または **Cmd+クリック** (macOS) で一括に選択/選択解除することができます。 また、フィールドをドラッグ&ドロップすることで、フィールドの順番を変更することができます。 @@ -524,7 +520,7 @@ stroke: #800080; ## フィールドを挿入 -**フィールドを挿入** ボタンは、テーブルフォームにおいて、親テーブルの全フィールド (オブジェクト型と BLOB型を除く) をインターフェース標準に従ってラベル付きで挿入します。 このウィザードは、基本的な入力フォームやリストフォームを作成するためのショートカットです。 +**フィールドを挿入** ボタンは、テーブルフォームにおいて、親テーブルの全フィールド (オブジェクト型と BLOB型を除く) をインターフェース標準に従ってラベル付きで挿入します。このウィザードは、基本的な入力フォームやリストフォームを作成するためのショートカットです。 **フィールドを挿入** ボタンは、テーブルフォームでのみ利用可能です。 @@ -540,17 +536,17 @@ stroke: #800080; ## バッジ -フォームエディターではバッジを使用してオブジェクトプロパティの表示を容易にできます。 バッジは、フォームのツールバーで選択します: +フォームエディターではバッジを使用してオブジェクトプロパティの表示を容易にできます。バッジは、フォームのツールバーで選択します: ![](../assets/en/FormEditor/shields.png) -この機能は次のように動作します: 各バッジは特定のプロパティに対応しています (たとえば、**カレントビュー** は、当該オブジェクトがカレントビュー内にあることを示します)。 バッジを有効にすると、4D はバッジとして選択されたプロパティが割り当てられているフォームオブジェクトの左上に小さなアイコン (バッジ) を表示します。 +この機能は次のように動作します: 各バッジは特定のプロパティに対応しています (たとえば、**カレントビュー** は、当該オブジェクトがカレントビュー内にあることを示します)。バッジを有効にすると、4D はバッジとして選択されたプロパティが割り当てられているフォームオブジェクトの左上に小さなアイコン (バッジ) を表示します。 ![](../assets/en/FormEditor/shield.png) ### バッジを使用する -バッジを有効にするには、希望するバッジが選択されるまでツールバーの *バッジ* ボタンをクリックします。 また、ボタンの右側をクリックして表示されるメニューから、バッジの種類を直接選択することもできます。 +バッジを有効にするには、希望するバッジが選択されるまでツールバーの *バッジ* ボタンをクリックします。また、ボタンの右側をクリックして表示されるメニューから、バッジの種類を直接選択することもできます。 バッジを表示したくない場合は、**バッジなし** を選択します。 @@ -560,26 +556,26 @@ stroke: #800080; 各バッジの説明は以下の通りです: -| アイコン | 名称 | 表示 | -| ----------------------------------------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| ![](../assets/en/FormEditor/objectMethod.png) | オブジェクトメソッド | オブジェクトメソッドが割り当てられたオブジェクト | -| ![](../assets/en/FormEditor/standardAction.png) | 標準アクション | 標準アクションが割り当てられたオブジェクト | -| ![](../assets/en/FormEditor/resizing.png) | リサイズ | リサイズプロパティが 1つ以上割り当てられたオブジェクトについて、カレントプロパティの組み合わせを表します | -| ![](../assets/en/FormEditor/entryOrder.png) | 入力順 | 入力可能なオブジェクトの入力順を表示します | -| ![](../assets/en/FormEditor/viewNumber.png) | カレントビュー | カレントビュー内にあるオブジェクト | -| ![](../assets/en/FormEditor/cssShield.png) | [スタイルシート](stylesheets.html) | 1つ以上の属性値がスタイルシートにより上書きされたオブジェクト | -| ![](../assets/en/FormEditor/filter.png) | フィルター | 入力フィルターが割り当てられた入力可オブジェクト | -| ![](../assets/en/FormEditor/helpTip.png) | ヘルプTips | ヘルプTips が割り当てられたオブジェクト | -| ![](../assets/en/FormEditor/localized.png) | ローカライズ済み | ラベルに参照が割り当てられたオブジェクト (“:”で始まるラベル)。 参照はリソース (STR#) または XLIFFタイプ | -| ![](../assets/en/FormEditor/noShields.png) | バッジなし | バッジは表示されません | +| アイコン | 名称 | 表示 | +| ----------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| ![](../assets/en/FormEditor/objectMethod.png) | オブジェクトメソッド | オブジェクトメソッドが割り当てられたオブジェクト | +| ![](../assets/en/FormEditor/standardAction.png) | 標準アクション | 標準アクションが割り当てられたオブジェクト | +| ![](../assets/en/FormEditor/resizing.png) | リサイズ | リサイズプロパティが 1つ以上割り当てられたオブジェクトについて、カレントプロパティの組み合わせを表します | +| ![](../assets/en/FormEditor/entryOrder.png) | 入力順 | 入力可能なオブジェクトの入力順を表示します | +| ![](../assets/en/FormEditor/viewNumber.png) | カレントビュー | カレントビュー内にあるオブジェクト | +| ![](../assets/en/FormEditor/cssShield.png) | [スタイルシート](stylesheets.html) | 1つ以上の属性値がスタイルシートにより上書きされたオブジェクト | +| ![](../assets/en/FormEditor/filter.png) | フィルター | 入力フィルターが割り当てられた入力可オブジェクト | +| ![](../assets/en/FormEditor/helpTip.png) | ヘルプTips | ヘルプTips が割り当てられたオブジェクト | +| ![](../assets/en/FormEditor/localized.png) | ローカライズ済み | ラベルに参照が割り当てられたオブジェクト (“:”で始まるラベル)。参照はリソース (STR#) または XLIFFタイプ | +| ![](../assets/en/FormEditor/noShields.png) | バッジなし | バッジは表示されません | ## オブジェクトビュー フォームエディターでは、必要に応じて表示/非表示が可能な異なるビューにそれぞれオブジェクトを配置することで、複雑なフォーム作成が容易になります。 -たとえば、タイプごと (フィールド、変数、スタティックオブジェクト等) にオブジェクトを異なるビューに分けることができます。 サブフォームやプラグインエリアを含むすべてのタイプのオブジェクトをビューに含めることができます。 +たとえば、タイプごと (フィールド、変数、スタティックオブジェクト等) にオブジェクトを異なるビューに分けることができます。サブフォームやプラグインエリアを含むすべてのタイプのオブジェクトをビューに含めることができます。 -フォームごとのビューの数に制限はありません。 必要なだけ、ビューを作成することができます。 それぞれのビューごとに、表示/非表示とロックが切り換えられます。 +フォームごとのビューの数に制限はありません。必要なだけ、ビューを作成することができます。それぞれのビューごとに、表示/非表示とロックが切り換えられます。 ビューの管理はビューパレットを使用しておこないます。 @@ -623,7 +619,7 @@ stroke: #800080; #### ビューの作成 -フォーム内で作成されたオブジェクトは、そのフォームの最初のビュー ("View 1") に配置されます。 最初のビューは **常に** デフォルトビューで、名前の後に (Default) と表示されます。 このビューの名前は変更することができますが ([ビューの名称変更](#ビューの名称変更) 参照)、デフォルトビューであることに変わりはありません。 +フォーム内で作成されたオブジェクトは、そのフォームの最初のビュー ("View 1") に配置されます。最初のビューは **常に** デフォルトビューで、名前の後に (Default) と表示されます。このビューの名前は変更することができますが ([ビューの名称変更](#ビューの名称変更) 参照)、デフォルトビューであることに変わりはありません。 ![](../assets/en/FormEditor/createView.png) @@ -645,11 +641,11 @@ stroke: #800080; ビューを削除するには、以下のいずれかの方法があります: -- ビュー名を直接ダブルクリックする (ビューが選択されます)。 すると、名前が編集可能になります: +- ビュー名を直接ダブルクリックする (ビューが選択されます)。すると、名前が編集可能になります: ![](../assets/en/FormEditor/rename.png) -- ビューの名前を右クリックする。 すると、名前が編集可能になります: +- ビューの名前を右クリックする。すると、名前が編集可能になります: ![](../assets/en/FormEditor/rename2.png) @@ -695,7 +691,7 @@ stroke: #800080; #### ビュー間のオブジェクト移動 -1つ以上のオブジェクトを他のビューに移動することもできます。 これをおこなうには、ビューを変更したいオブジェクトをフォーム上で選択します。 それらのオブジェクトが属するビューが、ビューリスト上に記号で示されます: +1つ以上のオブジェクトを他のビューに移動することもできます。これをおこなうには、ビューを変更したいオブジェクトをフォーム上で選択します。それらのオブジェクトが属するビューが、ビューリスト上に記号で示されます: ![](../assets/en/FormEditor/symbol.png) @@ -715,7 +711,7 @@ OR ![](../assets/en/FormEditor/objNewView.png) -また、オブジェクトのコンテキストメニューから、オブジェクトを別のビューに移動することもできます。 オブジェクトを右クリックして **ビューに移動** を選択し、利用可能なビューのリストから移動先を選択します。 +また、オブジェクトのコンテキストメニューから、オブジェクトを別のビューに移動することもできます。オブジェクトを右クリックして **ビューに移動** を選択し、利用可能なビューのリストから移動先を選択します。 ![](../assets/en/FormEditor/moveObject2.png) @@ -723,7 +719,7 @@ OR #### ビューの全オブジェクトを選択する -フォームのカレントページ上で、同じビューに属するすべてのオブジェクトを選択できます。 一連のオブジェクトに同じ変更を適用する場合に、この機能は便利です。 +フォームのカレントページ上で、同じビューに属するすべてのオブジェクトを選択できます。一連のオブジェクトに同じ変更を適用する場合に、この機能は便利です。 これをおこなうにはビュー上で右クリックし、**ビュー内の全オブジェクトを選択** をクリックします: @@ -735,13 +731,13 @@ OR #### ビューのオブジェクトを表示/非表示にする -フォームのカレントページ上で、ビューに属するオブジェクトの表示/非表示を切り替えることができます。 この方法で、フォームの特定オブジェクトに集中して操作することができます。 +フォームのカレントページ上で、ビューに属するオブジェクトの表示/非表示を切り替えることができます。この方法で、フォームの特定オブジェクトに集中して操作することができます。 デフォルトですべてのビューが表示されていて、ビューごとの *表示/非表示* アイコンで示されています: ![](../assets/en/FormEditor/showHide.png) -ビューを隠すにはこのアイコンをクリックします。 アイコンがグレーになり、そのビューに属するオブジェクトが非表示となります: +ビューを隠すにはこのアイコンをクリックします。アイコンがグレーになり、そのビューに属するオブジェクトが非表示となります: ![](../assets/en/FormEditor/hidden.png) @@ -751,7 +747,7 @@ OR #### ビューのオブジェクトをロックする -ビューのオブジェクトをロックすることができます。 ロックされたオブジェクトは選択・変更・削除できなくなります。 また、クリックやマウスドラッグ、**同じ種類のオブジェクトを選択** コマンドで選択することもできません。 この機能は、操作ミスを防ぐのに役立ちます。 +ビューのオブジェクトをロックすることができます。ロックされたオブジェクトは選択・変更・削除できなくなります。また、クリックやマウスドラッグ、**同じ種類のオブジェクトを選択** コマンドで選択することもできません。この機能は、操作ミスを防ぐのに役立ちます。 デフォルトでは、すべてのビューがロックされていない状態です。 これは、ビューごとの *ロック* アイコンで示されています: @@ -767,11 +763,11 @@ OR ## 拡大 -カレントフォームを拡大/縮小表示することができます。 これをおこなうにはツールバーの虫眼鏡をクリックするか、拡大率を直接クリックします。拡大/縮小率は 50%, 100%, 200%, 400% そして 800%です。 +カレントフォームを拡大/縮小表示することができます。これをおこなうにはツールバーの虫眼鏡をクリックするか、拡大率を直接クリックします。拡大/縮小率は 50%, 100%, 200%, 400% そして 800%です。 ![](../assets/en/FormEditor/zoom.png) -- 虫眼鏡ボタンをクリックすると、カーソルも虫眼鏡に変わります。 フォーム中をクリックすれば拡大表示され、Shiftキーを押しながらクリックすれば縮小表示されます。 +- 虫眼鏡ボタンをクリックすると、カーソルも虫眼鏡に変わります。フォーム中をクリックすれば拡大表示され、Shiftキーを押しながらクリックすれば縮小表示されます。 - 拡大率バーをクリックすると、即座に表示が変更されます。 拡大/縮小表示中もフォームエディターの機能は利用できます (\*)。 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 afa927d177e788..e449075615ec1c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -3,7 +3,7 @@ id: forms title: フォーム --- -フォームはデスクトップアプリケーションにおいて、データの入力・修正・印刷をおこなうためのインターフェースとなります。 フォームを使用することで、ユーザーはデータベースのデータをやり取りし、レポートを印刷します。 フォームを使用して、カスタムダイアログボックスやパレット、そのほかのカスタムウィンドウを作成します。 +フォームはデスクトップアプリケーションにおいて、データの入力・修正・印刷をおこなうためのインターフェースとなります。フォームを使用することで、ユーザーはデータベースのデータをやり取りし、レポートを印刷します。フォームを使用して、カスタムダイアログボックスやパレット、そのほかのカスタムウィンドウを作成します。 ![](../assets/en/FormObjects/form1.png) @@ -18,7 +18,7 @@ title: フォーム - **4D Developer インターフェース:** **ファイル** メニューまたは **エクスプローラー** ウィンドウから新規フォームを作成できます。 - **フォームエディター**: フォームの編集は **[フォームエディター](FormEditor/formEditor.md)** を使っておこないます。 -- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。 例: +- **JSON コード:** JSON を使ってフォームを作成・設計し、フォーム ファイルを [適切な場所](Project/architecture.md#sources) に保存します。例: ``` { @@ -70,15 +70,15 @@ title: フォーム 2つのカテゴリーのフォームが存在します: -- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。 このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。 プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 +- **プロジェクトフォーム** - テーブルに属さない独立したフォームです。このタイプのフォームは、おもにインターフェースダイアログボックスやコンポーネントを作成するのに使用されます。プロジェクトフォームを使用してより簡単に OS標準に準拠するインターフェースを作成できます。 -- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。 通常、テーブルには入力フォームと出力フォームが別々に存在します。 +- **テーブルフォーム** - 特定のテーブルに属していて、それによりデータベースに基づくアプリケーションの開発に便利な自動機能の恩恵を得ることができます。通常、テーブルには入力フォームと出力フォームが別々に存在します。 フォームを作成する際にフォームカテゴリーを選択しますが、後から変更することも可能です。 ## フォームの使用 -フォームは、4D ランゲージの特定のコマンドを使用して呼び出します。 4D デスクトップアプリケーションにおいては、インターフェースで必要な用途に応じて、様々な方法で使用することができます。 フォームの用途の一例です: +フォームは、4D ランゲージの特定のコマンドを使用して呼び出します。 4D デスクトップアプリケーションにおいては、インターフェースで必要な用途に応じて、様々な方法で使用することができます。フォームの用途の一例です: - 独自のウィンドウで使用し、データの閲覧、処理、編集をしたり、ユーザーに対してスクリーン上に情報を表示する。 - 他のフォーム内に埋め込んで使用する(サブフォーム)。 @@ -87,15 +87,15 @@ title: フォーム ### ウィンドウ内でプロジェクトフォームを使用 -フォームをスクリーン上のダイアログとして使用したい場合、(1) まずウィンドウを作成し、(2) フォームをウィンドウ内にロードし、イベントループを使用してユーザーアクションを処理します。 フォームをスクリーン上に表示するための最も単純な方法は、以下の通りです: +フォームをスクリーン上のダイアログとして使用したい場合、(1) まずウィンドウを作成し、(2) フォームをウィンドウ内にロードし、イベントループを使用してユーザーアクションを処理します。フォームをスクリーン上に表示するための最も単純な方法は、以下の通りです: -1. [`Open form window`](../commands/open-form-window) コマンドを呼び出し、フォームに合わせた、設定済みのウィンドウを作成します。 このコマンドは空のウィンドウを開くだけで、何かを表示する訳**ではない**ことに注意してください。 -2. 同じメソッド内で、[`DIALOG`](../commands/dialog) コマンドを呼び出して開いたフォームウィンドウに実際にフォームをロードし、ユーザーからの操作の受け入れ準備が整います。 [`DIALOG`](../commands/dialog) コマンドはフォームデータをロードし、書かれたコードを[ユーザーイベントをリッスンできる](../Develop/async.md#イベントリスニング) ようにします。 このコマンドをアスタリスク(\*)なしで呼び出した場合、ダイアログはスクリーン上に表示されたまま、イベントが発生するまでコードの実行は待機されます。 +1. [`Open form window`](../commands/open-form-window) コマンドを呼び出し、フォームに合わせた、設定済みのウィンドウを作成します。このコマンドは空のウィンドウを開くだけで、何かを表示する訳**ではない**ことに注意してください。 +2. 同じメソッド内で、[`DIALOG`](../commands/dialog) コマンドを呼び出して開いたフォームウィンドウに実際にフォームをロードし、ユーザーからの操作の受け入れ準備が整います。 [`DIALOG`](../commands/dialog) コマンドはフォームデータをロードし、書かれたコードを[ユーザーイベントをリッスンできる](../Develop/async.md#イベントリスニング) ようにします。このコマンドをアスタリスク(\*)なしで呼び出した場合、ダイアログはスクリーン上に表示されたまま、イベントが発生するまでコードの実行は待機されます。 3. (オプション) [`Form`](../commands/form) コマンドをフォームのコンテキスト内から使用することで、フォームデータにアクセスすることができます。 :::note 互換性 -[`ADD RECORD`](../commands/add-record) あるいは [`MODIFY RECORD`](../commands/add-record) などの"オールインワン"コマンドは、これらのステップを単一の呼び出しへと合併します。 従来のコマンドはプロトタイピングや基本的な開発には引き続き使用できますが、現代的な、完全に管理されたインターフェースには使用できません。 これらは4D データベースと[テーブルフォーム](#プロジェクトフォームとテーブルフォーム) などの従来の機能に依存しており、[ORDA 機能](../ORDA/overview.md) の威力と柔軟性の恩恵を受けることはできません。 特定のニーズがない限り、4D デスクトップアプリケーションにおいてはプロジェクトフォームを使用することが推奨されます。 +[`ADD RECORD`](../commands/add-record) あるいは [`MODIFY RECORD`](../commands/add-record) などの"オールインワン"コマンドは、これらのステップを単一の呼び出しへと合併します。従来のコマンドはプロトタイピングや基本的な開発には引き続き使用できますが、現代的な、完全に管理されたインターフェースには使用できません。これらは4D データベースと[テーブルフォーム](#プロジェクトフォームとテーブルフォーム) などの従来の機能に依存しており、[ORDA 機能](../ORDA/overview.md) の威力と柔軟性の恩恵を受けることはできません。特定のニーズがない限り、4D デスクトップアプリケーションにおいてはプロジェクトフォームを使用することが推奨されます。 ::: @@ -117,7 +117,7 @@ Class constructor This.age:=0 ``` -このフォームクラスは、フォームがロードされる際に4D によって自動的にインスタンス化されます。 以下のプロジェクトメソッドを実行した場合: +このフォームクラスは、フォームがロードされる際に4D によって自動的にインスタンス化されます。以下のプロジェクトメソッドを実行した場合: ```4d // フォームデータとUI ロジックをホストするためのフォームオブジェクトをインスタンス化 @@ -149,9 +149,9 @@ ALERT($formObject.name+" is "+String($formObject.age)+" years old!") ### フォームをサブフォームとして使用 -フォームは他のフォーム内に埋め込むことができ、その場合は特殊なルールに従う[サブフォームオブジェクト](../FormObjects/subform_overview.md) となります。 サブフォームはその親フォームが[ウィンドウに表示された](#ウィンドウ内でプロジェクトフォームを使用) 際に自動的に使用されます。 +フォームは他のフォーム内に埋め込むことができ、その場合は特殊なルールに従う[サブフォームオブジェクト](../FormObjects/subform_overview.md) となります。サブフォームはその親フォームが[ウィンドウに表示された](#ウィンドウ内でプロジェクトフォームを使用) 際に自動的に使用されます。 -[`DIALOG`](../commands/dialog) コマンドを通してフォームにオブジェクトを渡すのと同じ様に、プロパティリストを使用することでサブフォームにもオブジェクトを渡すことができます。 その後、[`Form`](../commands/form) コマンドを使用してサブフォームでそれを使用することができます。 この例では、"InvoiceAddress" オブジェクトがサブフォームにバインドされています: +[`DIALOG`](../commands/dialog) コマンドを通してフォームにオブジェクトを渡すのと同じ様に、プロパティリストを使用することでサブフォームにもオブジェクトを渡すことができます。その後、[`Form`](../commands/form) コマンドを使用してサブフォームでそれを使用することができます。この例では、"InvoiceAddress" オブジェクトがサブフォームにバインドされています: ![](../assets/en/FormEditor/subform-example.png) @@ -163,7 +163,7 @@ ALERT($formObject.name+" is "+String($formObject.age)+" years old!") フォームを使用して、ページとしてまたはリストとして印刷することもできます。 -- 単純にフォームの一部を印刷したい場合には[`Print form`](../commands/print-form) コマンドを使用します。 例: +- 単純にフォームの一部を印刷したい場合には[`Print form`](../commands/print-form) コマンドを使用します。例: ```4d var $formData:={} @@ -173,7 +173,7 @@ $formData.request:="I need more COFFEE" var $h:=Print form("Request_var";$formData;Form detail) ``` -- 印刷中にデータを処理するための印刷ジョブ内でフォームを印刷するためには、[`FORM LOAD`](../commands/form-load) および [`Print object`](../commands/print-object) コマンドを使用します。 例: +- 印刷中にデータを処理するための印刷ジョブ内でフォームを印刷するためには、[`FORM LOAD`](../commands/form-load) および [`Print object`](../commands/print-object) コマンドを使用します。例: ```4d var $formData : Object @@ -200,7 +200,7 @@ var $h:=Print form("Request_var";$formData;Form detail) #### 印刷レンダリングエンジン -4D は印刷用に特化したデザインの出力を生成するための専用の印刷レンダリングエンジンを使用します。 このレンダリングには以下の様な機能を含んでいます: +4D は印刷用に特化したデザインの出力を生成するための専用の印刷レンダリングエンジンを使用します。このレンダリングには以下の様な機能を含んでいます: - ボタン、トグル、ドロップダウンなどの操作可能なウィジェット、およびグラス、ぼかし、透明、またはシャドウエフェクトなどの現代的なUI エフェクトは、その静的な表現へと変換され、また印刷可能なスタイルへと平面化されます。その結果としてドキュメントは印刷時にも読みやすく、またプロフェッショナルな見た目を維持します。 - レイアウト構造、間隔、および配置は、印刷されたドキュメントが画面上のフォームの論理的な構造を反映する様に保持されます。 @@ -222,7 +222,7 @@ var $h:=Print form("Request_var";$formData;Form detail) #### 旧式印刷レンダラー -4D 21 R3 以前のリリースでは、別の印刷レンダリングが使用されていました。 旧式レンダラーは単純にウィジェットをスクリーン上の見た目のまま描画します。 互換性のため、旧式レンダラーは4D 21 R3 以前のバージョンから変換されたプロジェクトまたはデータベースにおいては**デフォルトで有効化されており**、そのためこのレンダラー環境下でデザインされたフォームがそのデザイン通りに印刷される様にすることができます。 +4D 21 R3 以前のリリースでは、別の印刷レンダリングが使用されていました。旧式レンダラーは単純にウィジェットをスクリーン上の見た目のまま描画します。互換性のため、旧式レンダラーは4D 21 R3 以前のバージョンから変換されたプロジェクトまたはデータベースにおいては**デフォルトで有効化されており**、そのためこのレンダラー環境下でデザインされたフォームがそのデザイン通りに印刷される様にすることができます。 しかし以下の方法によって、いつでも新しい印刷レンダリングエンジンを有効化することができます: @@ -231,7 +231,7 @@ var $h:=Print form("Request_var";$formData;Form detail) :::warning 制限 -技術的な理由から、Windows 上で[Fluent UI](#fluent-ui-レンダリング) またはmacOS 上で[Liquid Glass](../Notes/updates.md#macOS-におけるliquid-glass-のサポート) を使用して表示されているフォームでは、旧式印刷レンダラーを使用することはできません。 これらのコンテキストにおいては、互換性オプションの設定に関わらず、フォームは**常に新しい印刷レンダリングエンジンを使用して印刷されます**。 +技術的な理由から、Windows 上で[Fluent UI](#fluent-ui-レンダリング) またはmacOS 上で[Liquid Glass](../Notes/updates.md#macOS-におけるliquid-glass-のサポート) を使用して表示されているフォームでは、旧式印刷レンダラーを使用することはできません。これらのコンテキストにおいては、互換性オプションの設定に関わらず、フォームは**常に新しい印刷レンダリングエンジンを使用して印刷されます**。 ::: @@ -250,18 +250,18 @@ var $h:=Print form("Request_var";$formData;Form detail) - ページ1: デフォルトで表示されるメインページ - ページ0: 背景ページ。このページ上に置かれたオブジェクトはすべてのページで表示されます -1つの入力フォームに複数のページを作成することができます。 一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。 複数のページを作成すると、以下のようなことが可能になります: +1つの入力フォームに複数のページを作成することができます。一画面に納まりきらない数のフィールドや変数がある場合は、これらを表示するためにページを追加することができます。複数のページを作成すると、以下のようなことが可能になります: - もっとも重要な情報を最初のページに配置し、他の情報を後ろのページに配置する。 - トピックごとに、専用ページにまとめる。 - [入力順](formEditor.md#データの入力順)を設定して、データ入力中のスクロール動作を少なくしたり、または不要にする。 - フォーム要素の周りの空間を広げ、洗練された画面をデザインする。 -複数ページは入力フォームとして使用する場合にのみ役立ちます。 印刷出力には向きません。 マルチページフォームを印刷すると、最初のページしか印刷されません。 +複数ページは入力フォームとして使用する場合にのみ役立ちます。印刷出力には向きません。マルチページフォームを印刷すると、最初のページしか印刷されません。 -フォームのページ数には制限がありません。 フォーム内の複数ページ上に同じフィールドを何度でも表示することができます。 しかし、フォームのページ数が多くなるほど、フォームの表示に要する時間が長くなります。 +フォームのページ数には制限がありません。フォーム内の複数ページ上に同じフィールドを何度でも表示することができます。しかし、フォームのページ数が多くなるほど、フォームの表示に要する時間が長くなります。 -マルチページフォームには、1つの背景ページと複数の表示ページが存在します。 背景ページ上に置かれたオブジェクトはすべての表示ページに現れますが、それらのオブジェクトの選択や編集は背景ページでのみ可能です。 複数ページフォームでは、ボタンパレットを背景ページに置くべきです。 また、ページ移動ツールオブジェクトを背景ページに配置し、ユーザーに提供する必要があります。 +マルチページフォームには、1つの背景ページと複数の表示ページが存在します。背景ページ上に置かれたオブジェクトはすべての表示ページに現れますが、それらのオブジェクトの選択や編集は背景ページでのみ可能です。複数ページフォームでは、ボタンパレットを背景ページに置くべきです。また、ページ移動ツールオブジェクトを背景ページに配置し、ユーザーに提供する必要があります。 ## Fluent UI レンダリング @@ -289,15 +289,15 @@ Fluent UI レンダリングは現代的かつ魅力的なコントロールを ### 要件 -Fluent UI レンダリングを使用するには、 **Windows App SDK** がマシン上にインストールされている必要があります。 フォームを表示するためには、この SDK がWindows マシンにインストールされているか確認する必要があります。 +Fluent UI レンダリングを使用するには、 **Windows App SDK** がマシン上にインストールされている必要があります。フォームを表示するためには、この SDK がWindows マシンにインストールされているか確認する必要があります。 -[必要であれば](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications)、 Windows App SDK をインストールすることができます。 利便性のために、4D インストーラーは、Windows App SDK インストーラーをダウンロードするための [リンクを提供しています](../GettingStarted/Installation.md#ディスクへのインストール) 。 また、 [Microsoft ダウンロードページ](https://learn.microsoft.com/ja-jp/windows/apps/windows-app-sdk/downloads) からダウンロードすることもできます。 推奨されるのは、4D インストーラーから提供されるバージョンを使用することです。こちらのほうが、最適な互換性を得られます。 +[必要であれば](https://blog.4d.com/deploy-fluent-ui-effortlessly-in-your-4d-applications)、 Windows App SDK をインストールすることができます。利便性のために、4D インストーラーは、Windows App SDK インストーラーをダウンロードするための [リンクを提供しています](../GettingStarted/Installation.md#ディスクへのインストール) 。また、 [Microsoft ダウンロードページ](https://learn.microsoft.com/ja-jp/windows/apps/windows-app-sdk/downloads) からダウンロードすることもできます。推奨されるのは、4D インストーラーから提供されるバージョンを使用することです。こちらのほうが、最適な互換性を得られます。 -Windows App SDK が適切にインストールされていない場合、4D は全てのフォームをクラシックモードで何のエラーもなく表示し、また [診断ログ](../Debugging/debugLogFiles.md#4ddiagnosticlogtxt) に以下のメッセージが記録されます: "Fluent UI が必要ですが利用不可です。 アプリケーションはClassic Windows テーマで実行されます。" +Windows App SDK が適切にインストールされていない場合、4D は全てのフォームをクラシックモードで何のエラーもなく表示し、また [診断ログ](../Debugging/debugLogFiles.md#4ddiagnosticlogtxt) に以下のメッセージが記録されます: "Fluent UI が必要ですが利用不可です。アプリケーションはClassic Windows テーマで実行されます。" ### Fluent UI レンダリングを有効化する -Fluent UI レンダリングモードは、アプリケーションレベルまたはフォームレベルで有効化することができます。 フォームでの設定の方がアプリケーションの設定より優先されます。 +Fluent UI レンダリングモードは、アプリケーションレベルまたはフォームレベルで有効化することができます。フォームでの設定の方がアプリケーションの設定より優先されます。 #### アプリケーション設定 @@ -315,7 +315,7 @@ Fluent UI レンダリングモードは、アプリケーションレベルま #### フォーム設定 -それぞれのフォームは、 **Widget appearance** プロパティによって独自のレンダリング設定を定義することができます。 次のオプションから選択することができます: +それぞれのフォームは、 **Widget appearance** プロパティによって独自のレンダリング設定を定義することができます。次のオプションから選択することができます: - **継承**: グローバルなアプリケーション設定を継承します(デフォルト) - **クラシック**: クラシック Windows スタイルを使用します @@ -333,23 +333,23 @@ Fluent UI レンダリングモードは、アプリケーションレベルま Fluent UI で4D フォームを使用する場合、以下の点に注意を払う必要があります: -- 新しい [`FORM theme`](../commands/form-theme) コマンドはカレントのフォームの実際の表示テーマを返します。 取りうる値: "Classic"、 "FluentUI" あるいは "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)に関連したものです。 コマンドがフォームのコンテキスト外から呼ばれた場合、返された情報は[グローバルプロジェクト設定](#アプリケーション設定) に関連したものです。 +- [`GET STYLE SHEET INFO`](../commands/get-style-sheet-info) がフォームのコンテキストで呼び出された場合、返された情報はフォームのカレントのアピアランス(クラシックあるいはFluent UI)に関連したものです。コマンドがフォームのコンテキスト外から呼ばれた場合、返された情報は[グローバルプロジェクト設定](#アプリケーション設定) に関連したものです。 - [`SET MENU ITEM STYLE`](../commands/set-menu-item-style) の*itemStyle* 引数での `Underline` はポップアップメニューではサポートされていません(無視されます)。 - [ステッパー](../FormObjects/stepper.md) フォームオブジェクトは[ダブルクリックイベント](../Events/onDoubleClicked.md) サポートしません。 - [サークルボタン](../FormObjects/button_overview.md#サークル) はサポートされています(macOS と同様)。 - [`WA ZOOM IN`](../commands/wa-zoom-in) / [`WA ZOOM OUT`](../commands/wa-zoom-out) コマンドは、システムレンダリングエンジンを使用したWeb エリアではサポートされません。 - フォーカスの四角はピクチャーおよびテキストの[入力](../FormObjects/input_overview.md) に追加することができます。 -- [リストフォーム](../FormEditor/properties_FormProperties.md#フォームタイプ) においては、[ヘッダーまたはフッターエリア](./properties_Markers.md) に配置されているオブジェクトは常に背景レイヤーに表示されますが、詳細エリアの配置されたものは常に前面に表示されます。 クラシックレンダリングとは異なり、ヘッダーの境界線からはみ出したオブジェクトは、詳細エリア内のオブジェクトの下部分に描画されます。 +- [リストフォーム](../FormEditor/properties_FormProperties.md#フォームタイプ) においては、[ヘッダーまたはフッターエリア](./properties_Markers.md) に配置されているオブジェクトは常に背景レイヤーに表示されますが、詳細エリアの配置されたものは常に前面に表示されます。クラシックレンダリングとは異なり、ヘッダーの境界線からはみ出したオブジェクトは、詳細エリア内のオブジェクトの下部分に描画されます。 ## 継承フォーム -4D では "継承フォーム" を使用することができます。これはつまり、*フォームA* の全オブジェクトが *フォームB* で使用可能であるということです。 この場合、*フォームB* は *フォームA* からオブジェクトを "継承" します。 +4D では "継承フォーム" を使用することができます。これはつまり、*フォームA* の全オブジェクトが *フォームB* で使用可能であるということです。この場合、*フォームB* は *フォームA* からオブジェクトを "継承" します。 継承フォームへの参照は常にアクティブです。そのため、継承フォームの要素が変更されると (たとえば、ボタンスタイル)、この要素を使用する全フォームが自動的に変更されます。 -テーブルフォームおよびプロジェクトフォームの両方を継承フォームとして使用できます。 ただし、継承フォームに含まれる要素は、異なるデータベーステーブルでの使用に対応していなければなりません。 +テーブルフォームおよびプロジェクトフォームの両方を継承フォームとして使用できます。ただし、継承フォームに含まれる要素は、異なるデータベーステーブルでの使用に対応していなければなりません。 フォームが実行されると、オブジェクトがロードされ、次の順序で組み立てられます: @@ -362,7 +362,7 @@ Fluent UI で4D フォームを使用する場合、以下の点に注意を払 > 継承フォームの 0ページと 1ページだけが他のフォームに表示可能です。 -継承フォームとして使用される場合、継承フォームのプロパティとフォームメソッドは使用されません。 他方、継承フォームに含まれるオブジェクトのメソッドは呼び出されます。 +継承フォームとして使用される場合、継承フォームのプロパティとフォームメソッドは使用されません。他方、継承フォームに含まれるオブジェクトのメソッドは呼び出されます。 継承フォームを設定するには、他のフォームを継承するフォームにおいて、[継承されたフォーム名](properties_FormProperties.md#継承されたフォーム名) および [継承されたフォームテーブル](properties_FormProperties.md#継承されたフォームテーブル) (テーブルフォームの場合) プロパティを設定しなければなりません。 @@ -370,7 +370,7 @@ Fluent UI で4D フォームを使用する場合、以下の点に注意を払 フォームの継承をやめるには、プロパティリストの [継承されたフォーム名](properties_FormProperties.md#継承されたフォーム名) プロパティで `\<なし>` オプション (JSONの場合は " ") を選択します。 -> 任意のフォームで継承フォームを設定し、そのフォームを第3のフォームの継承フォームとして使用することができます。 再帰的な方法で各オブジェクトが連結されます。 4Dは、再帰的ループを見つけ出し (たとえば、[テーブル1]フォーム1 が [テーブル1]フォーム1 を継承フォームとして定義している、つまり自分自身を継承している場合)、フォームの連鎖を中断します。 +> 任意のフォームで継承フォームを設定し、そのフォームを第3のフォームの継承フォームとして使用することができます。再帰的な方法で各オブジェクトが連結されます。 4Dは、再帰的ループを見つけ出し (たとえば、[テーブル1]フォーム1 が [テーブル1]フォーム1 を継承フォームとして定義している、つまり自分自身を継承している場合)、フォームの連鎖を中断します。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md index 328bdeebd26d3c..6b6adf8d4030ea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/macros.md @@ -3,7 +3,7 @@ id: macros title: フォームエディターマクロ --- -4D のフォームエディターはマクロをサポートしています。 1つ以上のアクションを実行するための指示をマクロと呼びます。 呼び出されると、マクロは登録された指示を実行し、自動的に指定のアクションをおこないます。 +4D のフォームエディターはマクロをサポートしています。 1つ以上のアクションを実行するための指示をマクロと呼びます。呼び出されると、マクロは登録された指示を実行し、自動的に指定のアクションをおこないます。 たとえば、定期レポートに特定のフォーマットが指定されている場合 (例: テキストによってフォントカラーが赤や緑であるなど)、マクロを作成してフォントカラーの設定を自動でおこなうことができます。 4Dフォームエディターのマクロでは、次のことがおこなえます: @@ -15,7 +15,7 @@ title: フォームエディターマクロ フォームエディター用のカスタム機能を定義するため、マクロコードは [クラス関数](Concepts/classes.md) と [JSON のフォームオブジェクトプロパティ](FormObjects/properties_Reference.md) を使用できます。 -ホストプロジェクトおよび、プロジェクト内のコンポーネントにてマクロを定義することができます。 通常は開発用のコンポーネントにマクロをインストールして使用します。 +ホストプロジェクトおよび、プロジェクト内のコンポーネントにてマクロを定義することができます。通常は開発用のコンポーネントにマクロをインストールして使用します。 マクロが呼び出されると、指定されている既存の動作はマクロによってオーバーライドされます。 @@ -76,11 +76,11 @@ Function onInvoke($editor : Object)->$result : Object ![](../assets/en/FormEditor/macroSelect.png) -このメニューは `formMacros.json` [マクロ定義ファイル](#マクロファイルの場所) をもとに作成されています。 マクロメニュー項目は ABC順に表示されます。 +このメニューは `formMacros.json` [マクロ定義ファイル](#マクロファイルの場所) をもとに作成されています。マクロメニュー項目は ABC順に表示されます。 -このメニューは、フォームエディター内で右クリックにより開くことができます。 選択オブジェクトがある状態や、フォームオブジェクトの上でマクロを呼び出した場合は、それらのオブジェクト名がマクロの [`onInvoke`](#oninvoke) 関数の `$editor.currentSelection` や `$editor.target` パラメーターに受け渡されます。 +このメニューは、フォームエディター内で右クリックにより開くことができます。選択オブジェクトがある状態や、フォームオブジェクトの上でマクロを呼び出した場合は、それらのオブジェクト名がマクロの [`onInvoke`](#oninvoke) 関数の `$editor.currentSelection` や `$editor.target` パラメーターに受け渡されます。 -1つのマクロによって複数の処理を実行することができます。 マクロで実行した処理は、フォームエディターの **取り消し** 機能でもとに戻すことができます。 +1つのマクロによって複数の処理を実行することができます。マクロで実行した処理は、フォームエディターの **取り消し** 機能でもとに戻すことができます。 ## マクロファイルの場所 @@ -142,7 +142,7 @@ JSONファイルの説明です: クラスの名称は、`formMacros.json` ファイルで [class](#マクロの宣言) 属性に定義した名前と同一でなくてはなりません。 -マクロは、アプリケーションの起動時にインスタンス化されます。 そのため、関数の追加やパラメーターの編集など、マクロクラスの構造や その [コンストラクター](#class-constructor) になんらかの変更を加えた場合には、それらを反映するにはアプリケーションを再起動する必要があります。 +マクロは、アプリケーションの起動時にインスタンス化されます。そのため、関数の追加やパラメーターの編集など、マクロクラスの構造やその [コンストラクター](#class-constructor) になんらかの変更を加えた場合には、それらを反映するにはアプリケーションを再起動する必要があります。 ## マクロ関数 @@ -196,9 +196,9 @@ Class constructor($macro : Object) マクロが呼び出されるたびに、`onInvoke` 関数が自動的に実行されます。 -呼び出しの際、関数は `$editor.editor` プロパティに、フォームの全要素とそれらの現在値のコピーを受け取ります。 つまり、これらのプロパティに対して、任意の処理を実行することができます。 +呼び出しの際、関数は `$editor.editor` プロパティに、フォームの全要素とそれらの現在値のコピーを受け取ります。つまり、これらのプロパティに対して、任意の処理を実行することができます。 -マクロによってオブジェクトを変更・追加・削除した場合、操作を反映させるには最後に結果のプロパティを `$result` に返します。 返されたプロパティは解析され、フォームに対して変更が適用されます。 戻り値に含まれるプロパティが少ないほど、この処理にかかる時間も削減されます。 +マクロによってオブジェクトを変更・追加・削除した場合、操作を反映させるには最後に結果のプロパティを `$result` に返します。返されたプロパティは解析され、フォームに対して変更が適用されます。戻り値に含まれるプロパティが少ないほど、この処理にかかる時間も削減されます。 *$editor* 引数にて渡されるプロパティは次の通りです: @@ -214,7 +214,7 @@ Class constructor($macro : Object) | $editor.editor.formProperties | Object | カレントフォームのプロパティ | | $editor.editor.target | string | マクロ呼び出し時にマウスカーソルが置かれているオブジェクトの名称 | -マクロによる変更をフォームに反映させたい場合に、`$result` オブジェクトに渡せるプロパティの一覧です。 いずれのプロパティも任意です: +マクロによる変更をフォームに反映させたい場合に、`$result` オブジェクトに渡せるプロパティの一覧です。いずれのプロパティも任意です: | プロパティ | 型 | 説明 | | --------------------------------- | ---------- | --------------------------------- | @@ -245,11 +245,11 @@ Class constructor($macro : Object) | ------ | ---- | ------- | | source | Text | メソッドコード | -後者の場合、4D は "objectMethods" フォルダー内に当該オブジェクト名を冠したファイルを作成し、`source` 属性に指定したメソッドコードを格納します。 この機能はマクロコードの場合にのみ有効です。 +後者の場合、4D は "objectMethods" フォルダー内に当該オブジェクト名を冠したファイルを作成し、`source` 属性に指定したメソッドコードを格納します。この機能はマクロコードの場合にのみ有効です。 #### `currentPage.objects` の `$4dId` プロパティ -`$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。 このキーは`$result.currentPage` の変更を反映させるのに使用されます: +`$4dId` プロパティは、現在のページにある各オブジェクトについて一意のIDを定義します。このキーは`$result.currentPage` の変更を反映させるのに使用されます: - フォーム上および `$result` 内のオブジェクトの両方で `$4dId` キーが存在しない場合、そのオブジェクトは作成されます。 - フォーム上で存在する `$4dId` キーが、`$result` 内には存在しない場合、当該オブジェクトは削除されます。 @@ -290,11 +290,11 @@ Function onInvoke($editor : Object)->$result : Object | $error | | Collection | エラースタック | | | [].errCode | Number | エラーコード | | | [].message | Text | エラーの詳細 | -| | [].componentSignature | Text | 内部コンポーネントのシグネチャー | +| | [].componentSignature | Text | 内部コンポーネントのシグネチャ | マクロの実行時にエラーが発生した場合、`onError` 関数が実行されます。 -マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。 たとえば次のような場合が該当します: +マクロの実行時に発生したエラーが、マクロの取り消しを不可能にする内容の場合、マクロは実行されません。たとえば次のような場合が該当します: - 読み取り専用ファイルのスクリプトを変更・削除しようとしたとき - 同じ内部ID を持つオブジェクトを複数作成しようとしたとき diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md index b29d81d27a2a71..fb75f39d6f1436 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/objectLibrary.md @@ -3,7 +3,7 @@ id: objectLibrary title: オブジェクトライブラリ --- -フォームの作成にあたっては、オブジェクトライブラリを利用することができます。 オブジェクトライブラリは、ドラッグ&ドロップやコピー/ペーストするだけでフォームに追加することができる、あらかじめ設定された各種オブジェクトを提供しています。 +フォームの作成にあたっては、オブジェクトライブラリを利用することができます。オブジェクトライブラリは、ドラッグ&ドロップやコピー/ペーストするだけでフォームに追加することができる、あらかじめ設定された各種オブジェクトを提供しています。 4D では 2種類のオブジェクトライブラリを利用できます: @@ -21,34 +21,34 @@ title: オブジェクトライブラリ :::info -このライブラリ内の一部のオブジェクトは、[特定のコンポーネント](../Extensions/overview.md#4dによって開発されたコンポーネント) がアプリケーション内にロードされている場合にのみ利用可能です。 例えば、4D Wreite Pro エリアを使用するには[4D Write Pro インターフェース](https://github.com/4d/4D-WritePro-Interface) コンポーネントがロードされている必要があります。 +このライブラリ内の一部のオブジェクトは、[特定のコンポーネント](../Extensions/overview.md#4dによって開発されたコンポーネント) がアプリケーション内にロードされている場合にのみ利用可能です。例えば、4D Wreite Pro エリアを使用するには[4D Write Pro インターフェース](https://github.com/4d/4D-WritePro-Interface) コンポーネントがロードされている必要があります。 ::: このウィンドウには次の主な機能があります: -- Tips 付きプレビューエリア: 中央のエリアには各オブジェクトのプレビューが表示されます。 オブジェクトにマウスオーバーすると、オブジェクトに関する情報が Tips として表示されます。 +- Tips 付きプレビューエリア: 中央のエリアには各オブジェクトのプレビューが表示されます。オブジェクトにマウスオーバーすると、オブジェクトに関する情報が Tips として表示されます。 - 表示オブジェクトは **カテゴリー** メニューを使って絞り込むことができます: ![](../assets/en/FormEditor/library1.png) - ライブラリのオブジェクトをフォーム上で使うには: - オブジェクト上で右クリックし、コンテキストメニューから **コピー** を選択してフォーム上で同様に **ペースト** するか、 - 一つのオブジェクトライブラリを複数のプロジェクトで同時に開くことはできませんが、 一つのプロジェクトで複数のライブラリを開くことは可能です。 -設定済みオブジェクトライブラリは変更できません。 デフォルトオブジェクトを編集したり、設定済みオブジェクトやフォームのライブラリを独自に作るには、カスタムオブジェクトライブラリを作成します (後述参照)。 +設定済みオブジェクトライブラリは変更できません。デフォルトオブジェクトを編集したり、設定済みオブジェクトやフォームのライブラリを独自に作るには、カスタムオブジェクトライブラリを作成します (後述参照)。 標準のオブジェクトライブラリにて提供されているオブジェクトについては[このセクション](../FormEditor/objectLibrary.md) で詳しく説明されています。 ## カスタムオブジェクトライブラリの作成と使用 -4Dでカスタムオブジェクトライブラリを作成し、使用することができます。 カスタムオブジェクトライブラリとは、任意のオブジェクト (ボタン、テキスト、ピクチャー等) を格納する 4D プロジェクトです。 これらのオブジェクトは別のフォームやプロジェクトにて再利用することができます。 +4Dでカスタムオブジェクトライブラリを作成し、使用することができます。カスタムオブジェクトライブラリとは、任意のオブジェクト (ボタン、テキスト、ピクチャー等) を格納する 4D プロジェクトです。これらのオブジェクトは別のフォームやプロジェクトにて再利用することができます。 -オブジェクトはプロパティおよびオブジェクトメソッドとともに格納されます。 ライブラリはドラッグ&ドロップや、コピー/ペースト操作で利用できます。 +オブジェクトはプロパティおよびオブジェクトメソッドとともに格納されます。ライブラリはドラッグ&ドロップや、コピー/ペースト操作で利用できます。 ライブラリを使用すると、グラフィックファミリーや振る舞いごとにグループ化したフォームオブジェクトを作成できます。 ### オブジェクトライブラリの作成 -オブジェクトライブラリを作成するには、**ファイル** メニューまたはツールバーから **新規 > オブジェクトライブラリ...** を選択します。 標準のファイル保存用のダイアログボックスが表示され、オブジェクトライブラリの名前と保存先を指定できます。 +オブジェクトライブラリを作成するには、**ファイル** メニューまたはツールバーから **新規 > オブジェクトライブラリ...** を選択します。標準のファイル保存用のダイアログボックスが表示され、オブジェクトライブラリの名前と保存先を指定できます。 ダイアログボックスを受け入れると、4D はディスク上に新しいオブジェクトライブラリを作成し、ウィンドウに表示します (デフォルトで空です)。 @@ -58,21 +58,21 @@ title: オブジェクトライブラリ ### オブジェクトライブラリを開く -カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: +カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。プロジェクトをライブラリとして開くと、次のものが公開されます: -カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。 標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。 次のファイルタイプが選択できます: +カスタムのオブジェクトライブラリを開くには、**ファイル** メニューまたはツールバーから **開く > オブジェクトライブラリ...** コマンドを選択します。標準のファイルを開くダイアログボックスが表示され、オブジェクトライブラリを選択できます。次のファイルタイプが選択できます: - **.4dproject** - **.4dz** -カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。 プロジェクトをライブラリとして開くと、次のものが公開されます: +カスタムオブジェクトライブラリは、実質的には標準の 4D プロジェクトです。プロジェクトをライブラリとして開くと、次のものが公開されます: - プロジェクトフォーム - フォームのページ1 ### オブジェクトライブラリの構築 -ドラッグ&ドロップやコピー/ペースト操作で、オブジェクトをオブジェクトライブラリに配置できます。 オブジェクトは、フォームあるいは他のオブジェクトライブラリ ([標準のオブジェクトライブラリ](#標準のオブジェクトライブラリの使用) 含む) からコピーできます 。 元のオブジェクトとのリンクは保持されないため、オリジナルが編集されてもライブラリのオブジェクトには影響しません。 +ドラッグ&ドロップやコピー/ペースト操作で、オブジェクトをオブジェクトライブラリに配置できます。オブジェクトは、フォームあるいは他のオブジェクトライブラリ ([標準のオブジェクトライブラリ](#標準のオブジェクトライブラリの使用) 含む) からコピーできます 。元のオブジェクトとのリンクは保持されないため、オリジナルが編集されてもライブラリのオブジェクトには影響しません。 > フォームからオブジェクトライブラリにドラッグ&ドロップ操作をおこなうには、4D環境設定のフォームページにて **ドラッグ&ドロップを開始** オプションを選択している必要があります。 @@ -83,19 +83,19 @@ title: オブジェクトライブラリ - ペーストボードへの **カット** または **コピー** - ペーストボードからオブジェクトを **ペースト** - **クリア** でライブラリからオブジェクトを削除 -- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。 ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 +- **名称変更** でダイアログが開き、オブジェクトの名前を変更することができます。ライブラリ内のオブジェクト名は一意のものでなくてはなりません。 -オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。 それぞれのオブジェクトは1つのアイテムとしてグループ化されます: +オブジェクトライブラリには個々のオブジェクト (サブフォーム含む) やオブジェクトグループを格納できます。それぞれのオブジェクトは1つのアイテムとしてグループ化されます: ![](../assets/en/FormEditor/library6.png) 1つのオブジェクトライブラリには32,000項目まで含めることができます。 -オブジェクトは、グラフィックおよび動作に関わるすべてのプロパティとメソッドともにコピーされます。 これらのプロパティはオブジェクトがフォームや他のライブラリにコピーされる際にも保持されます。 +オブジェクトは、グラフィックおよび動作に関わるすべてのプロパティとメソッドともにコピーされます。これらのプロパティはオブジェクトがフォームや他のライブラリにコピーされる際にも保持されます。 #### 依存オブジェクト -コピー/ペーストやドラッグ&ドロップで特定のライブラリオブジェクトを使用すると、依存オブジェクトも一緒にコピーされます。 たとえば、ボタンをコピーすると、そのオブジェクトに割り当てられていたオブジェクトメソッドもコピーされます。 これらの依存オブジェクトはそれのみを直接コピーしたりドラッグ&ドロップしたりすることはできません。 +コピー/ペーストやドラッグ&ドロップで特定のライブラリオブジェクトを使用すると、依存オブジェクトも一緒にコピーされます。たとえば、ボタンをコピーすると、そのオブジェクトに割り当てられていたオブジェクトメソッドもコピーされます。これらの依存オブジェクトはそれのみを直接コピーしたりドラッグ&ドロップしたりすることはできません。 メインのオブジェクトと一緒にライブラリに登録される依存オブジェクトは以下のとおりです: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/pictures.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/pictures.md index 3a555d55ca14ec..05318bf950b6d9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/pictures.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/pictures.md @@ -7,15 +7,15 @@ title: ピクチャー ## サポートされるネイティブフォーマット -4Dはピクチャーフォーマットのネイティブ管理を統合しています。 これは、ピクチャーが変換されることなく、元のフォーマットのまま 4D で格納、表示されることを意味します。 (シェイドや透過など) フォーマットにより異なる特定の機能は コピー・ペーストされる際にも保持され、改変なく表示されます。 このネイティブサポートは 4D に格納されるすべてのピクチャー (デザインモードでフォームにペーストされた [スタティックピクチャー](FormObjects/staticPicture.md)、ランタイムで [入力オブジェクト](FormObjects/input_overview.md) にペーストされたピクチャーなど) に対して有効です。 +4Dはピクチャーフォーマットのネイティブ管理を統合しています。これは、ピクチャーが変換されることなく、元のフォーマットのまま 4D で格納、表示されることを意味します。(シェイドや透過など) フォーマットにより異なる特定の機能はコピー・ペーストされる際にも保持され、改変なく表示されます。このネイティブサポートは 4D に格納されるすべてのピクチャー (デザインモードでフォームにペーストされた [スタティックピクチャー](FormObjects/staticPicture.md)、ランタイムで [入力オブジェクト](FormObjects/input_overview.md) にペーストされたピクチャーなど) に対して有効です。 もっとも一般的なフォーマット (例: jpeg、gif、png、tiff、bmp、等) はどちらのフォーマットでもサポートされます。 macOS では、PDF フォーマットのエンコーディング/デコーディングも可能です。 -> サポートされるフォーマットの完全なリストは OS や、マシンにインストールされているカスタムコーデックによって異なります。 どのコーデックが利用可能かを調べるためには、`PICTURE CODEC LIST` コマンドを使用してください。また、データ型の [ピクチャー](Concepts/dt_picture.md) の項も参照ください。 +> サポートされるフォーマットの完全なリストは OS や、マシンにインストールされているカスタムコーデックによって異なります。どのコーデックが利用可能かを調べるためには、`PICTURE CODEC LIST` コマンドを使用してください。また、データ型の [ピクチャー](Concepts/dt_picture.md) の項も参照ください。 ### 利用不可能なピクチャーフォーマット -マシン上で利用できないフォーマットのピクチャーに対しては、専用のアイコンが表示されます。 アイコンの下部にその拡張子が表示されます。 +マシン上で利用できないフォーマットのピクチャーに対しては、専用のアイコンが表示されます。アイコンの下部にその拡張子が表示されます。 ![](../assets/en/FormEditor/picNoFormat.png) @@ -23,17 +23,17 @@ title: ピクチャー ![](../assets/en/FormEditor/picNoFormat2.png) -このアイコンは、そのピクチャーがローカルでは表示も編集もできないことを意味します。 ですが、中身を改変することなく保存し、他のマシンで表示することは可能です。 たとえば、Windows での PDF ピクチャーや、PICT フォーマットのピクチャーなどが該当します。 +このアイコンは、そのピクチャーがローカルでは表示も編集もできないことを意味します。 ですが、中身を改変することなく保存し、他のマシンで表示することは可能です。たとえば、Windows での PDF ピクチャーや、PICT フォーマットのピクチャーなどが該当します。 ## 高解像度ピクチャー -4D は macOS および Windows の両方で高解像度ピクチャーの表示をサポートしています。 高解像度ピクチャーは、スケール係数または dpi によって定義されます。 +4D は macOS および Windows の両方で高解像度ピクチャーの表示をサポートしています。高解像度ピクチャーは、スケール係数または dpi によって定義されます。 ### スケール係数 -従来の標準的なディスプレイと比較して、高解像度ディスプレイは高い画素密度を持ちます。 これらの高解像度ディスプレイにおいてピクチャーが正しく表示されるには、適用する *スケール係数* (例: 2倍、3倍など) に応じてその画素数を増やす必要があります。 +従来の標準的なディスプレイと比較して、高解像度ディスプレイは高い画素密度を持ちます。これらの高解像度ディスプレイにおいてピクチャーが正しく表示されるには、適用する *スケール係数* (例: 2倍、3倍など) に応じてその画素数を増やす必要があります。 -高解像度のピクチャーを使う場合、ピクチャー名に "@nx" (*n*: スケール係数) を付けてスケール係数を指定することができます。 下のテーブルの例でも、高解像度ピクチャーの名前に、*circle@2x.png*、*circle@3x.png* といった形でスケール係数が指定されています。 +高解像度のピクチャーを使う場合、ピクチャー名に "@nx" (*n*: スケール係数) を付けてスケール係数を指定することができます。下のテーブルの例でも、高解像度ピクチャーの名前に、*circle@2x.png*、*circle@3x.png* といった形でスケール係数が指定されています。 | 表示タイプ | スケール係数 | 例題 | | ----- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -49,7 +49,7 @@ title: ピクチャー - [リストボックスヘッダー](FormObjects/listbox-header-footer.md#ヘッダー) - [メニューアイコン](Menus/properties.md#項目アイコン) -4D は自動的に最高解像度のピクチャーを優先します。 例: 標準解像度と高解像度の2つのスクリーンを使用している際に、片方からもう片方へとフォームを移動させると、4D は常に使用可能な範囲内での最高解像度のピクチャーを表示します。 コマンドまたはプロパティが *circle.png* を指定していたとしても、*circle@3x.png* があれば、それを使用します。 +4D は自動的に最高解像度のピクチャーを優先します。例: 標準解像度と高解像度の2つのスクリーンを使用している際に、片方からもう片方へとフォームを移動させると、4D は常に使用可能な範囲内での最高解像度のピクチャーを表示します。コマンドまたはプロパティが *circle.png* を指定していたとしても、*circle@3x.png* があれば、それを使用します。 > 解像度の優先順位付けはスクリーン上のピクチャー表示にのみ適用され、印刷に関しては自動適用されないことに留意が必要です。 @@ -85,8 +85,8 @@ title: ピクチャー ## ピクチャー上のマウス座標 -4D では、[ピクチャー式](FormObjects/properties_Object.md#式の型) が設定された [入力オブジェクト](FormObjects/input_overview.md) をクリック、またはホバーした際のマウスのローカル座標を取得できます。これはスクロールやズーム処理がおこなわれている場合でも可能です。 このピクチャーマップに似た機構は、たとえば地図作製ソフトウェアのインターフェースや、スクロール可能なボタンバーを管理するのに使用できます。 +4D では、[ピクチャー式](FormObjects/properties_Object.md#式の型) が設定された [入力オブジェクト](FormObjects/input_overview.md) をクリック、またはホバーした際のマウスのローカル座標を取得できます。これはスクロールやズーム処理がおこなわれている場合でも可能です。このピクチャーマップに似た機構は、たとえば地図作製ソフトウェアのインターフェースや、スクロール可能なボタンバーを管理するのに使用できます。 -座標は *MouseX* と *MouseY* [システム変数](../Concepts/variables.md#システム変数) に返されます。 座標はピクセル単位で表現され、ピクチャーの左上隅が起点 (0,0) となります。 マウスがピクチャーの座標の外側にある場合には、*MouseX* と *MouseY* には-1が返されます。 +座標は *MouseX* と *MouseY* [システム変数](../Concepts/variables.md#システム変数) に返されます。座標はピクセル単位で表現され、ピクチャーの左上隅が起点 (0,0) となります。マウスがピクチャーの座標の外側にある場合には、*MouseX* と *MouseY* には-1が返されます。 これらの値は、[`On Clicked`](Events/onClicked.md)、[`On Double Clicked`](Events/onDoubleClicked.md)、[`On Mouse up`](Events/onMouseUp.md)、[`On Mouse Enter`](Events/onMouseEnter.md)、あるいは [`On Mouse Move`](Events/onMouseMove.md) フォームイベントの一部として取得することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Action.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Action.md index d03016fd9a3594..cf2200f605f24b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Action.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Action.md @@ -5,7 +5,7 @@ title: アクション ## メソッド -フォームに関連づけられたメソッドへの参照。 フォームメソッドを使用してデータとオブジェクトを管理することができます。 ただし、これら目的には、オブジェクトメソッドを使用する方が通常は簡単であり、より効果的です。 詳細は[メソッド](../Concepts/methods.md) を参照してください。 +フォームに関連づけられたメソッドへの参照。フォームメソッドを使用してデータとオブジェクトを管理することができます。 ただし、これら目的には、オブジェクトメソッドを使用する方が通常は簡単であり、より効果的です。詳細は[メソッド](../Concepts/methods.md) を参照してください。 メソッドが関連づけられているフォームに関わるイベントが発生した場合、4D は自動的にフォームメソッドを呼び出します。 @@ -13,7 +13,7 @@ title: アクション - 標準のプロジェクトメソッドファイルパス: `method.4dm`
    - このタイプの参照は、当該メソッドファイルがデフォルトの場所 ("sources/{TableForms/*numTable*} | {Forms}/*formName*/") にあることを示します。 この場合、エディター上でフォームメソッドに対して操作 (名称変更、複製、コピー/ペーストなど) がおこなわれると、4D はこれらの変更を自動的にフォームメソッドに反映させます。 + このタイプの参照は、当該メソッドファイルがデフォルトの場所 ("sources/{TableForms/*numTable*} | {Forms}/*formName*/") にあることを示します。この場合、エディター上でフォームメソッドに対して操作 (名称変更、複製、コピー/ペーストなど) がおこなわれると、4D はこれらの変更を自動的にフォームメソッドに反映させます。 - 拡張子を省いた既存のプロジェクトメソッド名: `myMethod`。 この場合、エディター上で操作がおこなわれても、4D はそれらの変更を自動反映しません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormProperties.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormProperties.md index 56041836287817..d93beb36ce4cd6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormProperties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_FormProperties.md @@ -7,10 +7,9 @@ title: フォームプロパティ ## カラースキーム -> カラースキームプロパティは、macOS および [Fluent UI テーマの Windows](../settings/interface.md#windows-上でfluent-ui-を使用) に対してのみ適用されます -> 。 +> カラースキームプロパティは、macOS および [Fluent UI テーマの Windows](../settings/interface.md#windows-上でfluent-ui-を使用) に対してのみ適用されます。 -このプロパティは、フォームのカラースキームを定義します。 このプロパティが設定されていない場合のデフォルトでは、カラースキームの値は **継承済み** です (フォームは [アプリケーションレベル](../commands/get-application-color-scheme) で定義されたカラースキームを使用します)。 これは、フォームに対して以下の 2つのオプションのいずれかに変更することができます: +このプロパティは、フォームのカラースキームを定義します。このプロパティが設定されていない場合のデフォルトでは、カラースキームの値は **継承済み** です (フォームは [アプリケーションレベル](../commands/get-application-color-scheme) で定義されたカラースキームを使用します)。これは、フォームに対して以下の 2つのオプションのいずれかに変更することができます: - dark - 暗い背景に明るいテキスト - light - 明るい背景に暗いテキスト @@ -30,7 +29,7 @@ title: フォームプロパティ このプロパティは、フォーム用に特定の CSSファイルを読み込むことを可能にします。 -フォームレベルで定義された CSSファイルは、デフォルトのスタイルシートをオーバーライドします。 詳細については [スタイルシート](createStylesheet.md) を参照ください。 +フォームレベルで定義された CSSファイルは、デフォルトのスタイルシートをオーバーライドします。詳細については [スタイルシート](createStylesheet.md) を参照ください。 #### JSON 文法 @@ -42,11 +41,11 @@ title: フォームプロパティ ## フォームクラス -フォームに割り当てる既存の[ユーザークラス](../Project/code-overview.md#user-classes) の名前。 ユーザークラスはホストプロジェクトのものでも[コンポーネント](../Extensions/develop-components.md#sharing-of-classes) のものでも使用可能です。後者の場合は正式なシンタックスは"[*componentNameSpace*](../settings/general.md#component-namespace-in-the-class-store).className" となります。 +フォームに割り当てる既存の[ユーザークラス](../Project/code-overview.md#user-classes) の名前。ユーザークラスはホストプロジェクトのものでも[コンポーネント](../Extensions/develop-components.md#sharing-of-classes) のものでも使用可能です。後者の場合は正式なシンタックスは"[*componentNameSpace*](../settings/general.md#component-namespace-in-the-class-store).className" となります。 フォームにクラスを割り当てることで、以下のような利点があります: -- [フォームエディター](../FormEditor/formEditor.md) を使用する際、割り当てられたクラスは[式](../Concepts/quick-tour.md#expressions) をサポートする[プロパティリスト](../FormEditor/formEditor.md#property-list) の全てのエリア(例: **変数または式**、**フォントカラー式**...)において、`Form.myProperty` のような式に対する正確なシンタックスチェックを行うのに使用されます。 エラーは赤、警告は黄色で、プロパティリストの左カラムに表示され、ホバーすることで説明を受けることができます: +- [フォームエディター](../FormEditor/formEditor.md) を使用する際、割り当てられたクラスは[式](../Concepts/quick-tour.md#expressions) をサポートする[プロパティリスト](../FormEditor/formEditor.md#property-list) の全てのエリア(例: **変数または式**、**フォントカラー式**...)において、`Form.myProperty` のような式に対する正確なシンタックスチェックを行うのに使用されます。エラーは赤、警告は黄色で、プロパティリストの左カラムに表示され、ホバーすることで説明を受けることができます: ![](../assets/en/FormObjects/warning-proplist.png) @@ -54,7 +53,7 @@ title: フォームプロパティ - またコードエディター内での[自動補完機能](../code-editor/write-class-method.md#autocomplete-functions) を利用することもできます。 -- フォームが実行されると、4D は自動的にユーザークラスのオブジェクトをフォームに対してインスタンス化し、これは[`Form`](../commands/form) オブジェクトによって返されます。 これにより、[`DIALOG`](../commands/dialog)、[`Print form`](../commands/print-form)、[`FORM LOAD`](../commands/form-load) あるいは [`PRINT SELECTION`](../commands/print-selection) といったコマンドに*formData* オブジェクトを渡さなくても、コードから`Form` コマンドを通してユーザークラスで定義されたクラス関数へと直接アクセスすることができます(例:`Form.message()`) 。 +- フォームが実行されると、4D は自動的にユーザークラスのオブジェクトをフォームに対してインスタンス化し、これは[`Form`](../commands/form) オブジェクトによって返されます。これにより、[`DIALOG`](../commands/dialog)、[`Print form`](../commands/print-form)、[`FORM LOAD`](../commands/form-load) あるいは [`PRINT SELECTION`](../commands/print-selection) といったコマンドに*formData* オブジェクトを渡さなくても、コードから`Form` コマンドを通してユーザークラスで定義されたクラス関数へと直接アクセスすることができます(例:`Form.message()`) 。 :::note @@ -72,17 +71,17 @@ title: フォームプロパティ ## フォーム名 -このプロパティはフォームそのものの名称で、4Dランゲージで名前によってフォームを参照するのに使用されます。 フォーム名は、4Dの [識別子の命名規則](Concepts/identifiers.md) に準じたものでなければなりません。 +このプロパティはフォームそのものの名称で、4Dランゲージで名前によってフォームを参照するのに使用されます。フォーム名は、4Dの [識別子の命名規則](Concepts/identifiers.md) に準じたものでなければなりません。 #### JSON 文法 -フォーム名は、form.4Dform ファイルを格納するフォルダーの名前で定義されます。 詳しくは [プロジェクトのアーキテクチャー](Project/architecture.md#sources) を参照ください。 +フォーム名は、form.4Dform ファイルを格納するフォルダーの名前で定義されます。詳しくは [プロジェクトのアーキテクチャー](Project/architecture.md#sources) を参照ください。 --- ## Windowsでのフォームテーマ -このプロパティを使用することで、フォームがWindows 上で実行された際にどのインターフェーステーマを使用してするかを明示的に選択することができます。 デフォルトでは、この設定は [グローバルなプロジェクトテーマ設定](../settings/interface.md) を継承しますが、この設定をフォームごとに上書きすることができます。 +このプロパティを使用することで、フォームがWindows 上で実行された際にどのインターフェーステーマを使用してするかを明示的に選択することができます。デフォルトでは、この設定は [グローバルなプロジェクトテーマ設定](../settings/interface.md) を継承しますが、この設定をフォームごとに上書きすることができます。 使用可能な値: @@ -108,11 +107,11 @@ title: フォームプロパティ ## フォームタイプ -フォームのタイプ、*つまり* その出力先によって、当該フォームで利用できる機能が定義されます。 たとえば、[マーカー](properties_Markers.md) はリスト (出力) テーブルフォームでのみ設定できます。 +フォームのタイプ、*つまり* その出力先によって、当該フォームで利用できる機能が定義されます。たとえば、[マーカー](properties_Markers.md) はリスト (出力) テーブルフォームでのみ設定できます。 データベースの各テーブルは通常、少なくとも 2つのテーブルフォームを持ちます。 1つは画面上にレコードを一覧表示するためのもので、もう 1つはレコードを 1件ずつ表示するためのものです (データ入力や修正に使用): -- 出力フォーム - *出力フォーム* (または *リストフォーム*) は、レコードのリストを、1レコードにつき 1行で表示します。 クエリの結果は出力フォームに表示され、ユーザーが行をダブルクリックすると、そのレコード用に入力フォームが表示されます。 +- 出力フォーム - *出力フォーム* (または *リストフォーム*) は、レコードのリストを、1レコードにつき 1行で表示します。クエリの結果は出力フォームに表示され、ユーザーが行をダブルクリックすると、そのレコード用に入力フォームが表示されます。 ![](../assets/en/FormObjects/formOutput.png) - 入力フォーム - データ入力に使用されます。 1つの画面に 1件のレコードが表示され、一般的には、レコードの編集を保存・キャンセルするためのボタンや、レコード間を移動するためのボタン (先頭レコード、最終レコード、前レコード、次レコード等) を備えています。 @@ -185,7 +184,7 @@ title: フォームプロパティ ## サブフォームとして公開 -コンポーネントフォームをホストアプリケーションの [サブフォーム](FormObjects/subform_overview.md) として選択するには、明示的に共有されている必要があります。 このプロパティが選択されていると、フォームがホストアプリケーションで公開されます。 +コンポーネントフォームをホストアプリケーションの [サブフォーム](FormObjects/subform_overview.md) として選択するには、明示的に共有されている必要があります。このプロパティが選択されていると、フォームがホストアプリケーションで公開されます。 公開されたサブフォームとして指定できるのは、プロジェクトフォームのみです。 @@ -204,7 +203,7 @@ title: フォームプロパティ - カレントページ - それぞれのフォームオブジェクトの配置・大きさ・表示状態 (リストボックス列のサイズと表示状態も含む)。 -> このオプションは、`OBJECT DUPLICATE` コマンドを使用して作成されたオブジェクトに対しては無効です。 このコマンドを使用したときに使用環境を復元させるには、デベロッパーがオブジェクトの作成・定義・配置の手順を再現しなければなりません。 +> このオプションは、`OBJECT DUPLICATE` コマンドを使用して作成されたオブジェクトに対しては無効です。このコマンドを使用したときに使用環境を復元させるには、デベロッパーがオブジェクトの作成・定義・配置の手順を再現しなければなりません。 このオプションが選択されているとき、一部のオブジェクトに置いては [値を記憶](FormObjects/properties_Object.md#値を記憶) のオプションが選択可能になります。 @@ -222,13 +221,13 @@ title: フォームプロパティ ## ウィンドウタイトル -ウィンドウタイトルは、アプリケーションモードで `Open window` や `Open form window` コマンドを用いてフォームを開く際に使用されます。 ウィンドウタイトルはウィンドウのタイトルバーに表示されます。 +ウィンドウタイトルは、アプリケーションモードで `Open window` や `Open form window` コマンドを用いてフォームを開く際に使用されます。ウィンドウタイトルはウィンドウのタイトルバーに表示されます。 動的参照を使用して、フォームのウィンドウタイトルを定義することもできます: - Resourcesフォルダーに保存された、標準の XLIFF参照 - テーブル/フィールドラベル: 適用できるシンタックスは `` または `` です。 -- 変数またはフィールド: 適用できるシンタックスは `\` または `\<[TableName]FieldName>`。 フィールドや変数の現在の値がウィンドウタイトルとして表示されます。 +- 変数またはフィールド: 適用できるシンタックスは `\` または `\<[TableName]FieldName>`。フィールドや変数の現在の値がウィンドウタイトルとして表示されます。 > ウィンドウタイトルの最大文字数は 31 です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_JSONref.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_JSONref.md index fa04e7d99defbc..c3758304279914 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_JSONref.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_JSONref.md @@ -3,7 +3,7 @@ id: jsonReference title: フォーム JSON プロパティリスト --- -この一覧は、すべてのフォームプロパティを JSON名順に並べてまとめたものです。 プロパティ名をクリックすると、詳細説明に移動します。 +この一覧は、すべてのフォームプロパティを JSON名順に並べてまとめたものです。プロパティ名をクリックすると、詳細説明に移動します。 > "フォームプロパティ" の章では、プロパティリストにおけるテーマと名称で各プロパティを紹介しています。 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 2f341d2dda40ef..6548067868deae 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 @@ -3,11 +3,11 @@ id: markers title: マーカー --- -これらのプロパティを使用して、**テーブルフォーム** の縦ルーラー上でのマーカーの位置を精密に指定することができます。 マーカーは主に出力フォームで使用されます。 マーカーはリストされる情報を制御し、ヘッダーやブレーク、詳細、フッターを設定します。 各エリア内に配置されたオブジェクトは、対応する場所に表示や印刷されます。 +これらのプロパティを使用して、**テーブルフォーム** の縦ルーラー上でのマーカーの位置を精密に指定することができます。マーカーは主に出力フォームで使用されます。マーカーはリストされる情報を制御し、ヘッダーやブレーク、詳細、フッターを設定します。各エリア内に配置されたオブジェクトは、対応する場所に表示や印刷されます。 -フォームが出力フォームとして使用されるときは、画面用であれ印刷用であれ、マーカー設定が考慮されて各エリアが指定された場所に表示/印刷されます。 また、サブフォームエリア内のリストフォームとしてフォームが使用される場合も出力マーカーは有効です。 ただし、フォームが入力フォームとして使用される場合、マーカー設定は無視されます。 +フォームが出力フォームとして使用されるときは、画面用であれ印刷用であれ、マーカー設定が考慮されて各エリアが指定された場所に表示/印刷されます。また、サブフォームエリア内のリストフォームとしてフォームが使用される場合も出力マーカーは有効です。ただし、フォームが入力フォームとして使用される場合、マーカー設定は無視されます。 -これらのエリアに配置されたオブジェクトに割り当てられたメソッドは、適切なイベントが有効にされていれば、エリアが表示/印刷されるときに実行されます。 たとえば、ヘッダーエリアに配置されたオブジェクトのメソッドは `On Header` イベントで実行されます。 +これらのエリアに配置されたオブジェクトに割り当てられたメソッドは、適切なイベントが有効にされていれば、エリアが表示/印刷されるときに実行されます。たとえば、ヘッダーエリアに配置されたオブジェクトのメソッドは `On Header` イベントで実行されます。 --- @@ -15,9 +15,9 @@ title: マーカー フォームブレークエリアはレコードリストの下に一回だけ表示あるいは印刷されます。 -ブレークエリアは詳細マーカー (D) とブレークマーカー (B0) の間です。 レポートに [複数のブレークエリア](#追加マーカーの作成)を追加することもできます。 +ブレークエリアは詳細マーカー (D) とブレークマーカー (B0) の間です。レポートに [複数のブレークエリア](#追加マーカーの作成)を追加することもできます。 -ブレークエリアの大きさは変更することができます。 レコードデータではない情報 (説明や日付、時刻など) のほか、線やその他のグラフィック要素を表示するためにブレークエリアを使用できます。 印刷レポートでは、小計などのサマリ計算をおこなって印刷するために使用できます。 +ブレークエリアの大きさは変更することができます。レコードデータではない情報 (説明や日付、時刻など) のほか、線やその他のグラフィック要素を表示するためにブレークエリアを使用できます。印刷レポートでは、小計などのサマリ計算をおこなって印刷するために使用できます。 #### JSON 文法 @@ -29,27 +29,27 @@ title: マーカー ## フォーム詳細 -フォーム詳細エリアは、レポート中のレコード毎に画面に表示されたり印刷されたりします。 詳細エリアはヘッダーマーカー (H) と詳細マーカー (D) の間です。 +フォーム詳細エリアは、レポート中のレコード毎に画面に表示されたり印刷されたりします。詳細エリアはヘッダーマーカー (H) と詳細マーカー (D) の間です。 -詳細エリアの大きさは変更することができます。 詳細エリアに配置したオブジェクトはレコード毎に表示または印刷されます。 主にフィールドや変数を配置して、各レコードの情報を表示/印刷しますが、他のオブジェクトを配置することもできます。 +詳細エリアの大きさは変更することができます。詳細エリアに配置したオブジェクトはレコード毎に表示または印刷されます。主にフィールドや変数を配置して、各レコードの情報を表示/印刷しますが、他のオブジェクトを配置することもできます。 以下のフォームオブジェクトは詳細エリアでは**サポートされていません** (つまり各レコードに対しては繰り返されません): [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 文法 -| 名称 | データタイプ | とりうる値 | -| ---------- | ------- | --------------------------------- | -| markerBody | integer | 詳細マーカーの位置。 最小値: 0 | +| 名称 | データタイプ | とりうる値 | +| ---------- | ------- | -------------------------------- | +| markerBody | integer | 詳細マーカーの位置。最小値: 0 | --- ## フォームフッター -フォームフッターエリアは、画面ではレコードリストの下の表示されます。 印刷レポートの場合は、各ページの一番下に印刷されます。 フッターエリアはブレークマーカー (B0) とフッターマーカー (F) の間です。 +フォームフッターエリアは、画面ではレコードリストの下の表示されます。印刷レポートの場合は、各ページの一番下に印刷されます。フッターエリアはブレークマーカー (B0) とフッターマーカー (F) の間です。 フッターエリアの大きさは変更することができます。 -フッターエリアを使用して画像、ページ番号、日付、また各ページの下部に配置したいテキストを何でも印刷できます。 通常、画面表示用の出力フォームでは、フッターエリアに検索や並べ替え、印刷などをおこなうためのボタンを配置します。 すべてのアクティブオブジェクトを配置できます。 +フッターエリアを使用して画像、ページ番号、日付、また各ページの下部に配置したいテキストを何でも印刷できます。通常、画面表示用の出力フォームでは、フッターエリアに検索や並べ替え、印刷などをおこなうためのボタンを配置します。すべてのアクティブオブジェクトを配置できます。 #### JSON 文法 @@ -61,11 +61,11 @@ title: マーカー ## フォームヘッダー -フォームヘッダーエリアは画面の一番上に表示され、また印刷時には各ページの一番上に印刷されます。 ヘッダーエリアはフォームの一番上からヘッダーマーカー (H) までの間です。 +フォームヘッダーエリアは画面の一番上に表示され、また印刷時には各ページの一番上に印刷されます。ヘッダーエリアはフォームの一番上からヘッダーマーカー (H) までの間です。 -ヘッダーエリアの大きさは変更することができます。 ヘッダーエリアには列のタイトル、フォームの説明、その他の情報、会社ロゴなどの画像を配置します。 +ヘッダーエリアの大きさは変更することができます。ヘッダーエリアには列のタイトル、フォームの説明、その他の情報、会社ロゴなどの画像を配置します。 -サブフォームとして表示される出力フォーム、あるいは `DISPLAY SELECTION` や `MODIFY SELECTION` コマンドを使用して表示される出力フォームのヘッダーエリアにアクティブオブジェクトを配置して使用することもできます。 以下のようなアクティブオブジェクトを配置できます: +サブフォームとして表示される出力フォーム、あるいは `DISPLAY SELECTION` や `MODIFY SELECTION` コマンドを使用して表示される出力フォームのヘッダーエリアにアクティブオブジェクトを配置して使用することもできます。以下のようなアクティブオブジェクトを配置できます: - ボタン、ピクチャーボタン - コンボボックス、ドロップダウンリスト、ピクチャーポップアップメニュー @@ -73,9 +73,9 @@ title: マーカー - ラジオボタン、チェックボックス、3Dチェックボックス - 進捗インジケーター、ルーラー、ステッパー、スピナー -`addSubrecord` (サブレコード追加) や `cancel`、`automaticSplitter` (自動スプリッター) などの標準アクションをボタンに割り当てることができます。 ヘッダーエリアに配置したアクティブオブジェクトでは以下のイベントを使用できます: `On Load`, `On Clicked`, `On Header`, `On Printing Footer`, `On Double Clicked`, `On Drop`, `On Drag Over`, `On Unload`。 ヘッダーエリアの大きさは変更することができます。 ヘッダーエリアには列のタイトル、フォームの説明、その他の情報、会社ロゴなどの画像を配置します。 +`addSubrecord` (サブレコード追加) や `cancel`、`automaticSplitter` (自動スプリッター) などの標準アクションをボタンに割り当てることができます。ヘッダーエリアに配置したアクティブオブジェクトでは以下のイベントを使用できます: `On Load`, `On Clicked`, `On Header`, `On Printing Footer`, `On Double Clicked`, `On Drop`, `On Drag Over`, `On Unload`。ヘッダーエリアの大きさは変更することができます。 ヘッダーエリアには列のタイトル、フォームの説明、その他の情報、会社ロゴなどの画像を配置します。 -フォームには、[追加のヘッダーエリア](#追加マーカーの作成) を作成し、追加ブレークと関連づけることができます。 レベル1ヘッダーは、最初のソートフィールドによりグループ化されたレコードが印刷される直前に印刷されます。 +フォームには、[追加のヘッダーエリア](#追加マーカーの作成) を作成し、追加ブレークと関連づけることができます。レベル1ヘッダーは、最初のソートフィールドによりグループ化されたレコードが印刷される直前に印刷されます。 #### JSON 文法 @@ -85,7 +85,7 @@ title: マーカー ## 追加マーカーの作成 -レポート用に追加のブレークエリアやヘッダーエリアを作成できます。 これらの追加されたエリアを使用して、小計などの計算結果をレポートに印刷したり、その他の情報を効果的に表示することができます。 +レポート用に追加のブレークエリアやヘッダーエリアを作成できます。これらの追加されたエリアを使用して、小計などの計算結果をレポートに印刷したり、その他の情報を効果的に表示することができます。 追加エリアは、[フォームブレーク](#フォームブレーク) と [フォームヘッダー](#フォームヘッダー) のプロパティにマーカー位置のコレクションを指定すると定義されます。 @@ -93,7 +93,7 @@ title: マーカー フォームは常に、ヘッダー、詳細、ブレーク (レベル0)、およびフッターエリアを持った状態で作成されます。 -ブレークレベル0 は、レポート対象の全レコードが印刷された後に実行されます。 追加のブレークマーカーはそれぞれ "ブレークレベル1"、"ブレークレベル2" などと呼ばれます。 +ブレークレベル0 は、レポート対象の全レコードが印刷された後に実行されます。追加のブレークマーカーはそれぞれ "ブレークレベル1"、"ブレークレベル2" などと呼ばれます。 レベル1のブレークは一番目のソートフィールドでグループ化されたレコードが印刷された後に発生します。 @@ -103,7 +103,7 @@ title: マーカー | B2 | ブレークレベル2 | 二番目のソートフィールド印刷後 | | B3 | ブレークレベル3 | 三番目のソートフィールド印刷後 | -追加のヘッダーはブレークに関連付けられます。 レベル1ヘッダーは、最初のソートフィールドによりグループ化されたレコードが印刷される直前に印刷されます。 +追加のヘッダーはブレークに関連付けられます。レベル1ヘッダーは、最初のソートフィールドによりグループ化されたレコードが印刷される直前に印刷されます。 | ラベル | 説明 | 実行タイミング | | --- | -------- | --------------- | @@ -111,4 +111,4 @@ title: マーカー | H2 | ヘッダーレベル2 | 二番目のソートフィールド印刷後 | | H3 | ヘッダーレベル3 | 三番目のソートフィールド印刷後 | -ブレーク処理を開始するために `Subtotal` コマンドを使用する場合、ソート順に従って作成されるすべてのブレークレベル数から 1 マイナスした数のブレークエリアを作成すべきです。 ブレークエリアに何も印刷する必要がない場合、マーカーを移動してその高さを 0 にします。 ブレークエリアの数よりも多いフィールド数でソートすると、印刷時に最後のブレークエリアが繰り返されます。 +ブレーク処理を開始するために `Subtotal` コマンドを使用する場合、ソート順に従って作成されるすべてのブレークレベル数から 1 マイナスした数のブレークエリアを作成すべきです。ブレークエリアに何も印刷する必要がない場合、マーカーを移動してその高さを 0 にします。ブレークエリアの数よりも多いフィールド数でソートすると、印刷時に最後のブレークエリアが繰り返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Print.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Print.md index c5a7edce0a64b5..48b8dd0b2dbf10 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Print.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_Print.md @@ -5,9 +5,9 @@ title: 印刷 ## 設定 -フォーム毎に用紙設定をおこなうことができます。 この機能は、フォームエディターで印刷ページの境界を表示するのに便利です。 +フォーム毎に用紙設定をおこなうことができます。この機能は、フォームエディターで印刷ページの境界を表示するのに便利です。 -> **互換性に関する注意:** アプリケーションモードでフォームを印刷するときにこれらの設定が考慮されたとしても、プラットフォームおよびドライバー依存性に関する制約から、フォームの印刷設定を保存するのにこの機能を使用することは推奨されません。 より強力な [`Print settings to BLOB`](../commands/print-settings-to-blob) / [`BLOB to print settings`](../commands/blob-to-print-settings) を使用することが強く推奨されています。 +> **互換性に関する注意:** アプリケーションモードでフォームを印刷するときにこれらの設定が考慮されたとしても、プラットフォームおよびドライバー依存性に関する制約から、フォームの印刷設定を保存するのにこの機能を使用することは推奨されません。より強力な [`Print settings to BLOB`](../commands/print-settings-to-blob) / [`BLOB to print settings`](../commands/blob-to-print-settings) を使用することが強く推奨されています。 次の印刷設定が変更できます: @@ -23,8 +23,8 @@ title: 印刷 | ----------- | ------ | ---------------------------------------------------------------------------------- | | pageFormat | object | 利用可能なプロパティ: paperName, paperWidth, paperHeight, orientation, scale | | paperName | string | "A4", "レター"... | -| paperWidth | string | paperName という名前の用紙が見つからなかった場合に使用されます。 単位の明記が必要です: pt, in, mm, cm。 | -| paperHeight | string | paperName という名前の用紙が見つからなかった場合に使用されます。 単位の明記が必要です: pt, in, mm, cm。 | +| paperWidth | string | paperName という名前の用紙が見つからなかった場合に使用されます。単位の明記が必要です: pt, in, mm, cm。 | +| paperHeight | string | paperName という名前の用紙が見つからなかった場合に使用されます。単位の明記が必要です: pt, in, mm, cm。 | | orientation | string | "landscape" (デフォルトは "portrait") | | scale | number | 最小値: 0 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_WindowSize.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_WindowSize.md index 3a826399e27624..1e7fe449cbd7f4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_WindowSize.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormEditor/properties_WindowSize.md @@ -7,7 +7,7 @@ title: ウィンドウサイズ このオプションを選択するとウィンドウの高さが固定され、ユーザーは変更できなくなります。 -このオプションを選択しない場合、フォームのウィンドウの高さを変更することができます。 この場合 [最小高さと最大高さ](#最大高さ-最小高さ) 入力エリアを使用し、変更できるサイズを制限できます。 +このオプションを選択しない場合、フォームのウィンドウの高さを変更することができます。この場合 [最小高さと最大高さ](#最大高さ-最小高さ) 入力エリアを使用し、変更できるサイズを制限できます。 #### JSON 文法 @@ -21,7 +21,7 @@ title: ウィンドウサイズ このオプションを選択するとウィンドウの幅が固定され、ユーザーは変更できなくなります。 -このオプションを選択しない場合、フォームのウィンドウの高さを変更することができます。 この場合 [最小幅と最大幅](#最大幅-最小幅) 入力エリアを使用し、変更できるサイズを制限できます。 +このオプションを選択しない場合、フォームのウィンドウの高さを変更することができます。この場合 [最小幅と最大幅](#最大幅-最小幅) 入力エリアを使用し、変更できるサイズを制限できます。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/buttonGrid_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/buttonGrid_overview.md index d2dbf15bd94a72..afa6bc8d75f215 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/buttonGrid_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/buttonGrid_overview.md @@ -3,15 +3,15 @@ id: buttonGridOverview title: ボタングリッド --- -ボタングリッドは透明なオブジェクトであり、画像の最前面に配置されます。 おもに、列と行の配列を表現する画像との組み合わせで使用します。 ユーザーがグラフィック上でクリックすると、そこが凹んだように描画されます。 +ボタングリッドは透明なオブジェクトであり、画像の最前面に配置されます。おもに、列と行の配列を表現する画像との組み合わせで使用します。ユーザーがグラフィック上でクリックすると、そこが凹んだように描画されます。 ![](../assets/en/FormObjects/buttonGrid_smileys.png) -ボタングリッドのオブジェクトを使用すると、グラフィック上でユーザーがクリックした場所を判別することができます。 オブジェクトメソッドでは `On Clicked` イベントを使用し、クリックされた場所に応じて適切な動作を実行します。 +ボタングリッドのオブジェクトを使用すると、グラフィック上でユーザーがクリックした場所を判別することができます。オブジェクトメソッドでは `On Clicked` イベントを使用し、クリックされた場所に応じて適切な動作を実行します。 ## ボタングリッドの作成 -ボタングリッドを作成するには、背景グラフィックをフォームに追加し、その最前面にボタングリッドを配置します。 "行列数" テーマの [行](properties_Crop.md#行) と [列](properties_Crop.md#列) +ボタングリッドを作成するには、背景グラフィックをフォームに追加し、その最前面にボタングリッドを配置します。"行列数" テーマの [行](properties_Crop.md#行) と [列](properties_Crop.md#列) に行数と列数を指定します。 4D では、カラーパレットにボタングリッドが使用されています: @@ -20,12 +20,11 @@ title: ボタングリッド ## ボタングリッドの使用 -グリッド上のボタンには、左上から右下に向けて番号が振られます。 上の例で、グリッドは 16列×16行で構成されています。 左上にあるボタンはクリックされると 1 を返します。 2行目の右端にある赤いボタンが選択されると、ボタングリッドは 32 を返します。 -選択されたボタンがなければ、0が返されます。 +グリッド上のボタンには、左上から右下に向けて番号が振られます。上の例で、グリッドは 16列×16行で構成されています。左上にあるボタンはクリックされると 1 を返します。 2行目の右端にある赤いボタンが選択されると、ボタングリッドは 32 を返します。選択されたボタンがなければ、0が返されます。 ### ページ指定アクション -ボタングリッドにページ指定用の `gotoPage` [標準アクション](/Desktop/standard-actions)を割り当てることができます。 この標準アクションを設定すると、4D はボタングリッドで選択されたボタンの番号に相当するフォームページを自動的に表示します。 たとえばグリッド上の 10 番目のボタンを選択すると、4D は現在のフォームの 10 ページ目を表示します (存在する場合)。 +ボタングリッドにページ指定用の `gotoPage` [標準アクション](/Desktop/standard-actions)を割り当てることができます。この標準アクションを設定すると、4D はボタングリッドで選択されたボタンの番号に相当するフォームページを自動的に表示します。たとえばグリッド上の 10 番目のボタンを選択すると、4D は現在のフォームの 10 ページ目を表示します (存在する場合)。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/button_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/button_overview.md index 532c9c5e9ac1c9..43b92de7d8995c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/button_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/button_overview.md @@ -7,26 +7,25 @@ title: ボタン ![](../assets/en/FormObjects/button_regular.png) -割り当てられたスタイルやアクションに応じて、ボタンはさまざまな役割を果たします。 たとえば、ユーザーがアンケートやフォーム内を移動したり、選択したりといった操作を可能にします。 設定によって、ボタンをワンクリックすることでコマンド実行することもできれば、複数回クリックすることで望む結果を得られるようにすることもできます。 +割り当てられたスタイルやアクションに応じて、ボタンはさまざまな役割を果たします。たとえば、ユーザーがアンケートやフォーム内を移動したり、選択したりといった操作を可能にします。設定によって、ボタンをワンクリックすることでコマンド実行することもできれば、複数回クリックすることで望む結果を得られるようにすることもできます。 ## ボタンの使用 -ボタンには、あらかじめ設定されている [標準アクション](properties_Action.md#standard-action) またはオブジェクトメソッドを割り当てることができます。 典型的なアクションの例は、レコードの受け入れ・削除・編集キャンセルのほか、データのコピー / ペースト、複数ページあるフォームにおけるページ移動、サブフォームのレコード操作、テキストエリアのフォント属性の操作、などです。 +ボタンには、あらかじめ設定されている [標準アクション](properties_Action.md#standard-action) またはオブジェクトメソッドを割り当てることができます。典型的なアクションの例は、レコードの受け入れ・削除・編集キャンセルのほか、データのコピー / ペースト、複数ページあるフォームにおけるページ移動、サブフォームのレコード操作、テキストエリアのフォント属性の操作、などです。 -フォーム実行時、標準アクションが設定されたボタンは必要に応じてグレー表示されます。 たとえば、あるテーブルの1番目のレコードが表示されていると、先頭レコード (`firstRecord`) 標準アクションがついたボタンはグレー表示されます。 +フォーム実行時、標準アクションが設定されたボタンは必要に応じてグレー表示されます。たとえば、あるテーブルの1番目のレコードが表示されていると、先頭レコード (`firstRecord`) 標準アクションがついたボタンはグレー表示されます。 -標準アクションとして提供されていない動作をボタンに実行させたい場合には、標準アクションのフィールドは空欄にしておき、 [ボタンのアクションを指定するオブジェクトメソッドを書きます](../FormObjects/properties_Action.md#メソッド)。 -通常は、イベントテーマで `On Clicked` イベントを有効にして、ボタンのクリック時にのみメソッドを実行します。 どのタイプのボタンにもメソッドを割り当てることができます。 +標準アクションとして提供されていない動作をボタンに実行させたい場合には、標準アクションのフィールドは空欄にしておき、 [ボタンのアクションを指定するオブジェクトメソッドを書きます](../FormObjects/properties_Action.md#メソッド)。通常は、イベントテーマで `On Clicked` イベントを有効にして、ボタンのクリック時にのみメソッドを実行します。どのタイプのボタンにもメソッドを割り当てることができます。 -ボタンに関連付けられた変数 ([variable](properties_Object.md#変数あるいは式) 属性) は、デザインモードやアプリケーションモードでフォームが初めて開かれるときに自動で **0** に初期化されます。 ボタンをクリックすると、変数の値は **1** になります。 +ボタンに関連付けられた変数 ([variable](properties_Object.md#変数あるいは式) 属性) は、デザインモードやアプリケーションモードでフォームが初めて開かれるときに自動で **0** に初期化されます。ボタンをクリックすると、変数の値は **1** になります。 -> ボタンには標準アクションとメソッドの両方を割り当てることもできます。 この場合、標準アクションによってボタンが無効化されていなければ、標準アクションより先にメソッドが実行されます。 +> ボタンには標準アクションとメソッドの両方を割り当てることもできます。この場合、標準アクションによってボタンが無効化されていなければ、標準アクションより先にメソッドが実行されます。 ## ボタンスタイル -ボタンスタイルは、ボタンの外観を制御すると同時に、提供されるプロパティをも決定します。 ボタンには、あらかじめ定義されたスタイルやポップアップメニューを割り当てることができます。 これらのプロパティや動作を組み合わせることで、多数のバリエーションが得られます。 +ボタンスタイルは、ボタンの外観を制御すると同時に、提供されるプロパティをも決定します。ボタンには、あらかじめ定義されたスタイルやポップアップメニューを割り当てることができます。これらのプロパティや動作を組み合わせることで、多数のバリエーションが得られます。 -スタイルによって [提供されるプロパティ](#プロパティ一覧) は異なりますが、大多数のボタンは *構造上* 同じです。 違いは、関連づけられた変数の処理にあります。 +スタイルによって [提供されるプロパティ](#プロパティ一覧) は異なりますが、大多数のボタンは *構造上* 同じです。違いは、関連づけられた変数の処理にあります。 次の既定スタイルが提供されています: @@ -36,7 +35,7 @@ title: ボタン ![](../assets/en/FormObjects/button_regular.png) -通常ボタンは、明るいグレーの背景に中央配置のラベルがデフォルトで付いています。 Windowsの場合は、通常ボタンの上にマウスオーバーすると、境界線色と背景色が変わります。 また、プラットフォームによって表現が異なりますが、クリック時にも背景色が変わるなどして、物理的なボタンを模倣します。 +通常ボタンは、明るいグレーの背景に中央配置のラベルがデフォルトで付いています。 Windowsの場合は、通常ボタンの上にマウスオーバーすると、境界線色と背景色が変わります。また、プラットフォームによって表現が異なりますが、クリック時にも背景色が変わるなどして、物理的なボタンを模倣します。 #### JSON 例: @@ -63,7 +62,7 @@ title: ボタン ![](../assets/en/FormObjects/button_flat.png) -フラットボタンは、白の背景に中央配置のラベルがデフォルトで付いており、角が丸くなっています。 フラットボタンのグラフィック的な装飾は最小限であるため、印刷されるフォームでの使用に適しています。 +フラットボタンは、白の背景に中央配置のラベルがデフォルトで付いており、角が丸くなっています。フラットボタンのグラフィック的な装飾は最小限であるため、印刷されるフォームでの使用に適しています。 #### JSON 例: @@ -86,15 +85,15 @@ title: ボタン ### ツールバー -ツールバースタイルのボタンは、主としてツールバーで使用するためのものです。 このスタイルには、複数の選択肢を提示するためのポップアップメニュー (逆三角形で示されます) を追加するオプションがあります。 +ツールバースタイルのボタンは、主としてツールバーで使用するためのものです。このスタイルには、複数の選択肢を提示するためのポップアップメニュー (逆三角形で示されます) を追加するオプションがあります。 -ツールバーボタンは、透明の背景に中央配置のラベルがデフォルトで付いています。 ボタンにマウスオーバーしたときの表示は OS によって異なります: +ツールバーボタンは、透明の背景に中央配置のラベルがデフォルトで付いています。ボタンにマウスオーバーしたときの表示は OS によって異なります: - *Windows* - ボタンがハイライト表示されます。"ポップアップメニューあり" プロパティを使用ていると、ボタンの右側中央に三角形が表示されます。 ![](../assets/en/FormObjects/button_toolbar.png) -- *macOS* - ボタンはハイライト表示されません。 "ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 +- *macOS* - ボタンはハイライト表示されません。"ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 #### JSON 例: @@ -116,13 +115,13 @@ title: ボタン ベベルスタイルは [通常](#通常) スタイルの外観 (四角にラベル) に [ツールバー](#ツールバー) スタイルのポップアップメニューを追加可能にしたものです。 -ベベルボタンは、明るいグレーの背景に中央配置のラベルがデフォルトで付いています。 ボタンにマウスオーバーしたときの表示は OS によって異なります: +ベベルボタンは、明るいグレーの背景に中央配置のラベルがデフォルトで付いています。ボタンにマウスオーバーしたときの表示は OS によって異なります: -- *Windows* - ボタンがハイライト表示されます。 "ポップアップメニューあり" プロパティを使用ていると、ボタンの右側中央に三角形が表示されます。 +- *Windows* - ボタンがハイライト表示されます。"ポップアップメニューあり" プロパティを使用ていると、ボタンの右側中央に三角形が表示されます。 ![](../assets/en/FormObjects/button_bevel.png) -- *macOS* - ボタンはハイライト表示されません。 "ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 +- *macOS* - ボタンはハイライト表示されません。"ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 #### JSON 例: @@ -142,15 +141,15 @@ title: ボタン ### 角の丸いベベル -角の丸いベベルスタイルは [ベベル](#ベベル) スタイルとほぼ同一ですが、OSによっては角が丸く表示されます。 ベベルスタイルと同様に、角の丸いベベルスタイルは [通常](#通常) スタイルの外観 (四角にラベル) に [ツールバー](#ツールバー) スタイルのポップアップメニューを追加可能にしたものです。 +角の丸いベベルスタイルは [ベベル](#ベベル) スタイルとほぼ同一ですが、OSによっては角が丸く表示されます。ベベルスタイルと同様に、角の丸いベベルスタイルは [通常](#通常) スタイルの外観 (四角にラベル) に [ツールバー](#ツールバー) スタイルのポップアップメニューを追加可能にしたものです。 -角の丸いベベルボタンは、明るいグレーの背景に中央配置のラベルがデフォルトで付いています。 ボタンにマウスオーバーしたときの表示は OS によって異なります: +角の丸いベベルボタンは、明るいグレーの背景に中央配置のラベルがデフォルトで付いています。ボタンにマウスオーバーしたときの表示は OS によって異なります: -- *Windows* - ベベルボタンと同じです。 "ポップアップメニューあり" プロパティを使用ていると、ボタンの右側中央に三角形が表示されます。 +- *Windows* - ベベルボタンと同じです。"ポップアップメニューあり" プロパティを使用ていると、ボタンの右側中央に三角形が表示されます。 ![](../assets/en/FormObjects/button_roundedbevel.png) -- *macOS* - 角が丸くなっています。 "ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 +- *macOS* - 角が丸くなっています。"ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 #### JSON 例: @@ -170,15 +169,15 @@ title: ボタン ### OS Xグラデーション -OS Xグラデーションスタイルは [ベベル](#ベベル) スタイルとほぼ同一です。 ベベルスタイルと同様に、OS Xグラデーションスタイルは [通常](#通常) スタイルの外観 (四角にラベル) に [ツールバー](#ツールバー) スタイルのポップアップメニューを追加可能にしたものです。 +OS Xグラデーションスタイルは [ベベル](#ベベル) スタイルとほぼ同一です。ベベルスタイルと同様に、OS Xグラデーションスタイルは [通常](#通常) スタイルの外観 (四角にラベル) に [ツールバー](#ツールバー) スタイルのポップアップメニューを追加可能にしたものです。 -OS Xグラデーションボタンは、明るいグレーの背景に中央配置のラベルがデフォルトで付いています。 ボタンにマウスオーバーしたときの表示は OS によって異なります: +OS Xグラデーションボタンは、明るいグレーの背景に中央配置のラベルがデフォルトで付いています。ボタンにマウスオーバーしたときの表示は OS によって異なります: -- *Windows* - ベベルボタンと同じです。 "ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 +- *Windows* - ベベルボタンと同じです。"ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 ![](../assets/en/FormObjects/button_osxgradient.png) -- *macOS* - 2トーンのシステムボタンです。 "ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 +- *macOS* - 2トーンのシステムボタンです。"ポップアップメニューあり" プロパティを使用していると、ボタンの右側に三角形が表示されます。 #### JSON 例: @@ -198,7 +197,7 @@ OS Xグラデーションボタンは、明るいグレーの背景に中央配 ### OS Xテクスチャー -OS Xテクスチャースタイルは [ベベル](#ベベル) スタイルとほぼ同一ですが、サイズがより小さいです (最大サイズは macOS の標準的なシステムボタンのサイズです)。 ベベルスタイルと同様に、OS Xテクスチャースタイルは [通常](#通常) スタイルの外観 (四角にラベル) に [ツールバー](#ツールバー) スタイルのポップアップメニューを追加可能にしたものです。 +OS Xテクスチャースタイルは [ベベル](#ベベル) スタイルとほぼ同一ですが、サイズがより小さいです (最大サイズは macOS の標準的なシステムボタンのサイズです)。ベベルスタイルと同様に、OS Xテクスチャースタイルは [通常](#通常) スタイルの外観 (四角にラベル) に [ツールバー](#ツールバー) スタイルのポップアップメニューを追加可能にしたものです。 デフォルトで、OS Xテクスチャーボタンの外観は次の通りです: @@ -206,7 +205,7 @@ OS Xテクスチャースタイルは [ベベル](#ベベル) スタイルとほ ![](../assets/en/FormObjects/button_osxtextured.png) -- *macOS* - 灰色のグラデーションを表示する標準のシステムボタンです。 高さは定義済みで、変更できません。 +- *macOS* - 灰色のグラデーションを表示する標準のシステムボタンです。高さは定義済みで、変更できません。 #### JSON 例: @@ -228,7 +227,7 @@ OS Xテクスチャースタイルは [ベベル](#ベベル) スタイルとほ ベベルスタイルと同様に、Office XPスタイルは [通常](#通常) スタイルの外観 (四角にラベル) に [ツールバー](#ツールバー) スタイルの透過性を加え、ポップアップメニューを追加可能にしたものです。 -Office XPボタンの反転表示と背景のカラーはシステムカラーに基づいています。 ボタンにマウスオーバーしたときの表示は OS によって異なります: +Office XPボタンの反転表示と背景のカラーはシステムカラーに基づいています。ボタンにマウスオーバーしたときの表示は OS によって異なります: - *Windows* - マウスオーバー時にのみ背景が表示されます。 @@ -254,7 +253,7 @@ Office XPボタンの反転表示と背景のカラーはシステムカラー ### ヘルプ -このスタイルはシステム標準のヘルプボタンを表示するために使用します。 デフォルトで、ヘルプボタンは丸の中に表示されたハテナマーク (疑問符) です。 +このスタイルはシステム標準のヘルプボタンを表示するために使用します。デフォルトで、ヘルプボタンは丸の中に表示されたハテナマーク (疑問符) です。 ![](../assets/en/FormObjects/button_help.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/checkbox_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/checkbox_overview.md index 2d92a4f8a74d22..7b264f867fef4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/checkbox_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/checkbox_overview.md @@ -3,26 +3,26 @@ id: checkboxOverview title: チェックボックス --- -チェックボックスはボタンの一種で、バイナリ (true-false) データの入力や表示をおこないます。 基本的に、チェックボックスの状態は選択または未選択のいずれかになりますが、[3つめの状態](#スリーステートチェックボックス) を定義することもできます。 +チェックボックスはボタンの一種で、バイナリー (true-false) データの入力や表示をおこないます。基本的に、チェックボックスの状態は選択または未選択のいずれかになりますが、[3つめの状態](#スリーステートチェックボックス) を定義することもできます。 ![](../assets/en/FormObjects/checkbox.png) -チェックボックスは、メソッドまたは [標準アクション](#標準アクションの使用) を使って管理します。 チェックボックスが選択されると、チェックボックスに割り当てられたメソッドが実行されます。 他のボタンと同じように、フォームが初めて開かれると、チェックボックスの変数は 0 に初期化されます。 +チェックボックスは、メソッドまたは [標準アクション](#標準アクションの使用) を使って管理します。チェックボックスが選択されると、チェックボックスに割り当てられたメソッドが実行されます。他のボタンと同じように、フォームが初めて開かれると、チェックボックスの変数は 0 に初期化されます。 -チェックボックスは小さな四角形の右側にテキストを表示します。 このテキストはチェックボックスの [タイトル](properties_Object.md#title) プロパティで設定します。 タイトルには、XLIFF参照を入れることもできます ([付録 B: XLIFFアーキテクチャー](https://doc.4d.com/4Dv20/4D/20.2/Appendix-B-XLIFF-architecture.300-6750166.ja.html) 参照)。 +チェックボックスは小さな四角形の右側にテキストを表示します。このテキストはチェックボックスの [タイトル](properties_Object.md#title) プロパティで設定します。タイトルには、XLIFF参照を入れることもできます ([付録 B: XLIFFアーキテクチャー](https://doc.4d.com/4Dv20/4D/20.2/Appendix-B-XLIFF-architecture.300-6750166.ja.html) 参照)。 ## チェックボックスの使用 チェックボックスには整数型またはブール型の [変数あるいは式](properties_Object.md#変数あるいは式) を設定することができます。 -- **整数型:** チェックボックスが選択されると、変数の値は 1 になります。 チェックボックスが選択されていない場合の値は 0 です。 チェックボックスが 3番目の状態 (後述参照) のとき、変数値は 2 になります。 -- **ブール型:** チェックボックスが選択されると、変数の値は `true` になります。 チェックボックスが選択されていない場合の値は `False` です。 +- **整数型:** チェックボックスが選択されると、変数の値は 1 になります。チェックボックスが選択されていない場合の値は 0 です。チェックボックスが 3番目の状態 (後述参照) のとき、変数値は 2 になります。 +- **ブール型:** チェックボックスが選択されると、変数の値は `true` になります。チェックボックスが選択されていない場合の値は `False` です。 -フォーム上のすべてのチェックボックスは選択/未選択のいずれかの状態にすることができます。 チェックボックスを複数使用することで、複数の候補を同時に選択できるようになります。 +フォーム上のすべてのチェックボックスは選択/未選択のいずれかの状態にすることができます。チェックボックスを複数使用することで、複数の候補を同時に選択できるようになります。 ### スリーステートチェックボックス -[ボタンスタイル](properties_TextAndPicture.md#ボタンスタイル) が [通常](checkbox_overview.md#通常) および [フラット](checkbox_overview.md#フラット) タイプのチェックボックスは 3番目の状態を受け入れます。 この 3番目の状態は中間的な状態であり、一般的には表示のために用いられます。 たとえば、選択されたオブジェクトが複数あるうち、一部のオブジェクトにのみ特定のプロパティが存在することを表すのに使用されます。 +[ボタンスタイル](properties_TextAndPicture.md#ボタンスタイル) が [通常](checkbox_overview.md#通常) および [フラット](checkbox_overview.md#フラット) タイプのチェックボックスは 3番目の状態を受け入れます。この 3番目の状態は中間的な状態であり、一般的には表示のために用いられます。たとえば、選択されたオブジェクトが複数あるうち、一部のオブジェクトにのみ特定のプロパティが存在することを表すのに使用されます。 ![](../assets/en/FormObjects/checkbox_3states.png) @@ -32,11 +32,11 @@ title: チェックボックス チェックボックスが 3番目の状態になると、チェックボックスに関連付けられた変数は値2を返します。 -> スリーステートチェックボックスは入力モードにおいて、チェックなし / チェック / 中間状態 / チェックなし、という順に状態表示を切り替えます。 一般的にこの中間状態は入力モードではあまり役に立たないため、2という値になった場合は、コード上で変数の値を強制的に 0 に設定し、チェックされた状態からチェックなしの状態へ直接移行します。 +> スリーステートチェックボックスは入力モードにおいて、チェックなし / チェック / 中間状態 / チェックなし、という順に状態表示を切り替えます。一般的にこの中間状態は入力モードではあまり役に立たないため、2という値になった場合は、コード上で変数の値を強制的に 0 に設定し、チェックされた状態からチェックなしの状態へ直接移行します。 ## 標準アクションの使用 -チェックボックスに [標準アクション](properties_Action.md#標準アクション) を割り当てることで、テキストエリアの属性を管理することができます。 たとえば、`fontBold` 標準アクションを選択すると、ランタイムにおいてそのチェックボックスは、カレントエリア内で選択されたテキストの "bold" 属性を管理します。 +チェックボックスに [標準アクション](properties_Action.md#標準アクション) を割り当てることで、テキストエリアの属性を管理することができます。たとえば、`fontBold` 標準アクションを選択すると、ランタイムにおいてそのチェックボックスは、カレントエリア内で選択されたテキストの "bold" 属性を管理します。 true/false ステータスで表すことのできるアクション ("checkable" アクション) のみがサポートされます: @@ -75,9 +75,9 @@ true/false ステータスで表すことのできるアクション ("checkable ## チェックボックスのボタンスタイル -チェックボックスの [ボタンスタイル](properties_TextAndPicture.md#ボタンスタイル)は、チェックボックスの外観を制御すると同時に、提供されるプロパティをも決定します。 チェックボックスには、あらかじめ定義されたスタイルを割り当てることができます。 これらのプロパティや動作を組み合わせることで、多数のバリエーションが得られます。 +チェックボックスの [ボタンスタイル](properties_TextAndPicture.md#ボタンスタイル)は、チェックボックスの外観を制御すると同時に、提供されるプロパティをも決定します。チェックボックスには、あらかじめ定義されたスタイルを割り当てることができます。これらのプロパティや動作を組み合わせることで、多数のバリエーションが得られます。 -スタイルによって [提供されるプロパティ](#プロパティ一覧) は異なりますが、大多数のチェックボックスは *構造上* 同じです。 違いは、関連づけられた変数の処理にあります。 +スタイルによって [提供されるプロパティ](#プロパティ一覧) は異なりますが、大多数のチェックボックスは *構造上* 同じです。違いは、関連づけられた変数の処理にあります。 次の既定スタイルが提供されています: @@ -105,7 +105,7 @@ true/false ステータスで表すことのできるアクション ("checkable ### フラット -フラットスタイルのチェックボックスでは、装飾が最小限に抑えられています。 このグラフィック的特性により、フラットスタイルは印刷フォームでの使用に適しています。 +フラットスタイルのチェックボックスでは、装飾が最小限に抑えられています。このグラフィック的特性により、フラットスタイルは印刷フォームでの使用に適しています。 ![](../assets/en/FormObjects/checkbox_flat.png) @@ -128,7 +128,7 @@ true/false ステータスで表すことのできるアクション ("checkable チェックボックスのツールバーボタンスタイルは、主としてツールバーで使用するためのものです。 -ツールバーボタンスタイルは、透明の背景にラベルが付いています。 また、通常は [4つの状態を持つ画像](properties_TextAndPicture.md#状態の数) が関連付けられます。 +ツールバーボタンスタイルは、透明の背景にラベルが付いています。また、通常は [4つの状態を持つ画像](properties_TextAndPicture.md#状態の数) が関連付けられます。 チェックなし / チェック / ハイライト状態の例です: @@ -154,7 +154,7 @@ true/false ステータスで表すことのできるアクション ("checkable ベベルスタイルはデフォルトでは、通常ボタンのような外観に、チェックボックスの [ツールバーボタン](#ツールバーボタン) スタイルの機能を組み合わせたものです。 -ベベルスタイルは、明るいグレーの背景にラベルが付いています。 また、通常は [4つの状態を持つ画像](properties_TextAndPicture.md#状態の数) が関連付けられます。 +ベベルスタイルは、明るいグレーの背景にラベルが付いています。また、通常は [4つの状態を持つ画像](properties_TextAndPicture.md#状態の数) が関連付けられます。 チェックなし / チェック / ハイライト状態の例です: @@ -178,9 +178,9 @@ true/false ステータスで表すことのできるアクション ("checkable ### 角の丸いベベル -角の丸いベベルスタイルは [ベベル](#ベベル) スタイルとほぼ同一ですが、OSによっては角が丸く表示されます。 ベベルスタイルと同様に、角の丸いベベルスタイルは通常ボタンような外観に、チェックボックスの [ツールバーボタン](#ツールバーボタン) スタイルの機能を組み合わせたものです。 +角の丸いベベルスタイルは [ベベル](#ベベル) スタイルとほぼ同一ですが、OSによっては角が丸く表示されます。ベベルスタイルと同様に、角の丸いベベルスタイルは通常ボタンような外観に、チェックボックスの [ツールバーボタン](#ツールバーボタン) スタイルの機能を組み合わせたものです。 -角の丸いベベルスタイルは、明るいグレーの背景にラベルが付いています。 また、通常は [4つの状態を持つ画像](properties_TextAndPicture.md#状態の数) が関連付けられます。 +角の丸いベベルスタイルは、明るいグレーの背景にラベルが付いています。また、通常は [4つの状態を持つ画像](properties_TextAndPicture.md#状態の数) が関連付けられます。 macOS の例: @@ -206,9 +206,9 @@ macOS の例: ### OS Xグラデーション -OS Xグラデーションスタイルは [ベベル](#ベベル) スタイルとほぼ同一です。 ベベルスタイルと同様に、OS Xグラデーションスタイルは通常ボタンような外観に、チェックボックスの [ツールバーボタン](#ツールバーボタン) スタイルの機能を組み合わせたものです。 +OS Xグラデーションスタイルは [ベベル](#ベベル) スタイルとほぼ同一です。ベベルスタイルと同様に、OS Xグラデーションスタイルは通常ボタンような外観に、チェックボックスの [ツールバーボタン](#ツールバーボタン) スタイルの機能を組み合わせたものです。 -OS X グラデーションスタイルは明るいグレーの背景にラベルが付いています。 macOS 上では2トーンのシステムボタンとして表示されることがあります。 また、通常は [4つの状態を持つ画像](properties_TextAndPicture.md#状態の数) が関連付けられます。 +OS X グラデーションスタイルは明るいグレーの背景にラベルが付いています。 macOS 上では2トーンのシステムボタンとして表示されることがあります。また、通常は [4つの状態を持つ画像](properties_TextAndPicture.md#状態の数) が関連付けられます。 ![](../assets/en/FormObjects/checkbox_osxgradient_mac.png) @@ -232,7 +232,7 @@ OS X グラデーションスタイルは明るいグレーの背景にラベル ### OS Xテクスチャー -OS Xテクスチャースタイルは [ベベル](#ベベル) スタイルと似ていますが、サイズがより小さいです (最大サイズは macOS の標準的なシステムボタンのサイズです)。 ベベルスタイルと同様に、OS Xテクスチャースタイルは通常ボタンような外観に、チェックボックスの [ツールバーボタン](#ツールバーボタン) スタイルの機能を組み合わせたものです。 +OS Xテクスチャースタイルは [ベベル](#ベベル) スタイルと似ていますが、サイズがより小さいです (最大サイズは macOS の標準的なシステムボタンのサイズです)。ベベルスタイルと同様に、OS Xテクスチャースタイルは通常ボタンような外観に、チェックボックスの [ツールバーボタン](#ツールバーボタン) スタイルの機能を組み合わせたものです。 デフォルトで、OS Xテクスチャースタイルの外観は次の通りです: @@ -240,7 +240,7 @@ OS Xテクスチャースタイルは [ベベル](#ベベル) スタイルと似 ![](../assets/en/FormObjects/checkbox_osxtextured.png) -- *macOS* - 標準のシステムボタンです。 高さは定義済みで、変更できません。 +- *macOS* - 標準のシステムボタンです。高さは定義済みで、変更できません。 ![](../assets/en/FormObjects/checkbox_osxtextured_mac.png) @@ -262,13 +262,13 @@ OS Xテクスチャースタイルは [ベベル](#ベベル) スタイルと似 Office XPスタイルは通常ボタンような外観に、[ツールバーボタン](#ツールバーボタン) スタイルの動作を組み合わせたものです。 -Office XP スタイルのチェックボックスの反転表示と背景のカラーはシステムカラーに基づいています。 チェックボックスにマウスオーバーしたときの表示は OS によって異なります: +Office XP スタイルのチェックボックスの反転表示と背景のカラーはシステムカラーに基づいています。チェックボックスにマウスオーバーしたときの表示は OS によって異なります: -- *Windows* - マウスオーバー時にのみ背景が表示されます。 チェックなし / チェック / ハイライト状態の例です: +- *Windows* - マウスオーバー時にのみ背景が表示されます。チェックなし / チェック / ハイライト状態の例です: ![](../assets/en/FormObjects/checkbox_officexp.png) -- *macOS* - 背景は常に表示されます。 チェックなし / チェック状態の例です: +- *macOS* - 背景は常に表示されます。チェックなし / チェック状態の例です: ![](../assets/en/FormObjects/checkbox_officexp_mac.png) @@ -291,7 +291,7 @@ Office XP スタイルのチェックボックスの反転表示と背景のカ ### 折りたたみ/展開 -このチェックボックススタイルは標準の折りたたみ/展開アイコンを表示するのに使用します。 これらは階層リストで使用されます。 +このチェックボックススタイルは標準の折りたたみ/展開アイコンを表示するのに使用します。これらは階層リストで使用されます。 - *Windows* - [+] または [-] のように表示されます。 @@ -323,7 +323,7 @@ Office XP スタイルのチェックボックスの反転表示と背景のカ ### 開示ボタン -開示ボタンスタイルが適用されたチェックボックスは macOS および Windowsにおいて、詳細情報の表示/非表示にするのに使われる標準的な開示ボタンとして描画されます。 値が 0 のときにはボタンの矢印が下向き、値が 1 のときは上向きになります。 +開示ボタンスタイルが適用されたチェックボックスは macOS および Windowsにおいて、詳細情報の表示/非表示にするのに使われる標準的な開示ボタンとして描画されます。値が 0 のときにはボタンの矢印が下向き、値が 1 のときは上向きになります。 - *Windows* diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/comboBox_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/comboBox_overview.md index 6afc56dbcb869d..dd5b7291c4ec8e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/comboBox_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/comboBox_overview.md @@ -19,12 +19,12 @@ title: コンボボックス > この機能は 4Dプロジェクトでのみ利用可能です。 -コンボボックスのデータソースとして、[コレクション](../Concepts/dt_collection.md) を内包した [オブジェクト](../../Concepts/dt_object.md) を使用できます。 このオブジェクトには、次のプロパティが格納されていなくてはなりません: +コンボボックスのデータソースとして、[コレクション](../Concepts/dt_collection.md) を内包した [オブジェクト](../../Concepts/dt_object.md) を使用できます。このオブジェクトには、次のプロパティが格納されていなくてはなりません: -| プロパティ | 型 | 説明 | -| -------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -| `values` | Collection | 必須 - スカラー値のコレクション。 すべての同じ型の値でなくてはなりません。 サポートされている型:
  • 文字列
  • 数値
  • 日付
  • 時間
  • 空、または未定義の場合、コンボボックスは空になります | -| `currentValue` | Collection要素と同じ | ユーザーによる入力値 | +| プロパティ | 型 | 説明 | +| -------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `values` | Collection | 必須 - スカラー値のコレクション。すべての同じ型の値でなくてはなりません。サポートされている型:
  • 文字列
  • 数値
  • 日付
  • 時間
  • 空、または未定義の場合、コンボボックスは空になります | +| `currentValue` | Collection要素と同じ | ユーザーによる入力値 | オブジェクトにその他のプロパティが含まれている場合、それらは無視されます。 @@ -38,7 +38,7 @@ title: コンボボックス ### 選択リストの使用 -入力エリア (列挙型のフィールドまたは変数) の管理のためにコンボボックスを使用したい場合、フィールドまたは変数をフォームオブジェクトのデータソースとして直接参照することができます。 これにより列挙型のフィールド/変数を容易に管理できるようになります。 +入力エリア (列挙型のフィールドまたは変数) の管理のためにコンボボックスを使用したい場合、フィールドまたは変数をフォームオブジェクトのデータソースとして直接参照することができます。これにより列挙型のフィールド/変数を容易に管理できるようになります。 > 階層リストの場合、第一階層の値のみが表示・選択できます。 @@ -53,9 +53,9 @@ title: コンボボックス コンボボックスタイプのオブジェクトには、2つの専用オプションがあります: - [自動挿入](properties_DataSource.md#自動挿入): このオプションがチェックされていると、オブジェクトに関連付けられたリストにない値をユーザーが入力した場合に、その値が自動的にデータソースに追加されます。 -- [除外リスト](properties_RangeOfValues.md#除外リスト) (除外される値のリスト): 除外される値のリストを関連付けることができます。 ユーザーがこのリストに含まれる値を入力したとき、その入力は自動的に却下され、エラーメッセージが表示されます。 +- [除外リスト](properties_RangeOfValues.md#除外リスト) (除外される値のリスト): 除外される値のリストを関連付けることができます。ユーザーがこのリストに含まれる値を入力したとき、その入力は自動的に却下され、エラーメッセージが表示されます。 -> [指定リスト](properties_RangeOfValues.md#指定リスト) は、コンボボックスに割り当てることができません。 ユーザーインターフェースにおいて、オブジェクト内にいくつかの指定された値を表示したいときには、[ドロップダウンリスト](dropdownList_Overview.md) のオブジェクトを使用して下さい。 +> [指定リスト](properties_RangeOfValues.md#指定リスト) は、コンボボックスに割り当てることができません。ユーザーインターフェースにおいて、オブジェクト内にいくつかの指定された値を表示したいときには、[ドロップダウンリスト](dropdownList_Overview.md) のオブジェクトを使用して下さい。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/dropdownList_Overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/dropdownList_Overview.md index c969db78427300..7ab35de6a3d48f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/dropdownList_Overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/dropdownList_Overview.md @@ -3,24 +3,24 @@ id: dropdownListOverview title: ドロップダウンリスト --- -ドロップダウンリストは、ユーザーがリストから選択をおこなえるようにするためのフォームオブジェクトです。 ドロップダウンリストに表示される項目は、オブジェクト、配列、選択リスト、または標準アクションを用いて管理します。 +ドロップダウンリストは、ユーザーがリストから選択をおこなえるようにするためのフォームオブジェクトです。ドロップダウンリストに表示される項目は、オブジェクト、配列、選択リスト、または標準アクションを用いて管理します。 -macOS においては、ドロップダウンリストは "ポップアップメニュー" とも呼ばれます。 どちらの名前も同じタイプのオブジェクトを指します。 次の例に示すように、ドロップダウンリストの外観はプラットフォームによって若干異なります: +macOS においては、ドロップダウンリストは "ポップアップメニュー" とも呼ばれます。どちらの名前も同じタイプのオブジェクトを指します。次の例に示すように、ドロップダウンリストの外観はプラットフォームによって若干異なります: ![](../assets/en/FormObjects/popupDropdown_appearance.png) ## ドロップダウンリストの種類 -それぞれに特有の機能を持つ、複数タイプのドロップダウンリストを作成することができます。 タイプを定義するには、プロパティリストで適切な **式の型** と **データタイプ** の値を選択するか、それらに相当する JSON を指定します。 +それぞれに特有の機能を持つ、複数タイプのドロップダウンリストを作成することができます。タイプを定義するには、プロパティリストで適切な **式の型** と **データタイプ** の値を選択するか、それらに相当する JSON を指定します。 -| 型 | 機能 | 式の型/式タイプ | データタイプ | JSON 定義 | -| -------------------------------- | --------------------------------------- | -------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| オブジェクト | コレクションに基づく | オブジェクト | Numeric, Text, Date, または Time | `dataSourceTypeHint: object` + `numberFormat: ` または `textFormat: ` または `dateFormat: ` または `timeFormat: ` | -| 配列 | 配列に基づく | 配列 | Numeric, Text, Date, または Time | `dataSourceTypeHint: arrayNumber` または `arrayText` または `arrayDate` または `arrayTime` | -| 選択リスト (値を保存) | 選択リストに基づく (標準) | リスト | 選択された項目値 | `dataSourceTypeHint: text` + `saveAs: value` | -| 選択リスト (参照を保存) | 選択リストに基づく (項目の位置を保存) | リスト | 選択された項目参照 | `dataSourceTypeHint: integer` + `saveAs: reference` | -| 階層型選択リスト | 階層型の表示が可能 | リスト | リスト参照 | `dataSourceTypeHint: integer` | -| 標準アクション | アクションにより自動生成 | *any* | *リスト参照以外* | いずれかの定義 + `action: ` (他エリアに適用されるアクションの場合は + `focusable: false`) | +| 型 | 機能 | 式の型/式タイプ | データタイプ | JSON 定義 | +| -------------------------------- | -------------------------------------- | -------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| オブジェクト | コレクションに基づく | オブジェクト | Numeric, Text, Date, または Time | `dataSourceTypeHint: object` + `numberFormat: ` または `textFormat: ` または `dateFormat: ` または `timeFormat: ` | +| 配列 | 配列に基づく | 配列 | Numeric, Text, Date, または Time | `dataSourceTypeHint: arrayNumber` または `arrayText` または `arrayDate` または `arrayTime` | +| 選択リスト (値を保存) | 選択リストに基づく (標準) | リスト | 選択された項目値 | `dataSourceTypeHint: text` + `saveAs: value` | +| 選択リスト (参照を保存) | 選択リストに基づく(項目の位置を保存) | リスト | 選択された項目参照 | `dataSourceTypeHint: integer` + `saveAs: reference` | +| 階層型選択リスト | 階層型の表示が可能 | リスト | リスト参照 | `dataSourceTypeHint: integer` | +| 標準アクション | アクションにより自動生成 | *any* | *リスト参照以外* | いずれかの定義 + `action: ` (他エリアに適用されるアクションの場合は + `focusable: false`) | ## ドロップダウンリストの使い方 @@ -28,21 +28,21 @@ macOS においては、ドロップダウンリストは "ポップアップメ > この機能は 4Dプロジェクトでのみ利用可能です。 -ドロップダウンリストのデータソースとして、[コレクション](Concepts/dt_collection.md) を内包した [オブジェクト](Concepts/dt_object.md) を使用できます。 このオブジェクトには、次のプロパティが格納されていなくてはなりません: +ドロップダウンリストのデータソースとして、[コレクション](Concepts/dt_collection.md) を内包した [オブジェクト](Concepts/dt_object.md) を使用できます。このオブジェクトには、次のプロパティが格納されていなくてはなりません: -| プロパティ | 型 | 説明 | -| -------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| `values` | Collection | 必須 - スカラー値のコレクション。 すべての同じ型の値でなくてはなりません。 サポートされている型:
  • 文字列
  • 数値
  • 日付
  • 時間
  • 空、または未定義の場合、ドロップダウンリストは空になります | -| `index` | number | 選択項目のインデックス (0 と `collection.length-1` の間の値)。 -1 に設定すると、プレースホルダー文字列として currentValue が表示されます。 | -| `currentValue` | Collection要素と同じ | 選択中の項目 (コードにより設定した場合はプレースホルダーとして使用される) | +| プロパティ | 型 | 説明 | +| -------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `values` | Collection | 必須 - スカラー値のコレクション。すべての同じ型の値でなくてはなりません。サポートされている型:
  • 文字列
  • 数値
  • 日付
  • 時間
  • 空、または未定義の場合、ドロップダウンリストは空になります | +| `index` | number | 選択項目のインデックス (0 と `collection.length-1` の間の値)。 -1 に設定すると、プレースホルダー文字列として currentValue が表示されます。 | +| `currentValue` | Collection要素と同じ | 選択中の項目 (コードにより設定した場合はプレースホルダーとして使用される) | オブジェクトにその他のプロパティが含まれている場合、それらは無視されます。 ドロップダウンリストに関連付けるオブジェクトを初期化するには、次の方法があります: -- プロパティリストの [データソース](properties_DataSource.md) テーマにおいて、選択リストの項目で `\` を選び、デフォルト値のリストを入力します。 これらのデフォルト値は、オブジェクトへと自動的にロードされます。 +- プロパティリストの [データソース](properties_DataSource.md) テーマにおいて、選択リストの項目で `\` を選び、デフォルト値のリストを入力します。これらのデフォルト値は、オブジェクトへと自動的にロードされます。 -- オブジェクトとそのプロパティを作成するコードを実行します。 たとえば、ドロップダウンリストに紐づいた [変数](properties_Object.md#変数あるいは式) が "myList" であれば、[On Load](Events/onLoad.md) フォームイベントに次のように書けます: +- オブジェクトとそのプロパティを作成するコードを実行します。たとえば、ドロップダウンリストに紐づいた [変数](properties_Object.md#変数あるいは式) が "myList" であれば、[On Load](Events/onLoad.md) フォームイベントに次のように書けます: ```4d // Form.myDrop はフォームオブジェクトのデータソースです @@ -69,13 +69,13 @@ Form.myDrop.index //3 ### 配列の使用 -[配列](Concepts/arrays.md) とは、メモリ内の値のリストのことで、配列の名前によって参照されます。 ドロップダウンリストをクリックすると、その配列を値のリストとして表示します。 +[配列](Concepts/arrays.md) とは、メモリ内の値のリストのことで、配列の名前によって参照されます。ドロップダウンリストをクリックすると、その配列を値のリストとして表示します。 ドロップダウンリストに関連付ける配列を初期化するには、次の方法があります: -- プロパティリストの [データソース](properties_DataSource.md) テーマにおいて、選択リストの項目で `\` を選び、デフォルト値のリストを入力します。 これらのデフォルト値は、配列へと自動的にロードされます。 オブジェクトに関連付けた変数名を使用して、この配列を参照することができます。 +- プロパティリストの [データソース](properties_DataSource.md) テーマにおいて、選択リストの項目で `\` を選び、デフォルト値のリストを入力します。これらのデフォルト値は、配列へと自動的にロードされます。オブジェクトに関連付けた変数名を使用して、この配列を参照することができます。 -- オブジェクトが表示される前に、値を配列要素に代入するコードを実行します。 例: +- オブジェクトが表示される前に、値を配列要素に代入するコードを実行します。例: ```4d ARRAY TEXT(aCities;6) @@ -87,17 +87,17 @@ Form.myDrop.index //3 aCities{6}:="Green Bay" ``` -この場合、フォームのオブジェクトに紐付けた [変数](properties_Object.md#変数あるいは式) は `aCities` でなければなりません。 このコードをフォームメソッド内に置き、`On Load` フォームイベント発生時に実行されるようにします。 +この場合、フォームのオブジェクトに紐付けた [変数](properties_Object.md#変数あるいは式) は `aCities` でなければなりません。このコードをフォームメソッド内に置き、`On Load` フォームイベント発生時に実行されるようにします。 -- オブジェクトが表示される前に、[`LIST TO ARRAY`](../commands/list-to-array) コマンドを使ってリストの値を配列にロードします。 例: +- オブジェクトが表示される前に、[`LIST TO ARRAY`](../commands/list-to-array) コマンドを使ってリストの値を配列にロードします。例: ```4d LIST TO ARRAY("Cities";aCities) ``` -この場合にも 、フォームのオブジェクトに紐付けた [変数](properties_Object.md#変数あるいは式) は `aCities` でなければなりません。 このコードは、前述した代入命令文の代わりに実行できます。 +この場合にも 、フォームのオブジェクトに紐付けた [変数](properties_Object.md#変数あるいは式) は `aCities` でなければなりません。このコードは、前述した代入命令文の代わりに実行できます。 -ユーザーがおこなった選択内容をフィールドに保存する必要があれば、レコードの登録後に代入命令を実行します。 たとえば、次のような Case文のコードを作成します: +ユーザーがおこなった選択内容をフィールドに保存する必要があれば、レコードの登録後に代入命令を実行します。たとえば、次のような Case文のコードを作成します: ```4d Case of @@ -117,19 +117,19 @@ Form.myDrop.index //3 End case ``` -プロパティリストのイベントテーマにおいて、作成した Case 文の中で使用する各イベントを選択して有効化ます。 配列には常に有限数の項目が納められます。 項目リストは動的であり、メソッドを用いて変更可能です。 配列の項目は変更・並び替え・追加することができます。 +プロパティリストのイベントテーマにおいて、作成した Case 文の中で使用する各イベントを選択して有効化ます。配列には常に有限数の項目が納められます。項目リストは動的であり、メソッドを用いて変更可能です。配列の項目は変更・並び替え・追加することができます。 ### 選択リストの使用 -入力エリア (列挙型のフィールドまたは変数) の管理のためにリストボックスを使用したい場合、フィールドまたは変数をドロップダウンリストの [データソース](properties_Object.md#変数あるいは式) として直接参照することができます。 これにより列挙型のフィールド/変数を容易に管理できるようになります。 +入力エリア (列挙型のフィールドまたは変数) の管理のためにリストボックスを使用したい場合、フィールドまたは変数をドロップダウンリストの [データソース](properties_Object.md#変数あるいは式) として直接参照することができます。これにより列挙型のフィールド/変数を容易に管理できるようになります。 -たとえば、"White"、"Blue"、"Green"、"Red" という値のみを含む "Color" というフィールドがあった場合、これらの値を含むリストを作成し、それを "Color" フィールドを参照するドロップダウンリストに関連付けることができます。 こうすることによって、あとは 4D が自動的にカレント値の入力や表示に関して管理してくれます。 +たとえば、"White"、"Blue"、"Green"、"Red" という値のみを含む "Color" というフィールドがあった場合、これらの値を含むリストを作成し、それを "Color" フィールドを参照するドロップダウンリストに関連付けることができます。こうすることによって、あとは 4D が自動的にカレント値の入力や表示に関して管理してくれます。 -> 階層リストの場合、第一階層の値のみが表示・選択できます。 階層的な内容を表示したい場合は、[階層型の選択リスト](#階層型選択リストの使用) を使用する必要があります。 +> 階層リストの場合、第一階層の値のみが表示・選択できます。階層的な内容を表示したい場合は、[階層型の選択リスト](#階層型選択リストの使用) を使用する必要があります。 ドロップダウンリストをフィールドや変数と関連付けるには、プロパティリストの [変数あるいは式](properties_Object.md#変数あるいは式) 欄にフィールドまたは変数の名前を直接入力します。 -> この原理は、オブジェクトや配列を用いたドロップダウンリストと組み合わせることはできません。 "変数あるいは式" の欄にフィールド名を入力した場合は、必ず選択リストを使用します。 +> この原理は、オブジェクトや配列を用いたドロップダウンリストと組み合わせることはできません。"変数あるいは式" の欄にフィールド名を入力した場合は、必ず選択リストを使用します。 フォームを実行すると、4D が自動的に入力中または表示中のドロップダウンリストの状態を管理します。 ユーザーが値を選択すると、その値はフィールドに保存され、このフィールドの値はフォームが表示されたときにドロップダウンリスト表示されます: @@ -137,11 +137,11 @@ Form.myDrop.index //3 #### 選択された項目値 または 選択された項目参照 -選択リスト型のドロップダウンリストをフィールドや変数と関連付けた場合、[**データタイプ**](properties_DataSource.md#データタイプ) プロパティを **選択された項目値** または **選択された項目参照** に設定することができます。 このオプションにより、保存するデータのサイズを最適化できるようになります。 +選択リスト型のドロップダウンリストをフィールドや変数と関連付けた場合、[**データタイプ**](properties_DataSource.md#データタイプ) プロパティを **選択された項目値** または **選択された項目参照** に設定することができます。このオプションにより、保存するデータのサイズを最適化できるようになります。 ### 階層型選択リストの使用 -階層型ドロップダウンリストは、リストの各項目にサブリストが関連付けられています。 以下は、階層型ドロップダウンリストの例です: +階層型ドロップダウンリストは、リストの各項目にサブリストが関連付けられています。以下は、階層型ドロップダウンリストの例です: ![](../assets/en/FormObjects/popupDropdown_hierar.png) @@ -153,14 +153,13 @@ Form.myDrop.index //3 ### 標準アクションの使用 -[標準アクション](properties_Action.md#標準アクション) を使って、ドロップダウンリストを自動的に構築することができます。 この機能は、以下のコンテキストでサポートされています: +[標準アクション](properties_Action.md#標準アクション) を使って、ドロップダウンリストを自動的に構築することができます。この機能は、以下のコンテキストでサポートされています: -- `gotoPage` 標準アクションの使用。 この場合、4D は選択された項目の番号に対応する [フォームのページ](FormEditor/forms.md#フォームのページ) を自動的に表示します。 たとえば、ユーザーが 3番目の項目をクリックすると、4Dはカレントフォームの 3ページ目 (存在する場合) を表示します。 実行時のデフォルトでは、ドロップダウンリストにはページ番号 (1、2...)が表示されます。 +- `gotoPage` 標準アクションの使用。この場合、4D は選択された項目の番号に対応する [フォームのページ](FormEditor/forms.md#フォームのページ) を自動的に表示します。たとえば、ユーザーが 3番目の項目をクリックすると、4Dはカレントフォームの 3ページ目 (存在する場合) を表示します。実行時のデフォルトでは、ドロップダウンリストにはページ番号 (1、2...)が表示されます。 -- 項目のサブリストを表示する標準アクションの使用 (例: `backgroundColor`)。 この機能には以下の条件があります: +- 項目のサブリストを表示する標準アクションの使用 (例: `backgroundColor`)。この機能には以下の条件があります: - スタイル付きテキストエリア ([4D Write Pro エリア](writeProArea_overview.md) または [マルチスタイル](properties_Text.md#マルチスタイル) プロパティ付き [入力](input_overview.md)) が標準アクションのターゲットとしてフォーム内に存在する。 - - ドロップダウンリストに [フォーカス可](properties_Entry.md#フォーカス可) 設定されていない。 - 実行時のドロップダウンリストは、背景色などの値の自動リストを表示します。 この自動リストは、各項目が任意の標準アクションを割り当てられた選択リストを設定することで上書きすることもできます。 + - ドロップダウンリストに [フォーカス可](properties_Entry.md#フォーカス可) 設定されていない。実行時のドロップダウンリストは、背景色などの値の自動リストを表示します。この自動リストは、各項目が任意の標準アクションを割り当てられた選択リストを設定することで上書きすることもできます。 > この機能は、階層型のドロップダウンリストでは使用できません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md index 3660b47612ac30..cd88aa2ed49712 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/formObjects_overview.md @@ -3,25 +3,24 @@ id: formObjectsOverview title: フォームオブジェクト --- -フォーム上のオブジェクトを編集することで、アプリケーションのフォームを構築しカスタマイズします。 オブジェクトの追加・配置、オブジェクトプロパティの設定、入力規制の追加によるビジネスルールの強化、操作に対して自動実行されるオブジェクトメソッドの追加などをおこなうことができます。 +フォーム上のオブジェクトを編集することで、アプリケーションのフォームを構築しカスタマイズします。オブジェクトの追加・配置、オブジェクトプロパティの設定、入力規制の追加によるビジネスルールの強化、操作に対して自動実行されるオブジェクトメソッドの追加などをおこなうことができます。 ## アクティブオブジェクトとスタティックオブジェクト 4D フォームでは多くのビルトイン **アクティブ** オブジェクトおよび **スタティック** オブジェクトが提供されています: -- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。 アクティブオブジェクトの種類は、 アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 -- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。 アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。 しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 +- **アクティブオブジェクト** はインターフェース機能やデータベースタスクを実行します。アクティブオブジェクトの種類は、アクティブオブジェクトの種類は、 入力フィールド、コンボボックス、ドロップダウンリスト、ピクチャーボタンなど様々ですが、いずれもデータを表示したり、メモリに一時保存したり、ダイアログボックスを開く・レポートを印刷する・バックグラウンドプロセスを開始するなどの動作を実行したりします。 +- **スタティックオブジェクト** (線、枠、背景ピクチャー等) は一般的に、フォームのアピアランスやラベル、グラフィックインターフェースを設定するために使用されます。アクティブオブジェクトと異なり、スタティックオブジェクトには変数や式が割り当てられません。しかし、スタティックオブジェクトにダイナミックオブジェクトを挿入することは可能です。 ## オブジェクトの操作 4D フォームオブジェクトの追加や編集は次の方法でおこなえます: -- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。 次に、プロパティリストでオブジェクトのプロパティを指定します。 +- **[フォームエディター](FormEditor/formEditor.md):** ツールバーからオブジェクトをフォーム上にドラッグ&ドロップします。次に、プロパティリストでオブジェクトのプロパティを指定します。 - **4D ランゲージ**: [`OBJECT DUPLICATE`](../commands/object-duplicate) or [`OBJECT SET FONT STYLE`](../commands/object-set-font-style) などの、`Objects (Forms)` テーマのコマンドを使用することでフォームオブジェクトを作成し、定義することができます。 -- **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。 - 次はボタンオブジェクトの例です: +- **ダイナミックフォーム内の JSON コード:** JSON を使ってプロパティを定義します。 [type](properties_Object.md#type) プロパティでオブジェクトタイプを定義し、提供されている他の [プロパティ](properties_Reference.md) のうち必要なものを設定します。次はボタンオブジェクトの例です: ```json { @@ -48,7 +47,7 @@ COMMAND NAME( *object* : Variable, Field { ; *additional parameters* }) \* 引数を指定した場合、*object* 引数が[オブジェクト名](./properties_Object.md#オブジェクト名)(文字列)であることを指定します。 \* を渡さなかった場合、*object* 引数がフィールドまたは変数である、つまり[データソース](./properties_Object.md#variable-or-expression) であることを指定します。 -[オブジェクト名](./properties_Object.md#オブジェクト名) を使用する場合、@ 文字を名前内で使用することで、一度の呼び出しでフォーム内の複数のオブジェクトを指定することができます。 以下の表は、このコマンドで指定可能なオブジェクト名の一例を表しています。 +[オブジェクト名](./properties_Object.md#オブジェクト名) を使用する場合、@ 文字を名前内で使用することで、一度の呼び出しでフォーム内の複数のオブジェクトを指定することができます。以下の表は、このコマンドで指定可能なオブジェクト名の一例を表しています。 | オブジェクト名 | 呼び出しで影響を受けるオブジェクト | | --------------------------------- | ---------------------------------- | @@ -63,7 +62,7 @@ COMMAND NAME( *object* : Variable, Field { ; *additional parameters* }) :::warning -また@ が文字列内に含まれている場合に[@ 文字がどのように解釈されるかを設定](../settings/database.md#テキスト比較) ことができます。 このオプションはフォームオブジェクトコマンドの振る舞いに影響します。 +また@ が文字列内に含まれている場合に[@ 文字がどのように解釈されるかを設定](../settings/database.md#テキスト比較) ことができます。このオプションはフォームオブジェクトコマンドの振る舞いに影響します。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md index 5946e5937a569f..3ed26392230e59 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/input_overview.md @@ -3,19 +3,19 @@ id: inputOverview title: 入力 --- -入力オブジェクトを使って、データベースフィールド や [変数](Concepts/variables.md) といった式をフォーム上に追加することができます。 入力オブジェクトは文字ベースのデータ (テキスト、日付、数値など) およびピクチャー型のデータを扱えます。 +入力オブジェクトを使って、データベースフィールド や [変数](Concepts/variables.md) といった式をフォーム上に追加することができます。入力オブジェクトは文字ベースのデータ (テキスト、日付、数値など)およびピクチャー型のデータを扱えます。 ![](../assets/en/FormObjects/input.png) 入力オブジェクトにはの[変数あるいは式](Concepts/quick-tour.md#代入可-vs-代入不可の式)プロパティには 代入可、または代入不可の式 を設定することができます。 -また、入力オブジェクトは [入力可、または不可](properties_Entry.md#入力可) に設定することができます。 入力可に設定された入力オブジェクトはデータを受け入れます。 データ入力に対しては、データ入力制御を設定できます。 入力不可に設定された入力オブジェクトは、ユーザーの編集を受け付けず、値を表示するのみです。 +また、入力オブジェクトは [入力可、または不可](properties_Entry.md#入力可) に設定することができます。入力可に設定された入力オブジェクトはデータを受け入れます。データ入力に対しては、データ入力制御を設定できます。入力不可に設定された入力オブジェクトは、ユーザーの編集を受け付けず、値を表示するのみです。 データは、[オブジェクトメソッドやフォームメソッド](Concepts/methods.md)を使って管理することができます。 :::note -セキュリティ上の理由から、[マルチスタイル](./properties_Text.md#マルチスタイル) の入力エリアでは、別の4D アプリケーションや外部環境からフォーミュラがペーストされた際には、コピーした時点で取得可能な*計算された値*(テキストまたは画像)のみがペーストされます。 値が何も取得できない場合(例: フォーミュラが一度も計算されていないなど)、4D はフォーミュラのソースを標準テキストとしてペーストします。 +セキュリティ上の理由から、[マルチスタイル](./properties_Text.md#マルチスタイル) の入力エリアでは、別の4D アプリケーションや外部環境からフォーミュラがペーストされた際には、コピーした時点で取得可能な*計算された値*(テキストまたは画像)のみがペーストされます。値が何も取得できない場合(例: フォーミュラが一度も計算されていないなど)、4D はフォーミュラのソースを標準テキストとしてペーストします。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md index 9df8dbedabde33..3916bf13395492 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/list_overview.md @@ -7,13 +7,13 @@ title: 階層リスト ![](../assets/en/FormObjects/Hlist1.png) -展開/折りたたみアイコンは必要に応じて項目の左に自動的に表示されます。 階層リストのレベル数に制限はありません。 +展開/折りたたみアイコンは必要に応じて項目の左に自動的に表示されます。階層リストのレベル数に制限はありません。 ## 階層リストのデータソース 階層リストの中身は次の方法で初期化することができます: -- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。 選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 +- 既存の [選択リスト](properties_DataSource.md#選択リスト) を関連づけます。選択リストはあらかじめデザインモードにてリストエディターを使って定義します。 - 階層リスト参照を直接 [変数あるいは式](properties_Object.md#変数あるいは式) に設定します。 どちらの場合においても、階層リストはランタイムでは *ListRef* の参照を通して、4D ランゲージの[階層リスト](../commands/theme/Hierarchical_Lists) のコマンドを使用して管理します。 @@ -22,41 +22,39 @@ title: 階層リスト 階層リストはメモリ上に存在する **ランゲージオブジェクト** であると同時に **フォームオブジェクト** でもあります。 -**ランゲージオブジェクト** は倍長整数型のユニークな内部IDで参照されます (4D ランゲージリファレンスでは *ListRef* と表記)。 この ID はリストを作成する [`New list`](../commands/new-list)、[`Copy list`](../commands/copy-list)、[`Load list`](../commands/load-list)、[`BLOB to list`](../commands/blob-to-list) から返されます。 ランゲージオブジェクトのインスタンスはひとつのみしかメモリ中に存在せず、このオブジェクトに対しておこなわれた変更は、これを使用しているすべての場所に即座に反映されます。 +**ランゲージオブジェクト** は倍長整数型のユニークな内部IDで参照されます (4D ランゲージリファレンスでは *ListRef* と表記)。この ID はリストを作成する [`New list`](../commands/new-list)、[`Copy list`](../commands/copy-list)、[`Load list`](../commands/load-list)、[`BLOB to list`](../commands/blob-to-list) から返されます。ランゲージオブジェクトのインスタンスはひとつのみしかメモリ中に存在せず、このオブジェクトに対しておこなわれた変更は、これを使用しているすべての場所に即座に反映されます。 -**フォームオブジェクト** はユニークである必要はありません。同じフォームや異なるフォーム上で同一の階層リストを使用することができます。 他のフォームオブジェクト同様、ランゲージ中でオブジェクトを指定するにはシンタックス (\*;"ListName") を使用します。 +**フォームオブジェクト** はユニークである必要はありません。同じフォームや異なるフォーム上で同一の階層リストを使用することができます。他のフォームオブジェクト同様、ランゲージ中でオブジェクトを指定するにはシンタックス (\*;"ListName") を使用します。 -"ランゲージオブジェクト" としての階層リストと、"フォームオブジェクト" としての階層リストは、ListRef の値を格納した中間的な変数により接続されます。 たとえば、mylist [変数](properties_Object.md#変数あるいは式) をフォームオブジェクトに設定した場合には、次のように書けます: +"ランゲージオブジェクト" としての階層リストと、"フォームオブジェクト" としての階層リストは、ListRef の値を格納した中間的な変数により接続されます。たとえば、mylist [変数](properties_Object.md#変数あるいは式) をフォームオブジェクトに設定した場合には、次のように書けます: ```4d mylist:=New list ``` -特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。 以下の性質はリストフォームオブジェクトごとに固有のものです: +特定のリストを使用している複数のフォームオブジェクトがある場合、それらにはそれぞれに固有の性質と、それらの間で共有される性質を持ちます。以下の性質はリストフォームオブジェクトごとに固有のものです: - 選択された項目 - 項目の展開/折りたたみ状況 - スクロールカーソルの位置 -それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等) は他のリストフォームオブジェクトと共有され、個別に変更することはできません。 -したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば [`Count list items`](../commands/count-list-items) を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 +それ以外の性質 (フォント、フォントサイズ、スタイル、入力制御、カラー、リストの内容、アイコン等)は他のリストフォームオブジェクトと共有され、個別に変更することはできません。したがって、展開/折りたたみ状況に基づくコマンドやカレントの項目に関するコマンド、たとえば [`Count list items`](../commands/count-list-items) を (最後の `*` 引数を渡さずに) 使用するとき、どのフォームオブジェクトに対する処理なのかを明示的に指定することが重要です。 -メモリ中の階層リストを指定するには、ランゲージコマンドで `ListRef` IDを使用しなければなりません。 フォーム上の階層リストオブジェクトを指定する場合は、コマンド中でシンタックス (\*;"ListName") を用いてオブジェクト名 (文字列) を使用します。 +メモリ中の階層リストを指定するには、ランゲージコマンドで `ListRef` IDを使用しなければなりません。フォーム上の階層リストオブジェクトを指定する場合は、コマンド中でシンタックス (\*;"ListName") を用いてオブジェクト名 (文字列) を使用します。 -> フォームオブジェクト名に基づくシンタックスをプロパティ設定用のコマンドで使用することは、対象を指定オブジェクトに限定する意味ではなく、むしろ指定オブジェクトの状態に基づいてコマンドが動作することを意味します。 複数の階層リスト間で共有されている性質を変更すると、それらすべてに反映されます。 -> たとえば、次のコードを実行すると: +> フォームオブジェクト名に基づくシンタックスをプロパティ設定用のコマンドで使用することは、対象を指定オブジェクトに限定する意味ではなく、むしろ指定オブジェクトの状態に基づいてコマンドが動作することを意味します。複数の階層リスト間で共有されている性質を変更すると、それらすべてに反映されます。たとえば、次のコードを実行すると: ```4d SET LIST ITEM FONT(*;"mylist1";*;thefont) ``` -> ... *mylist1* フォームオブジェクトに関連付けられた階層リスト項目のフォントを変更します。 コマンドは *mylist1* オブジェクトの現在選択されている項目を対象としますが、変更はすべてのプロセスのすべてのリストに反映されます。 +> ... *mylist1* フォームオブジェクトに関連付けられた階層リスト項目のフォントを変更します。コマンドは *mylist1* オブジェクトの現在選択されている項目を対象としますが、変更はすべてのプロセスのすべてのリストに反映されます。 ### @をサポート -[他のオブジェクトプロパティ管理コマンド](../FormObjects/formObjects_overview.md#名前またはデータソースを使用してそのフォームオブジェクトに4Dランゲージでアクセスする) 同様、`ListName` 引数内で“@” 文字を使用することができます。 このシンタックスは、フォーム上の複数のオブジェクトを指定するために使用されます。 しかし階層リストコマンドのコンテキストにおいては、これはすべての場合に適用されるわけではありません。 コマンドのタイプにより、このシンタックスは 2つの異なる効果があります: +[他のオブジェクトプロパティ管理コマンド](../FormObjects/formObjects_overview.md#名前またはデータソースを使用してそのフォームオブジェクトに4Dランゲージでアクセスする) 同様、`ListName` 引数内で“@” 文字を使用することができます。このシンタックスは、フォーム上の複数のオブジェクトを指定するために使用されます。しかし階層リストコマンドのコンテキストにおいては、これはすべての場合に適用されるわけではありません。コマンドのタイプにより、このシンタックスは 2つの異なる効果があります: -- プロパティ設定用のコマンドにおいて、このシンタックスは該当する名前のオブジェクトを対象とします (標準の動作)。 たとえば、引数 "LH@" は、オブジェクト名が "LH" で始まる階層リストを指定します。 +- プロパティ設定用のコマンドにおいて、このシンタックスは該当する名前のオブジェクトを対象とします (標準の動作)。たとえば、引数 "LH@" は、オブジェクト名が "LH" で始まる階層リストを指定します。 - [`DELETE FROM LIST`](../commands/delete-from-list) - [`INSERT IN LIST`](../commands/insert-in-list) - [`SELECT LIST ITEMS BY POSITION`](../commands/select-list-items-by-position) @@ -80,7 +78,7 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ## 階層リストに対し利用できる汎用コマンド -いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。 これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 +いくつかの 4Dの汎用コマンドを使用して、フォーム上の階層リストオブジェクトの見た目を変更することができます。これらのコマンドには、\* を用いたシンタックスを使用して階層リストのオブジェクト名を渡すか、あるいは標準シンタックスを使用して階層リストの ListRef 参照を格納している変数を渡します。 - [`OBJECT SET FONT`](../commands/object-set-font) - [`OBJECT SET FONT STYLE`](../commands/object-set-font-style) @@ -95,45 +93,45 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) ## プロパティコマンドの優先順位 -階層リストの特定のプロパティ (たとえば **入力可** 属性やカラーなど) は、3つの異なる方法で設定することができます: デザインモードのプロパティリスト、"オブジェクトプロパティ" テーマのコマンド、"階層リスト" テーマのコマンド。 これら 3つの方法すべてを使ってプロパティを設定した場合、以下の優先順位が適用されます: +階層リストの特定のプロパティ (たとえば **入力可** 属性やカラーなど) は、3つの異なる方法で設定することができます: デザインモードのプロパティリスト、"オブジェクトプロパティ" テーマのコマンド、"階層リスト" テーマのコマンド。これら 3つの方法すべてを使ってプロパティを設定した場合、以下の優先順位が適用されます: 1. "階層リスト" テーマのコマンド 2. 汎用のオブジェクトプロパティコマンド 3. プロパティリストのパラメーター -この原則は、コマンドが呼び出された順番に関係なく適用されます。 階層リストコマンドを使用して個々に項目のプロパティを変更すると、同等のオブジェクトプロパティコマンドをそのあとに呼び出したとしても、その項目に対しては効果を持たなくなります。 たとえば [`SET LIST ITEM PROPERTIES`](../commands/set-list-item-properties) コマンドを使用して項目のカラーを変更すると、この項目に対して `OBJECT SET COLOR` コマンドは効果を持たなくなります。 +この原則は、コマンドが呼び出された順番に関係なく適用されます。階層リストコマンドを使用して個々に項目のプロパティを変更すると、同等のオブジェクトプロパティコマンドをそのあとに呼び出したとしても、その項目に対しては効果を持たなくなります。たとえば [`SET LIST ITEM PROPERTIES`](../commands/set-list-item-properties) コマンドを使用して項目のカラーを変更すると、この項目に対して `OBJECT SET COLOR` コマンドは効果を持たなくなります。 ## 位置あるいは参照による項目の管理 階層リストのコンテンツにアクセスするには、通常は位置または参照のいずれかを使用しておこないます。 -- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。 つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。 複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 -- 階層リストのそれぞれの項目は倍長整数型の参照番号 (*itemRef*) を持ちます。 この値は開発者が使うためのもので、4D は番号を維持するだけです。 これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 +- 位置を使用する場合には、4D は画面上に表示されているリスト項目の位置に基づいて項目を特定します。つまり、結果は階層項目が展開されているか折りたたまれているかにより異なります。複数のフォームオブジェクトで同一のリストを使用している場合、オブジェクトごとに展開/折りたたみの状態が異なることに注意が必要です。 +- 階層リストのそれぞれの項目は倍長整数型の参照番号 (*itemRef*) を持ちます。 この値は開発者が使うためのもので、4D は番号を維持するだけです。これにより、それぞれの項目を階層リスト中での位置や表示状態に関わらず特定できます。 ### 項目参照番号を使用する (itemRef) -階層リストのそれぞれの項目は倍長整数型の参照番号 (*itemRef*) を持ちます。 この値は開発者が使うためのもので、4D は番号を維持するだけです。 +階層リストのそれぞれの項目は倍長整数型の参照番号 (*itemRef*) を持ちます。この値は開発者が使うためのもので、4D は番号を維持するだけです。 -> 警告: どの倍長整数値も参照として使用できますが、0だけは特別な意味を持ちます。 このテーマのほとんどのコマンドで、0は最後にリストに追加された項目を指定するのに使用されます。 +> 警告: どの倍長整数値も参照として使用できますが、0だけは特別な意味を持ちます。このテーマのほとんどのコマンドで、0は最後にリストに追加された項目を指定するのに使用されます。 参照番号を使用するにあたり、いくつかの Tips を紹介します: 1. 項目をユニーク値で識別する必要がない場合 (初心者レベル) - - 最初の例として、アドレスブックで使用するタブシステムを構築するとします。 システムは選択されたタブの番号を返すので、それ以上の情報は必要ありません。 この場合、項目参照番号について心配する必要はありません。0以外の値を *itemRef* に渡します。 なお、アドレスブックシステムの場合、デザインモードで A-Z のリストを定義することもできる点に留意してください。 また、プログラムを使えば、レコードがない文字を除いたリストを作成することもできます。 - - 2つ目の例は、データベースを利用すると同時に蓄積していくタイプのキーワードリストを考えます。 このリストはセッション終了時に [`SAVE LIST`](../commands/save-list) や [`LIST TO BLOB`](../commands/list-to-blob) コマンドで保存され、セッション開始時に [`Load list`](../commands/load-list) や [`BLOB to list`](../commands/blob-to-list) コマンドで再度読み込まれます。 このリストをフローティングパレットに表示し、ユーザーがキーワードをクリックすると、最前面のプロセスの選択されたエリアに項目テキストが挿入されます。 重要なのは、[`Selected list items`](../commands/selected-list-items) コマンドは選択項目の位置を返すため、選択された項目のみを扱うということです。 この位置情報を [`GET LIST ITEM`](../commands/get-list-item) コマンドに渡せば、項目テキストが取得できます。 この例でも、個々の項目を識別する必要がないため、リスト構築の際は *itemRef* 引数に 0以外の任意の数値を渡すことができます。 + - 最初の例として、アドレスブックで使用するタブシステムを構築するとします。システムは選択されたタブの番号を返すので、それ以上の情報は必要ありません。この場合、項目参照番号について心配する必要はありません。0以外の値を *itemRef* に渡します。なお、アドレスブックシステムの場合、デザインモードで A-Z のリストを定義することもできる点に留意してください。また、プログラムを使えば、レコードがない文字を除いたリストを作成することもできます。 + - 2つ目の例は、データベースを利用すると同時に蓄積していくタイプのキーワードリストを考えます。このリストはセッション終了時に [`SAVE LIST`](../commands/save-list) や [`LIST TO BLOB`](../commands/list-to-blob) コマンドで保存され、セッション開始時に [`Load list`](../commands/load-list) や [`BLOB to list`](../commands/blob-to-list) コマンドで再度読み込まれます。このリストをフローティングパレットに表示し、ユーザーがキーワードをクリックすると、最前面のプロセスの選択されたエリアに項目テキストが挿入されます。重要なのは、[`Selected list items`](../commands/selected-list-items) コマンドは選択項目の位置を返すため、選択された項目のみを扱うということです。この位置情報を [`GET LIST ITEM`](../commands/get-list-item) コマンドに渡せば、項目テキストが取得できます。この例でも、個々の項目を識別する必要がないため、リスト構築の際は *itemRef* 引数に 0以外の任意の数値を渡すことができます。 2. 部分的にリスト項目を識別する必要がある場合 (中級者レベル) - その項目を処理する際に必要となる情報をあらかじめ項目参照番号に格納することができます。この例は [`APPEND TO LIST`](../commands/append-to-list) コマンドの例題で説明しています。 この例題では、項目参照番号にレコード番号を格納しています。 また、[Department] レコード由来の項目と [Employees] レコード由来の項目を区別する必要があり、この点も例題にて説明されています。 + その項目を処理する際に必要となる情報をあらかじめ項目参照番号に格納することができます。この例は [`APPEND TO LIST`](../commands/append-to-list) コマンドの例題で説明しています。この例題では、項目参照番号にレコード番号を格納しています。また、[Department] レコード由来の項目と [Employees] レコード由来の項目を区別する必要があり、この点も例題にて説明されています。 3. すべての項目リストを個々に識別する必要がある場合 (上級者レベル) - リストの全レベルにおいて、個々の項目を識別する必要のある複雑な階層リスト管理プログラムを作成する必要があるとします。 これを実装する簡単な方法は独自のカウンターを使用することです。 [`APPEND TO LIST`](../commands/append-to-list) コマンドを使用して *hlList* リストを作成するとします。 ここで *vhlCounter* 変数を1に初期化します。 [`APPEND TO LIST`](../commands/append-to-list) や [`INSERT IN LIST`](../commands/insert-in-list) を呼び出すたびに、このカウンターをインクリメントし `(vhlCounter:=vhlCounter+1)`、 カウンター値を項目参照番号に設定します。 項目を削除する場合でもカウンターをデクリメントしないことが重要です。 つまりカウンターは増え続けるのみです。 この方法で、ユニークな項目参照番号を保証できます。 番号は倍長整数型なので、20億以上の項目をリストに追加したり挿入したりできます (もっとも、こんなにも多くのデータを扱うのであれば、リストではなくテーブルを使用したほうが良いですが)。 + リストの全レベルにおいて、個々の項目を識別する必要のある複雑な階層リスト管理プログラムを作成する必要があるとします。これを実装する簡単な方法は独自のカウンターを使用することです。 [`APPEND TO LIST`](../commands/append-to-list) コマンドを使用して *hlList* リストを作成するとします。ここで *vhlCounter* 変数を1に初期化します。 [`APPEND TO LIST`](../commands/append-to-list) や [`INSERT IN LIST`](../commands/insert-in-list) を呼び出すたびに、このカウンターをインクリメントし `(vhlCounter:=vhlCounter+1)`、 カウンター値を項目参照番号に設定します。項目を削除する場合でもカウンターをデクリメントしないことが重要です。 つまりカウンターは増え続けるのみです。この方法で、ユニークな項目参照番号を保証できます。番号は倍長整数型なので、20億以上の項目をリストに追加したり挿入したりできます(もっとも、こんなにも多くのデータを扱うのであれば、リストではなくテーブルを使用したほうが良いですが)。 > ビットワイズ演算子を使用して、項目参照番号に情報を格納することもできます。 たとえば 2つの整数値、4バイト値、32個のブール値などです。 ### どのような場合にユニークな参照番号が必要ですか? -階層リストをユーザーインターフェースとして使用し、クリックまたはドラッグにより選択された項目のみを処理する場合は、ほとんどの場合項目参照番号を必要としません。 [`Selected list items`](../commands/selected-list-items) や [`GET LIST ITEM`](../commands/get-list-item) を使用すれば、現在選択されている項目を扱うことができます。 さらに [`INSERT IN LIST`](../commands/insert-in-list) や [`DELETE FROM LIST`](../commands/delete-from-list) などのコマンドは、選択された項目との相対位置でリストを操作できます。 +階層リストをユーザーインターフェースとして使用し、クリックまたはドラッグにより選択された項目のみを処理する場合は、ほとんどの場合項目参照番号を必要としません。 [`Selected list items`](../commands/selected-list-items) や [`GET LIST ITEM`](../commands/get-list-item) を使用すれば、現在選択されている項目を扱うことができます。さらに [`INSERT IN LIST`](../commands/insert-in-list) や [`DELETE FROM LIST`](../commands/delete-from-list) などのコマンドは、選択された項目との相対位置でリストを操作できます。 基本的に、項目の選択に関係なく、プログラムで任意のリスト項目にアクセスする必要がある場合に項目参照番号が必要です。 @@ -143,7 +141,7 @@ SET LIST ITEM FONT(*;"mylist1";*;thefont) - データソースに関わらず、階層リストフォームオブジェクト全体を [入力可](properties_Entry.md#入力可) プロパティで管理することができます。 -- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。 詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 +- また、リストエディターで作成したリストを用いて階層リストを生成する場合は、リストエディターの **編集可能項目** オプションを使用して、階層リストの項目の修正が可能かどうかを管理することができます。詳細については [リストプロパティの設定](https://doc.4d.com/4Dv20/4D/20.2/Setting-list-properties.300-6750359.ja.html#1350157) を参照してください。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-column.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-column.md index 5d298cde640c54..326f9bb60f50ac 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-column.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-column.md @@ -3,11 +3,11 @@ id: listbox-column title: リストボックス列 --- -リストボックスは、それぞれ固有のプロパティを持つ 1つ以上の列オブジェクトから構成されています。 列を選択するには、フォームエディターでリストボックスオブジェクトが選択されているときに任意の列をクリックします: +リストボックスは、それぞれ固有のプロパティを持つ 1つ以上の列オブジェクトから構成されています。列を選択するには、フォームエディターでリストボックスオブジェクトが選択されているときに任意の列をクリックします: ![](../assets/en/FormObjects/listbox_column.png) -リストボックスの各列毎に標準のプロパティ (テキスト、背景色など) を設定できます。設定すると、リストボックスに対する設定よりもこちらが優先されます。 +リストボックスの各列毎に標準のプロパティ (テキスト、背景色など)を設定できます。設定すると、リストボックスに対する設定よりもこちらが優先されます。 > 配列型リストボックスのカラムについては、[式タイプ](properties_Object.md#式の型-式タイプ) > (テキスト、数値、整数、ブール、ピクチャー、時間、日付、あるいはオブジェクト) を定義することができます。 @@ -18,34 +18,34 @@ title: リストボックス列 ## サポートされるフォームイベント {#supported-form-events} -| フォームイベント | 返される追加のプロパティ(主なプロパティについては[Form event](../commands/form-event) を参照してください) | コメント | -| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| On After Edit |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On After Keystroke |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On After Sort |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [headerName](./listbox-object.md#additional-properties)
    | *複合フォーミュラはソート不可
    (例: This.firstName + This.lastName)* | -| On Alternative Click |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | *配列リストボックスのみ* | -| On Before Data Entry |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On Before Keystroke |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On Begin Drag Over |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On Clicked |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On Column Moved |
    • [columnName](./listbox-object.md#additional-properties)
    • [newPosition](./listbox-object.md#additional-properties)
    • [oldPosition](./listbox-object.md#additional-properties)
    | | -| On Column Resize |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [newSize](./listbox-object.md#additional-properties)
    • [oldSize](./listbox-object.md#additional-properties)
    | | -| On Data Change |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On Double Clicked |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On Drag Over |
    • [area](./listbox-object.md#additional-properties)
    • [areaName](./listbox-object.md#additional-properties)
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On Drop |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | -| On Footer Click |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [footerName](./listbox-object.md#additional-properties)
    | *配列、カレントセレクション&命名セレクションリストボックスのみ* | -| On Getting Focus |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | *追加プロパティの取得はセル編集時のみ* | -| On Header Click |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [headerName](./listbox-object.md#additional-properties)
    | | -| On Load | | | -| On Losing Focus |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | *追加プロパティの取得はセル編集完了時のみ* | -| On Row Moved |
    • [newPosition](./listbox-object.md#additional-properties)
    • [oldPosition](./listbox-object.md#additional-properties)
    | *配列リストボックスのみ* | -| On Unload | | | -| On Validate | | | +| フォームイベント | 返される追加のプロパティ(主なプロパティについては[Form event](../commands/form-event) を参照してください) | コメント | +| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| On After Edit |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On After Keystroke |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On After Sort |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [headerName](./listbox-object.md#additional-properties)
    | *複合フォーミュラはソート不可
    (例: This.firstName + This.lastName)* | +| On Alternative Click |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | *配列リストボックスのみ* | +| On Before Data Entry |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On Before Keystroke |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On Begin Drag Over |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On Clicked |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On Column Moved |
    • [columnName](./listbox-object.md#additional-properties)
    • [newPosition](./listbox-object.md#additional-properties)
    • [oldPosition](./listbox-object.md#additional-properties)
    | | +| On Column Resize |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [newSize](./listbox-object.md#additional-properties)
    • [oldSize](./listbox-object.md#additional-properties)
    | | +| On Data Change |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On Double Clicked |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On Drag Over |
    • [area](./listbox-object.md#additional-properties)
    • [areaName](./listbox-object.md#additional-properties)
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On Drop |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | | +| On Footer Click |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [footerName](./listbox-object.md#additional-properties)
    | *配列、カレントセレクション&命名セレクションリストボックスのみ* | +| On Getting Focus |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | *追加プロパティの取得はセル編集時のみ* | +| On Header Click |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [headerName](./listbox-object.md#additional-properties)
    | | +| On Load | | | +| On Losing Focus |
    • [column](./listbox-object.md#additional-properties)
    • [columnName](./listbox-object.md#additional-properties)
    • [row](./listbox-object.md#additional-properties)
    | *追加プロパティの取得はセル編集完了時のみ* | +| On Row Moved |
    • [newPosition](./listbox-object.md#additional-properties)
    • [oldPosition](./listbox-object.md#additional-properties)
    | *配列リストボックスのみ* | +| On Unload | | | +| On Validate | | | ## オブジェクト配列の使用 -リストボックスのカラムはオブジェクト配列を扱えます。 オブジェクト配列は異なる種類のデータを格納できるので、この強力な機能を使用すれば、単一のカラム内の行ごとに異なる入力タイプを混ぜたり、様々なウィジェットを表示したりといったことができるようになります。 たとえば、最初の行にテキスト入力を挿入し、二行目にチェックボックスを、そして産業目にドロップダウンを挿入する、と言ったことが可能になります。 また、オブジェクト配列は、ボタンやカラーピッカーと言った新しいウィジェットへのアクセスも可能にします。 +リストボックスのカラムはオブジェクト配列を扱えます。オブジェクト配列は異なる種類のデータを格納できるので、この強力な機能を使用すれば、単一のカラム内の行ごとに異なる入力タイプを混ぜたり、様々なウィジェットを表示したりといったことができるようになります。たとえば、最初の行にテキスト入力を挿入し、二行目にチェックボックスを、そして産業目にドロップダウンを挿入する、と言ったことが可能になります。また、オブジェクト配列は、ボタンやカラーピッカーと言った新しいウィジェットへのアクセスも可能にします。 以下のリストボックスはオブジェクト配列を使用してデザインされました: @@ -53,19 +53,18 @@ title: リストボックス列 ### オブジェクト配列カラムの設定 -オブジェクト配列をリストボックスのカラムに割り当てるには、プロパティリスト (の "変数名" 欄) にオブジェクト配列名を設定するか、配列型のカラムのように [LISTBOX INSERT COLUMN](../commands/listbox-insert-column) コマンドを使用します。 プロパティリスト内では、カラムにおいて "式タイプ" にオブジェクトを選択できます: +オブジェクト配列をリストボックスのカラムに割り当てるには、プロパティリスト (の "変数名" 欄) にオブジェクト配列名を設定するか、配列型のカラムのように [LISTBOX INSERT COLUMN](../commands/listbox-insert-column) コマンドを使用します。プロパティリスト内では、カラムにおいて "式タイプ" にオブジェクトを選択できます: ![](../assets/en/FormObjects/listbox_column_objectArray_config.png) -オブジェクトカラムに対しては、座標、サイズ、スタイルなどに関連した標準のプロパティが使用可能です。 プロパティリストを使用して定義する方法のほかにも、オブジェクト型のリストボックスカラムのそれぞれの行に対してスタイル、フォントカラー、背景色、表示状態をプログラムで定義することもできます。 これらのタイプのカラムは非表示にすることも可能です。 +オブジェクトカラムに対しては、座標、サイズ、スタイルなどに関連した標準のプロパティが使用可能です。プロパティリストを使用して定義する方法のほかにも、オブジェクト型のリストボックスカラムのそれぞれの行に対してスタイル、フォントカラー、背景色、表示状態をプログラムで定義することもできます。これらのタイプのカラムは非表示にすることも可能です。 -しかしながら、データソーステーマは、オブジェクト型のリストボックスカラムに対しては選択できません。 実際、カラムの各セルの中身は、それに対応するオブジェクト配列の要素の属性に基づいています。 配列の各オブジェクト要素には、以下を定義できます: +しかしながら、データソーステーマは、オブジェクト型のリストボックスカラムに対しては選択できません。実際、カラムの各セルの中身は、それに対応するオブジェクト配列の要素の属性に基づいています。配列の各オブジェクト要素には、以下を定義できます: 値の型 (必須): テキスト、カラー、イベント、他
    -値そのもの (任意): 入力/出力に使用
    -セルの内容表示 (任意): ボタン、リスト、他
    +値そのもの (任意): 入力/出力に使用
    セルの内容表示 (任意): ボタン、リスト、他
    追加の設定 (任意): 値の型によります
    -これらのプロパティを定義するには、適切な属性をオブジェクト内に設定する必要があります (使用可能な属性は以下に一覧としてまとめてあります)。 たとえば、以下ような簡単なコードを使用してオブジェクトカラム内に "Hello World!" 書き込むことができます: +これらのプロパティを定義するには、適切な属性をオブジェクト内に設定する必要があります (使用可能な属性は以下に一覧としてまとめてあります)。たとえば、以下ような簡単なコードを使用してオブジェクトカラム内に "Hello World!" 書き込むことができます: ```4d ARRAY OBJECT(obColumn;0) //カラム配列 @@ -77,11 +76,11 @@ ARRAY OBJECT(obColumn;0) //カラム配列 ![](../assets/en/FormObjects/listbox_column_objectArray_helloWorld.png) -> 表示フォーマットと入力フィルターはオブジェクトカラムに対しては設定できません。 これらは値の型に応じて自動的に変わるからです。 +> 表示フォーマットと入力フィルターはオブジェクトカラムに対しては設定できません。これらは値の型に応じて自動的に変わるからです。 #### valueTypeとデータ表示 -リストボックスカラムにオブジェクト配列が割り当てられているとき、セルの表示・入力・編集の方法は、配列の要素の valueType 属性に基づきます。 次の valueType の値がサポートされています: +リストボックスカラムにオブジェクト配列が割り当てられているとき、セルの表示・入力・編集の方法は、配列の要素の valueType 属性に基づきます。次の valueType の値がサポートされています: - "text": テキスト値 - "real": セパレーターを含む数値。セパレーターの例: ``, `<.>`, `<,>` @@ -90,7 +89,7 @@ ARRAY OBJECT(obColumn;0) //カラム配列 - "color": 背景色を定義 - "event": ラベル付ボタンを表示 -4D は "valueType" の値に応じたデフォルトのウィジェットを使用します (つまり、"text" と設定すればテキスト入力ウィジェットが表示され、"boolean" と設定すればチェックボックスが表示されます)。 しかし、オプションを使用することによって表示方法の選択が可能な場合もあります (たとえば、"real" と設定した場合、ドロップダウンメニューとしても表示できます)。 以下の一覧はそれぞれの値の型に対してのデフォルトの表示方法と、他に選択可能な表示方の一覧を表しています: +4D は "valueType" の値に応じたデフォルトのウィジェットを使用します (つまり、"text" と設定すればテキスト入力ウィジェットが表示され、"boolean" と設定すればチェックボックスが表示されます)。 しかし、オプションを使用することによって表示方法の選択が可能な場合もあります (たとえば、"real" と設定した場合、ドロップダウンメニューとしても表示できます)。以下の一覧はそれぞれの値の型に対してのデフォルトの表示方法と、他に選択可能な表示方の一覧を表しています: | valueType | デフォルトのウィジェット | 他に選択可能なウィジェット | | --------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------- | @@ -106,7 +105,7 @@ ARRAY OBJECT(obColumn;0) //カラム配列 #### 表示フォーマットと入力フィルター -オブジェクト型のリストボックスのカラムにおいては、表示フォーマットと入力フィルターを設定することはできません。 これらは値の型に応じて自動的に定義されます。 どのように定義されるかについては、以下一覧にまとめてあります: +オブジェクト型のリストボックスのカラムにおいては、表示フォーマットと入力フィルターを設定することはできません。これらは値の型に応じて自動的に定義されます。どのように定義されるかについては、以下一覧にまとめてあります: | 値の型 | デフォルトのフォーマット | 入力コントロール | | ------- | ----------------------------------------------------------- | -------------------------------------- | @@ -123,7 +122,7 @@ ARRAY OBJECT(obColumn;0) //カラム配列 オブジェクト配列の各要素は、セルの中身とデータ表示を定義する一つ以上の属性を格納するオブジェクトです (上記の例を参照ください)。 -唯一必須の属性は "valueType" であり、サポートされる値は "text"、"real"、"integer"、"boolean"、"color" そして "event"です。 以下の表には、リストボックスオブジェクト配列において "valueType"の値に応じてサポートされるすべての属性がまとめてあります (他の属性はすべて無視されます)。 表示フォーマットに関しては、その更に下に詳細な説明と例があります。 +唯一必須の属性は "valueType" であり、サポートされる値は "text"、"real"、"integer"、"boolean"、"color" そして "event"です。以下の表には、リストボックスオブジェクト配列において "valueType"の値に応じてサポートされるすべての属性がまとめてあります (他の属性はすべて無視されます)。表示フォーマットに関しては、その更に下に詳細な説明と例があります。 | | valueType | text | real | integer | boolean | color | event | | --------------------- | ------------------------------------------- | ---- | ---- | ------- | ------- | ----- | ----- | @@ -147,7 +146,7 @@ ARRAY OBJECT(obColumn;0) //カラム配列 #### value -セルの値は "value" 属性に保存されています。 この属性は入力と出力に使用されるほか、 リストを使用する際のデフォルト値を定義するのにも使用できます (以下参照)。 +セルの値は "value" 属性に保存されています。この属性は入力と出力に使用されるほか、リストを使用する際のデフォルト値を定義するのにも使用できます (以下参照)。 ```4d ARRAY OBJECT(obColumn;0) //カラム配列 @@ -175,7 +174,7 @@ ARRAY OBJECT(obColumn;0) //カラム配列 "valueType" が"real" または "integer" であるとき、min と max 属性もオブジェクトに設定できます (値は適切な範囲で、かつ、valueType と同じ型である必要があります)。 -これらの属性を使用すると入力値の範囲を管理することができます。 セルが評価されたとき (フォーカスを失ったとき)、入力された値が min の値より低い場合、または max の値より大きい場合には、その値は拒否されます。 この場合、入力をする前の値が保持され、tip として説明が表示されます。 +これらの属性を使用すると入力値の範囲を管理することができます。セルが評価されたとき (フォーカスを失ったとき)、入力された値が min の値より低い場合、または max の値より大きい場合には、その値は拒否されます。この場合、入力をする前の値が保持され、tip として説明が表示されます。 ```4d var $ob3 : Object @@ -211,16 +210,16 @@ behavior 属性は、値の通常の表示とは異なる表示方法を提供 "choiceList" または "requiredList" 属性がオブジェクト内に存在しているとき、テキスト入力は以下の属性に応じて、ドロップダウンリストまたはコンボボックスで置き換えられます: -- 属性が "choiceList" の場合、セルはコンボボックスとして表示されます。 これはつまり、ユーザーは値を選択、または入力できるということです。 +- 属性が "choiceList" の場合、セルはコンボボックスとして表示されます。これはつまり、ユーザーは値を選択、または入力できるということです。 - 属性が "requiredList" の場合、セルはドロップダウンリストとして表示されます。 これはつまり、ユーザーはリストに提供されている値からどれか一つを選択するしかないということです。 どちらの場合においても、"value" 属性を使用してウィジェット内の値を事前に選択することができます。 -> ウィジェットの値は配列を通して定義されます。 既存の 4Dリストをウィジェットに割り当てたい場合、"requiredListReference"、"requiredListName"、"choiceListReference"、または "choiceListName" 属性を使用する必要があります。 +> ウィジェットの値は配列を通して定義されます。既存の 4Dリストをウィジェットに割り当てたい場合、"requiredListReference"、"requiredListName"、"choiceListReference"、または "choiceListName" 属性を使用する必要があります。 例: -- 選択肢が二つ ("Open" または "Closed") しかないドロップダウンリストを表示したい場合を考えます。 デフォルトでは "Closed" が選択された状態にしたいとします: +- 選択肢が二つ ("Open" または "Closed") しかないドロップダウンリストを表示したい場合を考えます。デフォルトでは "Closed" が選択された状態にしたいとします: ```4d ARRAY TEXT($RequiredList;0) @@ -253,9 +252,9 @@ behavior 属性は、値の通常の表示とは異なる表示方法を提供 #### requiredListName と requiredListReference -"requiredListName" と "requiredListReference" 属性を使用すると、デザインモード (ツールボックス内) またはプログラミングによって (New list コマンドを使用して) 4Dで定義されたリストをリストボックスセル内において使用することが出来るようになります。 セルはドロップダウンリストとして表示されるようになります。 これはつまり、ユーザーはリスト内に提供された値のどれか一つのみを選択できるということを意味します。 +"requiredListName" と "requiredListReference" 属性を使用すると、デザインモード (ツールボックス内) またはプログラミングによって (New list コマンドを使用して) 4Dで定義されたリストをリストボックスセル内において使用することが出来るようになります。セルはドロップダウンリストとして表示されるようになります。これはつまり、ユーザーはリスト内に提供された値のどれか一つのみを選択できるということを意味します。 -"requiredListName" または "requiredListReference" は、リストの作成元に応じて使い分けます。 リストがツールボックスで作成された場合、リスト名を渡します。 リストがプログラミングによって定義された場合は、リストの参照を渡します。 どちらの場合においても、"value" 属性を使用してウィジェット内の値を事前に選択することができます。 +"requiredListName" または "requiredListReference" は、リストの作成元に応じて使い分けます。 リストがツールボックスで作成された場合、リスト名を渡します。 リストがプログラミングによって定義された場合は、リストの参照を渡します。どちらの場合においても、"value" 属性を使用してウィジェット内の値を事前に選択することができます。 > - これらの値を単純な配列を通して定義したい場合は、"requiredList" 属性を使用する必要があります。 > - リストが実数値を表すテキストを含んでいる場合、小数点はローカル設定に関わらず、ピリオド (".") である必要があります。 例: "17.6" "1234.456" @@ -295,9 +294,9 @@ behavior 属性は、値の通常の表示とは異なる表示方法を提供 #### choiceListName と choiceListReference -"choiceListName" と "choiceListReference" 属性を使用すると、デザインモード (ツールボックス内) またはプログラミングによって (New list コマンドを使用して) 4Dで定義されたリストをリストボックスセル内において使用することが出来るようになります。 セルはコンボボックスとして表示されるようになります。 これはつまり、ユーザーは値を選択、または入力できるということを意味します。 +"choiceListName" と "choiceListReference" 属性を使用すると、デザインモード (ツールボックス内) またはプログラミングによって (New list コマンドを使用して) 4Dで定義されたリストをリストボックスセル内において使用することが出来るようになります。セルはコンボボックスとして表示されるようになります。 これはつまり、ユーザーは値を選択、または入力できるということを意味します。 -"choiceListName" または "choiceListReference" は、リストの作成元に応じて使い分けます。 リストがツールボックスで作成された場合、リスト名を渡しま す。 リストがプログラミングによって定義された場合は、リストの参照を渡します。 どちらの場合においても、"value" 属性を使用してウィジェット内の値を事前に選択することができます。 +"choiceListName" または "choiceListReference" は、リストの作成元に応じて使い分けます。 リストがツールボックスで作成された場合、リスト名を渡しま す。 リストがプログラミングによって定義された場合は、リストの参照を渡します。どちらの場合においても、"value" 属性を使用してウィジェット内の値を事前に選択することができます。 > - これらの値を単純な配列を通して定義したい場合は、"choiceList" 属性を使用する必要があります。 > - リストが実数値を表すテキストを含んでいる場合、小数点はローカル設定に関わらず、ピリオド (".") である必要があります。 例: "17.6" "1234.456" @@ -322,9 +321,9 @@ behavior 属性は、値の通常の表示とは異なる表示方法を提供 特定の値を使用することで、セルの値に関連した単位を追加することができます (*例*: "10 cm", "20 pixels" 等)。 単位リストを定義するためには、以下の属性のどれか一つを使用します: 単位リストを定義するためには、以下の属性のどれか一つを使用します: -- "unitsList": 利用可能な単位 (例: "cm"、"inches"、"km"、"miles"、他) を定義するのに使用する x 要素を格納した配列。 オブジェクト内で単位を定義するためには、この属性を使用します。 +- "unitsList": 利用可能な単位 (例: "cm"、"inches"、"km"、"miles"、他) を定義するのに使用する x 要素を格納した配列。オブジェクト内で単位を定義するためには、この属性を使用します。 - "unitsListReference": 利用可能な単位を含んだ 4Dリストへの参照。 [`New list`](../commands/new-list) コマンドで作成された 4D リストで単位を定義するためには、この属性を使用します。 -- "unitsListName": 利用可能な単位を含んだデザインモードで作成された 4Dリスト名。 ツールボックスで作成された 4Dリストで単位を定義するためには、この属性を使用します。 +- "unitsListName": 利用可能な単位を含んだデザインモードで作成された 4Dリスト名。ツールボックスで作成された 4Dリストで単位を定義するためには、この属性を使用します。 単位リストが定義された方法に関わらず、以下の属性を関連付けることができます: @@ -334,7 +333,7 @@ behavior 属性は、値の通常の表示とは異なる表示方法を提供 例: -数値の入力と、その後に可能性のある二つの単位 ("lines" または "pixels") を続けて表示したい場合を考えます。 カレントの値は "2" + "lines" と、 オブジェクト内で直接定義された値 ("unitsList" 属性) を使用するものとします: +数値の入力と、その後に可能性のある二つの単位 ("lines" または "pixels") を続けて表示したい場合を考えます。カレントの値は "2" + "lines" と、オブジェクト内で直接定義された値 ("unitsList" 属性) を使用するものとします: ```4d ARRAY TEXT($_units;0) @@ -351,7 +350,7 @@ OB SET ARRAY($ob;"unitsList";$_units) #### alternateButton -セルに省略ボタン [...] を追加したい場合、"alternateButton" 属性に true の値を入れてオブジェクトに渡すだけです。 省略ボタンは自動的にセル内に表示されます。 +セルに省略ボタン [...] を追加したい場合、"alternateButton" 属性に true の値を入れてオブジェクトに渡すだけです。省略ボタンは自動的にセル内に表示されます。 このボタンがユーザーによってクリックされた場合、`On Alternate Click` イベントが生成され、そのイベントを自由に管理することができます (詳細な情報に関しては [イベント管理](#イベント管理) の章を参照ください)。 @@ -371,7 +370,7 @@ OB SET($ob;"value";$entry) "color" valueType を使用すると、色、または色を表すテキストを表示することができます。 -- 値が数字の場合、色付けされた長方形がセル内に表示されます。 例: +- 値が数字の場合、色付けされた長方形がセル内に表示されます。例: ```4d var $ob4 : Object @@ -385,7 +384,7 @@ OB SET($ob;"value";$entry) #### event valueType -"event" valueType を使用すると、クリックした際に `On Clicked` イベントを生成する単純なボタンを表示します。 データまたは値を渡す/返すことはできません。 +"event" valueType を使用すると、クリックした際に `On Clicked` イベントを生成する単純なボタンを表示します。データまたは値を渡す/返すことはできません。 オプションとして、"label" 属性を渡すことができます。 @@ -409,6 +408,6 @@ OB SET($ob;"label";"Edit...") - コンボボックスエリア - 単位ボタン (値 x が値 x+1 へとスイッチしたとき) - チェックボックス (チェック/チェックなしの状態がスイッチしたとき) -- **On Clicked**: ユーザーが、"event" *valueType* 属性を使用して実装されたボタンをクリックした場合、`On Clicked` イベントが生成されます。 このイベントはプログラマーによって管理されます。 -- **On Alternative Click**: ユーザーが省略ボタン ("alternateButton" 属性) をクリックした場合、`On Alternative Click` イベントが生成されます。 このイベントはプログラマーによって管理されます。 +- **On Clicked**: ユーザーが、"event" *valueType* 属性を使用して実装されたボタンをクリックした場合、`On Clicked` イベントが生成されます。このイベントはプログラマーによって管理されます。 +- **On Alternative Click**: ユーザーが省略ボタン ("alternateButton" 属性) をクリックした場合、`On Alternative Click` イベントが生成されます。このイベントはプログラマーによって管理されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-header-footer.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-header-footer.md index e5cf334f84c33f..28bad71f29f7bb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-header-footer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-header-footer.md @@ -18,13 +18,13 @@ title: リストボックスのヘッダーとフッター リストボックスの各列ヘッダー毎に標準のテキストプロパティを設定できます。 設定すると、これらのプロパティの方がリストボックスや列に対する設定よりも優先されます。 -さらに、ヘッダー特有のプロパティを設定することができます。 [カスタマイズされた並び替え](./listbox_overview.md#ソートの管理) などの用途に、ヘッダーの列タイトルの隣、あるいはタイトルの代わりにアイコンを表示することができます。 +さらに、ヘッダー特有のプロパティを設定することができます。[カスタマイズされた並び替え](./listbox_overview.md#ソートの管理) などの用途に、ヘッダーの列タイトルの隣、あるいはタイトルの代わりにアイコンを表示することができます。 ![](../assets/en/FormObjects/lbHeaderIcon.png) ランタイムにおいてヘッダーで発生したイベントは、その列のオブジェクトメソッド が受け取ります。 -ヘッダーに [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのヘッダーが対象になります。 たとえば、`OBJECT SET VISIBLE(*;"header3";False)` という命令の場合、指定したヘッダーだけではなく、*header3* が属するリストボックスの全ヘッダーを非表示にします。 +ヘッダーに [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのヘッダーが対象になります。たとえば、`OBJECT SET VISIBLE(*;"header3";False)` という命令の場合、指定したヘッダーだけではなく、*header3* が属するリストボックスの全ヘッダーを非表示にします。 ### ヘッダー特有のプロパティ @@ -48,17 +48,17 @@ title: リストボックスのヘッダーとフッター ## フッター -リストボックスは、追加の情報を表示するための入力を受け付けない "フッター" を持つことができます。 表形式で表示されるデータについて、合計や平均などの計算値を表示するためにフッターは通常使用されます。 +リストボックスは、追加の情報を表示するための入力を受け付けない "フッター" を持つことができます。表形式で表示されるデータについて、合計や平均などの計算値を表示するためにフッターは通常使用されます。 フッターが表示されていれば、フォームエディターでリストボックスオブジェクトが選択されているときにフッターをクリックすることで選択できます: ![](../assets/en/FormObjects/listbox_footers.png) -リストボックスの各列フッター毎に標準のテキストプロパティを設定できます。設定すると、こちらのプロパティの方がリストボックスや列に対する設定よりも優先されます。 さらに、フッター特有のプロパティを設定することができます。 [カスタムまたは自動計算](properties_Object.md#変数の計算) をフッターに挿入することができます。 +リストボックスの各列フッター毎に標準のテキストプロパティを設定できます。設定すると、こちらのプロパティの方がリストボックスや列に対する設定よりも優先されます。さらに、フッター特有のプロパティを設定することができます。[カスタムまたは自動計算](properties_Object.md#変数の計算) をフッターに挿入することができます。 ランタイムにおいてフッターで発生したイベントは、その列のオブジェクトメソッド が受け取ります。 -フッターに [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのフッターが対象になります。 たとえば、`OBJECT SET VISIBLE(*;"footer3";False)` という命令の場合、指定したフッターだけではなく、*footer3* が属するリストボックスの全フッターを非表示にします。 +フッターに [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用すると、このコマンドに渡した引数に関わらず、そのリストボックスのすべてのフッターが対象になります。たとえば、`OBJECT SET VISIBLE(*;"footer3";False)` という命令の場合、指定したフッターだけではなく、*footer3* が属するリストボックスの全フッターを非表示にします。 ### フッター特有のプロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-object.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-object.md index bd82966c518be4..45d1089da1872e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-object.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox-object.md @@ -5,14 +5,13 @@ title: リストボックスオブジェクト ## 配列リストボックス -配列リストボックスでは、それぞれの列に 4D の 1次元配列を割り当てなければなりません。 ポインター配列を除きすべてのタイプの配列を使用できま す。 行数は配列の要素数により決定されます。 +配列リストボックスでは、それぞれの列に 4D の 1次元配列を割り当てなければなりません。 ポインター配列を除きすべてのタイプの配列を使用できま す。行数は配列の要素数により決定されます。 -デフォルトで 4D は各列に “ColumnX” という名前を割り当てます。 これは他のカラムプロパティ同様、 [カラムプロパティ](./listbox-column.md) 内で変更することができます。 それぞれのカラムにおける表示フォーマットは、 [`OBJECT SET FORMAT`](../commands/object-set-format) コマンドを使用することで定義することもできます。 +デフォルトで 4D は各列に “ColumnX” という名前を割り当てます。これは他のカラムプロパティ同様、 [カラムプロパティ](./listbox-column.md) 内で変更することができます。それぞれのカラムにおける表示フォーマットは、 [`OBJECT SET FORMAT`](../commands/object-set-format) コマンドを使用することで定義することもできます。 > 配列タイプのリストボックスは、特別なメカニズムをもつ [階層モード](listbox_overview.md#階層リストボックス) で表示することができます。 -配列タイプのリストボックスでは、入力あるいは表示される値は 4Dランゲージで制御します。 カラムに [選択リスト](properties_DataSource.md#選択リスト) を割り当てて、データ入力を制御することもできます。 -リストボックスのハイレベルコマンド ([`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) や [`LISTBOX DELETE ROWS`](../commands/listbox-delete-rows) 等) や配列操作コマンドを使用して、カラムの値を管理します。 たとえば、列の内容を初期化するには、以下の命令を使用できます: +配列タイプのリストボックスでは、入力あるいは表示される値は 4Dランゲージで制御します。カラムに [選択リスト](properties_DataSource.md#選択リスト) を割り当てて、データ入力を制御することもできます。リストボックスのハイレベルコマンド ([`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) や [`LISTBOX DELETE ROWS`](../commands/listbox-delete-rows) 等) や配列操作コマンドを使用して、カラムの値を管理します。たとえば、列の内容を初期化するには、以下の命令を使用できます: ```4d ARRAY TEXT(varCol;size) @@ -24,31 +23,31 @@ ARRAY TEXT(varCol;size) LIST TO ARRAY("ListName";varCol) ``` -> **警告**: 異なる配列サイズの列がリストボックスに含まれる場合、もっとも小さい配列サイズの数だけを表示します。 そのため、各配列の要素数は同じにしなければなりません。 リストボックスの列が一つでも空の場合 (ランゲージにより配列が正しく定義またはサイズ設定されなかったときに発生します)、リストボックスは何も表示しません。 +> **警告**: 異なる配列サイズの列がリストボックスに含まれる場合、もっとも小さい配列サイズの数だけを表示します。そのため、各配列の要素数は同じにしなければなりません。リストボックスの列が一つでも空の場合 (ランゲージにより配列が正しく定義またはサイズ設定されなかったときに発生します)、リストボックスは何も表示しません。 ## セレクションリストボックス -このタイプのリストボックスでは、列ごとにフィールド (例: `[Employees]LastName`) や式を割り当てます。 式は 1つ以上のフィールド (たとえば `[Employees]FirstName+“ ”[Employees]LastName`) または単にフォーミュラ (たとえば `String(Milliseconds)`) を使用できます。 式にはプロジェクトメソッド、変数、あるいは配列項目も指定できます。 また[`LISTBOX SET COLUMN FORMULA`](../commands/listbox-set-column-formula) や [`LISTBOX INSERT COLUMN FORMULA`](../commands/listbox-insert-column-formula) コマンドを使用して、カラムをプログラムで変更することもできます。 +このタイプのリストボックスでは、列ごとにフィールド (例: `[Employees]LastName`) や式を割り当てます。式は 1つ以上のフィールド (たとえば `[Employees]FirstName+“ ”[Employees]LastName`) または単にフォーミュラ (たとえば `String(Milliseconds)`) を使用できます。式にはプロジェクトメソッド、変数、あるいは配列項目も指定できます。また[`LISTBOX SET COLUMN FORMULA`](../commands/listbox-set-column-formula) や [`LISTBOX INSERT COLUMN FORMULA`](../commands/listbox-insert-column-formula) コマンドを使用して、カラムをプログラムで変更することもできます。 それぞれの行はセレクションのレコードを基に評価されます。セレクションは **カレントセレクション** または **命名セレクション**です。 -デー タソースがカレントセレクションである場合、データベースに対しておこなわれた変更はリストボックスに自動で反映され、またリストボックスへの変更も自動で データベースに適用されます。 つまりカレントセレクションは常に両方で同じです。 +デー タソースがカレントセレクションである場合、データベースに対しておこなわれた変更はリストボックスに自動で反映され、またリストボックスへの変更も自動で データベースに適用されます。つまりカレントセレクションは常に両方で同じです。 ## コレクションまたはエンティティセレクションリストボックス -このタイプのリストボックスでは、各カラムに式が割り当てられている必要があります。 各行の中身はコレクション要素ごと、あるいはエンティティセレクションのエンティティごとに評価されます。 +このタイプのリストボックスでは、各カラムに式が割り当てられている必要があります。各行の中身はコレクション要素ごと、あるいはエンティティセレクションのエンティティごとに評価されます。 -コレクションの各要素、またはエンティティセレクションの各エンティティは、[This](../Concepts/classes.md#this) キーワードを用いてオブジェクトとして取得します。 カラムの式にはプロパティパス、プロジェクトメソッド、変数、あるいはフォーミュラが指定可能で、`This` を通して得た各エンティティあるいはコレクション要素オブジェクトが利用できます。例: `This.` (あるいはスカラー値のコレクションの場合は `This.value`)。 `(あるいはスカラー値のコレクションの場合は`This.value`)。 カラムをプログラムで変更するには、`LISTBOX SET COLUMN FORMULA`および`LISTBOX INSERT COLUMN FORMULA\` コマンドを使用します。 +コレクションの各要素、またはエンティティセレクションの各エンティティは、[This](../Concepts/classes.md#this) キーワードを用いてオブジェクトとして取得します。カラムの式にはプロパティパス、プロジェクトメソッド、変数、あるいはフォーミュラが指定可能で、`This` を通して得た各エンティティあるいはコレクション要素オブジェクトが利用できます。例: `This.` (あるいはスカラー値のコレクションの場合は `This.value`)。 `(あるいはスカラー値のコレクションの場合は`This.value`)。 カラムをプログラムで変更するには、`LISTBOX SET COLUMN FORMULA`および`LISTBOX INSERT COLUMN FORMULA\` コマンドを使用します。 -データソースがエンティティセレクションの場合、リストボックス側に対しておこなった変更は自動的にデータベースに保存されます。 その一方で、データベース側に対しておこなった変更は、該当エンティティがリロードされてはじめてリストボックス側に反映されます。 +データソースがエンティティセレクションの場合、リストボックス側に対しておこなった変更は自動的にデータベースに保存されます。その一方で、データベース側に対しておこなった変更は、該当エンティティがリロードされてはじめてリストボックス側に反映されます。 :::note -エンティティが削除されると、その参照は *undefined* の値とともにエンティティセレクションに 残り、リストボックスには空白の行が表示されます。 この場合、[`.clean()`](API/EntitySelectionClass.md#clean) 関数を呼び出すことで、削除されたエンティティ参照が含まれないエンティティセレクションを新規に取得することができます。 +エンティティが削除されると、その参照は *undefined* の値とともにエンティティセレクションに 残り、リストボックスには空白の行が表示されます。この場合、[`.clean()`](API/EntitySelectionClass.md#clean) 関数を呼び出すことで、削除されたエンティティ参照が含まれないエンティティセレクションを新規に取得することができます。 ::: -データソースがコレクションの場合、リストボックス内の値に変更をおこなった場合、その変更はコレクションにも反映されます。 その一方で、コレクションに対して、たとえば [Collection クラス](../API/CollectionClass.md)の様々な関数を使用して変更をおこなった場合、コレクション変数を自らに再代入することにより明示的に 4D に通知する必要があり、それによってリストボックスのコンテンツは更新されます。 例: +データソースがコレクションの場合、リストボックス内の値に変更をおこなった場合、その変更はコレクションにも反映されます。その一方で、コレクションに対して、たとえば [Collection クラス](../API/CollectionClass.md)の様々な関数を使用して変更をおこなった場合、コレクション変数を自らに再代入することにより明示的に 4D に通知する必要があり、それによってリストボックスのコンテンツは更新されます。例: ```4d myCol:=myCol.push("new value") // リストボックスに new value を表示 @@ -137,41 +136,41 @@ myCol:=myCol.push("new value") // リストボックスに new value を表示 ## サポートされるフォームイベント {#supported-form-events} -| フォームイベント | 返される追加のプロパティ(主なプロパティについては[Form event](../commands/form-event) を参照してください) | コメント | -| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| On After Edit |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On After Keystroke |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On After Sort |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [headerName](#additional-properties)
    | *複合フォーミュラはソート不可
    (例: This.firstName + This.lastName)* | -| On Alternative Click |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *配列リストボックスのみ* | -| On Before Data Entry |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Before Keystroke |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Begin Drag Over |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Clicked |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Close Detail |
    • [row](#additional-properties)
    | *カレントセレクション&命名セレクションリストボックスのみ* | -| On Collapse |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *階層リストボックスのみ* | -| On Column Moved |
    • [columnName](#additional-properties)
    • [newPosition](#additional-properties)
    • [oldPosition](#additional-properties)
    | | -| On Column Resize |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [newSize](#additional-properties)
    • [oldSize](#additional-properties)
    | | -| On Data Change |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Delete Action |
    • [row](#additional-properties)
    | | -| On Display Detail |
    • [isRowSelected](#additional-properties)
    • [row](#additional-properties)
    | | -| On Double Clicked |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Drag Over |
    • [area](#additional-properties)
    • [areaName](#additional-properties)
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Drop |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Expand |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *階層リストボックスのみ* | -| On Footer Click |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [footerName](#additional-properties)
    | *配列、カレントセレクション&命名セレクションリストボックスのみ* | -| On Getting Focus |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *追加プロパティの取得はセル編集時のみ* | -| On Header Click |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [headerName](#additional-properties)
    | | -| On Load | | | -| On Losing Focus |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *追加プロパティの取得はセル編集完了時のみ* | -| On Mouse Enter |
    • [area](#additional-properties)
    • [areaName](#additional-properties)
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Mouse Leave | | | -| On Mouse Move |
    • [area](#additional-properties)
    • [areaName](#additional-properties)
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | -| On Open Detail |
    • [row](#additional-properties)
    | *カレントセレクション&命名セレクションリストボックスのみ* | -| On Row Moved |
    • [newPosition](#additional-properties)
    • [oldPosition](#additional-properties)
    | *配列リストボックスのみ* | -| On Scroll |
    • [horizontalScroll](#additional-properties)
    • [verticalScroll](#additional-properties)
    | | -| On Selection Change | | | -| On Unload | | | -| On Validate | | | +| フォームイベント | 返される追加のプロパティ(主なプロパティについては[Form event](../commands/form-event) を参照してください) | コメント | +| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| On After Edit |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On After Keystroke |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On After Sort |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [headerName](#additional-properties)
    | *複合フォーミュラはソート不可
    (例: This.firstName + This.lastName)* | +| On Alternative Click |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *配列リストボックスのみ* | +| On Before Data Entry |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Before Keystroke |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Begin Drag Over |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Clicked |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Close Detail |
    • [row](#additional-properties)
    | *カレントセレクション&命名セレクションリストボックスのみ* | +| On Collapse |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *階層リストボックスのみ* | +| On Column Moved |
    • [columnName](#additional-properties)
    • [newPosition](#additional-properties)
    • [oldPosition](#additional-properties)
    | | +| On Column Resize |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [newSize](#additional-properties)
    • [oldSize](#additional-properties)
    | | +| On Data Change |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Delete Action |
    • [row](#additional-properties)
    | | +| On Display Detail |
    • [isRowSelected](#additional-properties)
    • [row](#additional-properties)
    | | +| On Double Clicked |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Drag Over |
    • [area](#additional-properties)
    • [areaName](#additional-properties)
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Drop |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Expand |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *階層リストボックスのみ* | +| On Footer Click |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [footerName](#additional-properties)
    | *配列、カレントセレクション&命名セレクションリストボックスのみ* | +| On Getting Focus |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *追加プロパティの取得はセル編集時のみ* | +| On Header Click |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [headerName](#additional-properties)
    | | +| On Load | | | +| On Losing Focus |
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | *追加プロパティの取得はセル編集完了時のみ* | +| On Mouse Enter |
    • [area](#additional-properties)
    • [areaName](#additional-properties)
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Mouse Leave | | | +| On Mouse Move |
    • [area](#additional-properties)
    • [areaName](#additional-properties)
    • [column](#additional-properties)
    • [columnName](#additional-properties)
    • [row](#additional-properties)
    | | +| On Open Detail |
    • [row](#additional-properties)
    | *カレントセレクション&命名セレクションリストボックスのみ* | +| On Row Moved |
    • [newPosition](#additional-properties)
    • [oldPosition](#additional-properties)
    | *配列リストボックスのみ* | +| On Scroll |
    • [horizontalScroll](#additional-properties)
    • [verticalScroll](#additional-properties)
    | | +| On Selection Change | | | +| On Unload | | | +| On Validate | | | ### 追加プロパティ {#additional-properties} diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md index 96f52fc344edca..7e983c49abcf23 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md @@ -3,25 +3,25 @@ id: listboxOverview title: リストボックス --- -リストボックスは複合アクティブオブジェクトで、同期化された複数列 (カラムとも呼びます) の形式でデータの表示・入力がおこなえます。 リストボックスは、エンティティセレクションやレコードセレクションなどのデータベースコンテンツのほか、コレクションや配列などのランゲージコンテンツと紐づけることができます。 データ入力、列の並べ替え、イベント管理、外観のカスタマイズ、 列の移動など、リストボックスには高度な機能が備わっています。 +リストボックスは複合アクティブオブジェクトで、同期化された複数列 (カラムとも呼びます) の形式でデータの表示・入力がおこなえます。リストボックスは、エンティティセレクションやレコードセレクションなどのデータベースコンテンツのほか、コレクションや配列などのランゲージコンテンツと紐づけることができます。データ入力、列の並べ替え、イベント管理、外観のカスタマイズ、 列の移動など、リストボックスには高度な機能が備わっています。 ![](../assets/en/FormObjects/listbox.png) -リストボックスには 1つ以上の列があり、その内容が自動的に同期化されます。 理論上、列数に制限はありません (マシンのリソースに依存します)。 +リストボックスには 1つ以上の列があり、その内容が自動的に同期化されます。理論上、列数に制限はありません (マシンのリソースに依存します)。 ## 概要 ### 基本のユーザー機能 -実行中、リストボックスはリストとしてデータを表示し、入力を受け付けます。 セルを編集可能にするには ([その列について入力が許可されていれば](#入力の管理))、セル上で2回クリックします: +実行中、リストボックスはリストとしてデータを表示し、入力を受け付けます。セルを編集可能にするには ([その列について入力が許可されていれば](#入力の管理))、セル上で2回クリックします: ![](../assets/en/FormObjects/listbox_edit.png) -リストボックスのセルには、複数行のテキストを入力・表示できます。 セル内で改行するには、**Ctrl+Return** (Windows) または **Command+Return** (macOS) を押します。 +リストボックスのセルには、複数行のテキストを入力・表示できます。セル内で改行するには、**Ctrl+Return** (Windows) または **Command+Return** (macOS) を押します。 -セルにはブールやピクチャー、日付、時間、数値も表示することができます。 ヘッダーをクリックすると、列の値をソートできます ([標準ソート](#ソートの管理))。 すべての列が自動で同期されます。 +セルにはブールやピクチャー、日付、時間、数値も表示することができます。ヘッダーをクリックすると、列の値をソートできます ([標準ソート](#ソートの管理))。すべての列が自動で同期されます。 -またそれぞれの列幅を変更できるほか、ユーザーはマウスを使用して [列](properties_ListBox.md#locked-columns-and-static-columns) や [行](properties_Action.md#movable-rows) の順番を (そのアクションが許可されていれば) 入れ替えることもできます。 リストボックスは [階層モード](#階層リストボックス) で使用することもできます。 +またそれぞれの列幅を変更できるほか、ユーザーはマウスを使用して [列](properties_ListBox.md#locked-columns-and-static-columns) や [行](properties_Action.md#movable-rows) の順番を (そのアクションが許可されていれば) 入れ替えることもできます。リストボックスは [階層モード](#階層リストボックス) で使用することもできます。 ユーザーは標準のショートカットを使用して 1つ以上の行を選択できます。**Shift+クリック** で連続した行を、**Ctrl+クリック** (Windows) や **Command+クリック** (macOS) で非連続行を選択できます。 @@ -36,9 +36,9 @@ title: リストボックス ![](../assets/en/FormObjects/listbox_parts.png) -それぞれが独自のオブジェクト名や固有のプロパティを持ちます。 たとえば、カラムの数や、交互に使用する行の背景色などはリストボックスオブジェクトのプロパティで指定し、各列の幅はカラムプロパティ、ヘッダーのフォントはヘッダープロパティで指定します。 +それぞれが独自のオブジェクト名や固有のプロパティを持ちます。たとえば、カラムの数や、交互に使用する行の背景色などはリストボックスオブジェクトのプロパティで指定し、各列の幅はカラムプロパティ、ヘッダーのフォントはヘッダープロパティで指定します。 -リストボックスオブジェクトやリストボックスの各列に対して、オブジェクトメソッドを設定することができます。 オブジェクトメソッドの呼び出しは、次の順でおこなわれます: +リストボックスオブジェクトやリストボックスの各列に対して、オブジェクトメソッドを設定することができます。オブジェクトメソッドの呼び出しは、次の順でおこなわれます: 1. 各列のオブジェクトメソッド 2. リストボックスのオブジェクトメソッド @@ -47,28 +47,28 @@ title: リストボックス ### リストボックスの型 -リストボックスには複数のタイプがあり、動作やプロパティの点で異なります。 リストボックスの型は [データソースプロパティ](properties_Object.md#データソース) で定義します: +リストボックスには複数のタイプがあり、動作やプロパティの点で異なります。リストボックスの型は [データソースプロパティ](properties_Object.md#データソース) で定義します: -- **配列**: 各列に 4D 配列を割り当てます。 配列タイプのリストボックスは [階層リストボックス](listbox_overview.md#階層リストボックス) として表示することができます。 +- **配列**: 各列に 4D 配列を割り当てます。配列タイプのリストボックスは [階層リストボックス](listbox_overview.md#階層リストボックス) として表示することができます。 - **セレクション** (**カレントセレクション** または **命名セレクション**): 各列に式 (たとえばフィールド) を割り当てます。それぞれの行はセレクションのレコードを基に評価されます。 - **コレクションまたはエンティティセレクション**: 各列に式を割り当てます。各行の中身はコレクションの要素ごと、あるいはエンティティセレクションのエンティティごとに評価されます。 -> 1つのリストボックス内に、複数のデータソースタイプを組み合わせて指定することはできません。 データソースは、リストボックス作成時に定義されます。 プログラムによって後から変更することはできません。 +> 1つのリストボックス内に、複数のデータソースタイプを組み合わせて指定することはできません。データソースは、リストボックス作成時に定義されます。プログラムによって後から変更することはできません。 ### リストボックスの管理 リストボックスオブジェクトはプロパティによってあらかじめ設定可能なほか、プログラムにより動的に管理することもできます。 -4D ランゲージにはリストボックス関連のコマンドをまとめた "リストボックス" テーマが専用に設けられていますが、"オブジェクト(プロパティ)" コマンドや [`EDIT ITEM`](../commands/edit-item)、[`Displayed line number`](../commands/displayed-line-number) コマンドなど、ほかのテーマのコマンドも利用することができます。 [リストボックスと4D ランゲージ](#リストボックスと4dランゲージ) の段落を参照してください。 +4D ランゲージにはリストボックス関連のコマンドをまとめた "リストボックス" テーマが専用に設けられていますが、"オブジェクト(プロパティ)" コマンドや [`EDIT ITEM`](../commands/edit-item)、[`Displayed line number`](../commands/displayed-line-number) コマンドなど、ほかのテーマのコマンドも利用することができます。[リストボックスと4D ランゲージ](#リストボックスと4dランゲージ) の段落を参照してください。 ## 入力の管理 リストボックスのセルが入力可能であるには、以下の条件を満たす必要があります: - セルが属する列が [入力可](properties_Entry.md#入力可) に設定されている (でなければ、その列のセルには入力できません)。 -- `On Before Data Entry` イベントで $0 が -1 を返さない。 カーソルがセルに入ると、その列のメソッドで `On Before Data Entry` イベントが生成されます。 このイベントのコンテキストにおいて、$0 に -1 を設定すると、そのセルは入力不可として扱われます。 **Tab** や **Shift+Tab** が押された後にイベントが生成された場合には、フォーカスはそれぞれ次あるいは前のセルに移動します。 $0 が -1 でなければ (デフォルトは 0)、列は入力可であり編集モードに移行します。 +- `On Before Data Entry` イベントで $0 が -1 を返さない。カーソルがセルに入ると、その列のメソッドで `On Before Data Entry` イベントが生成されます。このイベントのコンテキストにおいて、$0 に -1 を設定すると、そのセルは入力不可として扱われます。 **Tab** や **Shift+Tab** が押された後にイベントが生成された場合には、フォーカスはそれぞれ次あるいは前のセルに移動します。 $0 が -1 でなければ (デフォルトは 0)、列は入力可であり編集モードに移行します。 -2つの配列で構築されるリストボックスを考えてみましょう。 1つは日付でもう 1つはテキストです。 日付配列は入力不可ですが、テキスト配列は日付が過去でない場合に入力可とします。 +2つの配列で構築されるリストボックスを考えてみましょう。 1つは日付でもう 1つはテキストです。日付配列は入力不可ですが、テキスト配列は日付が過去でない場合に入力可とします。 ![](../assets/en/FormObjects/listbox_entry.png) @@ -97,42 +97,38 @@ title: リストボックス データ入力・編集操作にともなって発生するイベントのシーケンスは次のようになります: -| 動作 | リストボックス型 | イベントシーケンス | -| ----------------------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| セルが編集モードに切り替わったとき (ユーザー操作または `EDIT ITEM` コマンド) | すべて | On Before Data Entry | -| | すべて | On Getting Focus | -| セルの値が編集されたとき | すべて | On Before Keystroke | -| | すべて | On After Keystroke | -| | すべて | On After Edit | -| ユーザーがセルを確定し、セルを移動したとき | セレクションリストボックス | Save | -| | レコードセレクションリストボックス | On saving an existing record トリガー (設定されていれば) | -| | セレクションリストボックス | On Data Change(\*) | -| | エンティティセレクションリストボックス | エンティティはオートマージオプション、オプティミスティック・ロックモードで保存されます (entity.save( ) を参照ください)。 正常に保存できた場合には、エンティティは更新され最新の状態が表示されます。 保存処理が失敗した場合、エラーが表示されます。 | -| | すべて | On Losing Focus | +| 動作 | リストボックス型 | イベントシーケンス | +| ----------------------------------------------------------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| セルが編集モードに切り替わったとき (ユーザー操作または `EDIT ITEM` コマンド) | すべて | On Before Data Entry | +| | すべて | On Getting Focus | +| セルの値が編集されたとき | すべて | On Before Keystroke | +| | すべて | On After Keystroke | +| | すべて | On After Edit | +| ユーザーがセルを確定し、セルを移動したとき | セレクションリストボックス | Save | +| | レコードセレクションリストボックス | On saving an existing record トリガー (設定されていれば) | +| | セレクションリストボックス | On Data Change(\*) | +| | エンティティセレクションリストボックス | エンティティはオートマージオプション、オプティミスティック・ロックモードで保存されます (entity.save( ) を参照ください)。正常に保存できた場合には、エンティティは更新され最新の状態が表示されます。保存処理が失敗した場合、エラーが表示されます。 | +| | すべて | On Losing Focus | (\*) エンティティセレクションリストボックスでの On Data Change イベントの場合: - [カレントの項目](properties_DataSource.md#カレントの項目) オブジェクトには編集前の値が格納されます。 - `This` オブジェクトには、編集後の値が格納されます。 -> コレクション/エンティティセレクション型では、式が null に評価される場合にリストボックスでのデータ入力に制約があります。 この場合、セル内の null 値を編集・削除することはできません。 +> コレクション/エンティティセレクション型では、式が null に評価される場合にリストボックスでのデータ入力に制約があります。この場合、セル内の null 値を編集・削除することはできません。 ## 選択行の管理 選択行の管理は、リストボックスのタイプが配列か、レコードのセレクションか、あるいはコレクション/エンティティセレクションかによって異なります。 -- **セレクションリストボックス**: 選択行は、デフォルトで `$ListboxSetX` と呼ばれる変更可能なセットにより管理されます (X は 0 から始まり、フォーム内のリストボックスの数に応じて一つずつ増加していきます)。 このセットはリストボックスの[プロパティリスト](properties_ListBox.md#ハイライトセット)で定義します。 このセットは 4D が自動で管理します。 ユーザーがリストボックス中で 1つ以上の行を選択すると、セットが即座に更新されます。 他方、リストボックスの選択をプログラムから更新するために、"セット" テーマのコマンドを使用することができます。 +- **セレクションリストボックス**: 選択行は、デフォルトで `$ListboxSetX` と呼ばれる変更可能なセットにより管理されます (X は 0 から始まり、フォーム内のリストボックスの数に応じて一つずつ増加していきます)。このセットはリストボックスの[プロパティリスト](properties_ListBox.md#ハイライトセット)で定義します。このセットは 4D が自動で管理します。 ユーザーがリストボックス中で 1つ以上の行を選択すると、セットが即座に更新されます。他方、リストボックスの選択をプログラムから更新するために、"セット" テーマのコマンドを使用することができます。 - **コレクション/エンティティセレクションリストボックス**: 選択項目は、専用のリストボックスプロパティを通して管理されます。 - [カレントの項目](properties_DataSource.md#カレントの項目) は、選択された要素/エンティティを受け取るオブジェクトです。 - [選択された項目](properties_DataSource.md#選択された項目) は、選択された項目のコレクション/エンティティセレクションオブジェクトです。 - [カレントの項目の位置](properties_DataSource.md#カレントの項目の位置) は、選択された要素あるいはエンティティの位置を返します。 -- **配列リストボックス**: `LISTBOX SELECT ROW` コマンドを使用して、プログラムからリストボックスの行を選択できます。 - [リストボックスオブジェクトにリンクされた変数](properties_Object.md#変数あるいは式) は、行選択の取得、設定、保存に使用します。 この変数はブール配列で、4Dが自動的に作成・管理します。 この配列のサイズは、リストボックスのサイズにより決定されます。 つまり、各列に関連付けられた配列のうち、最も小さな配列と同じ数の要素を持ちます。 - この配列の各要素には、対応する行が選択された場合には `true` が、それ以外の場合は `false` が設定されます。 4D は、ユーザーの動作に応じてこの配列の内容を更新します。 これとは逆に、この配列要素の値を変更して、リストボックス中の選択行を変更することができます。 - 他方、この配列への要素の挿入や削除はできず、行のタイプ変更もできません。 `Count in array` コマンドを使用して、選択された行の数を調べることができます。 - たとえば、以下のメソッドは配列タイプのリストボックスで、最初の行の選択を切り替えます: +- **配列リストボックス**: `LISTBOX SELECT ROW` コマンドを使用して、プログラムからリストボックスの行を選択できます。[リストボックスオブジェクトにリンクされた変数](properties_Object.md#変数あるいは式) は、行選択の取得、設定、保存に使用します。この変数はブール配列で、4Dが自動的に作成・管理します。この配列のサイズは、リストボックスのサイズにより決定されます。 つまり、各列に関連付けられた配列のうち、最も小さな配列と同じ数の要素を持ちます。この配列の各要素には、対応する行が選択された場合には `true` が、それ以外の場合は `false` が設定されます。 4D は、ユーザーの動作に応じてこの配列の内容を更新します。これとは逆に、この配列要素の値を変更して、リストボックス中の選択行を変更することができます。他方、この配列への要素の挿入や削除はできず、行のタイプ変更もできません。 `Count in array` コマンドを使用して、選択された行の数を調べることができます。たとえば、以下のメソッドは配列タイプのリストボックスで、最初の行の選択を切り替えます: ```4d ARRAY BOOLEAN(tBListBox;10) @@ -148,12 +144,12 @@ title: リストボックス ### 選択行の見た目のカスタマイズ -リストボックスの [セレクションハイライトを非表示](properties_Appearance.md#セレクションハイライトを非表示) プロパティにチェックを入れている場合には、他のインターフェースオプションを活用してリストボックスの選択行を可視化する必要があります。 ハイライトが非表示になっていても選択行は引き続き 4D によって管理されています。つまり: +リストボックスの [セレクションハイライトを非表示](properties_Appearance.md#セレクションハイライトを非表示) プロパティにチェックを入れている場合には、他のインターフェースオプションを活用してリストボックスの選択行を可視化する必要があります。ハイライトが非表示になっていても選択行は引き続き 4D によって管理されています。つまり: - 配列タイプのリストボックスの場合、当該リストボックスにリンクしているブール配列変数から選択行を割り出します。 - セレクションタイプのリストボックスの場合、特定行 (レコード) がリストボックスの [ハイライトセット](properties_ListBox.md#ハイライトセット) プロパティで指定しているセットに含まれているかを調べます。 -特定された選択行は、それらの背景色やフォントカラー、フォントスタイルなどをプログラムによって調整することで、選択行を独自の方法で可視化することが可能です。 リストボックスのタイプによって、表示の管理は配列や式を使用しておこないます (後述参照)。 +特定された選択行は、それらの背景色やフォントカラー、フォントスタイルなどをプログラムによって調整することで、選択行を独自の方法で可視化することが可能です。リストボックスのタイプによって、表示の管理は配列や式を使用しておこないます (後述参照)。 > リストボックスの現アピアランス (フォントカラー、背景色、フォントスタイル等) を使うには `lk inherited` 定数が使用できます。 @@ -231,28 +227,28 @@ JSON フォームにおいて、リストボックスに次のハイライトセ $0:=$color ``` -> 階層リストボックスにおいては、[セレクションハイライトを非表示](properties_Appearance.md#セレクションハイライトを非表示) オプションをチェックした場合には、ブレーク行をハイライトすることができません。 同階層のヘッダーの色は個別指定することができないため、任意のブレーク行だけをプログラムでハイライト表示する方法はありません。 +> 階層リストボックスにおいては、[セレクションハイライトを非表示](properties_Appearance.md#セレクションハイライトを非表示) オプションをチェックした場合には、ブレーク行をハイライトすることができません。同階層のヘッダーの色は個別指定することができないため、任意のブレーク行だけをプログラムでハイライト表示する方法はありません。 ## ソートの管理 -リストボックスには、標準ソートとカスタムソートがあります。 リストボックスの特定の列がソートされているとき、他の列も常に自動で同期されます。 +リストボックスには、標準ソートとカスタムソートがあります。リストボックスの特定の列がソートされているとき、他の列も常に自動で同期されます。 ### 標準ソート -ヘッダーがクリックされると、リストボックスはデフォルトで標準ソートによる並べ替えをおこないます。 標準的な並べ替えとは、列の評価値を英数字順に並べ替え、続けてクリックされると昇順/降順を交互に切り替えます。 +ヘッダーがクリックされると、リストボックスはデフォルトで標準ソートによる並べ替えをおこないます。標準的な並べ替えとは、列の評価値を英数字順に並べ替え、続けてクリックされると昇順/降順を交互に切り替えます。 リストボックスの [ソート可](properties_Action.md#ソート可) プロパティを無効化すると、ユーザーによる標準ソートを禁止することができます (デフォルトは有効)。 標準ソートのサポートは、リストボックスのタイプに依存します: -| リストボックスタイプ | 標準ソートのサポート | コメント | -| ------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Object の Collection | ◯ |
    • "This.a" や "This.a.b" 列はソート可能です。
    • [リストボックス列の式プロパティ](properties_Object.md#変数あるいは式) は [代入可能な式](../Concepts/quick-tour.md#代入可-vs-代入不可の式) でなくてはなりません。
    | -| スカラー値のコレクション | × | [`orderBy()`](../API/CollectionClass.md#orderby) 関数を使ったカスタムソートを使用します。 | -| エンティティセレクション | ◯ |
    • [リストボックス列の式プロパティ](properties_Object.md#変数あるいは式) は [代入可能な式](../Concepts/quick-tour.md#代入可-vs-代入不可の式) でなくてはなりません。
    • ソート可: オブジェクト属性プロパティのソート (例: "data" がオブジェクト属性の場合の "This.data.city")
    • ソート可: リレート属性のソート (例: "This.company.name")
    • ソート不可: リレート属性を介したオブジェクト属性プロパティのソート (例: "This.company.data.city")。 この場合には、[`orderByFormula()`](../API/EntitySelectionClass.md#orderbyformula) 関数を使ったカスタムソートを使用します (後述の例題参照)
    | -| カレントセレクション | ◯ | 単純な式のみソート可能です (例: `[Table_1]Field_2`) | -| 命名セレクション | × | | -| 配列 | ◯ | ピクチャー配列やポインター配列と紐づけられた列はソートできません | +| リストボックスタイプ | 標準ソートのサポート | コメント | +| ------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Object の Collection | ◯ |
    • "This.a" や "This.a.b" 列はソート可能です。
    • [リストボックス列の式プロパティ](properties_Object.md#変数あるいは式) は [代入可能な式](../Concepts/quick-tour.md#代入可-vs-代入不可の式) でなくてはなりません。
    | +| スカラー値のコレクション | × | [`orderBy()`](../API/CollectionClass.md#orderby) 関数を使ったカスタムソートを使用します。 | +| エンティティセレクション | ◯ |
    • [リストボックス列の式プロパティ](properties_Object.md#変数あるいは式) は [代入可能な式](../Concepts/quick-tour.md#代入可-vs-代入不可の式) でなくてはなりません。
    • ソート可: オブジェクト属性プロパティのソート (例: "data" がオブジェクト属性の場合の "This.data.city")
    • ソート可: リレート属性のソート (例: "This.company.name")
    • ソート不可: リレート属性を介したオブジェクト属性プロパティのソート (例: "This.company.data.city")。この場合には、[`orderByFormula()`](../API/EntitySelectionClass.md#orderbyformula) 関数を使ったカスタムソートを使用します (後述の例題参照)
    | +| カレントセレクション | ◯ | 単純な式のみソート可能です (例: `[Table_1]Field_2`) | +| 命名セレクション | × | | +| 配列 | ◯ | ピクチャー配列やポインター配列と紐づけられた列はソートできません | ### カスタムソート @@ -265,7 +261,7 @@ JSON フォームにおいて、リストボックスに次のハイライトセ #### 例題 -リレート先のオブジェクト属性のプロパティ値に基づいてリストボックスをソートします。 以下のようなストラクチャーの場合を考えます: +リレート先のオブジェクト属性のプロパティ値に基づいてリストボックスをソートします。以下のようなストラクチャーの場合を考えます: ![](../assets/en/FormObjects/relationLB.png) @@ -301,9 +297,9 @@ End if ![](../assets/en/FormObjects/sorticon2.png) ![](../assets/en/FormObjects/sorticon2.png) -> 列ヘッダー変数には、宣言された、あるいは動的な [変数](Concepts/variables.md) のみを使用できます。 その他の [式](Concepts/quick-tour.md#式) (例: `Form.sortValue`) はサポートされていません。 +> 列ヘッダー変数には、宣言された、あるいは動的な [変数](Concepts/variables.md) のみを使用できます。その他の [式](Concepts/quick-tour.md#式) (例: `Form.sortValue`) はサポートされていません。 -変数の値を設定して (たとえば Header2:=2)、ソートを表す矢印の表示を強制することができます。 しかし、列のソート順は変更されません、これを処理するのは開発者の役割です。 +変数の値を設定して (たとえば Header2:=2)、ソートを表す矢印の表示を強制することができます。しかし、列のソート順は変更されません、これを処理するのは開発者の役割です。 > The [`OBJECT SET FORMAT`](../commands/object-set-format) コマンドは、カスタマイズされた並べ替えアイコンをサポートする機能をリストボックスヘッダー用に提供しています。 @@ -335,7 +331,7 @@ End if - 行属性について: 列の属性値を受け継ぎます - 列属性について: リストボックスの属性値を受け継ぎます -このように、高次のレベルの属性値をオブジェクトに継承させたい場合は、定義するコマンドに `lk inherited` 定数 (デフォルト値) を渡すか、対応する行スタイル/カラー配列の要素に直接渡します。 以下のような、標準のフォントスタイルで行の背景色が交互に変わる配列リストボックスを考えます: +このように、高次のレベルの属性値をオブジェクトに継承させたい場合は、定義するコマンドに `lk inherited` 定数 (デフォルト値) を渡すか、対応する行スタイル/カラー配列の要素に直接渡します。以下のような、標準のフォントスタイルで行の背景色が交互に変わる配列リストボックスを考えます: ![](../assets/en/FormObjects/listbox_styles3.png) @@ -368,11 +364,11 @@ End if ## リストボックスの印刷 -リストボックスの印刷には 2つの印刷モードがあります: フォームオブジェクトのようにリストボックスを印刷する **プレビューモード** と、フォーム内でリストボックスオブジェクトの印刷方法を制御できる **詳細モード** があります。 フォームエディターで、リストボックスオブジェクトに "印刷" アピアランスを適用できる点に留意してください。 +リストボックスの印刷には 2つの印刷モードがあります: フォームオブジェクトのようにリストボックスを印刷する **プレビューモード** と、フォーム内でリストボックスオブジェクトの印刷方法を制御できる **詳細モード** があります。フォームエディターで、リストボックスオブジェクトに "印刷" アピアランスを適用できる点に留意してください。 ### プレビューモード -プレビューモードでのリストボックスの印刷は、標準の印刷コマンドや **印刷** メニューを使用して、リストボックスを含むフォームをそのまま出力します。 リストボックスはフォーム上に表示されている通りに印刷されます。 このモードでは、オブジェクトの印刷を細かく制御することはできません。 とくに、表示されている以上の行を印刷することはできません。 +プレビューモードでのリストボックスの印刷は、標準の印刷コマンドや **印刷** メニューを使用して、リストボックスを含むフォームをそのまま出力します。リストボックスはフォーム上に表示されている通りに印刷されます。このモードでは、オブジェクトの印刷を細かく制御することはできません。 とくに、表示されている以上の行を印刷することはできません。 ### 詳細モード @@ -380,18 +376,17 @@ End if このモードでは: -- オブジェクトの高さよりも印刷する行数が少ない場合、リストボックスオブジェクトの高さは自動で減少させられます ("空白" 行は印刷されません)。 他方、オブジェクトの内容に基づき高さが自動で増大することはありません。 実際に印刷されたオブジェクトのサイズは [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) コマンドを使用することで取得することができます。 -- リストボックスオブジェクトは "そのまま" 印刷されます。言い換えれば、ヘッダーやグリッド線の表示、表示/非表示行など、現在の表示設定が考慮されます。 - これらの設定には印刷される最初の行も含みます。印刷を実行する前に [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) を呼び出すと、リストボックスに印刷される最初の行はコマンドで指定した行になります。 +- オブジェクトの高さよりも印刷する行数が少ない場合、リストボックスオブジェクトの高さは自動で減少させられます ("空白" 行は印刷されません)。他方、オブジェクトの内容に基づき高さが自動で増大することはありません。実際に印刷されたオブジェクトのサイズは [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) コマンドを使用することで取得することができます。 +- リストボックスオブジェクトは "そのまま" 印刷されます。言い換えれば、ヘッダーやグリッド線の表示、表示/非表示行など、現在の表示設定が考慮されます。これらの設定には印刷される最初の行も含みます。印刷を実行する前に [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) を呼び出すと、リストボックスに印刷される最初の行はコマンドで指定した行になります。 - 自動メカニズムにより、表示可能な行以上の行数を含むリストボックスの印刷が容易になります。連続して `Print object` を呼び出し、呼び出し毎に別の行のまとまりを印刷することができます。 [`LISTBOX GET PRINT INFORMATION`](../commands/listbox-get-print-information) コマンドを使用して印刷の状態を進行中にチェックすることができます。 ## 階層リストボックス -階層リストボックスは、最初のカラムのコンテンツが階層状に表示されるリストボックスのことです。 このタイプの表示方法は、繰り返される値や、階層に依存するデータの表示などに適用できます (国/地域/都市など)。 +階層リストボックスは、最初のカラムのコンテンツが階層状に表示されるリストボックスのことです。このタイプの表示方法は、繰り返される値や、階層に依存するデータの表示などに適用できます (国/地域/都市など)。 > [配列タイプ](#配列リストボックス) のリストボックスのみを階層にできます。 -階層リストボックスはデータを表示する特別な方法ですが、データの構造 (配列) は変更しません。 階層リストボックスは通常のリストボックスとまったく同じ方法で管理されます。 +階層リストボックスはデータを表示する特別な方法ですが、データの構造 (配列) は変更しません。階層リストボックスは通常のリストボックスとまったく同じ方法で管理されます。 ### 階層の指定 @@ -405,19 +400,18 @@ End if このプロパティを使用してリストボックスの階層表示を設定します。 JSON フォームにおいては、リストボックス列の [*dataSource* プロパティの値が配列名のコレクションであるとき](properties_Object.md#配列リストボックス) に階層化します。 -*階層リストボックス* プロパティが選択されると、追加プロパティである **Variable 1...10** が利用可能になります。これらには階層の各レベルとして使用するデータソース配列を指定します。これが *dataSource* の値である配列名のコレクションとなります。 入力欄に値が入力されると、新しい入力欄が追加されます。 10個までの変数を指定できます。 これらの変数は先頭列に表示される階層のレベルを設定します。 +*階層リストボックス* プロパティが選択されると、追加プロパティである **Variable 1...10** が利用可能になります。これらには階層の各レベルとして使用するデータソース配列を指定します。これが *dataSource* の値である配列名のコレクションとなります。入力欄に値が入力されると、新しい入力欄が追加されます。 10個までの変数を指定できます。これらの変数は先頭列に表示される階層のレベルを設定します。 -Variable 1 は常に、リストボックスの先頭列の変数名に対応します (この 2つの値は自動でバインドされます)。 Variable 1欄は常に表示され、入力できます。 例: country。 -Variable 2 も常に表示され、入力できます。 これは二番目の階層レベルを指定します。 例: regions。 -三番目以降の欄は、その前の番号の欄が入力されると表示されます。 例えば: counties、cities等。 最大10レベルまで指定できます。 ある階層レベルの値を削除すると、その後の階層レベルが繰り上がります。 +Variable 1 は常に、リストボックスの先頭列の変数名に対応します (この 2つの値は自動でバインドされます)。 Variable 1欄は常に表示され、入力できます。例: country。 +Variable 2 も常に表示され、入力できます。 これは二番目の階層レベルを指定します。例: regions。三番目以降の欄は、その前の番号の欄が入力されると表示されます。例えば: counties、cities等。最大10レベルまで指定できます。ある階層レベルの値を削除すると、その後の階層レベルが繰り上がります。 -最後の変数に複数の同じ値が存在しても、この変数が階層になることはありません。 たとえば、arr1 に A A A B B B、arr2 に 1 1 1 2 2 2、そしてarr3 に X X Y Y Y Z が値として設定されている場合、A、B、1、そして 2 は階層で表示できますが、X と Y は階層になりません: +最後の変数に複数の同じ値が存在しても、この変数が階層になることはありません。たとえば、arr1 に A A A B B B、arr2 に 1 1 1 2 2 2、そしてarr3 に X X Y Y Y Z が値として設定されている場合、A、B、1、そして 2 は階層で表示できますが、X と Y は階層になりません: ![](../assets/en/FormObjects/property_hierarchicalListBox.png) この原則は階層がひとつだけ設定されている場合には適用されません。 この場合、同じ値はグループ化されます。 -> 既存のリストボックスで階層を設定した場合、(最初のものを除き) これらの列を削除または非表示にしなければなりません。 でないと、それらはリストボックス中で重複して表示されます。 エディターのポップアップメニューを使用して階層を設定すると (階層リストボックス参照)、不要な列は自動でリストボックスから取り除かれます。 +> 既存のリストボックスで階層を設定した場合、(最初のものを除き) これらの列を削除または非表示にしなければなりません。 でないと、それらはリストボックス中で重複して表示されます。エディターのポップアップメニューを使用して階層を設定すると (階層リストボックス参照)、不要な列は自動でリストボックスから取り除かれます。 #### コンテキストメニューを使用した階層化 @@ -425,19 +419,19 @@ Variable 2 も常に表示され、入力できます。 これは二番目の ![](../assets/en/FormObjects/listbox_hierarchy1.png) -このコマンドは階層化のショートカットです。 このコマンドを選択すると、以下のアクションが実行されます: +このコマンドは階層化のショートカットです。このコマンドを選択すると、以下のアクションが実行されます: - そのオブジェクトのプロパティリストで **階層リストボックス** オプションが選択されます。 -- その列の変数が階層を指定するために使用されます。 既に設定されていた変数は置き換えられます。 +- その列の変数が階層を指定するために使用されます。既に設定されていた変数は置き換えられます。 - (先頭列を除き) 選択された列はリストボックス内に表示されなくなります。 -例: 左から国、地域、都市、人口列が設定されたリストボックスがあります。 国、地域、都市が (下図の通り) 選択され、コンテキストメニューから **階層を作成** を選択すると、先頭列に3レベルの階層が作成され、二番目と三番目の列は取り除かれます。人口列が二番目になります: +例: 左から国、地域、都市、人口列が設定されたリストボックスがあります。国、地域、都市が (下図の通り) 選択され、コンテキストメニューから **階層を作成** を選択すると、先頭列に3レベルの階層が作成され、二番目と三番目の列は取り除かれます。人口列が二番目になります: ![](../assets/en/FormObjects/listbox_hierarchy2.png) ##### 階層をキャンセル -階層リストボックスとして定義されたリストボックスで先頭列を選択すると、**階層をキャンセル** コマンドを使用できます。 このコマンドを選択すると以下のアクションが実行されます: +階層リストボックスとして定義されたリストボックスで先頭列を選択すると、**階層をキャンセル** コマンドを使用できます。このコマンドを選択すると以下のアクションが実行されます: - そのオブジェクトの **階層リストボックス** オプションの選択が解除されます。 - 2番目以降の階層レベルが削除され、通常の列としてリストボックスに追加されます。 @@ -446,7 +440,7 @@ Variable 2 も常に表示され、入力できます。 これは二番目の 階層リストボックスを含むフォームが最初に開かれる際、デフォルトですべての行が展開されています。 -配列中で値が繰り返されていると、ブレーク行と階層 "ノード" がリストボックスに自動で追加されます。 たとえば、リストボックスに都市に関する 4つの配列が含まれていて、それぞれ国、地域、都市名、人口データが含まれているとします: +配列中で値が繰り返されていると、ブレーク行と階層 "ノード" がリストボックスに自動で追加されます。たとえば、リストボックスに都市に関する 4つの配列が含まれていて、それぞれ国、地域、都市名、人口データが含まれているとします: ![](../assets/en/FormObjects/hierarch1.png) @@ -454,13 +448,13 @@ Variable 2 も常に表示され、入力できます。 これは二番目の ![](../assets/en/FormObjects/hierarch2.png) -階層を正しく構築するためには、事前に配列をソートしなければなりません。 たとえば、配列中にデータが AAABBAACC の順で含まれていると、階層は以下のようになります: +階層を正しく構築するためには、事前に配列をソートしなければなりません。たとえば、配列中にデータが AAABBAACC の順で含まれていると、階層は以下のようになります: \> A \> B \> A \> C -> A B A C階層 "ノード" を展開したり折りたたんだりするには、ノード上をクリックします。 ノード上を **Alt+クリック** (Windows) または **Option+クリック** (macOS) すると、すべてのサブ要素が同時に展開されたり折りたたまれたりします。 これらの動作は `LISTBOX EXPAND` および `LISTBOX COLLAPSE` コマンドを使用することでプログラミングでも実行可能です。 +> A B A C階層 "ノード" を展開したり折りたたんだりするには、ノード上をクリックします。ノード上を **Alt+クリック** (Windows) または **Option+クリック** (macOS) すると、すべてのサブ要素が同時に展開されたり折りたたまれたりします。これらの動作は `LISTBOX EXPAND` および `LISTBOX COLLAPSE` コマンドを使用することでプログラミングでも実行可能です。 階層リストボックスに日付や時間型の値を表示する際、それらは Short system format で表示されます。 @@ -471,7 +465,7 @@ Variable 2 も常に表示され、入力できます。 これは二番目の - まず階層列 (一番目の列) のすべてのレベルが自動で昇順にソートされます。 - 次にクリックされた列の値を使用して、昇順または降順にソートが実行されます。 - すべての列が同期されます。 -- その後の非階層列のソート時には、階層列の最後のレベルのみがソートされます。 この列のソートはそのヘッダーをクリックすることでおこなえます。 +- その後の非階層列のソート時には、階層列の最後のレベルのみがソートされます。この列のソートはそのヘッダーをクリックすることでおこなえます。 例として、まだソートされていない以下のリストボックスがあります: @@ -485,7 +479,7 @@ Variable 2 も常に表示され、入力できます。 これは二番目の #### 選択行とその位置の管理 -階層リストボックスは、ノードの展開 / 折りたたみ状態により、スクリーン上に表示される行数が変わります。 しかし配列の行数が変わるわけではありません。 表示が変わるだけでデータに変更はありません。 この原則を理解することは重要です。 階層リストボックスに対するプログラムによる管理は常に配列データに対しておこなわれるのであり、表示されたデータに対しておこなわれるわけではないからです。 とくに、自動で追加されるブレーク行は、表示オプション配列では考慮されません (後述参照)。 +階層リストボックスは、ノードの展開 / 折りたたみ状態により、スクリーン上に表示される行数が変わります。しかし配列の行数が変わるわけではありません。表示が変わるだけでデータに変更はありません。この原則を理解することは重要です。 階層リストボックスに対するプログラムによる管理は常に配列データに対しておこなわれるのであり、表示されたデータに対しておこなわれるわけではないからです。とくに、自動で追加されるブレーク行は、表示オプション配列では考慮されません (後述参照)。 例として以下の配列を見てみましょう: @@ -495,7 +489,7 @@ Variable 2 も常に表示され、入力できます。 これは二番目の ![](../assets/en/FormObjects/hierarch6.png) -階層であってもなくても、リストボックスにどのようにデータが表示されているかにかかわらず、"Quimper" が含まれる行を太字にしたい場合はステートメント Style{2} = bold を使用しなければなりません。 配列中の行の位置のみが考慮されます。 +階層であってもなくても、リストボックスにどのようにデータが表示されているかにかかわらず、"Quimper" が含まれる行を太字にしたい場合はステートメント Style{2} = bold を使用しなければなりません。配列中の行の位置のみが考慮されます。 この原則は以下のものを管理する内部的な配列に適用されます: @@ -521,9 +515,9 @@ Variable 2 も常に表示され、入力できます。 これは二番目の *階層表示:* ![](../assets/en/FormObjects/hierarch8.png) -> 親が折りたたまれているために行が非表示になっていると、それらは選択から除外されます。 (直接あるいはスクロールによって) 表示されている行のみを選択できます。 言い換えれば、行を選択かつ隠された状態にすることはできません。 +> 親が折りたたまれているために行が非表示になっていると、それらは選択から除外されます。(直接あるいはスクロールによって) 表示されている行のみを選択できます。言い換えれば、行を選択かつ隠された状態にすることはできません。 -選択と同様に、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドは階層リストボックスと非階層リストボックスにおいて同じ値を返します。 つまり以下の両方の例題で、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は同じ位置 (3;2) を返します。 +選択と同様に、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドは階層リストボックスと非階層リストボックスにおいて同じ値を返します。つまり以下の両方の例題で、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は同じ位置 (3;2) を返します。 *非階層表示:* ![](../assets/en/FormObjects/hierarch9.png) @@ -531,17 +525,17 @@ Variable 2 も常に表示され、入力できます。 これは二番目の *階層表示:* ![](../assets/en/FormObjects/hierarch10.png) -サブ階層のすべての行が隠されているとき、ブレーク行は自動で隠されます。 先の例題で 1から 3行目までが隠されていると、"Brittany" のブレーク行は表示されません。 +サブ階層のすべての行が隠されているとき、ブレーク行は自動で隠されます。先の例題で 1から 3行目までが隠されていると、"Brittany" のブレーク行は表示されません。 #### ブレーク行の管理 -ユーザーがブレーク行を選択すると、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は対応する配列の最初のオカレンスを返します。 以下のケースで: +ユーザーがブレーク行を選択すると、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は対応する配列の最初のオカレンスを返します。以下のケースで: ![](../assets/en/FormObjects/hierarch11.png) -... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は (2;4) を返します。 プログラムでブレーク行を選択するには [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) コマンドを使用する必要があります。 +... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) は (2;4) を返します。プログラムでブレーク行を選択するには [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) コマンドを使用する必要があります。 -ブレーク行はリストボックスのグラフィカルな表示 (スタイルやカラー) を管理する内部的な配列では考慮されません。 しかし、オブジェクトのグラフィックを管理するオブジェクト (フォーム) テーマのコマンドを使用してブレーク行の表示を変更できます。 階層を構成する配列に対して、適切なコマンドを実行します。 +ブレーク行はリストボックスのグラフィカルな表示 (スタイルやカラー) を管理する内部的な配列では考慮されません。しかし、オブジェクトのグラフィックを管理するオブジェクト (フォーム) テーマのコマンドを使用してブレーク行の表示を変更できます。階層を構成する配列に対して、適切なコマンドを実行します。 以下のリストボックスを例題とします (割り当てた配列名は括弧内に記載しています): @@ -551,7 +545,7 @@ Variable 2 も常に表示され、入力できます。 これは二番目の *階層表示:* ![](../assets/en/FormObjects/hierarch13.png) -階層モードでは `tStyle` や `tColors` 配列で変更されたスタイルは、ブレーク行に適用されません。 ブレークレベルでカラーやスタイルを変更するには、以下のステートメントを実行します: +階層モードでは `tStyle` や `tColors` 配列で変更されたスタイルは、ブレーク行に適用されません。ブレークレベルでカラーやスタイルを変更するには、以下のステートメントを実行します: ```4d OBJECT SET RGB COLORS(T1;0x0000FF;0xB0B0B0) @@ -568,13 +562,13 @@ Variable 2 も常に表示され、入力できます。 これは二番目の `On Expand` や `On Collapse` フォームイベントを使用して階層リストボックスの表示を最適化できます。 -階層リストボックスはその配列の内容から構築されます。 そのためこれらの配列すべてがメモリにロードされる必要があります。 大量のデータから ([`SELECTION TO ARRAY`](../commands/selection-to-array) コマンドを使用して) 生成される配列をもとに階層リストボックスを構築するのは、表示速度だけでなくメモリ使用量の観点からも困難が伴います。 +階層リストボックスはその配列の内容から構築されます。 そのためこれらの配列すべてがメモリにロードされる必要があります。大量のデータから ([`SELECTION TO ARRAY`](../commands/selection-to-array) コマンドを使用して) 生成される配列をもとに階層リストボックスを構築するのは、表示速度だけでなくメモリ使用量の観点からも困難が伴います。 -`On Expand` と `On Collapse` フォームイベントを使用することで、この制限を回避できます。たとえば、ユーザーのアクションに基づいて階層の一部だけを表示したり、必要に応じて配列をロード/アンロードできます。 これらのイベントのコンテキストでは、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドは、行を展開/折りたたむためにユーザーがクリックしたセルを返します。 +`On Expand` と `On Collapse` フォームイベントを使用することで、この制限を回避できます。たとえば、ユーザーのアクションに基づいて階層の一部だけを表示したり、必要に応じて配列をロード/アンロードできます。これらのイベントのコンテキストでは、[`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドは、行を展開/折りたたむためにユーザーがクリックしたセルを返します。 -この場合、開発者がコードを使用して配列を空にしたり値を埋めたりしなければなりません。 実装する際注意すべき原則は以下のとおりです: +この場合、開発者がコードを使用して配列を空にしたり値を埋めたりしなければなりません。実装する際注意すべき原則は以下のとおりです: -- リストボックスが表示される際、先頭の配列のみ値を埋めます。 しかし 2番目の配列を空の値で生成し、リストボックスに展開/折りたたみアイコンが表示されるようにしなければなりません: +- リストボックスが表示される際、先頭の配列のみ値を埋めます。しかし 2番目の配列を空の値で生成し、リストボックスに展開/折りたたみアイコンが表示されるようにしなければなりません: ![](../assets/en/FormObjects/hierarch15.png) - ユーザーが展開アイコンをクリックすると `On Expand` イベントが生成されます。 [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) コマンドはクリックされたセルを返すので、適切な階層を構築します: 先頭の配列に繰り返しの値を設定し、2番目の配列には [`SELECTION TO ARRAY`](../commands/selection-to-array) コマンドから得られる値を設定します。そして[`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows) コマンドを使用して必要なだけ行を挿入します。 @@ -584,7 +578,7 @@ Variable 2 も常に表示され、入力できます。 これは二番目の ## リストボックスと4Dランゲージ -4D ランゲージの大部分のコマンドはリストボックスに対して使用することができます。これらは[リストボックステーマ](../commands/theme/List_Box.md) だけでなく、[オブジェクト(フォーム)テーマ](../commands/theme/Objects_Forms.md) や他のテーマのコマンドを使用することができます。 これらはリストボックス全体に対して使用することができる他、ヘッダー、フッター、行やカラムなどの[リストボックスの構成要素](#リストボックスの構成要素) に対して使用することもできます。 一部のものは、特定の[タイプのリストボックス](#リストボックスの型)に対してのみ使用可能です。 +4D ランゲージの大部分のコマンドはリストボックスに対して使用することができます。これらは[リストボックステーマ](../commands/theme/List_Box.md) だけでなく、[オブジェクト(フォーム)テーマ](../commands/theme/Objects_Forms.md) や他のテーマのコマンドを使用することができます。これらはリストボックス全体に対して使用することができる他、ヘッダー、フッター、行やカラムなどの[リストボックスの構成要素](#リストボックスの構成要素) に対して使用することもできます。一部のものは、特定の[タイプのリストボックス](#リストボックスの型)に対してのみ使用可能です。 ### リストボックスコマンド @@ -649,70 +643,70 @@ Variable 2 も常に表示され、入力できます。 これは二番目の ### その他のコマンド -| コマンド | リストボックスのタイプ | サポートされる部分 | コメント | -| ------------------------------------------------------------ | ----------- | --------------------- | ------------------------------------------------------------------------------------------ | -| [`EDIT ITEM`](../commands/edit-item) | すべて | 列 | リストボックスオブジェクトのセルの一つを渡して編集モードにすることができます | -| [`Get edited text`](../commands/get-edited-text) | すべて | リストボックス、ヘッダー、フッター、行、列 | | -| [`REDRAW`](../commands/redraw) | 配列、セレクション | リストボックス | セレクション型リストボックスに対して適用した場合、リストボックス内に表示されるデータの更新をトリガーします。 エンティティセレクション型のリストボックスではサポートされていません。 | -| [`Displayed line number`](../commands/displayed-line-number) | すべて | リストボックス、ヘッダー、フッター、行、列 | リストボックスオブジェクトの[`On Display Detail`](../Events/onDisplayDetail.md) フォームイベントのコンテキスト内で動作します | -| [`Drop position`](../commands/drop-position) | すべて | リストボックス、ヘッダー、フッター、行、列 | | -| [`Count in array`](../commands/count-in-array) | すべて | リストボックス、ヘッダー、フッター、行、列 | | -| [`Print object`](../commands/print-object) | すべて | リストボックス、ヘッダー、フッター、行、列 | | +| コマンド | リストボックスのタイプ | サポートされる部分 | コメント | +| ------------------------------------------------------------ | ----------- | --------------------- | ----------------------------------------------------------------------------------------- | +| [`EDIT ITEM`](../commands/edit-item) | すべて | 列 | リストボックスオブジェクトのセルの一つを渡して編集モードにすることができます | +| [`Get edited text`](../commands/get-edited-text) | すべて | リストボックス、ヘッダー、フッター、行、列 | | +| [`REDRAW`](../commands/redraw) | 配列、セレクション | リストボックス | セレクション型リストボックスに対して適用した場合、リストボックス内に表示されるデータの更新をトリガーします。エンティティセレクション型のリストボックスではサポートされていません。 | +| [`Displayed line number`](../commands/displayed-line-number) | すべて | リストボックス、ヘッダー、フッター、行、列 | リストボックスオブジェクトの[`On Display Detail`](../Events/onDisplayDetail.md) フォームイベントのコンテキスト内で動作します | +| [`Drop position`](../commands/drop-position) | すべて | リストボックス、ヘッダー、フッター、行、列 | | +| [`Count in array`](../commands/count-in-array) | すべて | リストボックス、ヘッダー、フッター、行、列 | | +| [`Print object`](../commands/print-object) | すべて | リストボックス、ヘッダー、フッター、行、列 | | ### オブジェクト(フォーム)コマンド -| コマンド | リストボックスのタイプ | サポートされる部分 | -| ------------------------------------------------------------------------------------------ | ----------- | ------------------------------------------------- | -| [`OBJECT DUPLICATE`](../commands/object-duplicate) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT GET BEST SIZE`](../commands/object-get-best-size) | すべて | 列 | -| [`OBJECT Get border style`](../commands/object-get-border-style) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT GET COORDINATES`](../commands/object-get-coordinates) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT Get data source`](../commands/object-get-data-source) | 配列 | リストボックス | -| [`OBJECT GET DRAG AND DROP OPTIONS`](../commands/object-get-drag-and-drop-options) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT Get enterable`](../commands/object-get-enterable) | すべて | 列 | -| [`OBJECT Get filter`](../commands/object-get-filter) | すべて | 列 | -| [`OBJECT Get focus rectangle invisible`](../commands/object-get-focus-rectangle-invisible) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT Get font`](../commands/object-get-font) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT Get font size`](../commands/object-get-font-size) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT Get font style`](../commands/object-get-font-style) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT Get format`](../commands/object-get-format) | すべて | ヘッダー | -| [`OBJECT Get help tip`](../commands/object-get-help-tip) | すべて | ヘッダー、フッター | -| [`OBJECT Get horizontal alignment`](../commands/object-get-horizontal-alignment) | すべて | リストボックス、ヘッダー、フッター、列 | -| [`OBJECT Get list reference`](../commands/object-get-list-reference) | すべて | 列 | -| [`OBJECT Get name`](../commands/object-get-name) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT Get pointer`](../commands/object-get-pointer) | すべて | リストボックス、ヘッダー、フッター、行、列 (下記参照) | -| [`OBJECT GET RESIZING OPTIONS`](../commands/object-get-resizing-options) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT GET RGB COLORS`](../commands/object-get-rgb-colors) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT GET SCROLL POSITION`](../commands/object-get-scroll-position) | すべて | リストボックス | -| [`OBJECT GET SCROLLBAR`](../commands/object-get-scrollbar) | すべて | リストボックス | -| [`OBJECT Get type`](../commands/object-get-type) | すべて | リストボックス、ヘッダー、フッター、列 | -| [`OBJECT Get vertical alignment`](../commands/object-get-vertical-alignment) | すべて | リストボックス、ヘッダー、フッター、列 | -| [`OBJECT MOVE`](../commands/object-move) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT SET COLOR`](../commands/object-set-color) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT SET COORDINATES`](../commands/object-set-coordinates) | すべて | リストボックス | -| [`OBJECT SET DATA SOURCE`](../commands/object-set-data-source) | すべて | リストボックス | -| [`OBJECT SET ENTERABLE`](../commands/object-set-enterable) | すべて | 列 | -| [`OBJECT SET EVENTS`](../commands/object-set-events) | すべて | リストボックス | -| [`OBJECT SET FOCUS RECTANGLE INVISIBLE`](../commands/object-set-focus-rectangle-invisible) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT SET FONT`](../commands/object-set-font) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT SET FONT SIZE`](../commands/object-set-font-size) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT SET FONT STYLE`](../commands/object-set-font-style) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT SET FORMAT`](../commands/object-set-format) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT SET HELP TIP`](../commands/object-set-help-tip) | すべて | ヘッダー、フッター | -| [`OBJECT SET HORIZONTAL ALIGNMENT`](../commands/object-set-horizontal-alignment) | すべて | リストボックス、ヘッダー、フッター、列 | -| [`OBJECT SET RESIZING OPTIONS`](../commands/object-set-resizing-options) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) | すべて | リストボックス、ヘッダー、フッター、行、列 | -| [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) | すべて | リストボックス | -| [`OBJECT SET SCROLLBAR`](../commands/object-set-scrollbar) | すべて | リストボックス。 選択された行または指定された行が表示されるようにリストボックスをスクロールします | -| [`OBJECT SET TITLE`](../commands/object-set-title) | すべて | ヘッダー | -| [`OBJECT SET VERTICAL ALIGNMENT`](../commands/object-set-vertical-alignment) | すべて | リストボックス、ヘッダー、フッター、列 | -| [`OBJECT SET VISIBLE`](../commands/object-set-visible) | すべて | リストボックス、ヘッダー、フッター | - -ヘッダーまたはフッターに [`OBJECT SET VISIBLE`](../commands/object-set-visible) を使用すると、このコマンドに渡した引数に関わらず、そのリストボックスオブジェクトのヘッダーまたはフッターすべてが対象になります。 たとえば、`OBJECT SET VISIBLE(*;"header3";False)` という命令の場合、指定したヘッダーだけではなく、*header3* が属するリストボックスの全ヘッダーを非表示にします。 なお、[`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用してこれらのオブジェクトの表示設定を管理するには、それらのオブジェクトはあらかじめ、リストボックスプロパティにて表示設定にされている必要があります。 +| コマンド | リストボックスのタイプ | サポートされる部分 | +| ------------------------------------------------------------------------------------------ | ----------- | ------------------------------------------------ | +| [`OBJECT DUPLICATE`](../commands/object-duplicate) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT GET BEST SIZE`](../commands/object-get-best-size) | すべて | 列 | +| [`OBJECT Get border style`](../commands/object-get-border-style) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT GET COORDINATES`](../commands/object-get-coordinates) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT Get data source`](../commands/object-get-data-source) | 配列 | リストボックス | +| [`OBJECT GET DRAG AND DROP OPTIONS`](../commands/object-get-drag-and-drop-options) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT Get enterable`](../commands/object-get-enterable) | すべて | 列 | +| [`OBJECT Get filter`](../commands/object-get-filter) | すべて | 列 | +| [`OBJECT Get focus rectangle invisible`](../commands/object-get-focus-rectangle-invisible) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT Get font`](../commands/object-get-font) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT Get font size`](../commands/object-get-font-size) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT Get font style`](../commands/object-get-font-style) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT Get format`](../commands/object-get-format) | すべて | ヘッダー | +| [`OBJECT Get help tip`](../commands/object-get-help-tip) | すべて | ヘッダー、フッター | +| [`OBJECT Get horizontal alignment`](../commands/object-get-horizontal-alignment) | すべて | リストボックス、ヘッダー、フッター、列 | +| [`OBJECT Get list reference`](../commands/object-get-list-reference) | すべて | 列 | +| [`OBJECT Get name`](../commands/object-get-name) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT Get pointer`](../commands/object-get-pointer) | すべて | リストボックス、ヘッダー、フッター、行、列 (下記参照) | +| [`OBJECT GET RESIZING OPTIONS`](../commands/object-get-resizing-options) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT GET RGB COLORS`](../commands/object-get-rgb-colors) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT GET SCROLL POSITION`](../commands/object-get-scroll-position) | すべて | リストボックス | +| [`OBJECT GET SCROLLBAR`](../commands/object-get-scrollbar) | すべて | リストボックス | +| [`OBJECT Get type`](../commands/object-get-type) | すべて | リストボックス、ヘッダー、フッター、列 | +| [`OBJECT Get vertical alignment`](../commands/object-get-vertical-alignment) | すべて | リストボックス、ヘッダー、フッター、列 | +| [`OBJECT MOVE`](../commands/object-move) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT SET COLOR`](../commands/object-set-color) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT SET COORDINATES`](../commands/object-set-coordinates) | すべて | リストボックス | +| [`OBJECT SET DATA SOURCE`](../commands/object-set-data-source) | すべて | リストボックス | +| [`OBJECT SET ENTERABLE`](../commands/object-set-enterable) | すべて | 列 | +| [`OBJECT SET EVENTS`](../commands/object-set-events) | すべて | リストボックス | +| [`OBJECT SET FOCUS RECTANGLE INVISIBLE`](../commands/object-set-focus-rectangle-invisible) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT SET FONT`](../commands/object-set-font) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT SET FONT SIZE`](../commands/object-set-font-size) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT SET FONT STYLE`](../commands/object-set-font-style) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT SET FORMAT`](../commands/object-set-format) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT SET HELP TIP`](../commands/object-set-help-tip) | すべて | ヘッダー、フッター | +| [`OBJECT SET HORIZONTAL ALIGNMENT`](../commands/object-set-horizontal-alignment) | すべて | リストボックス、ヘッダー、フッター、列 | +| [`OBJECT SET RESIZING OPTIONS`](../commands/object-set-resizing-options) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) | すべて | リストボックス、ヘッダー、フッター、行、列 | +| [`OBJECT SET SCROLL POSITION`](../commands/object-set-scroll-position) | すべて | リストボックス | +| [`OBJECT SET SCROLLBAR`](../commands/object-set-scrollbar) | すべて | リストボックス。選択された行または指定された行が表示されるようにリストボックスをスクロールします | +| [`OBJECT SET TITLE`](../commands/object-set-title) | すべて | ヘッダー | +| [`OBJECT SET VERTICAL ALIGNMENT`](../commands/object-set-vertical-alignment) | すべて | リストボックス、ヘッダー、フッター、列 | +| [`OBJECT SET VISIBLE`](../commands/object-set-visible) | すべて | リストボックス、ヘッダー、フッター | + +ヘッダーまたはフッターに [`OBJECT SET VISIBLE`](../commands/object-set-visible) を使用すると、このコマンドに渡した引数に関わらず、そのリストボックスオブジェクトのヘッダーまたはフッターすべてが対象になります。たとえば、`OBJECT SET VISIBLE(*;"header3";False)` という命令の場合、指定したヘッダーだけではなく、*header3* が属するリストボックスの全ヘッダーを非表示にします。なお、[`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用してこれらのオブジェクトの表示設定を管理するには、それらのオブジェクトはあらかじめ、リストボックスプロパティにて表示設定にされている必要があります。 ### OBJECT Get pointer -[`OBJECT Get pointer`](../commands/object-get-pointer) コマンドで `Object with focus` または `Object current` 定数を使用する方法は、リストボックス本体またはリストボックスカラムのオブジェクトメソッドで使用することができます。 これは[フォームイベント](../Events/overview.md) のタイプによって、リストボックス、リストボックスカラム(以下の注記参考)またはヘッダ変数へのポインターを返します。 以下の表はこの機能の動作の詳細をまとめたものです: +[`OBJECT Get pointer`](../commands/object-get-pointer) コマンドで `Object with focus` または `Object current` 定数を使用する方法は、リストボックス本体またはリストボックスカラムのオブジェクトメソッドで使用することができます。これは[フォームイベント](../Events/overview.md) のタイプによって、リストボックス、リストボックスカラム(以下の注記参考)またはヘッダ変数へのポインターを返します。以下の表はこの機能の動作の詳細をまとめたものです: | イベント | `Object with focus` | `Object current` | | -------------------------------------------------------- | ------------------------------------- | ------------------------------------- | @@ -741,12 +735,12 @@ Variable 2 も常に表示され、入力できます。 これは二番目の | [`On Footer Click`](../Events/onFooterClick.md) | リストボックス | フッター | | [`On After Sort`](../Events/onAfterSort.md) | リストボックス | ヘッダー | -(\*) フォーカスがリストボックス内で変更された場合、カラムへのポインターが返されます。 フォーカスがフォーム全体のレベルで変更された場合、リストボックスへのポインターが返されます。 カラムのオブジェクトメソッドのコンテキストにおいては、カラムへのポインターが返されます。 +(\*) フォーカスがリストボックス内で変更された場合、カラムへのポインターが返されます。フォーカスがフォーム全体のレベルで変更された場合、リストボックスへのポインターが返されます。カラムのオブジェクトメソッドのコンテキストにおいては、カラムへのポインターが返されます。 (\*\*) カラムのオブジェクトメソッドのコンテキストにおいては実行されません。 :::note -カラムへのポインターが返された場合、ポインターが指し示すオブジェクトはリストボックスのタイプによって変わります。 配列型リストボックスの場合、`OBJECT Get pointer` コマンドは、フォーカスがあるリストボックスのカラム(つまり配列)へのポインターを返します。 4D のポインターの機構では、変更された配列の項目番号を見ることができます。 例えば、ユーザーがcol2 というカラムの5行目を編集したとします: +カラムへのポインターが返された場合、ポインターが指し示すオブジェクトはリストボックスのタイプによって変わります。配列型リストボックスの場合、`OBJECT Get pointer` コマンドは、フォーカスがあるリストボックスのカラム(つまり配列)へのポインターを返します。 4D のポインターの機構では、変更された配列の項目番号を見ることができます。例えば、ユーザーがcol2 というカラムの5行目を編集したとします: ```4d $Column:=OBJECT Get pointer(Object with focus) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/pictureButton_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/pictureButton_overview.md index 3c94d5d4627788..efbf5173c9cb52 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/pictureButton_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/pictureButton_overview.md @@ -7,7 +7,7 @@ title: ピクチャーボタン ピクチャーボタンは、次の 2つの方法で使用します: -- フォーム上のコマンドボタンとして。 この場合、ピクチャーボタンには通常 4種類の状態があります (有効、無効、クリック、ロールオーバー)。 +- フォーム上のコマンドボタンとして。この場合、ピクチャーボタンには通常 4種類の状態があります (有効、無効、クリック、ロールオーバー)。 たとえば、1行 4列からなるサムネールテーブルの場合、各サムネールはデフォルト、クリック、ロールオーバー、無効という状態に対応しています。 | プロパティ | JSON 名 | 値 | @@ -18,8 +18,8 @@ title: ピクチャーボタン | ロールオーバー効果 | switchWhenRollover | true | | 無効時に最終フレームを使用 | useLastFrameAsDisabled | true | -- 複数の選択項目の中からユーザーに選ばせるためのピクチャーボタンとして。 この場合、ピクチャーボタンをポップアップピクチャーメニューの代わりに使用することができます。 [ピクチャーポップアップメニュー](picturePopupMenu_overview.md) ではすべての選択肢が (ポップアップメニューの項目として) 同時に表示されます。他方ピクチャーボタンは、選択候補を連続的に表示します (ボタンをクリックする度に変わります)。 - 次に示すのは、ピクチャーボタンの例です。 たとえば、カスタムアプリケーションのユーザーに、アプリケーションのインタフェース言語を選ばせたいものとします。 そこで下図のように、選択候補をピクチャーボタンとしてカスタムプロパティダイアログボックスに組み込みます: +- 複数の選択項目の中からユーザーに選ばせるためのピクチャーボタンとして。この場合、ピクチャーボタンをポップアップピクチャーメニューの代わりに使用することができます。[ピクチャーポップアップメニュー](picturePopupMenu_overview.md) ではすべての選択肢が (ポップアップメニューの項目として) 同時に表示されます。他方ピクチャーボタンは、選択候補を連続的に表示します (ボタンをクリックする度に変わります)。 + 次に示すのは、ピクチャーボタンの例です。たとえば、カスタムアプリケーションのユーザーに、アプリケーションのインターフェース言語を選ばせたいものとします。そこで下図のように、選択候補をピクチャーボタンとしてカスタムプロパティダイアログボックスに組み込みます: ![](../assets/en/FormObjects/button_pictureButton.png) @@ -33,7 +33,7 @@ title: ピクチャーボタン ![](../assets/en/FormObjects/pictureButton_grid.png) -ピクチャーは、縦、横、または縦横格子状に整理することができます (上図を参照)。 ピクチャーを格子状に並べた場合、各ピクチャーには上の行から順に左から右へと、0から始まる番号が振られます。 たとえば、4行と 3列で構成される格子において、2行目の 2番目の画像の番号は 4 になります (上の例では英国旗)。 +ピクチャーは、縦、横、または縦横格子状に整理することができます (上図を参照)。ピクチャーを格子状に並べた場合、各ピクチャーには上の行から順に左から右へと、0から始まる番号が振られます。たとえば、4行と 3列で構成される格子において、2行目の 2番目の画像の番号は 4 になります (上の例では英国旗)。 2. プロジェクトの Resouces フォルダーに画像があるのを確認し、そのファイルパスを [パス名](properties_Picture.md#パス名) プロパティに入力します。 @@ -43,9 +43,9 @@ title: ピクチャーボタン ## アニメーション -ピクチャーボタンは、標準的な配置や見た目の設定以外にも、表示モードと動作モードを指定する専用プロパティを設定することができます。 これらのオプションは組み合わせて使用することができます。 +ピクチャーボタンは、標準的な配置や見た目の設定以外にも、表示モードと動作モードを指定する専用プロパティを設定することができます。これらのオプションは組み合わせて使用することができます。 -- デフォルト ([アニメーションオプション](properties_Animation.md) 未選択) の場合、ユーザーがクリックすると、系列中の次のピクチャーを表示します。**Shift** キーを押しながらクリックすると、系列中の前のピクチャーを表示します。 系列中の最後のピクチャーに到達すると、もう一度クリックしてもピクチャーは変わりません。 つまりこの設定では、系列中の最初のピクチャーへ一巡して戻ることはありません。 +- デフォルト ([アニメーションオプション](properties_Animation.md) 未選択) の場合、ユーザーがクリックすると、系列中の次のピクチャーを表示します。**Shift** キーを押しながらクリックすると、系列中の前のピクチャーを表示します。系列中の最後のピクチャーに到達すると、もう一度クリックしてもピクチャーは変わりません。つまりこの設定では、系列中の最初のピクチャーへ一巡して戻ることはありません。 次のモードを選択することができます: @@ -56,7 +56,7 @@ title: ピクチャーボタン - [無効時に最終フレームを使用](properties_Animation.md#無効時に最終フレームを使用) - [アニメーション間隔 (秒)](./properties_Animation.md#アニメーション間隔-秒) -> ピクチャーボタンに [関連付けた変数](properties_Object.md#変数あるいは式) は、ピクチャーのサムネールテーブルで現在表示されているピクチャーのインデックス番号を返します。 このテーブル内のピクチャー番号は 0 から始まります。 +> ピクチャーボタンに [関連付けた変数](properties_Object.md#変数あるいは式) は、ピクチャーのサムネールテーブルで現在表示されているピクチャーのインデックス番号を返します。このテーブル内のピクチャー番号は 0 から始まります。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/picturePopupMenu_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/picturePopupMenu_overview.md index 05d50c85e4aeff..daf6f700d6c9ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/picturePopupMenu_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/picturePopupMenu_overview.md @@ -3,24 +3,23 @@ id: picturePopupMenuOverview title: ピクチャーポップアップメニュー --- -ピクチャーポップアップメニューは、画像の二次元配列を表示するポップアップメニューです。 ピクチャーポップアップメニューを使用して、[ピクチャー ボタン](pictureButton_overview.md) を置き換えることができます。 ピクチャーポップアップメニューで使用するピクチャーの作成方法は、ピクチャーボタン用のピクチャーと似ています。 その概念は [ボタングリッド](buttonGrid_overview.md) と同じですが、グラフィックがフォームオブジェクトではなくポップアップメニューとして使用される点が異なります。 +ピクチャーポップアップメニューは、画像の二次元配列を表示するポップアップメニューです。ピクチャーポップアップメニューを使用して、[ピクチャー ボタン](pictureButton_overview.md) を置き換えることができます。ピクチャーポップアップメニューで使用するピクチャーの作成方法は、ピクチャーボタン用のピクチャーと似ています。その概念は [ボタングリッド](buttonGrid_overview.md) と同じですが、グラフィックがフォームオブジェクトではなくポップアップメニューとして使用される点が異なります。 ## ピクチャーポップアップメニューの使用 -ピクチャーポップアップメニューを作成するには、[画像を参照](properties_Picture.md#パス名) する必要があります。 次の例は、ピクチャーポップアップメニューからインタフェース言語を選ぶことができます。 各言語は対応する国旗で表わされています: +ピクチャーポップアップメニューを作成するには、[画像を参照](properties_Picture.md#パス名) する必要があります。次の例は、ピクチャーポップアップメニューからインターフェース言語を選ぶことができます。各言語は対応する国旗で表わされています: ![](../assets/en/FormObjects/picturePopupMenu_example.png) ### プログラミング -ピクチャーポップアップメニューは、メソッドを使用して管理できます。 [ボタングリッド](buttonGrid_overview.md) と同様、ピクチャーポップアップメニューに割り当てられた変数に、選択された要素の値が代入されます。 項目が選択されなければ、この値は 0 になります。 各ピクチャーには上の行から順に左から右へと番号が振られます。 +ピクチャーポップアップメニューは、メソッドを使用して管理できます。[ボタングリッド](buttonGrid_overview.md) と同様、ピクチャーポップアップメニューに割り当てられた変数に、選択された要素の値が代入されます。項目が選択されなければ、この値は 0 になります。各ピクチャーには上の行から順に左から右へと番号が振られます。 ### ページ指定アクション -ピクチャーポップアップメニューにページ指定用の `gotoPage` [標準アクション](/Desktop/standard-actions)を割り当てることができます。 このアクションを選択すると、4D はピクチャー配列で選択されたピクチャー位置に相当するフォームのページを自動的に表示します。 要素は左から右、上から下に向かって番号が割り当てられます。 +ピクチャーポップアップメニューにページ指定用の `gotoPage` [標準アクション](/Desktop/standard-actions)を割り当てることができます。このアクションを選択すると、4D はピクチャー配列で選択されたピクチャー位置に相当するフォームのページを自動的に表示します。要素は左から右、上から下に向かって番号が割り当てられます。 -たとえば、ユーザーが3番目の要素をクリックすると、4D はカレントフォームの 3ページ目 (存在する場合) を表示します。 -クリックをプログラムから管理したい場合は "動作なし" を選択します。 +たとえば、ユーザーが3番目の要素をクリックすると、4D はカレントフォームの 3ページ目 (存在する場合) を表示します。クリックをプログラムから管理したい場合は "動作なし" を選択します。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/pluginArea_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/pluginArea_overview.md index 066b5bc2b211b3..cf4c93a940573c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/pluginArea_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/pluginArea_overview.md @@ -3,19 +3,19 @@ id: pluginAreaOverview title: プラグインエリア --- -プラグインエリアは、[プラグイン](../Extensions/develop-plug-ins.md) によって完全に制御されるフォーム上のエリアです。 フォームにプラグインエリアを追加できることで、カスタムアプリケーションを作成する際の可能性が限りなく広がります。 +プラグインエリアは、[プラグイン](../Extensions/develop-plug-ins.md) によって完全に制御されるフォーム上のエリアです。フォームにプラグインエリアを追加できることで、カスタムアプリケーションを作成する際の可能性が限りなく広がります。 -アプリケーションを開く際、4Dは [アプリケーションにインストール](../Concepts/plug-ins.md#プラグインのインストール) されたプラグインのリストを内部的に作成します。 プラグインエリアをフォームに挿入すると、そのプロパティリスト内の **タイプ** リスト ("オブジェクト"テーマ内) にて、プラグインを割り当てることができます: +アプリケーションを開く際、4Dは [アプリケーションにインストール](../Concepts/plug-ins.md#プラグインのインストール) されたプラグインのリストを内部的に作成します。プラグインエリアをフォームに挿入すると、そのプロパティリスト内の **タイプ** リスト ("オブジェクト"テーマ内) にて、プラグインを割り当てることができます: ![](../assets/en/FormObjects/pluginArea.png) -> 一部のプラグイン (4D Internet Commands など) はフォームやプラグインウインドウで使用することができません。 プラグインがフォームで使用できない場合、そのプラグインはプロパティリストに候補として表示されません。 +> 一部のプラグイン (4D Internet Commands など) はフォームやプラグインウインドウで使用することができません。プラグインがフォームで使用できない場合、そのプラグインはプロパティリストに候補として表示されません。 -作成したプラグインエリアが小さすぎる場合、4Dはエリアをボタンとして表示し、エリアに割り当てられた変数名がそのタイトルに使用されます。 実行時ユーザーはこのボタンをクリックしてプラグインを表示するためのウィンドウを開くことができます。 +作成したプラグインエリアが小さすぎる場合、4Dはエリアをボタンとして表示し、エリアに割り当てられた変数名がそのタイトルに使用されます。実行時ユーザーはこのボタンをクリックしてプラグインを表示するためのウィンドウを開くことができます。 ## 詳細オプション -プラグインの作成者が詳細オプションを提供していると、プロパティリストの **プラグイン** テーマ内に [**詳細設定**](properties_Plugins.md) ボタンが使用可能になることがあります。 この場合ボタンをクリックすると、プラグインの制作元によるカスタムダイアログにてそれらのオプションを設定することができます。 +プラグインの作成者が詳細オプションを提供していると、プロパティリストの **プラグイン** テーマ内に [**詳細設定**](properties_Plugins.md) ボタンが使用可能になることがあります。この場合ボタンをクリックすると、プラグインの制作元によるカスタムダイアログにてそれらのオプションを設定することができます。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/progressIndicator.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/progressIndicator.md index ef8df094dd090d..de9d57994e62af 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/progressIndicator.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/progressIndicator.md @@ -9,23 +9,23 @@ title: 進捗インジケーター ## インジケーターの使用 -インジケーターを使用して値の表示や設定ができます。 たとえば、メソッドを用いてサーモメーターに値を指定すると、その値が表示されます。 ユーザーがインジケーターポイントをドラッグすると、その値が変更されます。 この値はフィールド、入力可オブジェクト、入力不可オブジェクト等の他のオブジェクトで使用することができます。 +インジケーターを使用して値の表示や設定ができます。たとえば、メソッドを用いてサーモメーターに値を指定すると、その値が表示されます。ユーザーがインジケーターポイントをドラッグすると、その値が変更されます。この値はフィールド、入力可オブジェクト、入力不可オブジェクト等の他のオブジェクトで使用することができます。 -インジケーターに関連付けた変数により、その表示を管理します。 メソッドを用いて、この変数に値を代入したり、またはインジケーターの値を使用したりします。 たとえば、フィールドまたは入力可オブジェクトのメソッドを使用して、サーモメーターを管理できます: +インジケーターに関連付けた変数により、その表示を管理します。メソッドを用いて、この変数に値を代入したり、またはインジケーターの値を使用したりします。たとえば、フィールドまたは入力可オブジェクトのメソッドを使用して、サーモメーターを管理できます: ```4d vTherm:=[Employees]Salary ``` -このメソッドは Salary フィールドの値を vTherm 変数に代入します。 このメソッドは、たとえばフォーム上で Salary フィールドのオブジェクトメソッドとして記述できます。 +このメソッドは Salary フィールドの値を vTherm 変数に代入します。このメソッドは、たとえばフォーム上で Salary フィールドのオブジェクトメソッドとして記述できます。 -逆にインジケーターを使用してフィールドの値を管理することも可能です。 ユーザーはインジケーターをドラッグして値を設定します。 このメソッドは次の通りです: +逆にインジケーターを使用してフィールドの値を管理することも可能です。ユーザーはインジケーターをドラッグして値を設定します。このメソッドは次の通りです: ```4d [Employees]Salary:=vTherm ``` -このメソッドはインジケーターの値を Salary フィールドに代入します。 ユーザーがインジケーターをドラッグすると、Salary フィールドの値が変わります。 +このメソッドはインジケーターの値を Salary フィールドに代入します。ユーザーがインジケーターをドラッグすると、Salary フィールドの値が変わります。 ## デフォルトサーモメーター @@ -33,7 +33,7 @@ title: 進捗インジケーター サーモメーターはデフォルトの進捗インジケーターです。 -縦または横のサーモメーターバーを表示できます。 どちらになるかはフォームエディター上に描かれたオブジェクトの形により決定されます。 +縦または横のサーモメーターバーを表示できます。どちらになるかはフォームエディター上に描かれたオブジェクトの形により決定されます。 描画に関するプロパティをいくつか設定することができます: 最小/最大値、目盛りの単位、ステップ、その他の表示オプションなどです。 @@ -80,13 +80,13 @@ title: 進捗インジケーター ![](../assets/en/FormObjects/indicator.gif) -**バーバーショップ** はデフォルトサーモメーターの一種です。 このバリエーションを選択するには [バーバーショップ](properties_Scale.md#バーバーショップ) プロパティをチェックします。 +**バーバーショップ** はデフォルトサーモメーターの一種です。このバリエーションを選択するには [バーバーショップ](properties_Scale.md#バーバーショップ) プロパティをチェックします。 > JSON コードにおいては、デフォルトサーモメーターのオブジェクトから "max" プロパティを取り除くだけで、インジケーターがバーバーショップになります。 -バーバーショップは [スピナー](spinner.md) のように連続したアニメーションを表示します。 このタイプのサーモメーターは通常プログラムが何らかの処理を行っていて、それが終了する時間が予測できない場合、そのことをユーザーに通知するために使用します。 このバリエーションが選択されるとプロパティリストの [スケール](properties_Scale.md) テーマは非表示になります。 +バーバーショップは [スピナー](spinner.md) のように連続したアニメーションを表示します。このタイプのサーモメーターは通常プログラムが何らかの処理を行っていて、それが終了する時間が予測できない場合、そのことをユーザーに通知するために使用します。このバリエーションが選択されるとプロパティリストの [スケール](properties_Scale.md) テーマは非表示になります。 -フォームが実行されたとき、オブジェクトのアニメーションは開始されません。 [割り当てられた変数](properties_Object.md#変数あるいは式) に値を代入してアニメーションを管理します: +フォームが実行されたとき、オブジェクトのアニメーションは開始されません。[割り当てられた変数](properties_Object.md#変数あるいは式) に値を代入してアニメーションを管理します: - 1 = アニメーション開始 - 0 = アニメーション停止 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md index 18c2d09c232e3b..502f31f21e7cd0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Action.md @@ -7,16 +7,16 @@ title: アクション ## ドラッグ有効 -ユーザーによるオブジェクトのドラッグを制御します。 デフォルトでは、ドラッグ操作は禁止されています。 +ユーザーによるオブジェクトのドラッグを制御します。デフォルトでは、ドラッグ操作は禁止されています。 二つのドラッグモードが提供されています: -- **カスタム**: このモードでは、オブジェクトに対しておこなわれたドラッグ操作は、当該オブジェクトのコンテキストにおいて `On Begin Drag` フォームイベントを発生させます。 これを利用して、開発者はメソッドを用いてドラッグアクションを管理しなければなりません。 - つまり、カスタムモードにおいては、ドラッグ&ドロップ操作のすべてが開発者により管理されます。 このモードでは、ドラッグ&ドロップに基づいたあらゆるインターフェースを実装することができます。 これにはデータの転送を必ずしも伴わないものも含まれ、ファイルを開くや計算をトリガーするなどの任意のアクションを実行することができます。 このモードは専用のプロパティ、イベント、`ペーストボード` テーマのコマンド等の組み合わせに基づいています。 -- **自動**: このモードでは、ドラッグ元のフォームオブジェクトからテキストやピクチャーが 4D によって **コピー** されます。 このコピーは、同じ 4Dエリア内、2つの 4Dエリア間、4D と他のアプリケーション間で使用できます。 例えば、自動ドラッグ(&ドロップ)を使用すると、プログラミングを使用することなく、2つのフィールド間で値をコピーすることができます: +- **カスタム**: このモードでは、オブジェクトに対しておこなわれたドラッグ操作は、当該オブジェクトのコンテキストにおいて `On Begin Drag` フォームイベントを発生させます。これを利用して、開発者はメソッドを用いてドラッグアクションを管理しなければなりません。 + つまり、カスタムモードにおいては、ドラッグ&ドロップ操作のすべてが開発者により管理されます。このモードでは、ドラッグ&ドロップに基づいたあらゆるインターフェースを実装することができます。 これにはデータの転送を必ずしも伴わないものも含まれ、ファイルを開くや計算をトリガーするなどの任意のアクションを実行することができます。このモードは専用のプロパティ、イベント、`ペーストボード` テーマのコマンド等の組み合わせに基づいています。 +- **自動**: このモードでは、ドラッグ元のフォームオブジェクトからテキストやピクチャーが 4D によって **コピー** されます。このコピーは、同じ 4Dエリア内、2つの 4Dエリア間、4D と他のアプリケーション間で使用できます。例えば、自動ドラッグ(&ドロップ)を使用すると、プログラミングを使用することなく、2つのフィールド間で値をコピーすることができます: ![](../assets/en/FormObjects/property_automaticDragDrop.png) ![](../assets/en/FormObjects/property_automaticDragDrop2.png)
    - このモードにおいては、 `On Begin Drag` フォームイベントは、**生成されません**。 自動ドラッグが有効のときに標準のドラッグを "強制" したい場合、アクションの間 **Alt** (Windows) または **Option** (macOS) キーを押しながら操作します。 このオプションはピクチャーでは利用できません。 + このモードにおいては、 `On Begin Drag` フォームイベントは、**生成されません**。自動ドラッグが有効のときに標準のドラッグを "強制" したい場合、アクションの間 **Alt** (Windows) または **Option** (macOS) キーを押しながら操作します。このオプションはピクチャーでは利用できません。 詳細については、[ドラッグ&ドロップ](../Desktop/drag-and-drop.md) を参照してください。 @@ -46,9 +46,9 @@ title: アクション 二つのドロップモードが提供されています: -- **カスタム**: このモードでは、オブジェクトに対しておこなわれたドロップ操作は、当該オブジェクトのコンテキストにおいて `On Drag Over` と `On Drop` フォームイベントを発生させます。 これを利用して、開発者はメソッドを用いてドロップアクションを管理しなければなりません。 - つまり、カスタムモードにおいては、ドラッグ&ドロップ操作のすべてが開発者により管理されます。 このモードでは、ドラッグ&ドロップに基づいたあらゆるインターフェースを実装することができます。 これにはデータの転送を必ずしも伴わないものも含まれ、ファイルを開くや計算をトリガーするなどの任意のアクションを実行することができます。 このモードは専用のプロパティ、イベント、`ペーストボード` テーマのコマンド等の組み合わせに基づいています。 -- **自動**: このモードでは、4D は可能な限り自動で、オブジェクトにドロップされたテキストやピクチャー型データの挿入を管理します (データはオブジェクトにペーストされます)。 このモードでは、`On Drag Over` と `On Drop` フォームイベントは生成されません。 他方、ドロップ中の `On After Edit` とオブジェクトがフォーカスを失った時の `On Data Change` イベントは生成されます。 +- **カスタム**: このモードでは、オブジェクトに対しておこなわれたドロップ操作は、当該オブジェクトのコンテキストにおいて `On Drag Over` と `On Drop` フォームイベントを発生させます。これを利用して、開発者はメソッドを用いてドロップアクションを管理しなければなりません。 + つまり、カスタムモードにおいては、ドラッグ&ドロップ操作のすべてが開発者により管理されます。このモードでは、ドラッグ&ドロップに基づいたあらゆるインターフェースを実装することができます。 これにはデータの転送を必ずしも伴わないものも含まれ、ファイルを開くや計算をトリガーするなどの任意のアクションを実行することができます。このモードは専用のプロパティ、イベント、`ペーストボード` テーマのコマンド等の組み合わせに基づいています。 +- **自動**: このモードでは、4D は可能な限り自動で、オブジェクトにドロップされたテキストやピクチャー型データの挿入を管理します (データはオブジェクトにペーストされます)。このモードでは、`On Drag Over` と `On Drop` フォームイベントは生成されません。他方、ドロップ中の `On After Edit` とオブジェクトがフォーカスを失った時の `On Data Change` イベントは生成されます。 詳細については、[ドラッグ&ドロップ](../Desktop/drag-and-drop.md) を参照してください。 @@ -74,7 +74,7 @@ title: アクション ## オブジェクトメソッド実行 -このオプションを選択した場合、ユーザーがインジケーターの値を変更すると *同時に* `On Data Change` イベントが生成され、オブジェクトメソッドが実行されます。 デフォルトでは、*変更後に* メソッドが実行されます。 +このオプションを選択した場合、ユーザーがインジケーターの値を変更すると *同時に* `On Data Change` イベントが生成され、オブジェクトメソッドが実行されます。デフォルトでは、*変更後に* メソッドが実行されます。 #### JSON 文法 @@ -90,13 +90,13 @@ title: アクション ## メソッド -オブジェクトに関連づけられたメソッドへの参照。 オブジェクトメソッドは通常、フォームが表示または印刷されている間、オブジェクトを "管理" します。 オブジェクトメソッドは呼び出す必要がありません。 オブジェクトメソッドが関連づけられているオブジェクトに関わるイベントが発生した場合、4D は自動的にオブジェクトメソッドを呼び出します。 +オブジェクトに関連づけられたメソッドへの参照。オブジェクトメソッドは通常、フォームが表示または印刷されている間、オブジェクトを "管理" します。オブジェクトメソッドは呼び出す必要がありません。 オブジェクトメソッドが関連づけられているオブジェクトに関わるイベントが発生した場合、4D は自動的にオブジェクトメソッドを呼び出します。 メソッド参照にはいくつかのタイプが利用可能です: - 標準のオブジェクトメソッドファイルパス: `ObjectMethods/objectName.4dm` - (`objectName` には実際の [オブジェクト名](properties_Object.md#オブジェクト名) が入ります)。 このタイプの参照は、当該メソッドファイルがデフォルトの場所 ("sources/forms/*formName*/ObjectMethods/") にあることを示します。 この場合、エディター上でフォームオブジェクトに対して操作 (名称変更、複製、コピー/ペーストなど) がおこなわれると、4D はこれらの変更を自動的にオブジェクトメソッドに反映させます。 + (`objectName` には実際の [オブジェクト名](properties_Object.md#オブジェクト名) が入ります)。このタイプの参照は、当該メソッドファイルがデフォルトの場所 ("sources/forms/*formName*/ObjectMethods/") にあることを示します。この場合、エディター上でフォームオブジェクトに対して操作 (名称変更、複製、コピー/ペーストなど) がおこなわれると、4D はこれらの変更を自動的にオブジェクトメソッドに反映させます。 - 拡張子を省いた既存のプロジェクトメソッド名: `myMethod`。この場合、フォームオブジェクトに対して操作がおこなわれても、4D はそれらの変更を自動で反映しません。 @@ -145,7 +145,7 @@ title: アクション `配列型リストボックス` -ランタイムにおける行の移動を許可します。 このオプションはデフォルトで選択されています。 [セレクション型のリストボックス](listbox_overview.md#セレクションリストボックス) および [階層リストボックス](properties_Hierarchy.md#階層リストボックス) では、このオプションは提供されていません。 +ランタイムにおける行の移動を許可します。このオプションはデフォルトで選択されています。[セレクション型のリストボックス](listbox_overview.md#セレクションリストボックス) および [階層リストボックス](properties_Hierarchy.md#階層リストボックス) では、このオプションは提供されていません。 #### JSON 文法 @@ -185,14 +185,14 @@ title: アクション ## ソート可 -[リストボックス](listbox_overview.md) ヘッダーのクリックによる列データの並べ替えを有効にします。 このオプションはデフォルトで選択されています。 ピクチャー型配列 (列) はこのメカニズムではソートできません。 +[リストボックス](listbox_overview.md) ヘッダーのクリックによる列データの並べ替えを有効にします。このオプションはデフォルトで選択されています。ピクチャー型配列 (列) はこのメカニズムではソートできません。 レコードセレクションに基づくリストボックスの場合、標準のソート機能は以下の場合のみ有効です: - データソースが *カレントセレクション* であり、 - その列にフィールドが割り当てられていること (文字、数値、日付、時間、およびブール型)。 -他の場合 (命名セレクションに基づくリストボックスや、式が割り当てられた列)、標準のソート機能は動作しません。 標準のリストボックスソートは、データベースのカレントセレクションの順番を変更します。 しかし、ハイライトされたレコードとカレントレコードは変更されません。 標準の並び替えは、リストボックスのすべての列 (式が割り当てられた列も含む) を同期します。 +他の場合 (命名セレクションに基づくリストボックスや、式が割り当てられた列)、標準のソート機能は動作しません。標準のリストボックスソートは、データベースのカレントセレクションの順番を変更します。しかし、ハイライトされたレコードとカレントレコードは変更されません。標準の並び替えは、リストボックスのすべての列 (式が割り当てられた列も含む) を同期します。 #### JSON 文法 @@ -212,9 +212,9 @@ title: アクション ## 標準アクション -アクティブオブジェクトにより実行される典型的な処理 (例: レコードの入力・取り消し・削除、レコード間の移動、マルチページフォームでのページ間の移動、など) は、4D より標準アクションとして提供されています。 詳細な情報に関しては、[標準アクション](/Desktop/standard-actions) の章を参照ください。 また、[4D Write Pro エリア専用の標準アクション](../WritePro/user-legacy/standard-actions.md) もあります。 +アクティブオブジェクトにより実行される典型的な処理 (例: レコードの入力・取り消し・削除、レコード間の移動、マルチページフォームでのページ間の移動、など)は、4D より標準アクションとして提供されています。詳細な情報に関しては、[標準アクション](/Desktop/standard-actions) の章を参照ください。また、[4D Write Pro エリア専用の標準アクション](../WritePro/user-legacy/standard-actions.md) もあります。 -フォームオブジェクトには、標準アクションとメソッドの両方を割り当てることができます。 この場合、標準アクションは通常、メソッドの後に実行されます。 また、4D はこのアクションを使用して、カレントコンテキストに応じてオブジェクトを有効化/無効化します。 フォームオブジェクトが無効化されていた場合、関連づけられたメソッドは実行されません。 +フォームオブジェクトには、標準アクションとメソッドの両方を割り当てることができます。この場合、標準アクションは通常、メソッドの後に実行されます。 また、4D はこのアクションを使用して、カレントコンテキストに応じてオブジェクトを有効化/無効化します。フォームオブジェクトが無効化されていた場合、関連づけられたメソッドは実行されません。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Animation.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Animation.md index 18cdca3357b971..3cf3a726a787ff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Animation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Animation.md @@ -5,7 +5,7 @@ title: アニメーション ## 先頭フレームに戻る -ピクチャーを連続的に表示し続けます。 最後のピクチャーに到達して再度クリックすると、最初のピクチャーが表示されます。 +ピクチャーを連続的に表示し続けます。最後のピクチャーに到達して再度クリックすると、最初のピクチャーが表示されます。 #### JSON 文法 @@ -25,7 +25,7 @@ title: アニメーション ## マウスアップで戻る -ユーザーがボタンをクリックしているとき以外は、一番目のピクチャーが常に表示されます。 ボタンがクリックされると、マウスボタンが放されるまで二番目のピクチャーが表示されます。 このモードを使用すると、それぞれの状態 (アイドルとクリック) ごとに異なるピクチャーを使用した動作ボタンを作成することができます。 このモードを使って 3D 効果を作成したり、ボタンの動作を表現するピクチャーを表示することができます。 +ユーザーがボタンをクリックしているとき以外は、一番目のピクチャーが常に表示されます。ボタンがクリックされると、マウスボタンが放されるまで二番目のピクチャーが表示されます。このモードを使用すると、それぞれの状態 (アイドルとクリック) ごとに異なるピクチャーを使用した動作ボタンを作成することができます。このモードを使って 3D 効果を作成したり、ボタンの動作を表現するピクチャーを表示することができます。 #### JSON 文法 @@ -45,7 +45,7 @@ title: アニメーション ## マウス押下中は自動更新 -ユーザーがマウスボタンを押している間は、各ピクチャーが連続的に (アニメーションのように) 表示されます。 最後のピクチャーに達しても、オブジェクトは最初のピクチャーに戻りません。 +ユーザーがマウスボタンを押している間は、各ピクチャーが連続的に (アニメーションのように) 表示されます。最後のピクチャーに達しても、オブジェクトは最初のピクチャーに戻りません。 #### JSON 文法 @@ -65,7 +65,7 @@ title: アニメーション ## アニメーション間隔 (秒) -このモードを使用すると、一定のスピードで (秒単位) ピクチャーボタンの内容が繰り返し表示されます。 このモードでは、他のすべてのオプションが無視されます。 +このモードを使用すると、一定のスピードで (秒単位) ピクチャーボタンの内容が繰り返し表示されます。このモードでは、他のすべてのオプションが無視されます。 #### JSON 文法 @@ -85,7 +85,7 @@ title: アニメーション ## ロールオーバー効果 -マウスカーソルが通過すると、ピクチャーボタンの内容が変わります。 カーソルがボタンエリアを離れると、最初のピクチャーが再度表示されます。 +マウスカーソルが通過すると、ピクチャーボタンの内容が変わります。カーソルがボタンエリアを離れると、最初のピクチャーが再度表示されます。 #### JSON 文法 @@ -105,7 +105,7 @@ title: アニメーション ## 無効時に最終フレームを使用 -ボタンが無効な場合に表示するサムネールとして、最後のサムネールを使用します。 ボタンが使用不可の場合に用いられるサムネールは、4Dにより別に処理されます。 このオプションと ”マウス押下中は自動更新” および ”先頭フレームへ戻る” オプションを組み合わせると、最終ピクチャーはボタンに割り当てられた順序から外され、無効時にのみ表示されるようになります。 +ボタンが無効な場合に表示するサムネールとして、最後のサムネールを使用します。ボタンが使用不可の場合に用いられるサムネールは、4Dにより別に処理されます。 このオプションと ”マウス押下中は自動更新” および ”先頭フレームへ戻る” オプションを組み合わせると、最終ピクチャーはボタンに割り当てられた順序から外され、無効時にのみ表示されるようになります。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Appearance.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Appearance.md index 7842d88e07579b..2108f645727c73 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Appearance.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Appearance.md @@ -9,7 +9,7 @@ title: アピアランス デフォルトボタンは、フォームページごとに一つのみ設定できます。 -macOS上では、デフォルトボタンプロパティによってボタンの見た目が変更され、推奨されている選択肢であることをユーザーに対して示し、フォーカスがなくても、自動的に **Enter** キーに関連付けられます。 デフォルトボタンとフォーカスされているボタンは同一である必要はありません。 macOSにおけるデフォルトボタンは特徴的な青い外観を持ちます: +macOS上では、デフォルトボタンプロパティによってボタンの見た目が変更され、推奨されている選択肢であることをユーザーに対して示し、フォーカスがなくても、自動的に **Enter** キーに関連付けられます。デフォルトボタンとフォーカスされているボタンは同一である必要はありません。 macOSにおけるデフォルトボタンは特徴的な青い外観を持ちます: ![](../assets/en/FormObjects/property_defaultButtonmacOS.en.png) @@ -33,7 +33,7 @@ Windows上では "推奨選択肢" の概念はサポートされていないた ## フォーカスの四角を隠す -ランタイムにおいて、タブキーやシングルクリックによってフォーカスを得たフィールドや入力可能なエリアは、選択状態を示す四角で縁取りされます。 このプロパティを使用して、フォーカスの四角を非表示にできます。 特定のインターフェースにおいては、フォーカスの四角を非表示にすることが便利かもしれません。 +ランタイムにおいて、タブキーやシングルクリックによってフォーカスを得たフィールドや入力可能なエリアは、選択状態を示す四角で縁取りされます。このプロパティを使用して、フォーカスの四角を非表示にできます。特定のインターフェースにおいては、フォーカスの四角を非表示にすることが便利かもしれません。 :::note @@ -63,7 +63,7 @@ Windows上では "推奨選択肢" の概念はサポートされていないた リストボックスのセレクションハイライトを非表示にします。 -このオプションが有効化されていると、リストボックスにおける行選択を可視化するセレクションハイライトが非表示になります。 ハイライトが非表示になっていても選択行は引き続き機能的に有効です。しかしながら、画面上では選択状態が明示されなくなるため、[プログラムによって選択行を可視化](listbox_overview.md#選択行の見た目のカスタマイズ) する必要があります。 +このオプションが有効化されていると、リストボックスにおける行選択を可視化するセレクションハイライトが非表示になります。ハイライトが非表示になっていても選択行は引き続き機能的に有効です。しかしながら、画面上では選択状態が明示されなくなるため、[プログラムによって選択行を可視化](listbox_overview.md#選択行の見た目のカスタマイズ) する必要があります。 デフォルトでは、このオプションは有効化されていません。 @@ -119,7 +119,7 @@ Windows上では "推奨選択肢" の概念はサポートされていないた ## 解像度 -4D Write Pro エリアの画面解像度を設定します。 デフォルト値は 72dpi (macOS) で、これはすべてのプラットフォームにおける 4Dフォームの標準解像度です。 96dpi に指定すると、Windows/Web レンダリングを macOS および Windows の両プラットフォームに設定します。 この項目を **自動** に設定すると、macOS と Windows 間でドキュメントのレンダリングが異なることになります。 +4D Write Pro エリアの画面解像度を設定します。デフォルト値は 72dpi (macOS) で、これはすべてのプラットフォームにおける 4Dフォームの標準解像度です。 96dpi に指定すると、Windows/Web レンダリングを macOS および Windows の両プラットフォームに設定します。この項目を **自動** に設定すると、macOS と Windows 間でドキュメントのレンダリングが異なることになります。 #### JSON 文法 @@ -179,7 +179,7 @@ Windows上では "推奨選択肢" の概念はサポートされていないた ## フォーミュラバーを表示 -有効化すると、4D View Pro エリアにおいてツールバーのすぐ下にフォーミュラバーが表示されます。 選択されていない場合、フォーミュラバーは非表示となります。 +有効化すると、4D View Pro エリアにおいてツールバーのすぐ下にフォーミュラバーが表示されます。選択されていない場合、フォーミュラバーは非表示となります。 > このプロパティは [ツールバー](#ユーザーインターフェース) インターフェースの場合に利用可能です。 @@ -297,7 +297,7 @@ HTML WYSIWYG ビューを有効/無効にします。 このビューでは、 ## 参照を表示 -ドキュメントに *参照* として挿入された 4D式をすべて表示します。 このオプションが無効になっていると、4D Write Pro は挿入された 4D式をカレント値で評価して、その*値* を表示します。 4Dフィールドまたは式を挿入すると、4D Write Pro はデフォルトでそのカレント値を表示します。 もとのフィールドや式を確認したいときには、このオプションを有効にします。 すると、これらの参照は灰色の背景色とともにドキュメント内に表示されます。 +ドキュメントに *参照* として挿入された 4D式をすべて表示します。このオプションが無効になっていると、4D Write Pro は挿入された 4D式をカレント値で評価して、その*値* を表示します。 4Dフィールドまたは式を挿入すると、4D Write Pro はデフォルトでそのカレント値を表示します。もとのフィールドや式を確認したいときには、このオプションを有効にします。すると、これらの参照は灰色の背景色とともにドキュメント内に表示されます。 たとえば、フォーマットを指定したカレント日付を挿入していると、デフォルトでは次の表示になります: @@ -347,7 +347,7 @@ HTML WYSIWYG ビューを有効/無効にします。 このビューでは、 ## タブコントロールの位置 -フォーム上のタブコントロールの位置を指定することができます。 このプロパティにはすべてのプラットフォームからアクセスできますが、macOS 上でのみ動作します。 タブコントロールは上 (標準)、または下に配置することができます。 +フォーム上のタブコントロールの位置を指定することができます。このプロパティにはすべてのプラットフォームからアクセスできますが、macOS 上でのみ動作します。タブコントロールは上 (標準)、または下に配置することができます。 位置がカスタマイズされたタブコントロールを Windows で表示すると、自動的に標準の位置 (上) に戻されます。 @@ -421,13 +421,13 @@ HTML WYSIWYG ビューを有効/無効にします。 このビューでは、 ## ビューモード -フォームエリア内の 4D Write Pro ドキュメントの表示モードを設定します。 次の値が提供されています: +フォームエリア内の 4D Write Pro ドキュメントの表示モードを設定します。次の値が提供されています: - **ページ**: もっとも完全といえるビューモードで、ページの枠、余白、改ページ、ヘッダー & フッターなどを含みます。 - **下書き**: 基本のドキュメントプロパティを含む下書きモードです。 -- **埋め込み**: 埋め込みエリアに適切なビューモードです。余白や、ヘッダー & フッター、ページフレームなどは表示されません。 このモードは Web に似た出力をするのに使用することもできます (この場合には、[解像度を 96dpi](#解像度) に設定のうえ、[HTML WYSIWYG 表示](#html-wysiwyg-表示) オプションを有効にします)。 +- **埋め込み**: 埋め込みエリアに適切なビューモードです。余白や、ヘッダー & フッター、ページフレームなどは表示されません。このモードは Web に似た出力をするのに使用することもできます (この場合には、[解像度を 96dpi](#解像度) に設定のうえ、[HTML WYSIWYG 表示](#html-wysiwyg-表示) オプションを有効にします)。 -> ビューモードプロパティは画面上のレンダリングにのみ使用されます。 印刷設定については、専用のレンダリングルールが自動的に適用されます。 +> ビューモードプロパティは画面上のレンダリングにのみ使用されます。印刷設定については、専用のレンダリングルールが自動的に適用されます。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md index 4ac3beab95727b..911ccbde2fda5b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md @@ -5,7 +5,7 @@ title: 背景色と境界線 ## 交互に使用する背景色 -奇数番の行/列に使用するための異なる背景色を設定することができます。 デフォルトでは、*自動* が選択されており、リストボックスレベルで設定されている "交互に使用する背景色" を列も使用します。 +奇数番の行/列に使用するための異なる背景色を設定することができます。デフォルトでは、*自動* が選択されており、リストボックスレベルで設定されている "交互に使用する背景色" を列も使用します。 このプロパティは[`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) コマンドを使用しても設定することができます。 @@ -57,7 +57,7 @@ title: 背景色と境界線 `セレクションとコレクション型リストボックス` -リストボックスの各行にカスタムの背景色を指定するための式または変数 (配列変数は使用不可)。 式または変数は表示行ごとに評価され、RGB値を返さなくてはなりません。 詳細については、*4Dランゲージリファレンス* マニュアルの [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) コマンドの説明を参照ください。 +リストボックスの各行にカスタムの背景色を指定するための式または変数 (配列変数は使用不可)。式または変数は表示行ごとに評価され、RGB値を返さなくてはなりません。詳細については、*4Dランゲージリファレンス* マニュアルの [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) コマンドの説明を参照ください。 また、このプロパティは [`LISTBOX SET PROPERTY`](../commands/listbox-set-property) コマンドに `lk background color expression` 定数を指定して設定することもできます。 @@ -133,11 +133,11 @@ title: 背景色と境界線 ## 追加の空白の行を非表示 -リストボックスオブジェクト下部に追加される余分な空白行の表示を管理します。 デフォルトで、4D は空のエリアを埋めるためにこのような行を追加します: +リストボックスオブジェクト下部に追加される余分な空白行の表示を管理します。デフォルトで、4D は空のエリアを埋めるためにこのような行を追加します: ![](../assets/en/FormObjects/property_hideExtraBlankRows1.png) -このオプションをチェックすると、これらの空白行を除去することができます。 リストボックスオブジェクトの下部は空のままになります: +このオプションをチェックすると、これらの空白行を除去することができます。リストボックスオブジェクトの下部は空のままになります: ![](../assets/en/FormObjects/property_hideExtraBlankRows2.png) @@ -159,8 +159,7 @@ title: 背景色と境界線 ## 線カラー -オブジェクトの線の色を指定します。 -カラーは次の方法で指定できます: +オブジェクトの線の色を指定します。カラーは次の方法で指定できます: - カラーネーム - 例: "red" - 16進数値 - 例: "#ff0000" @@ -208,9 +207,9 @@ title: 背景色と境界線 リストボックスまたはリストボックス列の各行にカスタムの背景色を適用するのに使用する配列名です。 -倍長整数型の配列の名前を入力しなければなりません。 配列のそれぞれの要素はリストボックスの行 (あるいは列のセル) に対応します。 つまりこの配列は、各列に関連づけられている配列と同じサイズでなければいけません。 [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) コマンドの章で説明されている定数を使用することができます。 もし上のレベルで定義されている背景色をそのままセルに継承したい場合には、対応する配列の要素に -255 を渡します。 +倍長整数型の配列の名前を入力しなければなりません。配列のそれぞれの要素はリストボックスの行 (あるいは列のセル) に対応します。 つまりこの配列は、各列に関連づけられている配列と同じサイズでなければいけません。 [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) コマンドの章で説明されている定数を使用することができます。もし上のレベルで定義されている背景色をそのままセルに継承したい場合には、対応する配列の要素に -255 を渡します。 -たとえば、リストボックスプロパティにてグレー/ライトグレーカラーが行の交互背景色として設定されているとします。 同じリストボックスに行背景色配列が指定されており、行内で負の値が一つでもあれば色をオレンジに変えます: +たとえば、リストボックスプロパティにてグレー/ライトグレーカラーが行の交互背景色として設定されているとします。同じリストボックスに行背景色配列が指定されており、行内で負の値が一つでもあれば色をオレンジに変えます: ```4d <>_BgndColors{$i}:=0x00FFD0B0 // オレンジ @@ -219,7 +218,7 @@ title: 背景色と境界線 ![](../assets/en/FormObjects/listbox_styles1.png) -次に、負の値を持つセルの色を濃いオレンジで示したい場合、 各列にも行背景色配列を設定します (例: `<>_BgndColor_1`, `<>_BgndColor_2` と `<>_BgndColor_3`)。 これらの配列の値は、リストボックスプロパティに設定されているものや、全体用の行背景色配列よりも優先されます。 +次に、負の値を持つセルの色を濃いオレンジで示したい場合、各列にも行背景色配列を設定します (例: `<>_BgndColor_1`, `<>_BgndColor_2` と `<>_BgndColor_3`)。これらの配列の値は、リストボックスプロパティに設定されているものや、全体用の行背景色配列よりも優先されます。 ```4d <>_BgndColorsCol_3{2}:=0x00FF8000 // 濃いオレンジ @@ -230,7 +229,7 @@ title: 背景色と境界線 ![](../assets/en/FormObjects/listbox_styles2.png) -[`LISTBOX SET ROW FONT STYLE`](../commands/listbox-set-row-font-style) および [`LISTBOX SET ROW COLOR`](../commands/listbox-set-row-color) コマンドを使用することでも同じ結果を得ることができます。 コマンドを使う利点は、スタイル/カラー配列をあらかじめ列に設定する必要がないことです。 この場合、これらはコマンドによって動的に作成されます。 +[`LISTBOX SET ROW FONT STYLE`](../commands/listbox-set-row-font-style) および [`LISTBOX SET ROW COLOR`](../commands/listbox-set-row-color) コマンドを使用することでも同じ結果を得ることができます。コマンドを使う利点は、スタイル/カラー配列をあらかじめ列に設定する必要がないことです。 この場合、これらはコマンドによって動的に作成されます。 #### JSON 文法 @@ -250,7 +249,7 @@ title: 背景色と境界線 ## 透過 -リストボックスの背景を透明にします。 このプロパティが有効になっていると、列に対して設定されている [交互に使用する背景色](#交互に使用する背景色) および [背景色](#背景色-塗りカラー) の設定は無視されます。 +リストボックスの背景を透明にします。このプロパティが有効になっていると、列に対して設定されている [交互に使用する背景色](#交互に使用する背景色) および [背景色](#背景色-塗りカラー) の設定は無視されます。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_CoordinatesAndSizing.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_CoordinatesAndSizing.md index a18022970c7a2b..be5307e0af0210 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_CoordinatesAndSizing.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_CoordinatesAndSizing.md @@ -10,7 +10,7 @@ title: 座標とサイズ - コレクションまたはエンティティセレクション - 配列 (階層でない) -このプロパティはデフォルトではチェックされていません。 少なくとも 1つのカラムにおいてこのプロパティが有効化されていると、カラムの内容に応じて各行の高さが 4D によって自動的に計算されます 行の高さを計算する際には、このオプションがチェックされているカラムのみが考慮されることに注意が必要です。 +このプロパティはデフォルトではチェックされていません。少なくとも 1つのカラムにおいてこのプロパティが有効化されていると、カラムの内容に応じて各行の高さが 4D によって自動的に計算されます行の高さを計算する際には、このオプションがチェックされているカラムのみが考慮されることに注意が必要です。 :::note @@ -254,12 +254,11 @@ title: 座標とサイズ
    -フォームオブジェクトの角の丸みをピクセル単位で指定します。 デフォルトでは、角の半径は 0ピクセルとなっています。 このプロパティを変更することによって独自の形の角の丸いフォームオブジェクトを描画することができます: +フォームオブジェクトの角の丸みをピクセル単位で指定します。デフォルトでは、角の半径は 0ピクセルとなっています。このプロパティを変更することによって独自の形の角の丸いフォームオブジェクトを描画することができます: ![](../assets/en/FormObjects/shape_rectangle.png) -最小値は 0 で、この場合には標準の (角の丸くない) フォームオブジェクトが描画されます。 -最大値は四角のサイズに応じて変化し、動的に計算されます (ただし四角の短辺の半分を超えることはできません)。 +最小値は 0 で、この場合には標準の (角の丸くない) フォームオブジェクトが描画されます。最大値は四角のサイズに応じて変化し、動的に計算されます (ただし四角の短辺の半分を超えることはできません)。 :::note @@ -394,7 +393,7 @@ title: 座標とサイズ ## 最大幅 -列の最大幅 (ピクセル単位)。 列やフォームをサイズ変更する際、このサイズよりも列幅を大きくすることはできません。 +列の最大幅 (ピクセル単位)。列やフォームをサイズ変更する際、このサイズよりも列幅を大きくすることはできません。 > リストボックスの [横方向サイズ変更](properties_ResizingOptions.md#横方向サイズ変更) プロパティに "拡大" を設定している場合にフォームをリサイズすると、一番右のカラムの幅は必要に応じて最大幅を超えて拡大されます。 @@ -416,7 +415,7 @@ title: 座標とサイズ ## 最小幅 -列の最小幅 (ピクセル単位)。 列やフォームをサイズ変更する際、このサイズよりも列幅を小さくすることはできません。 +列の最小幅 (ピクセル単位)。列やフォームをサイズ変更する際、このサイズよりも列幅を小さくすることはできません。 > リストボックスの [横方向サイズ変更](properties_ResizingOptions.md#横方向サイズ変更) プロパティに "拡大" を設定している場合にフォームをリサイズすると、一番右のカラムの幅は必要に応じて最大幅を超えて拡大されます。 @@ -438,7 +437,7 @@ title: 座標とサイズ ## 行の高さ -リストボックス行の高さを設定します (ヘッダーおよびフッターは除きます)。 デフォルトで、行の高さはプラットフォームとフォントサイズに基づき設定されます。 +リストボックス行の高さを設定します (ヘッダーおよびフッターは除きます)。デフォルトで、行の高さはプラットフォームとフォントサイズに基づき設定されます。 #### JSON 文法 @@ -462,7 +461,7 @@ title: 座標とサイズ ## 行高さ配列 -このプロパティは、リストボックスに関連付けたい行高さ配列の名前を指定するのに使用します。 行高さ配列は数値型である必要があります (デフォルトは倍長整数)。 +このプロパティは、リストボックスに関連付けたい行高さ配列の名前を指定するのに使用します。行高さ配列は数値型である必要があります (デフォルトは倍長整数)。 行高さ配列が定義されているとき、0 ではない値の要素はそれぞれ、リストボックスの対応する行の高さを決定する際に、選択されている行の高さ単位に基づいて考慮されます。 @@ -500,7 +499,7 @@ RowHeights{5}:=3 ## 横方向パディング -セルの水平方向のパディングを設定します。 値はピクセル単位です (デフォルトは 0)。 +セルの水平方向のパディングを設定します。値はピクセル単位です (デフォルトは 0)。 ![](../assets/en/FormObjects/padding.png) @@ -526,7 +525,7 @@ RowHeights{5}:=3 ## 縦方向パディング -セルの垂直方向のパディングを設定します。 値はピクセル単位です (デフォルトは 0)。 +セルの垂直方向のパディングを設定します。値はピクセル単位です (デフォルトは 0)。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_DataSource.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_DataSource.md index 7f5777dd10bba6..2658043d0fc9f8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_DataSource.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_DataSource.md @@ -34,7 +34,7 @@ title: データソース ## 選択リスト -選択リストをフォームオブジェクトに関連づけます。 指定できるのは選択リスト名 (リストの参照) またはデフォルト値のコレクションです。 +選択リストをフォームオブジェクトに関連づけます。指定できるのは選択リスト名 (リストの参照) またはデフォルト値のコレクションです。 #### JSON 文法 @@ -73,9 +73,9 @@ title: データソース `コレクションまたはエンティティセレクションリストボックス` -ユーザーによって選択されたコレクション要素/エンティティが割り当てられる変数あるいは式を指定します。 オブジェクト変数あるいはオブジェクトを受け入れる割り当て可能な式を使用する必要があります。 ユーザーが何も選択しなかった場合、あるいはスカラー値のコレクションを使用した場合、Null 値が割り当てられます。 +ユーザーによって選択されたコレクション要素/エンティティが割り当てられる変数あるいは式を指定します。オブジェクト変数あるいはオブジェクトを受け入れる割り当て可能な式を使用する必要があります。ユーザーが何も選択しなかった場合、あるいはスカラー値のコレクションを使用した場合、Null 値が割り当てられます。 -> このプロパティは「読み取り専用」であり、リストボックスにおけるユーザーアクションに基づいて自動的に更新されます。 この値を編集してリストボックスの選択状態を変更することはできません。 +> このプロパティは「読み取り専用」であり、リストボックスにおけるユーザーアクションに基づいて自動的に更新されます。この値を編集してリストボックスの選択状態を変更することはできません。 #### JSON 文法 @@ -103,7 +103,7 @@ title: データソース - 単一の要素/エンティティが選択されている場合、変数あるいは式はその位置を受け取ります。 - 複数の要素/エンティティが選択されている場合、変数あるいは式は最後に選択された要素/エンティティの位置を受け取ります。 -> このプロパティは「読み取り専用」であり、リストボックスにおけるユーザーアクションに基づいて自動的に更新されます。 この値を編集してリストボックスの選択状態を変更することはできません。 +> このプロパティは「読み取り専用」であり、リストボックスにおけるユーザーアクションに基づいて自動的に更新されます。この値を編集してリストボックスの選択状態を変更することはできません。 #### JSON 文法 @@ -123,7 +123,7 @@ title: データソース ## データタイプ (式の型) -表示される式のデータタイプを定義します。 このプロパティは次のフォームオブジェクトで使用されます: +表示される式のデータタイプを定義します。このプロパティは次のフォームオブジェクトで使用されます: - セレクションおよびコレクション型の [リストボックスカラム](listbox-column.md)。 - オブジェクトまたは配列と紐づいた [ドロップダウンリスト](dropdownList_Overview.md)。 @@ -132,9 +132,9 @@ title: データソース #### JSON 文法 -| 名称 | データタイプ | とりうる値 | -| ------------------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| dataSourceTypeHint | string |
  • **リストボックス列:** "boolean", "number", "picture", "text", date", "time"。 *配列/セレクションリストボックスのみ*: "integer", "object"
  • **ドロップダウンリスト:** "object", "arrayText", "arrayDate", "arrayTime", "arrayNumber"
  • | +| 名称 | データタイプ | とりうる値 | +| ------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| dataSourceTypeHint | string |
  • **リストボックス列:** "boolean", "number", "picture", "text", date", "time"。*配列/セレクションリストボックスのみ*: "integer", "object"
  • **ドロップダウンリスト:** "object", "arrayText", "arrayDate", "arrayTime", "arrayNumber"
  • | #### 対象オブジェクト @@ -144,20 +144,20 @@ title: データソース ## データタイプ (リスト) -[ドロップダウンリスト](dropdownList_Overview.md) に関連づけられたフィールドまたは変数に保存するデータの種類を定義します。 このプロパティは次のフォームオブジェクトで使用されます: +[ドロップダウンリスト](dropdownList_Overview.md) に関連づけられたフィールドまたは変数に保存するデータの種類を定義します。このプロパティは次のフォームオブジェクトで使用されます: - [選択リストと紐づいた](dropdownList_Overview.md#選択リストの使用) ドロップダウンリスト。 - [階層型の選択リストと紐づいた](dropdownList_Overview.md#階層型選択リストの使用) ドロップダウンリスト 次の値が提供されています: -- **リスト参照**: ドロップダウンリストが階層型であることを宣言します。 このドロップダウンリストは最大で 2つの階層レベルを表示することができ、その内容は **Hierarchical Lists** テーマの4Dランゲージコマンドで管理することができます。 -- **選択された項目値** (デフォルト): ドロップダウンリストは階層型でなく、ユーザーによって選択された項目の値が直接保存されます。 たとえば、ユーザーが "Blue" という値を選択した場合、この値がフィールドに保存されます。 -- **選択された項目参照**: ドロップダウンリストは階層型でなく、選択リスト項目の参照がオブジェクトに保存されます。 この参照番号とは [`APPEND TO LIST`](../commands/append-to-list) または [`SET LIST ITEM`](../commands/set-list-item) コマンドの *itemRef* パラメーター、またはリストエディターを通してそれぞれの項目と関連付けされた数値です。 このオプションにより、メモリを節約することができます。 フィールドに数値を保存するのは文字列を保存するより容量が軽いからです。 また、これによりアプリケーションの翻訳が簡単になります。 同じ項目の参照値を持つ、異なる言語で書かれた複数のリストを用意しておいて、アプリケーションの言語に応じたリストをロードするだけで多言語に対応できるからです。 +- **リスト参照**: ドロップダウンリストが階層型であることを宣言します。このドロップダウンリストは最大で 2つの階層レベルを表示することができ、その内容は **Hierarchical Lists** テーマの4Dランゲージコマンドで管理することができます。 +- **選択された項目値** (デフォルト): ドロップダウンリストは階層型でなく、ユーザーによって選択された項目の値が直接保存されます。たとえば、ユーザーが "Blue" という値を選択した場合、この値がフィールドに保存されます。 +- **選択された項目参照**: ドロップダウンリストは階層型でなく、選択リスト項目の参照がオブジェクトに保存されます。この参照番号とは [`APPEND TO LIST`](../commands/append-to-list) または [`SET LIST ITEM`](../commands/set-list-item) コマンドの *itemRef* パラメーター、またはリストエディターを通してそれぞれの項目と関連付けされた数値です。このオプションにより、メモリを節約することができます。 フィールドに数値を保存するのは文字列を保存するより容量が軽いからです。また、これによりアプリケーションの翻訳が簡単になります。 同じ項目の参照値を持つ、異なる言語で書かれた複数のリストを用意しておいて、アプリケーションの言語に応じたリストをロードするだけで多言語に対応できるからです。 **選択された項目参照** オプションの使用の際には、以下の点に注意する必要があります: -- 参照を保存するには、データソースのフィールドまたは変数は、数値型である必要があります (リスト内に表示されている値の型とは関係ありません)。 [式の型](properties_Object.md#式の型式タイプ) プロパティは自動的に設定されます。 +- 参照を保存するには、データソースのフィールドまたは変数は、数値型である必要があります (リスト内に表示されている値の型とは関係ありません)。[式の型](properties_Object.md#式の型式タイプ) プロパティは自動的に設定されます。 - リストの項目には有効かつ固有の参照が関連付けられている必要があります。 - ドロップダウンリストはフィールドまたは変数と紐づいている必要があります。 @@ -177,15 +177,15 @@ title: データソース ## デフォルト値 -配列型リストボックスにおいて、リストボックス列のデフォルト値として使用される値のリストです。 これらの値は自動で、フォームを実行したときにその列に割り当てられた [配列変数](properties_Object.md#変数あるいは式) に代入されます。 この配列を参照することで、ランゲージを使ってオブジェクトを管理することができます。 +配列型リストボックスにおいて、リストボックス列のデフォルト値として使用される値のリストです。これらの値は自動で、フォームを実行したときにその列に割り当てられた [配列変数](properties_Object.md#変数あるいは式) に代入されます。この配列を参照することで、ランゲージを使ってオブジェクトを管理することができます。 > このプロパティと、新規レコードのフィールド値を定義するのに使える入力オブジェクトの [デフォルト値](properties_RangeOfValues.md#デフォルト値) を混同しないようにしてください。 -デフォルト値のリストを入力します。 フォームエディター上で専用のダイアログが開き、改行で区切られた値を入力することができます。 +デフォルト値のリストを入力します。フォームエディター上で専用のダイアログが開き、改行で区切られた値を入力することができます。 ![](../assets/en/FormObjects/defaultValues.png) -> リストボックス列に [選択リスト](properties_DataSource.md#選択リスト) を定義することもできます。 選択リストは列の各行において選択可能な値の候補として使用されますが、デフォルト値のリストはカラムの各行に上から順に割り当てられます。 +> リストボックス列に [選択リスト](properties_DataSource.md#選択リスト) を定義することもできます。選択リストは列の各行において選択可能な値の候補として使用されますが、デフォルト値のリストはカラムの各行に上から順に割り当てられます。 #### JSON 文法 @@ -201,13 +201,13 @@ title: データソース ## 式 -[セレクション型](FormObjects/listbox_object.md#セレクションリストボックス) および [コレクション / エンティティセレクション型](../FormObjects/listbox-object.md#コレクションまたはエンティティセレクションリストボックス) リストボックス特有のプロパティです。 **[変数あるいは式](properties_Object.md#変数あるいは式)** の章も参照ください。 +[セレクション型](FormObjects/listbox_object.md#セレクションリストボックス) および [コレクション / エンティティセレクション型](../FormObjects/listbox-object.md#コレクションまたはエンティティセレクションリストボックス) リストボックス特有のプロパティです。**[変数あるいは式](properties_Object.md#変数あるいは式)** の章も参照ください。 -列に割り当てる 4D式です。 以下のものを指定できます: +列に割り当てる 4D式です。以下のものを指定できます: -- **単純な変数** (この場合、コンパイル用に明示的に型宣言されている必要があります)。 BLOB と配列型以外のどんな型の変数も使用することができます。 変数の値は通常 `On Display Detail` イベントで計算されます。 +- **単純な変数** (この場合、コンパイル用に明示的に型宣言されている必要があります)。 BLOB と配列型以外のどんな型の変数も使用することができます。変数の値は通常 `On Display Detail` イベントで計算されます。 -- 標準の [Table]Field シンタックスを使用した **フィールド** ([セレクション型リストボックス](listbox_overview.md#セレクションリストボックス) のみ)。例: `[Employees]LastName`。 以下の型のフィールドを使用できます: +- 標準の [Table]Field シンタックスを使用した **フィールド** ([セレクション型リストボックス](listbox_overview.md#セレクションリストボックス) のみ)。例: `[Employees]LastName`。以下の型のフィールドを使用できます: - 文字列 - 数値 - 日付 @@ -216,8 +216,7 @@ title: データソース - ブール マスターテーブルおよび他のテーブルのフィールドを指定できます。 -- **4D式** (単純な式、フォーミュラ、または 4Dメソッド)。 式は値を返す必要があります。 値は `On Display Detail` および `On Data Change` イベントで評価されます。 式の結果は、アプリケーションモードでフォームを実行すると自動で表示されます。 式は、セレクション型リストボックスではマスターテーブルの (カレントまたは命名) セレクションの各レコードごとに、コレクション型リストボックスではコレクションの各要素ごとに、エンティティセレクション型リストボックスではセレクションのエンティティごとに評価されます。 空の場合、列には何も表示されません。 - 以下の型の式がサポートされています: +- **4D式** (単純な式、フォーミュラ、または 4Dメソッド)。式は値を返す必要があります。値は `On Display Detail` および `On Data Change` イベントで評価されます。式の結果は、アプリケーションモードでフォームを実行すると自動で表示されます。式は、セレクション型リストボックスではマスターテーブルの (カレントまたは命名) セレクションの各レコードごとに、コレクション型リストボックスではコレクションの各要素ごとに、エンティティセレクション型リストボックスではセレクションのエンティティごとに評価されます。空の場合、列には何も表示されません。以下の型の式がサポートされています: - 文字列 - 数値 - 日付 @@ -225,8 +224,7 @@ title: データソース - ブール コレクション/エンティティセレクション型リストボックスにおいては、Null あるいはサポートされない型は空の文字列として表示されます。 -コレクションあるいはエンティティセレクションを使用する場合、カラムに割り当てられた要素プロパティ/エンティティ属性は、通常 [This](../commands/this) を含む式を用いて宣言します。 この `This` は現在処理中の要素への参照を返す、専用の 4Dコマンドです。 たとえば、`This.\` (ここでの `\` はコレクションのプロパティパス、あるいはエンティティ属性パス) を使用することで、各要素/エンティティのカレントの値にアクセスすることができます。 -スカラー値のコレクションを使用した場合、4D は各コレクション要素に対して、単一のプロパティ (名前は "value") を持つオブジェクトを作成し、それに要素の値を格納します。 この場合、`This.value` を式として使用します。 +コレクションあるいはエンティティセレクションを使用する場合、カラムに割り当てられた要素プロパティ/エンティティ属性は、通常 [This](../commands/this) を含む式を用いて宣言します。この `This` は現在処理中の要素への参照を返す、専用の 4Dコマンドです。たとえば、`This.\` (ここでの `\` はコレクションのプロパティパス、あるいはエンティティ属性パス) を使用することで、各要素/エンティティのカレントの値にアクセスすることができます。スカラー値のコレクションを使用した場合、4D は各コレクション要素に対して、単一のプロパティ (名前は "value") を持つオブジェクトを作成し、それに要素の値を格納します。この場合、`This.value` を式として使用します。 フィールド、変数、あるいは代入可能な式 (*例: Person.lastName*) を使用した場合、[入力可](properties_Entry.md#入力可) プロパティの設定に基づき列への入力可/不可が決定されます。 @@ -248,7 +246,7 @@ title: データソース `カレントセレクションリストボックス` -使用するカレントセレクションが属するテーブルを指定します。 このテーブルとそのカレントセレクションが、リストボックスの列に割り当てられたフィールドの参照を形成します (フィールド参照やフィールドを含む式)。 ある列が他のテーブルのフィールドを参照しているとしても、表示される行の数はマスターテーブルのカレントレコード数となります。 +使用するカレントセレクションが属するテーブルを指定します。このテーブルとそのカレントセレクションが、リストボックスの列に割り当てられたフィールドの参照を形成します (フィールド参照やフィールドを含む式)。ある列が他のテーブルのフィールドを参照しているとしても、表示される行の数はマスターテーブルのカレントレコード数となります。 すべてのデータベーステーブルが利用できます。 フォームがテーブルに属しているか (テーブルフォームの場合) あるいは属していないか (プロジェクトフォーム) は関係ありません。 @@ -277,14 +275,14 @@ title: データソース このプロパティは、選択リストに関連付けされたフィールドまたは変数において、フィールドに保存する内容の型を指定します: -- **リスト項目の値** (デフォルトのオプション): ユーザーによって選択された項目の値が直接保存されます。 たとえば、ユーザーが "Blue" という値を選択した場合、この値がフィールドに保存されます。 -- **リスト項目の参照番号**: 選択リスト項目の参照がオブジェクトに保存されます。 この参照番号とは [`APPEND TO LIST`](../commands/append-to-list) または [`SET LIST ITEM`](../commands/set-list-item) コマンドの *itemRef* パラメーター、またはリストエディターを通してそれぞれの項目と関連付けされた数値です。 +- **リスト項目の値** (デフォルトのオプション): ユーザーによって選択された項目の値が直接保存されます。たとえば、ユーザーが "Blue" という値を選択した場合、この値がフィールドに保存されます。 +- **リスト項目の参照番号**: 選択リスト項目の参照がオブジェクトに保存されます。この参照番号とは [`APPEND TO LIST`](../commands/append-to-list) または [`SET LIST ITEM`](../commands/set-list-item) コマンドの *itemRef* パラメーター、またはリストエディターを通してそれぞれの項目と関連付けされた数値です。 -このオプションにより、メモリを節約することができます。 フィールドに数値を保存するのは文字列を保存するより容量が軽いからです。 また、これによりアプリケーションの翻訳が簡単になります。 同じ項目の参照値を持つ、異なる言語で書かれた複数のリストを用意しておいて、アプリケーションの言語に応じたリストをロードするだけで多言語に対応できるからです。 +このオプションにより、メモリを節約することができます。 フィールドに数値を保存するのは文字列を保存するより容量が軽いからです。また、これによりアプリケーションの翻訳が簡単になります。 同じ項目の参照値を持つ、異なる言語で書かれた複数のリストを用意しておいて、アプリケーションの言語に応じたリストをロードするだけで多言語に対応できるからです。 リスト項目の参照番号の使用の際には、以下の点に注意する必要があります: -- 参照を保存するには、データソースのフィールドまたは変数は、数値型である必要があります (リスト内に表示されている値の型とは関係ありません)。 [式の型](properties_Object.md#式の型式タイプ) プロパティは自動的に設定されます。 +- 参照を保存するには、データソースのフィールドまたは変数は、数値型である必要があります (リスト内に表示されている値の型とは関係ありません)。[式の型](properties_Object.md#式の型式タイプ) プロパティは自動的に設定されます。 - リストの項目には有効かつ固有の参照が関連付けられている必要があります。 #### JSON 文法 @@ -306,9 +304,9 @@ title: データソース ユーザーによって選択されている一つ以上のコレクション要素/エンティティが割り当てられる変数あるいは式を指定します。 - コレクションリストボックスにおいては、コレクション変数あるいはコレクションを受け入れる割り当て可能な式を使用する必要があります。 -- エンティティセレクションリストボックスにおいては、エンティティセレクションオブジェクトがビルドされます。 オブジェクト変数あるいはオブジェクトを受け入れる割り当て可能な式を使用する必要があります。 +- エンティティセレクションリストボックスにおいては、エンティティセレクションオブジェクトがビルドされます。オブジェクト変数あるいはオブジェクトを受け入れる割り当て可能な式を使用する必要があります。 -> このプロパティは「読み取り専用」であり、リストボックスにおけるユーザーアクションに基づいて自動的に更新されます。 この値を編集してリストボックスの選択状態を変更することはできません。 +> このプロパティは「読み取り専用」であり、リストボックスにおけるユーザーアクションに基づいて自動的に更新されます。この値を編集してリストボックスの選択状態を変更することはできません。 #### JSON 文法 @@ -330,9 +328,9 @@ title: データソース `命名セレクションリストボックス` -使用する命名セレクションを指定します。 有効な命名セレクションの名前を入力しなければなりません。 使用できるのはプロセスあるいはインタープロセス命名セレクションです。 リストボックスの内容はこのセレクションに基づきます。 選択された命名セレクションは、リストボックスが表示される時点で存在し、有効でなければなりません。 そうでない場合、リストボックスは空で表示されます。 +使用する命名セレクションを指定します。有効な命名セレクションの名前を入力しなければなりません。使用できるのはプロセスあるいはインタープロセス命名セレクションです。リストボックスの内容はこのセレクションに基づきます。選択された命名セレクションは、リストボックスが表示される時点で存在し、有効でなければなりません。 そうでない場合、リストボックスは空で表示されます。 -> 命名セレクションはソート済みのレコードリストです。 これはセレクション中のカレントレコードと並び順をメモリに保持するために使用されます。 詳細は、*4Dランゲージリファレンス マニュアル* の **命名セレクション** を参照してください。 +> 命名セレクションはソート済みのレコードリストです。これはセレクション中のカレントレコードと並び順をメモリに保持するために使用されます。詳細は、*4Dランゲージリファレンス マニュアル* の **命名セレクション** を参照してください。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Display.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Display.md index 4379bea68bbad8..c5c870f1c0bb5a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Display.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Display.md @@ -7,14 +7,13 @@ title: 表示 ## 文字フォーマット -文字フォーマットは、表示や印刷時に文字フィールドや変数にデータを表示する方法を制御します。 以下は文字フィールド用に提供されるフォーマットのリストです: +文字フォーマットは、表示や印刷時に文字フィールドや変数にデータを表示する方法を制御します。以下は文字フィールド用に提供されるフォーマットのリストです: ![](../assets/en/FormObjects/property_alphaFormat.png) -このリストからフォーマットを選択するか、コンボボックスに入力すことができます。 フォーマットポップアップメニューには、主に使用される文字フォーマット (電話番号等) が用意されています。 また、ツールボックスのフィルターとフォーマットで設定したカスタムフォーマットを選択することもできます。 この場合、そのフォーマットをオブジェクトプロパティで変更することはできません。 -開発者が作成したカスタムフォーマットやフィルターはリストの先頭に表示されます。 +このリストからフォーマットを選択するか、コンボボックスに入力すことができます。フォーマットポップアップメニューには、主に使用される文字フォーマット (電話番号等) が用意されています。また、ツールボックスのフィルターとフォーマットで設定したカスタムフォーマットを選択することもできます。この場合、そのフォーマットをオブジェクトプロパティで変更することはできません。開発者が作成したカスタムフォーマットやフィルターはリストの先頭に表示されます。 -シャープ (#) は文字表示フォーマットのプレースホルダーです。 ハイフンやスペース、その他の句読点を表示したい場所に挿入できます。 表示したい実際の句読点と、文字データを表示する場所には # を置きます。 +シャープ (#) は文字表示フォーマットのプレースホルダーです。ハイフンやスペース、その他の句読点を表示したい場所に挿入できます。表示したい実際の句読点と、文字データを表示する場所には # を置きます。 たとえば部品番号が "RB-1762-1" のようなフォーマットの時、 @@ -28,7 +27,7 @@ RB-1762-1 フィールドに実際に格納される値は “RB17621” です。 -フォーマットが許可するよりも多くの文字が入力されると、4Dは最後の文字を表示します。 たとえばフォーマットが以下の時: +フォーマットが許可するよりも多くの文字が入力されると、4Dは最後の文字を表示します。たとえばフォーマットが以下の時: (#######) @@ -36,7 +35,7 @@ RB-1762-1 (portion) -フィールドには “proportion” が格納されます。 表示フォーマットにかかわらず、4Dは入力された文字を受け入れ、格納します。 データが失われることはありません。 +フィールドには “proportion” が格納されます。表示フォーマットにかかわらず、4Dは入力された文字を受け入れ、格納します。データが失われることはありません。 #### JSON 文法 @@ -56,7 +55,7 @@ RB-1762-1 ## 日付フォーマット -日付フォーマットは、表示や印刷時に日付を表示する方法を制御します。 データ入力の際は選択した表示フォーマットとは関係なく、YYYY/MM/DD 形式で日付を入力します。 +日付フォーマットは、表示や印刷時に日付を表示する方法を制御します。データ入力の際は選択した表示フォーマットとは関係なく、YYYY/MM/DD 形式で日付を入力します。 日付の表示フォーマットを定義するには、次のいずれかを使えます: @@ -81,15 +80,15 @@ RB-1762-1 *(1)* "June" は "Jun"、”July” は "Jul" に省略されます。 -*(2)* 年は、1930年~2029年の間は2桁の数字で表示されますが、それ以外の場合は4桁で表示されます。 これはデフォルトでの設定ですが、[SET DEFAULT CENTURY](../commands/set-default-century) コマンドを使用することでこの振る舞いを変更することができます。 +*(2)* 年は、1930年~2029年の間は2桁の数字で表示されますが、それ以外の場合は4桁で表示されます。これはデフォルトでの設定ですが、[SET DEFAULT CENTURY](../commands/set-default-century) コマンドを使用することでこの振る舞いを変更することができます。 -*(3)* `ISO Date Time` フォーマットは XML の日付と時間表現の標準 (ISO8601) に対応します。 これは主に XML フォーマットや Web サービスのデータを読み込んだり書き出したりするために使用します。 +*(3)* `ISO Date Time` フォーマットは XML の日付と時間表現の標準 (ISO8601) に対応します。これは主に XML フォーマットや Web サービスのデータを読み込んだり書き出したりするために使用します。 -> 表示フォーマットにかかわらず、年度を2 桁で入力すると、4D は年が00~29 の間であれば 21 世紀とみなし、30~99 の間であれば 20 世紀とみなします。 これはデフォルトの設定ですが、[SET DEFAULT CENTURY](../commands/set-default-century) コマンドを使用することでこの振る舞いを変更することができます。 +> 表示フォーマットにかかわらず、年度を2 桁で入力すると、4D は年が00~29 の間であれば 21 世紀とみなし、30~99 の間であれば 20 世紀とみなします。これはデフォルトの設定ですが、[SET DEFAULT CENTURY](../commands/set-default-century) コマンドを使用することでこの振る舞いを変更することができます。 ### カスタムフォーマット -カスタムの日付フォーマットは、[**日付と時間のフォーマット**](../Project/date-time-formats.md) ページで説明されている複数のパターンを使用して作成することができます。 例: +カスタムの日付フォーマットは、[**日付と時間のフォーマット**](../Project/date-time-formats.md) ページで説明されている複数のパターンを使用して作成することができます。例: | パターン | 例 | | ----------- | ----------- | @@ -104,7 +103,7 @@ RB-1762-1 :::note blankIfNull -- デフォルトでは、 [null 日付](../Concepts/dt_date.md#日付リテラル) は 00/00/00 のように、ゼロとして表示されます。 "blankIfNull" オプションを使用すると、null の日付は空白として表示されます。 "blankIfNull" 文字列 (文字の大小を区別) は、選択されたフォーマットの値と組み合わせて使います。 例: "systemShort blankIfNull" または "LLLdd日 ee blankIfNull"。 +- デフォルトでは、 [null 日付](../Concepts/dt_date.md#日付リテラル) は 00/00/00 のように、ゼロとして表示されます。 "blankIfNull" オプションを使用すると、null の日付は空白として表示されます。 "blankIfNull" 文字列 (文字の大小を区別) は、選択されたフォーマットの値と組み合わせて使います。例: "systemShort blankIfNull" または "LLLdd日 ee blankIfNull"。 - 日付型の [リストボックスのカラム](listbox-column.md) および [リストボックスのフッター](listbox-header-footer.md#フッター) は常に "blankIfNull" (null値は空白表示) の振る舞いをします (解除できません)。 ::: @@ -123,13 +122,13 @@ RB-1762-1 > 数値フィールドには整数、倍長整数、整数64bit、実数、そしてフロート型が含まれます。 -数値フォーマットは表示や印刷時に数値を表示する方法を制御します。 選択した表示フォーマットとは関係なく、データ入力の際は数値だけを (必要に応じ小数点やマイナス記号も) 入力します。 +数値フォーマットは表示や印刷時に数値を表示する方法を制御します。選択した表示フォーマットとは関係なく、データ入力の際は数値だけを (必要に応じ小数点やマイナス記号も) 入力します。 4Dは様々なデフォルトの数値表示フォーマットを提供しています。 ### プレースホルダー -それぞれの数値表示フォーマットでは、数値記号 (#)、ゼロ (0)、キャレット (^)、アスタリスク (\*) をプレースホルダーとして使用します。 表示しようとする各桁に対して 1つのプレースホルダーを使用し、独自の数値表示フォーマットを作成できます。 +それぞれの数値表示フォーマットでは、数値記号 (#)、ゼロ (0)、キャレット (^)、アスタリスク (\*) をプレースホルダーとして使用します。表示しようとする各桁に対して 1つのプレースホルダーを使用し、独自の数値表示フォーマットを作成できます。 | プレースホルダー | 千項及び末尾のゼロ | | -------- | ------------------------------ | @@ -140,15 +139,15 @@ RB-1762-1 (1) キャレット (^) は、ほとんどのフォントの数字と同じ幅を占めるスペースを生成します。 -たとえば、3桁の数字を表示する場合、###というフォーマットを使用できます。 フォーマットにより許可された桁数を超えて入力すると、4Dは <<< をフィールドに表示し、表示フォーマットで指定された桁数を超える入力がおこなわれたことを示します。 +たとえば、3桁の数字を表示する場合、###というフォーマットを使用できます。フォーマットにより許可された桁数を超えて入力すると、4Dは <<< をフィールドに表示し、表示フォーマットで指定された桁数を超える入力がおこなわれたことを示します。 ユーザーがマイナスの数値を入力すると、左端の文字はマイナス記号として表示されます (負数の表示フォーマットが指定されていない場合)。 ##0というフォーマットであれば、マイナス 26 は -26 と表示されます。マイナス260 は <<< と表示されますが、これはプレースホルダーが 3桁分しか指定されていないところに、マイナス記号により 1つのプレースホルダーが使用されてしまい、桁あふれしたためです。 -> 表示フォーマットとは関係なく、4Dはフィールドに入力された数値を受け入れ、保存します。 データが失われることはありません。 +> 表示フォーマットとは関係なく、4Dはフィールドに入力された数値を受け入れ、保存します。データが失われることはありません。 -各プレースホルダー文字は、先行のゼロや末尾のゼロを表示する上で、その効果に違いがあります。 先行のゼロとは小数点より左側の数値の先頭にあるゼロのことです。 末尾のゼロは小数点より右側の数値の終わりにあるゼロのことです。 +各プレースホルダー文字は、先行のゼロや末尾のゼロを表示する上で、その効果に違いがあります。先行のゼロとは小数点より左側の数値の先頭にあるゼロのことです。 末尾のゼロは小数点より右側の数値の終わりにあるゼロのことです。 -たとえば ##0 というフォーマットを使用して 3桁の数字を表示するものとします。 ユーザーがフィールドに何も入力しないと、フィールドには 0 が表示されます。 26 と入力すると、フィールドには 26 と表示されます。 +たとえば ##0 というフォーマットを使用して 3桁の数字を表示するものとします。ユーザーがフィールドに何も入力しないと、フィールドには 0 が表示されます。 26 と入力すると、フィールドには 26 と表示されます。 ### 区切り文字 @@ -161,15 +160,15 @@ RB-1762-1 ### 小数点とその他の表示文字 -表示フォーマット内では 1つの小数点を使用することができます。 ユーザーが小数点を入力するかどうかに関係なく、小数点を表示したい場合、ゼロの間に小数点を置かなければなりません。 +表示フォーマット内では 1つの小数点を使用することができます。ユーザーが小数点を入力するかどうかに関係なく、小数点を表示したい場合、ゼロの間に小数点を置かなければなりません。 -フォーマット内で他の文字を使用することもできます。 文字を単独で使用したりプレースホルダーの前後に配置すると、その文字が常に表示されます。 たとえば次のようなフォーマットの場合: +フォーマット内で他の文字を使用することもできます。文字を単独で使用したりプレースホルダーの前後に配置すると、その文字が常に表示されます。たとえば次のようなフォーマットの場合: ¥##0 円記号はプレースホルダーの前に置かれているため、常に表示されます。 -文字がプレースホルダーの間に置かれている場合、両側に数字が表示される場合のみ、その文字が表示されます。 たとえばフォーマットを次のように指定したとき: +文字がプレースホルダーの間に置かれている場合、両側に数字が表示される場合のみ、その文字が表示されます。たとえばフォーマットを次のように指定したとき: \###.##0 @@ -179,7 +178,7 @@ RB-1762-1 ### 正数、負数、ゼロのフォーマット -数値表示フォーマットは最大で 3つの部分に分けられ、それぞれ正数、負数、ゼロの値に対応する表示フォーマットを指定できます。 それぞれの部分は以下のように並び、セミコロンで区切られます: +数値表示フォーマットは最大で 3つの部分に分けられ、それぞれ正数、負数、ゼロの値に対応する表示フォーマットを指定できます。それぞれの部分は以下のように並び、セミコロンで区切られます: 正数;負数;ゼロ @@ -187,13 +186,13 @@ RB-1762-1 2つの部分を指定する場合、4D は 1番目のフォーマットを正数とゼロに対して使用し、負数には 2番目のフォーマットを使用します。 3つの部分をすべて指定すると、1番目のフォーマットを正数、2 番目を負数、3 番目をゼロに使用します。 -> 3番目の部分 (ゼロ) は解釈されず、文字の置き換えをおこないません。 `###;###;#` と指定した場合、ゼロ値は "#" と表示されます。 言い換えると、表示フォーマットとして実際に指定されたものが、ゼロ値として表示されます。 +> 3番目の部分 (ゼロ) は解釈されず、文字の置き換えをおこないません。 `###;###;#` と指定した場合、ゼロ値は "#" と表示されます。言い換えると、表示フォーマットとして実際に指定されたものが、ゼロ値として表示されます。 次の数値表示フォーマットの例は、円記号とカンマを表示し、負の数値はカッコ内に入れ、ゼロを表示しません: ¥###,##0.00;(¥###,##0.00); -2つ目のセミコロンにより、ゼロの表示には何も使用しないことを 4Dに指示している点に注目してください。 次のフォーマットは前の例と似ていますが、2つ目のセミコロンが指定されていません。 これにより、ゼロに対して正数のフォーマットを使用するよう 4Dに指示しています: +2つ目のセミコロンにより、ゼロの表示には何も使用しないことを 4Dに指示している点に注目してください。次のフォーマットは前の例と似ていますが、2つ目のセミコロンが指定されていません。 これにより、ゼロに対して正数のフォーマットを使用するよう 4Dに指示しています: ¥###,##0.00;(¥###,##0.00) @@ -201,7 +200,7 @@ RB-1762-1 ### 科学的記数法 -科学的記数法で数値を表示したい場合には、**アンパサンド** (&) に続けて表示したい桁数を指定します。 たとえば次のフォーマットを指定すると: +科学的記数法で数値を表示したい場合には、**アンパサンド** (&) に続けて表示したい桁数を指定します。たとえば次のフォーマットを指定すると: &3 @@ -209,7 +208,7 @@ RB-1762-1 7.60e+2 -科学的記数法フォーマットは、表示される数値を自動的に丸める唯一のフォーマットです。 前述の例では、数値が 7.59e+2 と切り捨てられずに 7.60e+2 に丸められている点に注意してください。 +科学的記数法フォーマットは、表示される数値を自動的に丸める唯一のフォーマットです。前述の例では、数値が 7.59e+2 と切り捨てられずに 7.60e+2 に丸められている点に注意してください。 ### 16進フォーマット @@ -220,23 +219,23 @@ RB-1762-1 ### XML記法 -`&xml` フォーマットを使用すると、数字を XML 標準ルールに沿ったものにします。 特に小数点がシステム設定に関係なくすべての場合においてポイント (ピリオド) に変換されます。 +`&xml` フォーマットを使用すると、数字を XML 標準ルールに沿ったものにします。特に小数点がシステム設定に関係なくすべての場合においてポイント (ピリオド) に変換されます。 ### 数値を時間として表示する -`&/`の後に数字を指定することにより、数値を時間として (時間フォーマットで) 表示することができます。 時間は午前0 時を基点とした秒数として計算されます。 フォーマット内の数字は表示フォーマットドロップダウンメニュー上でその時間フォーマットが表示される順番に相当します。 +`&/`の後に数字を指定することにより、数値を時間として (時間フォーマットで) 表示することができます。時間は午前0 時を基点とした秒数として計算されます。フォーマット内の数字は表示フォーマットドロップダウンメニュー上でその時間フォーマットが表示される順番に相当します。 たとえば次のフォーマットを指定すると: &/5 -ドロップダウンメニューの7番目の時間フォーマット (AM/PM で表わす時間) に対応します。 このフォーマットが指定された数値フィールドの場合、25000 は次のように表示されます: +ドロップダウンメニューの7番目の時間フォーマット (AM/PM で表わす時間) に対応します。このフォーマットが指定された数値フィールドの場合、25000 は次のように表示されます: 6:56 AM ### 例題 -次の表は各種フォーマットの数値表示への効果を表わしています。 正数、負数、ゼロという 3つの欄では 1234.50、-1234.50、0 がそれぞれどのように表示されるかを示しています。 +次の表は各種フォーマットの数値表示への効果を表わしています。正数、負数、ゼロという 3つの欄では 1234.50、-1234.50、0 がそれぞれどのように表示されるかを示しています。 | 入力されたフォーマット | 正数 | 負数 | ゼロ | | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | ------------------------------ | @@ -291,9 +290,9 @@ RB-1762-1 ## ピクチャーフォーマット -ピクチャーフォーマットはピクチャーが表示あるいは印刷される際の表示方法を制御します。 データ入力時はフォーマットに関わらず、ユーザーはクリップボードからのペーストやドラッグ&ドロップでピクチャーを入力します。 +ピクチャーフォーマットはピクチャーが表示あるいは印刷される際の表示方法を制御します。データ入力時はフォーマットに関わらず、ユーザーはクリップボードからのペーストやドラッグ&ドロップでピクチャーを入力します。 -トランケートとスケーリングオプションを選択しても、ピクチャーが変更されることはなく、 ピクチャーフィールドのデータは失われません。 ピクチャー表示フォーマットはピクチャーの表示にのみ影響します。 +トランケートとスケーリングオプションを選択しても、ピクチャーが変更されることはなく、ピクチャーフィールドのデータは失われません。ピクチャー表示フォーマットはピクチャーの表示にのみ影響します。 ### スケーリング @@ -307,9 +306,9 @@ RB-1762-1 `JSON 文法では: "truncatedCenter" / "truncatedTopLeft"` -**トランケート (中央合わせ)** フォーマットを選択すると、4D はエリアの中央にピクチャーを配置し、収まらない部分はエリアからはみ出します。 上下、および左右のはみ出し量は同じになります。 +**トランケート (中央合わせ)** フォーマットを選択すると、4D はエリアの中央にピクチャーを配置し、収まらない部分はエリアからはみ出します。上下、および左右のはみ出し量は同じになります。 -**トランケート (中央合わせしない)** フォーマットを選択すると、4D はピクチャーの左上角をフィールドの左上角に合わせて配置し、フィールドエリアに収まらない部分はエリアからはみ出します。 ピクチャーは右と下にはみ出します。 +**トランケート (中央合わせしない)** フォーマットを選択すると、4D はピクチャーの左上角をフィールドの左上角に合わせて配置し、フィールドエリアに収まらない部分はエリアからはみ出します。ピクチャーは右と下にはみ出します。 > ピクチャーフォーマットが **トランケート (中央合わせしない)** の場合、入力エリアにスクロールバーを追加できます。 @@ -319,9 +318,9 @@ RB-1762-1 `JSON 文法では: "proportionalTopLeft" / "proportionalCenter"` -**スケーリング (プロポーショナル)** を使用すると、ピクチャーエリアに収まるよう、比率を保ったままサイズが調整されます。 **スケーリング (中央合わせ・プロポーショナル)** オプションも同様ですが、ピクチャーはエリアの中央に配置されます。 +**スケーリング (プロポーショナル)** を使用すると、ピクチャーエリアに収まるよう、比率を保ったままサイズが調整されます。**スケーリング (中央合わせ・プロポーショナル)** オプションも同様ですが、ピクチャーはエリアの中央に配置されます。 -ピクチャーがエリアよりも小さい場合、サイズは変更されません。 ピクチャーがエリアよりも大きい場合、そのエリア内に全体が表示されるよう、比率を保ったままサイズが小さくなります。 比率が保たれるため、ピクチャーは歪むことなく表示されます。 +ピクチャーがエリアよりも小さい場合、サイズは変更されません。ピクチャーがエリアよりも大きい場合、そのエリア内に全体が表示されるよう、比率を保ったままサイズが小さくなります。比率が保たれるため、ピクチャーは歪むことなく表示されます。 **中央合わせ** を選択した場合、画像はエリアの中央に配置されます: @@ -355,7 +354,7 @@ RB-1762-1 ## 時間フォーマット -時間フォーマットは、表示や印刷時に時間を表示する方法を制御します。 選択した表示フォーマットとは関係なく、データ入力の際は 24時間制の “HH:MM:SS” フォーマット、または 12時間制の “HH:MM:SS AM/PM” フォーマットで時間を入力します。 +時間フォーマットは、表示や印刷時に時間を表示する方法を制御します。選択した表示フォーマットとは関係なく、データ入力の際は 24時間制の “HH:MM:SS” フォーマット、または 12時間制の “HH:MM:SS AM/PM” フォーマットで時間を入力します。 時間の表示フォーマットを定義するには、次のいずれかを使えます: @@ -375,7 +374,7 @@ RB-1762-1 | HH:MM AM/PM | hh_mm_am | | 4:30 AM | | MM SS | mm_ss | 00:00:00からの経過時間 | 270:25 | | Min Sec | MM_SS | 00:00:00からの経過時間 | 270 分 25 秒 | -| ISO Date Time | iso8601 | 時間に関連する XML 標準表現に対応。 主に XML フォーマットでのデータのやり取りに使用します。 | 0000-00-00T04:30:25 | +| ISO Date Time | iso8601 | 時間に関連する XML 標準表現に対応。主に XML フォーマットでのデータのやり取りに使用します。 | 0000-00-00T04:30:25 | | System time short | - (デフォルト) | システムに定義された標準の時間フォーマット | 04:30:25 | | System time long abbreviated | systemMedium | macOSのみ: システムに定義された時間フォーマットの短縮型。
    Windows では System time short フォーマットと同じ | 04:30:25 | | System time long | systemLong | macOSのみ: システムに定義された時間フォーマット。
    Windows では System time short フォーマットと同じ | 04:30:25 JST | @@ -397,7 +396,7 @@ RB-1762-1 :::note blankIfNull -デフォルトでは、null の時間はゼロで表示されます。例: "00:00:00"。 "blankIfNull" オプションを使用すると、null の時間は空白として表示されます。 "blankIfNull" 文字列 (文字の大小を区別) は、選択されたフォーマットの値と組み合わせて使います。 例: "MM_SS blankIfNull" または "aa hh:mm blankIfNull" +デフォルトでは、null の時間はゼロで表示されます。例: "00:00:00"。 "blankIfNull" オプションを使用すると、null の時間は空白として表示されます。 "blankIfNull" 文字列 (文字の大小を区別) は、選択されたフォーマットの値と組み合わせて使います。例: "MM_SS blankIfNull" または "aa hh:mm blankIfNull" ::: @@ -441,11 +440,11 @@ RB-1762-1 ## 表示タイプ -列のデータに表示フォーマットを割り当てるために使用します。 提供されるフォーマットは変数型 (配列型のリストボックス) またはデータ/フィールド型 (セレクションおよびコレクション型のリストボックス) により異なります。 +列のデータに表示フォーマットを割り当てるために使用します。提供されるフォーマットは変数型 (配列型のリストボックス) またはデータ/フィールド型 (セレクションおよびコレクション型のリストボックス) により異なります。 -ブール式および数値 (数値または整数) 式の列はチェックボックスとして表示することができます。 表示タイプにチェックボックスを選択すると、[タイトル](#タイトル)プロパティが表示され、チェックボックスのタイトルを設定できます。 +ブール式および数値 (数値または整数) 式の列はチェックボックスとして表示することができます。表示タイプにチェックボックスを選択すると、[タイトル](#タイトル)プロパティが表示され、チェックボックスのタイトルを設定できます。 -ブール式の列はポップアップメニューとしても表示することができます。 この場合には、[テキスト (True時) とテキスト (False時)](#テキスト-true時-テキスト-false時) プロパティが表示され、ポップアップメニューの対応するタイトルを設定する必要があります。 +ブール式の列はポップアップメニューとしても表示することができます。この場合には、[テキスト (True時) とテキスト (False時)](#テキスト-true時-テキスト-false時) プロパティが表示され、ポップアップメニューの対応するタイトルを設定する必要があります。 #### JSON 文法 @@ -467,7 +466,7 @@ RB-1762-1 このプロパティが選択されていると、アプリケーションモードでオブジェクトが描画されません (あとから描画することができます)。 -このプロパティは、”透明” ボタンの実装を可能にします。 レンダリングされていないボタンは、描画オブジェクトの上に配置することができます。 レンダリングされていないボタンは、クリックされてもハイライトされることはなく非表示のままですが、クリックによるイベントは発生します。 +このプロパティは、”透明” ボタンの実装を可能にします。レンダリングされていないボタンは、描画オブジェクトの上に配置することができます。レンダリングされていないボタンは、クリックされてもハイライトされることはなく非表示のままですが、クリックによるイベントは発生します。 #### JSON 文法 @@ -483,15 +482,15 @@ RB-1762-1 ## スリーステート -チェックボックスオブジェクトに、3 番目の状態を付加します。 チェックボックスが 3番目の状態になると、チェックボックスに関連付けられた変数は値2を返します。 +チェックボックスオブジェクトに、3 番目の状態を付加します。チェックボックスが 3番目の状態になると、チェックボックスに関連付けられた変数は値2を返します。 #### リストボックス列におけるスリーステートチェックボックス -[式タイプ](properties_Object.md#式の型-式タイプ) が数値型のリストボックス列は、スリーステートチェックボックスとして表示できます。 スリーステートチェックボックスタイプを選択すると、以下の値が表示されます: +[式タイプ](properties_Object.md#式の型-式タイプ) が数値型のリストボックス列は、スリーステートチェックボックスとして表示できます。スリーステートチェックボックスタイプを選択すると、以下の値が表示されます: - 0 = チェックされていない - 1 = チェックされている -- 2 (または2以上の任意の数値) セミチェックボックス (三番目の状態) データ入力時、この状態は2を返します。 +- 2 (または2以上の任意の数値) セミチェックボックス (三番目の状態)データ入力時、この状態は2を返します。 - -1 = 非表示チェックボックス - -2 = チェックされていない、入力不可 - -3 = チェックされている、入力不可 @@ -546,7 +545,7 @@ RB-1762-1 ![](../assets/en/FormObjects/property_truncate1.png) -> エリプシスの位置はOSによって変わります。 上記の例 (Windows) では、テキストの右側に表示されます (テキストの後半が省略されます)。 macOS 上では、テキストの真ん中に表示されます (テキストの中盤が省略されます)。 +> エリプシスの位置はOSによって変わります。上記の例 (Windows) では、テキストの右側に表示されます (テキストの後半が省略されます)。 macOS 上では、テキストの真ん中に表示されます (テキストの中盤が省略されます)。 - このオプションのチェックが外れているとき、セルの中身がカラムの幅を超えていた場合、収まりきらない部分は表示されず、エリプシスも表示されません: @@ -554,7 +553,7 @@ RB-1762-1 エリプシスで省略オプションはデフォルトではチェックされており、配列、セレクション、コレクション型のリストボックスに対して指定可能です。 -> テキストまたは文字列型のカラムに対して適用した場合、エリプシスで省略オプションは [ワードラップ](#ワードラップ) オプションがチェックされていない場合にのみ使用可能です。 ワードラップオプションがチェックされていた場合、セル内を超えたコンテンツについてはワードラップ機能によって管理されますので、エリプシスで省略オプションは使用できません。 +> テキストまたは文字列型のカラムに対して適用した場合、エリプシスで省略オプションは [ワードラップ](#ワードラップ) オプションがチェックされていない場合にのみ使用可能です。ワードラップオプションがチェックされていた場合、セル内を超えたコンテンツについてはワードラップ機能によって管理されますので、エリプシスで省略オプションは使用できません。 エリプシスで省略オプションはブール型のカラムに対しても適用可能です。しかしながら、[セルのフォーマット](#表示タイプ)によって表示される結果は異なります: @@ -581,7 +580,7 @@ RB-1762-1 このプロパティが選択されていると、アプリケーションモードでオブジェクトが非表示になります。 -大部分のオブジェクトに対して、表示状態プロパティを指定することができます。 このプロパティは主に、ダイナミックなインターフェースの開発を容易にするために使用されます。 インターフェースを開発するとき、多くの場合はフォームの `On Load` イベント中にプログラムからオブジェクトを非表示にした後で、一部のオブジェクトを再度表示する必要性が頻繁に生じます。 表示状態プロパティを使用すると、特定オブジェクトをあらかじめ非表示にしておくことにより、このロジックを逆に働かせることができます。 この後、必要に応じて [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用し、これらのオブジェクトを表示するようプログラミングすることができます。 +大部分のオブジェクトに対して、表示状態プロパティを指定することができます。このプロパティは主に、ダイナミックなインターフェースの開発を容易にするために使用されます。インターフェースを開発するとき、多くの場合はフォームの `On Load` イベント中にプログラムからオブジェクトを非表示にした後で、一部のオブジェクトを再度表示する必要性が頻繁に生じます。表示状態プロパティを使用すると、特定オブジェクトをあらかじめ非表示にしておくことにより、このロジックを逆に働かせることができます。この後、必要に応じて [`OBJECT SET VISIBLE`](../commands/object-set-visible) コマンドを使用し、これらのオブジェクトを表示するようプログラミングすることができます。 #### リストフォームにおける自動表示 @@ -590,7 +589,7 @@ RB-1762-1 - **レコード選択時** (JSON名: "selectedRows") - **レコード非選択時** (JSON名: "unselectedRows") -これらのプロパティ値は、リストフォームのボディに配置されたオブジェクトを描画する場合にのみ使用されます。 具体的には、処理中のレコードが選択されているかいないかに応じて、当該オブジェクトを描画するかどうかを 4D に指示します。 これにより、ハイライト以外の視覚的属性でもって、レコードの選択を表現することができます: +これらのプロパティ値は、リストフォームのボディに配置されたオブジェクトを描画する場合にのみ使用されます。具体的には、処理中のレコードが選択されているかいないかに応じて、当該オブジェクトを描画するかどうかを 4D に指示します。これにより、ハイライト以外の視覚的属性でもって、レコードの選択を表現することができます: ![](../assets/en/FormObjects/select-row.png) @@ -658,15 +657,15 @@ RB-1762-1 `JSON 文法では: "none"` -このオブションの場合、4D はいっさい自動改行をおこないません。 表示可能な最後の単語はエリアをはみ出します。 テキストタイプのエリアでは改行がサポートされます: +このオブションの場合、4D はいっさい自動改行をおこないません。 表示可能な最後の単語はエリアをはみ出します。テキストタイプのエリアでは改行がサポートされます: ![](../assets/en/FormObjects/wordwrap3.png) -リストボックスの場合、長すぎるテキストは切り落とされ、省略記号 (...) が表示されます。 以下の例では、左の列ではワードラップのオプションがチェックされていて、右の列ではされていません: +リストボックスの場合、長すぎるテキストは切り落とされ、省略記号 (...) が表示されます。以下の例では、左の列ではワードラップのオプションがチェックされていて、右の列ではされていません: ![](../assets/en/FormObjects/property_wordwrap1.png) -ワードラップの オプションの値に関わらず、行の高さは変化しないことに注意してください。 改行を含むテキストがカラムの中に表示しきれないとき、表示しきれない部分は 切り落とされ、省略記号も表示されません。 単一の行を表示するリストボックスの場合、テキストの最初の行のみ表示されます: +ワードラップの オプションの値に関わらず、行の高さは変化しないことに注意してください。改行を含むテキストがカラムの中に表示しきれないとき、表示しきれない部分は 切り落とされ、省略記号も表示されません。単一の行を表示するリストボックスの場合、テキストの最初の行のみ表示されます: ![](../assets/en/FormObjects/property_wordwrap2.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Entry.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Entry.md index f54f67fd8d93a9..4c0acf0ff5b15b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Entry.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Entry.md @@ -5,9 +5,9 @@ title: 入力 ## 自動スペルチェック -4D にはカスタマイズ可能なスペルチェック機能がビルトインされています。 スペルチェックはテキスト型の [入力](input_overview.md) オブジェクト、そして [4D Write Pro](writeProArea_overview.md)ドキュメントに対して実行可能です。 +4D にはカスタマイズ可能なスペルチェック機能がビルトインされています。スペルチェックはテキスト型の [入力](input_overview.md) オブジェクト、そして [4D Write Pro](writeProArea_overview.md)ドキュメントに対して実行可能です。 -自動スペルチェックプロパティは、各オブジェクトのスペルチェックを有効にします この場合、スペルチェックはタイプ中に自動的に実行されます。 この場合、スペルチェックはタイプ中に自動的に実行されます。 チェックしたいオブジェクトそれぞれに対して [`SPELL CHECKING`](../commands/spell-checking) 4Dランゲージコマンドを呼び出して実行することもできます。 +自動スペルチェックプロパティは、各オブジェクトのスペルチェックを有効にします この場合、スペルチェックはタイプ中に自動的に実行されます。この場合、スペルチェックはタイプ中に自動的に実行されます。チェックしたいオブジェクトそれぞれに対して [`SPELL CHECKING`](../commands/spell-checking) 4Dランゲージコマンドを呼び出して実行することもできます。 :::note ライティングツール(macOS) @@ -35,16 +35,15 @@ macOS において、ユーザーがドキュメントのスペルチェック このプロパティを有効にすると、フォームの実行中にオブジェクトに対して標準のコンテキストメニューが使用できるようになります。 -ピクチャー型の [入力](input_overview.md) オブジェクトの場合、標準の編集コマンド (カット、コピー、ペースト、そしてクリア) に加え、ファイルからピクチャーを読み込むために使用することのできる **読み込み...** コマンド、ピクチャーをディスクに保存するのに使用する **別名で保存...** コマンドなどがあります。 また、メニューを使用してピクチャーの表示フォーマットを変更することもできます。**トランケート (中央合わせなし)**、**スケーリング** そして **スケーリング (中央合わせ/プロポーショナル)** から選択できます。 このメニューを使用した [表示フォーマット](properties_Display.md#ピクチャーフォーマット) の変更は一時的なものであり、レコードには保存されません。 +ピクチャー型の [入力](input_overview.md) オブジェクトの場合、標準の編集コマンド (カット、コピー、ペースト、そしてクリア) に加え、ファイルからピクチャーを読み込むために使用することのできる **読み込み...** コマンド、ピクチャーをディスクに保存するのに使用する **別名で保存...** コマンドなどがあります。また、メニューを使用してピクチャーの表示フォーマットを変更することもできます。**トランケート (中央合わせなし)**、**スケーリング** そして **スケーリング (中央合わせ/プロポーショナル)** から選択できます。このメニューを使用した [表示フォーマット](properties_Display.md#ピクチャーフォーマット) の変更は一時的なものであり、レコードには保存されません。 [マルチスタイル](properties_Text.md#マルチスタイル) オプションがチェックされているテキスト型の [入力](input_overview.md) オブジェクト、または[リストボックスカラム](listbox-column.md) の場合、標準の編集コマンド以外に以下の様なコマンドを使用することができます: - **フォント...**: フォントシステムダイアログボックスを表示させます。 -- **最近使用したフォント**: セッション中に最近使用されたフォント名を表示します。 リストには最大で 10フォントまで表示されます (それ以上は古いものから置き換えられていきます)。 デフォルトではリストは空になっているので、このオプションは表示されません。 このリストは [`SET RECENT FONTS`](../commands/set-recent-fonts) と [`FONT LIST`](../commands/font-list) コマンドを使用して管理することができます。 -- スタイルの変更をおこなうためのコマンド: スタイル、サイズ、カラー、背景色。 - このポップアップメニューを使用してユーザーがスタイル属性を編集する と、4D は `On After Edit` フォームイベントを生成します。 +- **最近使用したフォント**: セッション中に最近使用されたフォント名を表示します。リストには最大で 10フォントまで表示されます (それ以上は古いものから置き換えられていきます)。デフォルトではリストは空になっているので、このオプションは表示されません。このリストは [`SET RECENT FONTS`](../commands/set-recent-fonts) と [`FONT LIST`](../commands/font-list) コマンドを使用して管理することができます。 +- スタイルの変更をおこなうためのコマンド: スタイル、サイズ、カラー、背景色。このポップアップメニューを使用してユーザーがスタイル属性を編集する と、4D は `On After Edit` フォームイベントを生成します。 -[Webエリア](webArea_overview.md) の場合、メニューの内容はプラットフォームの描画エンジンにより設定されます。 コンテキストメニューは[`WA SET PREFERENCE`](../commands/wa-set-preference) コマンドを使用することでアクセスを管理することが可能です。 +[Webエリア](webArea_overview.md) の場合、メニューの内容はプラットフォームの描画エンジンにより設定されます。コンテキストメニューは[`WA SET PREFERENCE`](../commands/wa-set-preference) コマンドを使用することでアクセスを管理することが可能です。 #### JSON 文法 @@ -69,7 +68,7 @@ macOS において、ユーザーがドキュメントのスペルチェック 入力可属性は、ユーザーがオブジェクトに値を入力できるかどうかを指定します。 -すべてのアクティブオブジェクトはデフォルトで入力可です。 フォーム上の特定のフィールドやオブジェクトを入力不可にしたい場合、入力可チェックボックスの選択を解除します。 入力不可のオブジェクトはデータの表示のみをおこないます。 当該フィールド名や変数名を使用するメソッドによってデータを制御します。 入力不可オブジェクトでも `On Clicked`, `On Double Clicked`, `On Drag Over`, `On Drop`, `On Getting Focus` そして `On Losing Focus` フォームイベントは使用できます。 これらによって、カスタムコンテキストメニューの管理が容易になり、入力不可変数をドラッグ&ドロップしたり選択したりできるインターフェースをデザインすることができます。 +すべてのアクティブオブジェクトはデフォルトで入力可です。フォーム上の特定のフィールドやオブジェクトを入力不可にしたい場合、入力可チェックボックスの選択を解除します。入力不可のオブジェクトはデータの表示のみをおこないます。当該フィールド名や変数名を使用するメソッドによってデータを制御します。入力不可オブジェクトでも `On Clicked`, `On Double Clicked`, `On Drag Over`, `On Drop`, `On Getting Focus` そして `On Losing Focus` フォームイベントは使用できます。これらによって、カスタムコンテキストメニューの管理が容易になり、入力不可変数をドラッグ&ドロップしたり選択したりできるインターフェースをデザインすることができます。 このプロパティを無効にした場合、リストによってリストボックス列に関連付けられたポップアップメニューも使用できなくなります。 @@ -102,45 +101,45 @@ macOS において、ユーザーがドキュメントのスペルチェック ## 入力フィルター -入力フィルターを使用するとデータ入力中にユーザーがタイプできる文字を制御できます。 [指定リスト](properties_RangeOfValues.md#指定リスト) とは異なり、入力フィルターは文字ごとに処理がおこなわれます。 たとえば、パーツ番号が常に 2つの文字とそれに続く 3つの数字で構成されるとき、入力フィルターを通してそのパターンを強制することができます。 さらに特定の文字や数字のみを使用するよう制御することもできます。 +入力フィルターを使用するとデータ入力中にユーザーがタイプできる文字を制御できます。[指定リスト](properties_RangeOfValues.md#指定リスト) とは異なり、入力フィルターは文字ごとに処理がおこなわれます。たとえば、パーツ番号が常に 2つの文字とそれに続く 3つの数字で構成されるとき、入力フィルターを通してそのパターンを強制することができます。さらに特定の文字や数字のみを使用するよう制御することもできます。 -入力フィルターはデータ入力時にのみ動作します。 オブジェクトの選択をユーザーが解除した後のデータ表示には効果がありません。 通常は、入力フィルターを [表示フォーマット](properties_Display.md) と一緒に使用します。 フィルターはデータ入力を制約し、表示フォーマットはデータ入力後の値の表示を制御します。 +入力フィルターはデータ入力時にのみ動作します。オブジェクトの選択をユーザーが解除した後のデータ表示には効果がありません。通常は、入力フィルターを [表示フォーマット](properties_Display.md) と一緒に使用します。フィルターはデータ入力を制約し、表示フォーマットはデータ入力後の値の表示を制御します。 -データ入力中、タイプされるたびに入力フィルターは文字を評価します。 ユーザーが無効な入力をすると (たとえば文字の代わりに数字)、4D はその入力を受け付けません。 ユーザーが有効な入力をおこなうまで値は変更されません。 +データ入力中、タイプされるたびに入力フィルターは文字を評価します。ユーザーが無効な入力をすると (たとえば文字の代わりに数字)、4D はその入力を受け付けません。ユーザーが有効な入力をおこなうまで値は変更されません。 -入力フィルターに表示フォーマットを併用することで、形式的な文字をユーザーが入力しなくてすむようにできます。 たとえば、アメリカ合衆国の電話番号は 3桁のエリアコードに、3桁と4桁に分割される 7桁の番号が続きます。 エリアコードをカッコでくくり、電話番号の3つ目の数字の後にダッシュを表示するような表示フォーマットを利用することができます。 このようなフォーマットが指定されている場合、カッコやダッシュをユーザーが入力する必要はありません。 +入力フィルターに表示フォーマットを併用することで、形式的な文字をユーザーが入力しなくてすむようにできます。たとえば、アメリカ合衆国の電話番号は 3桁のエリアコードに、3桁と4桁に分割される 7桁の番号が続きます。エリアコードをカッコでくくり、電話番号の3つ目の数字の後にダッシュを表示するような表示フォーマットを利用することができます。このようなフォーマットが指定されている場合、カッコやダッシュをユーザーが入力する必要はありません。 ### 入力フィルターの定義 ほとんどの場合、あらかじめ用意されている 4D の [ビルトインフィルター](#デフォルト入力フィルター) を使用することができます。しかし、カスタマイズされたフィルターを作成することも可能です: - 入力フィルターコードを直接入力することができます。 -- ツールボックスのフィルターエディターで入力フィルターを作成し、その名前を指定することもできます。 開発者が作成したカスタムフィルターはリストの先頭に表示されます。 +- ツールボックスのフィルターエディターで入力フィルターを作成し、その名前を指定することもできます。開発者が作成したカスタムフィルターはリストの先頭に表示されます。 ### デフォルト入力フィルター 入力フィルタードロップダウンリストから選択できる入力フィルターの説明は以下の表の通りです: -| 入力フィルター | 説明 | -| -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| ~A | すべての文字が入力可能、ただし大文字に変換されます。 | -| &9 | 数字のみ入力可能。 | -| &A | 大文字の文字だけが入力可能。 | -| &a | 文字だけが入力可能 (大文字と小文字)。 | -| &@ | 数字と文字が入力可能。 特殊記号を除きます。 | -| ~a## | 2桁の任意の文字が入力可能、大文字に変換されます。 2桁の任意の文字が入力可能、大文字に変換されます。 | -| !0&9##/##/## | 標準の日付入力フォーマット。 入力領域に 0 を表示します。 任意の数値が入力可能。 | -| !0&9##年##月##日 | 時間入力フォーマット。 入力領域に 0 を表示します。 任意の数値が入力可能。 時と分だけが入力可能。 | -| !0&9##:## | 時間入力フォーマット。 時と分だけが入力可能。 入力領域に 0 を表示します。 任意の4桁の数字が入力可能。 | -| !0&9##時##分 | 時間入力フォーマット。 入力領域に 0 を表示します。 時間と分数を 2桁ずつ入力可能。 | -| !0&9##時##分##秒 | 時間入力フォーマット。 入力領域に 0 を表示します。 時間と分数、秒数を 2桁ずつ入力可能。 | -| !0&9###-##-#### | 長距離電話番号フォーマット。 入力領域に 0 を表示します。 任意の数値が入力可能。 (3桁の数字と 4桁の数字) | -| !_&9(###) !0###-#### | 長距離電話番号フォーマット。 先頭の 3桁の入力領域はカッコで囲み (空の場合はアンダースコアを表示し)、残りの入力領域に 0 を表示。 | -| !0&9###-###-### | 長距離電話番号フォーマット。 入力領域に 0 を表示します。 任意の数値が入力可能。 3桁と 3桁と 4桁の数字をハイフンで区分。 | -| !0&9###-#### | アメリカ合衆国の社会保障番号フォーマット。 入力領域に 0 を表示します。 任意の数値が入力可能。 | -| ~"A-Z;0-9; ;,;.;-" | 大文字の文字と句読点。 大文字の文字、数字、スペース、コンマ、ピリオド、ハイフンだけが入力可能。 | -| &"a-z;0-9; ;,;.;-" | 大文字と小文字の文字と句読点。 大小の文字、数字、スペース、コンマ、ピリオド、ハイフンだけが入力可能。 | -| &"0-9;.;-" | 数字。 数字、小数点、ハイフン (マイナス記号) だけが入力可能。 | +| 入力フィルター | 説明 | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| ~A | すべての文字が入力可能、ただし大文字に変換されます。 | +| &9 | 数字のみ入力可能。 | +| &A | 大文字の文字だけが入力可能。 | +| &a | 文字だけが入力可能 (大文字と小文字)。 | +| &@ | 数字と文字が入力可能。特殊記号を除きます。 | +| ~a## | 2桁の任意の文字が入力可能、大文字に変換されます。 2桁の任意の文字が入力可能、大文字に変換されます。 | +| !0&9##/##/## | 標準の日付入力フォーマット。入力領域に 0 を表示します。任意の数値が入力可能。 | +| !0&9##年##月##日 | 時間入力フォーマット。入力領域に 0 を表示します。任意の数値が入力可能。時と分だけが入力可能。 | +| !0&9##:## | 時間入力フォーマット。時と分だけが入力可能。入力領域に 0 を表示します。任意の4桁の数字が入力可能。 | +| !0&9##時##分 | 時間入力フォーマット。入力領域に 0 を表示します。時間と分数を 2桁ずつ入力可能。 | +| !0&9##時##分##秒 | 時間入力フォーマット。入力領域に 0 を表示します。時間と分数、秒数を 2桁ずつ入力可能。 | +| !0&9###-##-#### | 長距離電話番号フォーマット。入力領域に 0 を表示します。任意の数値が入力可能。 (3桁の数字と 4桁の数字) | +| !_&9(###) !0###-#### | 長距離電話番号フォーマット。先頭の 3桁の入力領域はカッコで囲み (空の場合はアンダースコアを表示し)、残りの入力領域に 0 を表示。 | +| !0&9###-###-### | 長距離電話番号フォーマット。入力領域に 0 を表示します。任意の数値が入力可能。 3桁と 3桁と 4桁の数字をハイフンで区分。 | +| !0&9###-#### | アメリカ合衆国の社会保障番号フォーマット。入力領域に 0 を表示します。任意の数値が入力可能。 | +| ~"A-Z;0-9; ;,;.;-" | 大文字の文字と句読点。大文字の文字、数字、スペース、コンマ、ピリオド、ハイフンだけが入力可能。 | +| &"a-z;0-9; ;,;.;-" | 大文字と小文字の文字と句読点。大小の文字、数字、スペース、コンマ、ピリオド、ハイフンだけが入力可能。 | +| &"0-9;.;-" | 数字。数字、小数点、ハイフン (マイナス記号) だけが入力可能。 | #### JSON 文法 @@ -160,7 +159,7 @@ macOS において、ユーザーがドキュメントのスペルチェック ## フォーカス可 -オブジェクトに対し **フォーカス可** プロパティが選択されていると、そのオブジェクトはフォーカスを得ることができ、キーボードなどを使用してアクティブ化することができます。 オブジェクトはフォーカスを得ると、オブジェクトごとあるいは OS ごとに定められた方法でハイライトされます。ただし [フォーカスの四角を隠す](properties_Appearance.md#hide-focus-rectangle) オプションが選択されている場合を除きます。 +オブジェクトに対し **フォーカス可** プロパティが選択されていると、そのオブジェクトはフォーカスを得ることができ、キーボードなどを使用してアクティブ化することができます。オブジェクトはフォーカスを得ると、オブジェクトごとあるいは OS ごとに定められた方法でハイライトされます。ただし [フォーカスの四角を隠す](properties_Appearance.md#hide-focus-rectangle) オプションが選択されている場合を除きます。 > [入力可](#入力可) に設定された [入力オブジェクト](input_overview.md) は常にフォーカス可です。 @@ -197,7 +196,7 @@ macOS において、ユーザーがドキュメントのスペルチェック ## キーボードレイアウト -このプロパティは [入力](input_overview.md) オブジェクトに対して特定のキーボードレイアウトを関連付けます。 たとえば、国際的なアプリケーションにおいて、フォーム内にギリシャ文字で入力しなければならないフィールドがあった場合、"ギリシャ語" のキーボードレイアウトをこのフィールドに対して関連付けることができます。 これにより、このフィールドがフォーカスを受けている場合にはデータ入力時にキーボード設定が自動的に変わります。 +このプロパティは [入力](input_overview.md) オブジェクトに対して特定のキーボードレイアウトを関連付けます。たとえば、国際的なアプリケーションにおいて、フォーム内にギリシャ文字で入力しなければならないフィールドがあった場合、"ギリシャ語" のキーボードレイアウトをこのフィールドに対して関連付けることができます。これにより、このフィールドがフォーカスを受けている場合にはデータ入力時にキーボード設定が自動的に変わります。 デフォルトでは、オブジェクトはカレントのキーボードレイアウトを使用します。 @@ -221,7 +220,7 @@ macOS において、ユーザーがドキュメントのスペルチェック ## 複数行 -このプロパティは、テキストタイプの式や、文字およびテキストタイプのフィールドが割り当てられている [入力オブジェクト](input_overview.md) で使用できます。 値は、あり・なし・自動 (デフォルト) が選択できます。 +このプロパティは、テキストタイプの式や、文字およびテキストタイプのフィールドが割り当てられている [入力オブジェクト](input_overview.md) で使用できます。値は、あり・なし・自動 (デフォルト) が選択できます。 #### 自動 @@ -232,7 +231,7 @@ macOS において、ユーザーがドキュメントのスペルチェック #### なし - 一行の入力オブジェクトでは、行の最後にある単語はエリアからはみ出し、改行はおこなわれません。 -- テキストは常に一行で表示されます。 文字やテキストのフィールドまたは変数が改行文字を含んでいる場合、エリアが更新されるとすぐに最初のキャリッジリターンより後のテキストが取り除かれます: +- テキストは常に一行で表示されます。文字やテキストのフィールドまたは変数が改行文字を含んでいる場合、エリアが更新されるとすぐに最初のキャリッジリターンより後のテキストが取り除かれます: ![](../assets/en/FormObjects/multilineNo.png) #### あり @@ -259,7 +258,7 @@ macOS において、ユーザーがドキュメントのスペルチェック 4D では、フォームのフィールド内にプレースホルダーテキストを表示することができます。 -このテキストはフィールド内で半透明のテキストとして表示され、入力されるデータに関するヘルプ、指示、具体例などを表示します。 このテキストは、ユーザーが文字をエリアに入力した瞬間に表示されなくなります: +このテキストはフィールド内で半透明のテキストとして表示され、入力されるデータに関するヘルプ、指示、具体例などを表示します。このテキストは、ユーザーが文字をエリアに入力した瞬間に表示されなくなります: ![](../assets/en/FormObjects/property_placeholder.png) @@ -300,7 +299,7 @@ xliff 参照を ":xliff:resname" の形でプレースホルダーとして使 ## 選択を常に表示 -このプロパティを選択すると、オブジェクト中で選択した文字列の反転状態が、フォーカスを失った後も表示されるようになります。 これにより、テキストスタイルを更新するようなインターフェースの実装が容易になります ([マルチスタイル](properties_Text.md#マルチスタイル) 参照)。 +このプロパティを選択すると、オブジェクト中で選択した文字列の反転状態が、フォーカスを失った後も表示されるようになります。これにより、テキストスタイルを更新するようなインターフェースの実装が容易になります ([マルチスタイル](properties_Text.md#マルチスタイル) 参照)。 #### JSON 文法 @@ -316,13 +315,13 @@ xliff 参照を ":xliff:resname" の形でプレースホルダーとして使 ## ショートカット -[ボタン](button_overview.md)、[ラジオボタン](radio_overview.md) および [チェックボックス](checkbox_overview.md) にキーボードショートカットを割り当てることができます。 ショートカットによって、ユーザーはマウスを使用しなくてもキーボードからこれらのコントロールを操作することができます。 +[ボタン](button_overview.md)、[ラジオボタン](radio_overview.md) および [チェックボックス](checkbox_overview.md) にキーボードショートカットを割り当てることができます。ショートカットによって、ユーザーはマウスを使用しなくてもキーボードからこれらのコントロールを操作することができます。 ショートカットの設定をおこなうには、プロパティリストのショートカットプロパティの [...] ボタンをクリックします。 ![](../assets/en/FormObjects/property_shortcut.png) -> カスタムメニューコマンドにもショートカットを割り当てることができます。 2つのショートカットに衝突がある場合には、アクティブオブジェクトが優先されます。 メニューにショートカットを割り当てる方法の詳細については、[メニュープロパティの設定](../Menus/properties.md) を参照して下さい。 +> カスタムメニューコマンドにもショートカットを割り当てることができます。 2つのショートカットに衝突がある場合には、アクティブオブジェクトが優先されます。メニューにショートカットを割り当てる方法の詳細については、[メニュープロパティの設定](../Menus/properties.md) を参照して下さい。 4D のデザイン環境で使用できるショートカットの一覧は、環境設定ダイアログの [ショートカットページ](../Preferences/shortcuts.md) にて確認できます。 @@ -351,7 +350,7 @@ xliff 参照を ":xliff:resname" の形でプレースホルダーとして使 リストボックスにおいて、編集モードへの直接移行を可能にします。 -このオプションがチェックされている場合、そのリストボックスの当該エリアが事前に選択されていたかどうかに関わらず、ユーザーのワンクリックだけでリストボックスセルを編集モードへと移行させることができます。 このオプションは、リストボックスの [選択モード](properties_ListBox.md#選択モード) が "なし" に設定されている場合でもセルの編集を可能にすると言う点に注意してください。 +このオプションがチェックされている場合、そのリストボックスの当該エリアが事前に選択されていたかどうかに関わらず、ユーザーのワンクリックだけでリストボックスセルを編集モードへと移行させることができます。このオプションは、リストボックスの [選択モード](properties_ListBox.md#選択モード) が "なし" に設定されている場合でもセルの編集を可能にすると言う点に注意してください。 このオプションがチェックされていない場合、セルの内容を編集するにはユーザーはまず最初に編集したいセルの行を選択し、その次に編集するセルを選択する必要があります。 @@ -373,7 +372,7 @@ xliff 参照を ":xliff:resname" の形でプレースホルダーとして使 ## ライティングツール -macOS においてこのプロパティを使用するとエンドユーザーが[Apple Intelligence **ライティングツール**](https://support.apple.com/guide/mac-help/find-the-right-words-with-writing-tools-mchldcd6c260/mac) を[4D Write Pro](writeProArea_overview.md) および[入力](input_overview.md) ([複数行](#複数行) サポートつき) フォームオブジェクトのテキストに対して適用することができるようになります。 ライティングツールは、あなたの4D アプリケーション内で直接テキストの校正、書き直し、要約、あるいは文体の変更を行うためにAI を活用します。 +macOS においてこのプロパティを使用するとエンドユーザーが[Apple Intelligence **ライティングツール**](https://support.apple.com/guide/mac-help/find-the-right-words-with-writing-tools-mchldcd6c260/mac) を[4D Write Pro](writeProArea_overview.md) および[入力](input_overview.md) ([複数行](#複数行) サポートつき) フォームオブジェクトのテキストに対して適用することができるようになります。ライティングツールは、あなたの4D アプリケーション内で直接テキストの校正、書き直し、要約、あるいは文体の変更を行うためにAI を活用します。 ![](../assets/en/FormObjects/writing-tools.png) @@ -383,10 +382,10 @@ macOS においてこのプロパティを使用するとエンドユーザー ::: -プロパティが有効化されていてフォームが実行された場合、オブジェクトの[コンテキストメニュー](#コンテキストメニュー) に**ライティングツールを表示** というメニュー項目が追加されます。 ユーザーがライティングツール内のアクションを選択した場合、選択状態に応じて以下の様な編集が返されます: +プロパティが有効化されていてフォームが実行された場合、オブジェクトの[コンテキストメニュー](#コンテキストメニュー) に**ライティングツールを表示** というメニュー項目が追加されます。ユーザーがライティングツール内のアクションを選択した場合、選択状態に応じて以下の様な編集が返されます: - テキストの一部が選択されていた場合、選択範囲のみが置換されます -- 選択範囲がない場合、エリアのコンテンツ全体が使用されます([4D Write Pro](writeProArea_overview.md) エリアの場合、カレントコンテナの全てのコンテンツが使用されます)。 ライティングツールが使用するコンテキストは、カーソルが位置しているコンテナ(ヘッダー、フッター、本文、またはテキストボックス)とカレントの選択範囲です。 +- 選択範囲がない場合、エリアのコンテンツ全体が使用されます([4D Write Pro](writeProArea_overview.md) エリアの場合、カレントコンテナの全てのコンテンツが使用されます)。ライティングツールが使用するコンテキストは、カーソルが位置しているコンテナ(ヘッダー、フッター、本文、またはテキストボックス)とカレントの選択範囲です。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Footers.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Footers.md index 53acdda99d0f3f..fcf001d62a3fa4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Footers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Footers.md @@ -5,7 +5,7 @@ title: フッター ## フッターを表示 -このプロパティは、[リストボックスカラムのフッター](listbox-header-footer.md#フッター) の表示/非表示を指定するのに使用されます。 カラムごとに 1つのフッターを表示できます。それぞれのフッターは個別に設定できます。 +このプロパティは、[リストボックスカラムのフッター](listbox-header-footer.md#フッター) の表示/非表示を指定するのに使用されます。カラムごとに 1つのフッターを表示できます。それぞれのフッターは個別に設定できます。 #### JSON 文法 @@ -25,21 +25,21 @@ title: フッター ## 高さ -このプロパティは、リストボックスフッターの高さを **行** または **ピクセル** 単位で指定します。 同じリストボックス内で異なる単位を使用することもできます: +このプロパティは、リストボックスフッターの高さを **行** または **ピクセル** 単位で指定します。同じリストボックス内で異なる単位を使用することもできます: -- *ピクセル* - 指定された値は当該行に対し直接適用され、列が使用しているフォントサイズ等は考慮されません。 フォントが行の高さに対して大きい場合、テキストは切り取られます。 ピクチャーはフォーマットに基づき、切り取られるかリサイズされます。 +- *ピクセル* - 指定された値は当該行に対し直接適用され、列が使用しているフォントサイズ等は考慮されません。フォントが行の高さに対して大きい場合、テキストは切り取られます。ピクチャーはフォーマットに基づき、切り取られるかリサイズされます。 - *行* - 高さは行のフォントサイズに合わせて計算されます。 - - 複数の異なるサイズが設定されている場合、4D はもっとも大きなものを使用します。 たとえば、行に "Verdana 18", "Geneva 12" そして "Arial 9" が設定されている場合、4D は行の高さの決定に "Verdana 18" を使用します。 複数行の場合はこの高さの倍数が使用されます。 + - 複数の異なるサイズが設定されている場合、4D はもっとも大きなものを使用します。たとえば、行に "Verdana 18", "Geneva 12" そして "Arial 9" が設定されている場合、4D は行の高さの決定に "Verdana 18" を使用します。複数行の場合はこの高さの倍数が使用されます。 - この計算にはピクチャーのサイズや、フォントに適用されるスタイルは考慮されません。 - - macOS 環境下では、選択されたフォントで使用できない文字をユーザーが入力した場合、行の高さが正しくなくなる可能性があります。 この場合には代理フォントが使用され、その結果サイズにばらつきが出る可能性があります。 + - macOS 環境下では、選択されたフォントで使用できない文字をユーザーが入力した場合、行の高さが正しくなくなる可能性があります。この場合には代理フォントが使用され、その結果サイズにばらつきが出る可能性があります。 > This property can also be set dynamically using the LISTBOX SET FOOTERS HEIGHT command. > このプロパティは、[LISTBOX SET FOOTERS HEIGHT](../commands/listbox-set-footers-height) コマンドを使用することで動的に設定することも可能です。 -単位の変換: 単位を変更した場合、4D は自動で値を再計算し、結果をプロパティリストに表示します。 たとえば、使用されるフォントが "Lucida grande 24" で高さが "1 行" に設定されていれば "30 ピクセル" に、高さが "60 ピクセル" なら "2 行" になります。 +単位の変換: 単位を変更した場合、4D は自動で値を再計算し、結果をプロパティリストに表示します。たとえば、使用されるフォントが "Lucida grande 24" で高さが "1 行" に設定されていれば "30 ピクセル" に、高さが "60 ピクセル" なら "2 行" になります。 -単位の変更を繰り返すと、4D が自動で計算を行うため、最初の値とは結果が異なってしまうこともあります。 たとえば以下のようになります: +単位の変更を繰り返すと、4D が自動で計算を行うため、最初の値とは結果が異なってしまうこともあります。たとえば以下のようになります: *(Arial 18)*: 52 ピクセル -> 2 行 -> 40 ピクセル *(Arial 12)*: 3 ピクセル -> 0.4 行が 1 行に切り上げられる -> 19 ピクセル diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Headers.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Headers.md index d3a6d8986d53a1..a85e2d4b56b395 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Headers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Headers.md @@ -5,7 +5,7 @@ title: ヘッダー ## ヘッダーを表示 -このプロパティは、[リストボックスカラムのヘッダー](listbox-header-footer.md#ヘッダー) の表示/非表示を指定するのに使用されます。 列ごとに 1つのヘッダーを表示できます。 それぞれのヘッダーは個別に設定できます。 +このプロパティは、[リストボックスカラムのヘッダー](listbox-header-footer.md#ヘッダー) の表示/非表示を指定するのに使用されます。列ごとに 1つのヘッダーを表示できます。 それぞれのヘッダーは個別に設定できます。 #### JSON 文法 @@ -25,21 +25,21 @@ title: ヘッダー ## 高さ -このプロパティは、リストボックスヘッダーの高さを **行** または **ピクセル** 単位で指定します。 同じリストボックス内で異なる単位を使用することもできます: +このプロパティは、リストボックスヘッダーの高さを **行** または **ピクセル** 単位で指定します。同じリストボックス内で異なる単位を使用することもできます: -- *ピクセル* - 指定された値は当該行に対し直接適用され、列が使用しているフォントサイズ等は考慮されません。 フォントが行の高さに対して大きい場合、テキストは切り取られます。 ピクチャーはフォーマットに基づき、切り取られるかリサイズされます。 +- *ピクセル* - 指定された値は当該行に対し直接適用され、列が使用しているフォントサイズ等は考慮されません。フォントが行の高さに対して大きい場合、テキストは切り取られます。ピクチャーはフォーマットに基づき、切り取られるかリサイズされます。 - *行* - 高さは行のフォントサイズに合わせて計算されます。 - - 複数の異なるサイズが設定されている場合、4D はもっとも大きなものを使用します。 たとえば、行に "Verdana 18", "Geneva 12" そして "Arial 9" が設定されている場合、4D は行の高さの決定に "Verdana 18" を使用します。 複数行の場合はこの高さの倍数が使用されます。 + - 複数の異なるサイズが設定されている場合、4D はもっとも大きなものを使用します。たとえば、行に "Verdana 18", "Geneva 12" そして "Arial 9" が設定されている場合、4D は行の高さの決定に "Verdana 18" を使用します。複数行の場合はこの高さの倍数が使用されます。 - この計算にはピクチャーのサイズや、フォントに適用されるスタイルは考慮されません。 - - macOS 環境下では、選択されたフォントで使用できない文字をユーザーが入力した場合、行の高さが正しくなくなる可能性があります。 この場合には代理フォントが使用され、その結果サイズにばらつきが出る可能性があります。 + - macOS 環境下では、選択されたフォントで使用できない文字をユーザーが入力した場合、行の高さが正しくなくなる可能性があります。この場合には代理フォントが使用され、その結果サイズにばらつきが出る可能性があります。 > This property can also be set dynamically using the LISTBOX SET FOOTERS HEIGHT command. > このプロパティは、[LISTBOX SET HEADERS HEIGHT](../commands/listbox-set-headers-height) コマンドを使用することで動的に設定することも可能です。 -単位の変換: 単位を変更した場合、4D は自動で値を再計算し、結果をプロパティリストに表示します。 たとえば、使用されるフォントが "Lucida grande 24" で高さが "1 行" に設定されていれば "30 ピクセル" に、高さが "60 ピクセル" なら "2 行" になります。 +単位の変換: 単位を変更した場合、4D は自動で値を再計算し、結果をプロパティリストに表示します。たとえば、使用されるフォントが "Lucida grande 24" で高さが "1 行" に設定されていれば "30 ピクセル" に、高さが "60 ピクセル" なら "2 行" になります。 -単位の変更を繰り返すと、4D が自動で計算を行うため、最初の値とは結果が異なってしまうこともあります。 たとえば以下のようになります: +単位の変更を繰り返すと、4D が自動で計算を行うため、最初の値とは結果が異なってしまうこともあります。たとえば以下のようになります: - (フォント Arial 18)\*: 52 ピクセル -> 2行 -> 40 ピクセル - (フォント Arial 12)\*: 3 ピクセル -> 0.4行が 1行に切り上げられる -> 19 ピクセル diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Help.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Help.md index b6057efbc6599c..5018d01b8c21f0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Help.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Help.md @@ -5,7 +5,7 @@ title: ヘルプ ## ヘルプTips -このプロパティで、フォーム上のアクティブオブジェクトにヘルプTip を付加することができます。 ランタイムにおいてマウスがオブジェクト上にあるとき、ヘルプメッセージが Tip として表示されます: +このプロパティで、フォーム上のアクティブオブジェクトにヘルプTip を付加することができます。ランタイムにおいてマウスがオブジェクト上にあるとき、ヘルプメッセージが Tip として表示されます: ![](../assets/en/FormObjects/property_helpTip.png) @@ -15,7 +15,7 @@ title: ヘルプ これには、次の二つの方法があります: - 4D の [ヘルプTip](https://doc.4d.com/4Dv20/4D/20.2/Help-tips.200-6750100.ja.html) エディターであらかじめ作成したヘルプTip を指定します。 -- または、プロパティリストに直接 Tip を文字列として入力します。 この方法では、XLIFF アーキテクチャーを利用することができます。 XLIFF参照を指定することで、アプリケーションの言語に応じたメッセージを表示させることができます (XLIFF についての詳細は [付録 B: XLIFFアーキテクチャー](https://doc.4d.com/4Dv20/4D/20.2/Appendix-B-XLIFF-architecture.300-6750166.ja.html) を参照ください)。 また、4D 参照を使用することもできます ([スタティックテキスト中で参照を使用する](https://doc.4d.com/4Dv20/4D/20.2/Using-references-in-static-text.300-6750154.ja.html) 参照)。 +- または、プロパティリストに直接 Tip を文字列として入力します。この方法では、XLIFF アーキテクチャーを利用することができます。 XLIFF参照を指定することで、アプリケーションの言語に応じたメッセージを表示させることができます (XLIFF についての詳細は [付録 B: XLIFFアーキテクチャー](https://doc.4d.com/4Dv20/4D/20.2/Appendix-B-XLIFF-architecture.300-6750166.ja.html) を参照ください)。また、4D 参照を使用することもできます ([スタティックテキスト中で参照を使用する](https://doc.4d.com/4Dv20/4D/20.2/Using-references-in-static-text.300-6750154.ja.html) 参照)。 > macOS においては、Pop up window (32) 型のウィンドウはヘルプTips の表示ができません。 @@ -43,7 +43,7 @@ title: ヘルプ オブジェクトにヘルプTip を関連付ける方法は他にも 2通りあります: -- データベースストラクチャーレベルにおいて設定することができます (フィールドのみ)。 この場合、当該フィールドが表示されるすべてのフォームにおいて、このヘルプTip が表示されます。 詳細については [フィールドプロパティ](https://doc.4d.com/4Dv20/4D/20.2/Field-properties.300-6750280.ja.html#3367486) のヘルプTip の章を参照してください。 +- データベースストラクチャーレベルにおいて設定することができます (フィールドのみ)。この場合、当該フィールドが表示されるすべてのフォームにおいて、このヘルプTip が表示されます。詳細については [フィールドプロパティ](https://doc.4d.com/4Dv20/4D/20.2/Field-properties.300-6750280.ja.html#3367486) のヘルプTip の章を参照してください。 - **[OBJECT SET HELP TIP](../commands/object-set-help-tip)** コマンドを使用することで、カレントプロセスにおいて設定することが可能です。 同じオブジェクトに対して複数の Tip が関連づけられている場合には、次の優先順位に従って表示されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Hierarchy.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Hierarchy.md index 1d0895acd444e6..51e0b4f8afbffb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Hierarchy.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Hierarchy.md @@ -9,7 +9,7 @@ title: 階層 このプロパティを使用してリストボックスの階層表示を設定します。 JSON フォームにおいては、この機能は [*dataSource* プロパティの値が配列名のコレクションであるとき](properties_Object.md#配列リストボックス) に有効化され階層化します。 -*階層リストボックス* プロパティが選択されると、追加プロパティである **Variable 1...10** が利用可能になります。これらには階層の各レベルとして使用するデータソース配列を指定します。これが *dataSource* の値である配列名のコレクションとなります。 入力欄に値が入力されると、新しい入力欄が追加されます。 10個までの変数を指定できます。 これらの変数は先頭列に表示される階層のレベルを設定します。 +*階層リストボックス* プロパティが選択されると、追加プロパティである **Variable 1...10** が利用可能になります。これらには階層の各レベルとして使用するデータソース配列を指定します。これが *dataSource* の値である配列名のコレクションとなります。入力欄に値が入力されると、新しい入力欄が追加されます。 10個までの変数を指定できます。これらの変数は先頭列に表示される階層のレベルを設定します。 [階層リストボックス](listbox_overview.md#階層リストボックス) 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_ListBox.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_ListBox.md index cad80d9bd184e9..2d59803c6a162b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_ListBox.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_ListBox.md @@ -50,17 +50,17 @@ title: リストボックス `セレクション型リストボックス` -ユーザーがリストボックスの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: +ユーザーがリストボックスの行をダブルクリックした際に実行されるアクションを指定します。選択可能なオプションは以下の通りです: - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 -- **レコード編集**: 行をダブルクリックすると、リストボックスに設定された [詳細フォーム](#詳細フォーム名) に当該レコードが表示されます レコードは読み書き可能モードで開かれるので、編集が可能です。 +- **レコード編集**: 行をダブルクリックすると、リストボックスに設定された [詳細フォーム](#詳細フォーム名) に当該レコードが表示されますレコードは読み書き可能モードで開かれるので、編集が可能です。 - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 > 空の行へのダブルクリックは無視されます。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 -「レコード編集」「レコード表示」のアクションに関しては `On Open Detail` フォームイベントも生成されます。 リストボックスに関連付けられた詳細フォームに表示されたレコードが閉じられる際には `On Close Detail` フォームイベントが生成されます (レコードが編集されたかどうかは問いません)。 +「レコード編集」「レコード表示」のアクションに関しては `On Open Detail` フォームイベントも生成されます。リストボックスに関連付けられた詳細フォームに表示されたレコードが閉じられる際には `On Close Detail` フォームイベントが生成されます (レコードが編集されたかどうかは問いません)。 #### JSON 文法 @@ -84,7 +84,7 @@ title: リストボックス このプロパティを使用して、リストボックス中でハイライトされたレコードを管理するために使用するセット名を指定します (**配列** データソースが指定されている場合には、リストボックスに割り当てた変数と同じ名前のブール配列をこの用途で使用します)。 -4D は *ListBoxSetN* (*N* は 0 から始まり、フォーム上のリストボックスオブジェクトの数に従い増分されます) という名前のデフォルトセットを作成しますが、 必要に応じてこの名前を変更できます。 セットはローカル、プロセスおよびインタープロセスセットを使用できます (ネットワークトラフィックを制限するため、*$LBSet* のようなローカルセットの使用を推奨します)。 指定されたセットは 4D が自動で管理します。 ユーザーが 1つ以上の行を選択すると、セットは即座に更新されます。 プログラムを使用して行を選択したい場合、"セット" テーマのコマンドをこのセットに適用できます。 +4D は *ListBoxSetN* (*N* は 0 から始まり、フォーム上のリストボックスオブジェクトの数に従い増分されます) という名前のデフォルトセットを作成しますが、必要に応じてこの名前を変更できます。セットはローカル、プロセスおよびインタープロセスセットを使用できます (ネットワークトラフィックを制限するため、*$LBSet* のようなローカルセットの使用を推奨します)。指定されたセットは 4D が自動で管理します。ユーザーが 1つ以上の行を選択すると、セットは即座に更新されます。プログラムを使用して行を選択したい場合、"セット" テーマのコマンドをこのセットに適用できます。 > - リストボックス行のハイライトステータスとテーブルレコードのハイライトステータスは完全に独立しています。 > - "ハイライトセット" プロパティに名前が指定されていない場合、リストボックス中で行を選択することはできません。 @@ -119,7 +119,7 @@ title: リストボックス - 列を "ドラッグしない" のみを設定した場合、その列は移動することができません。 -- 列を "スクロールしない" のみに設定した場合、横スクロールしないエリア内に限りドラッグで列を移動することができます。 しかし、そのスクロールしないエリアを越えて移動することはできません。 +- 列を "スクロールしない" のみに設定した場合、横スクロールしないエリア内に限りドラッグで列を移動することができます。しかし、そのスクロールしないエリアを越えて移動することはできません。 ![](../assets/en/FormObjects/property_lockedStaticColumns1.png) @@ -127,7 +127,7 @@ title: リストボックス ![](../assets/en/FormObjects/property_lockedStaticColumns2.png) -- 必要に応じてスクロールしない列数とドラッグしない列数をそれぞれ設定できます。 たとえば、スクロールしない列を 3、ドラッグしない列を 1に設定した場合、ユーザーは横スクロールしないエリア内で右側 2つの列を入れ替えることができます。 +- 必要に応じてスクロールしない列数とドラッグしない列数をそれぞれ設定できます。たとえば、スクロールしない列を 3、ドラッグしない列を 1に設定した場合、ユーザーは横スクロールしないエリア内で右側 2つの列を入れ替えることができます。 ### スクロールしない列数 @@ -191,17 +191,17 @@ title: リストボックス リストボックス行の表示を管理するための 4D配列です。 -配列型リストボックスの任意行の "非表示"、"無効化"、"選択可能" プロパティを管理するために、この配列を使用します。 このプロパティは `LISTBOX SET ARRAY` コマンドを使用して設定することができます。 +配列型リストボックスの任意行の "非表示"、"無効化"、"選択可能" プロパティを管理するために、この配列を使用します。このプロパティは `LISTBOX SET ARRAY` コマンドを使用して設定することができます。 -行コントロール配列は、リストボックス内の要素数と同じ数を含んでいる倍長整数型の配列でなければなりません。 *行コントロール配列* の各要素は対応する行のインターフェースステータスを定義します。 "リストボックス" 定数テーマの定数を使って、3つのインターフェースプロパティが利用可能です: +行コントロール配列は、リストボックス内の要素数と同じ数を含んでいる倍長整数型の配列でなければなりません。*行コントロール配列* の各要素は対応する行のインターフェースステータスを定義します。"リストボックス" 定数テーマの定数を使って、3つのインターフェースプロパティが利用可能です: -| 定数 | 値 | 説明 | -| ------------------------ | - | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| lk row is disabled | 2 | 対応する行は無効化されています。 テキストや、チェックボックスなどのコントロール類は暗くなっているかグレーアウトされています。 入力可能なテキスト入力エリアは入力可能ではありません。 デフォルト値: 有効化 | -| lk row is hidden | 1 | 対応する行は非表示です。 行を非表示にすることは、リストボックスの見た目にのみ影響します。 非表示の行は配列内には存在し、プログラミングを通して管理可能です。 ランゲージコマンド (具体的には `LISTBOX Get number of rows` または `LISTBOX GET CELL POSITION`) は行の表示/非表示のステータスを考慮しません。 たとえば、10行あるリストボックスの、最初の 9行が非表示になっていた場合、`LISTBOX Get number of rows` は10を返します。 ユーザーの視点では、リストボックス内の非表示行の存在は視覚的には認識できません。 表示されいている行のみが (たとえば、"すべてを選択" コマンドなどで) 選択可能です。 デフォルト値: 表示 | -| lk row is not selectable | 4 | 対応する行は選択可能になっていません (ハイライトできません)。 入力可能なテキスト入力エリアは [シングルクリック編集](properties_Entry.md#シングルクリック編集) オプションが有効になっていない限り入力可能ではありません。 しかしながら、チェックボックスなどのコントロールとリストは機能しています。 この設定はリストボックスの選択モードが "なし" の場合には無視されます。 デフォルト値: 選択可能 | +| 定数 | 値 | 説明 | +| ------------------------ | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| lk row is disabled | 2 | 対応する行は無効化されています。テキストや、チェックボックスなどのコントロール類は暗くなっているかグレーアウトされています。入力可能なテキスト入力エリアは入力可能ではありません。デフォルト値: 有効化 | +| lk row is hidden | 1 | 対応する行は非表示です。行を非表示にすることは、リストボックスの見た目にのみ影響します。非表示の行は配列内には存在し、プログラミングを通して管理可能です。ランゲージコマンド (具体的には `LISTBOX Get number of rows` または `LISTBOX GET CELL POSITION`) は行の表示/非表示のステータスを考慮しません。たとえば、10行あるリストボックスの、最初の 9行が非表示になっていた場合、`LISTBOX Get number of rows` は10を返します。ユーザーの視点では、リストボックス内の非表示行の存在は視覚的には認識できません。表示されいている行のみが (たとえば、"すべてを選択" コマンドなどで) 選択可能です。デフォルト値: 表示 | +| lk row is not selectable | 4 | 対応する行は選択可能になっていません (ハイライトできません)。入力可能なテキスト入力エリアは [シングルクリック編集](properties_Entry.md#シングルクリック編集) オプションが有効になっていない限り入力可能ではありません。しかしながら、チェックボックスなどのコントロールとリストは機能しています。この設定はリストボックスの選択モードが "なし" の場合には無視されます。デフォルト値: 選択可能 | -行のステータスを変えるためには、対応する配列の要素に適切な定数を設定するだけです。 たとえば、10行目を選択不可能に設定したい場合、以下のように書くことができます: +行のステータスを変えるためには、対応する配列の要素に適切な定数を設定するだけです。たとえば、10行目を選択不可能に設定したい場合、以下のように書くことができます: ```4d aLControlArr{10}:=lk row is not selectable @@ -217,7 +217,7 @@ title: リストボックス ![](../assets/en/FormObjects/listbox_styles6.png) -要素に対してプロパティを設定すると、(再設定しない限り) 同要素の他の値を上書きするという点に注意してください。 例: +要素に対してプロパティを設定すると、(再設定しない限り) 同要素の他の値を上書きするという点に注意してください。例: ```4d aLControlArr{6}:=lk row is disabled + lk row is not selectable @@ -246,9 +246,9 @@ title: リストボックス リストボックス行の選択モードを指定します: -- **なし**: 行を選択することはできません。 [シングルクリック編集](properties_Entry.md#シングルクリック編集) オプションがチェックされている場合を除き、リストボックスをクリックしても効果はありません。 ナビゲーションキーを使用しても、リストをスクロールするだけとなり、その際に `On Selection Change` フォームイベントは生成されません。 -- **単一**: 一度に一行のみ選択できます。 クリックすることで、行を選択できます。 **Ctrl+クリック** (Windows) や **Command+クリック** (macOS) を使うと、対象行の選択状態 (選択・非選択) が切り替わります。 - 上下キーを使うとリストの前後の行が選択されます。 その他のナビゲーションキーはリストをスクロールします。 カレントの行が変更されるたびに、`On Selection Change` フォームイベントが生成されます。 +- **なし**: 行を選択することはできません。[シングルクリック編集](properties_Entry.md#シングルクリック編集) オプションがチェックされている場合を除き、リストボックスをクリックしても効果はありません。ナビゲーションキーを使用しても、リストをスクロールするだけとなり、その際に `On Selection Change` フォームイベントは生成されません。 +- **単一**: 一度に一行のみ選択できます。クリックすることで、行を選択できます。 **Ctrl+クリック** (Windows) や **Command+クリック** (macOS) を使うと、対象行の選択状態 (選択・非選択) が切り替わります。 + 上下キーを使うとリストの前後の行が選択されます。その他のナビゲーションキーはリストをスクロールします。カレントの行が変更されるたびに、`On Selection Change` フォームイベントが生成されます。 - **複数**: 標準のショートカットを使用して複数行を同時に選択できます。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md index 0e5ba13bfd80a3..1e63486557f8be 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md @@ -49,7 +49,7 @@ title: オブジェクト ## オブジェクト名 -各アクティブフォームオブジェクトにはオブジェクト名が関連付けられています。 各オブジェクト名はユニークでなければなりません。 +各アクティブフォームオブジェクトにはオブジェクト名が関連付けられています。各オブジェクト名はユニークでなければなりません。 > オブジェクト名のサイズ上限は 255バイトです。 @@ -102,7 +102,7 @@ title: オブジェクト このオプションは、フォームの [配置を記憶](FormEditor/properties_FormProperties.md#配置を記憶) プロパティがチェックされている場合に利用可能です。 -この機能は、フォームの全体的な配置に関係するオブジェクトに対してのみサポートされています。 たとえばチェックボックスは、ウィンドウ内の追加エリアを表示/非表示するのに使用することができるため、このオプションが存在します。 +この機能は、フォームの全体的な配置に関係するオブジェクトに対してのみサポートされています。たとえばチェックボックスは、ウィンドウ内の追加エリアを表示/非表示するのに使用することができるため、このオプションが存在します。 「値」を保存できるオブジェクトは以下のとおりです: @@ -129,11 +129,11 @@ title: オブジェクト > セレクションおよびコレクション型のリストボックス列に関しては **[式](properties_DataSource.md#式)** の章も参照ください。 -このプロパティは、データのソースを指定します。 各アクティブフォームオブジェクトにはオブジェクト名と変数名が関連付けられています。 変数名とオブジェクト名は違っていてもかまいません。 同じフォーム内で複数のアクティブオブジェクトに同じ変数名を割り当てることができますが、[オブジェクト名](#オブジェクト名) はそれぞれユニークでなければなりません。 +このプロパティは、データのソースを指定します。各アクティブフォームオブジェクトにはオブジェクト名と変数名が関連付けられています。変数名とオブジェクト名は違っていてもかまいません。同じフォーム内で複数のアクティブオブジェクトに同じ変数名を割り当てることができますが、[オブジェクト名](#オブジェクト名) はそれぞれユニークでなければなりません。 -> 変数名の上限は 31バイトです。 命名規則については [識別子](Concepts/identifiers.md) の章を参照してください。 +> 変数名の上限は 31バイトです。命名規則については [識別子](Concepts/identifiers.md) の章を参照してください。 -フォームオブジェクト変数を使って、オブジェクトを監視・コントロールすることができます。 たとえば、ボタンがクリックされると、その変数の値は 1 に設定されます。 それ以外の場合は 0 です。 進捗インジケーターに関連づけられた式は、現設定の取得・変更を可能にします。 +フォームオブジェクト変数を使って、オブジェクトを監視・コントロールすることができます。たとえば、ボタンがクリックされると、その変数の値は 1 に設定されます。 それ以外の場合は 0 です。進捗インジケーターに関連づけられた式は、現設定の取得・変更を可能にします。 代入可・代入不可の変数および式が使用でき、取得できるデータ型はテキスト、整数、数値、日付、時間、ピクチャー、ブール、そしてオブジェクトです。 @@ -145,17 +145,17 @@ title: オブジェクト ### 式 -オブジェクトのデータソースとして、[式](Concepts/quick-tour.md#式) を使用することができます。 シンプルな式、オブジェクトプロパティ、フォーミュラ、4D関数、プロジェクトメソッド名、標準の `[Table]Field` シンタックスを使用したフィールド名を使用できます。 式はフォームが実行されたときに評価され、フォームイベント毎に再評価されます。 式には、[代入可および代入不可の式](Concepts/quick-tour.md#式) があることに注意が必要です。 +オブジェクトのデータソースとして、[式](Concepts/quick-tour.md#式) を使用することができます。シンプルな式、オブジェクトプロパティ、フォーミュラ、4D関数、プロジェクトメソッド名、標準の `[Table]Field` シンタックスを使用したフィールド名を使用できます。式はフォームが実行されたときに評価され、フォームイベント毎に再評価されます。式には、[代入可および代入不可の式](Concepts/quick-tour.md#式) があることに注意が必要です。 > 入力された式が、変数名とメソッド名の両方で使用されている場合、4Dはメソッド名が指定されたものと判断します。 ### ダイナミック変数 -ボタン、入力オブジェクト、チェックボックス等のフォームオブジェクトに割り当てられる変数を、 必要に応じて動的に、4D に作成させることができます。 これをおこなうには、"変あるいは式" プロパティを空にします (あるいは JSON の `dataSource` フィールド): +ボタン、入力オブジェクト、チェックボックス等のフォームオブジェクトに割り当てられる変数を、必要に応じて動的に、4D に作成させることができます。これをおこなうには、"変あるいは式" プロパティを空にします (あるいは JSON の `dataSource` フィールド): -変数名が与えられていない場合、4D はフォームがロードされたときにインタープリターのプロセス変数の空間内でユニークな名前を計算し、その名前でオブジェクト用の変数を新規作成します (このメカニズムはコンパイルモードでも使用することができます)。 この一時的な変数はフォームが閉じられるときに破棄されます。 +変数名が与えられていない場合、4D はフォームがロードされたときにインタープリターのプロセス変数の空間内でユニークな名前を計算し、その名前でオブジェクト用の変数を新規作成します (このメカニズムはコンパイルモードでも使用することができます)。この一時的な変数はフォームが閉じられるときに破棄されます。 -ダイナミック変数を使用するフォームオブジェクトの値を取得あるいは設定するためには、[`OBJECT Get value`](../commands/object-get-value) および [`OBJECT SET VALUE`](../commands/object-set-value) コマンドを使用するだけです。 例: +ダイナミック変数を使用するフォームオブジェクトの値を取得あるいは設定するためには、[`OBJECT Get value`](../commands/object-get-value) および [`OBJECT SET VALUE`](../commands/object-set-value) コマンドを使用するだけです。例: ```4d var $value : Variant @@ -165,7 +165,7 @@ title: オブジェクト ### 配列リストボックス -配列型リストボックスの場合、リストボックスおよびリストボックス各列の **変数あるいは式** プロパティには、それぞれに関連付ける配列変数の名前を指定します。 ただし、リストボックスの JSON定義においては、列の *dataSource* 値として、配列名 (文字列) のコレクションを指定すると [階層リストボックス](listbox_overview.md#階層リストボックス) が定義されます。 +配列型リストボックスの場合、リストボックスおよびリストボックス各列の **変数あるいは式** プロパティには、それぞれに関連付ける配列変数の名前を指定します。ただし、リストボックスの JSON定義においては、列の *dataSource* 値として、配列名 (文字列) のコレクションを指定すると [階層リストボックス](listbox_overview.md#階層リストボックス) が定義されます。 #### 対象オブジェクト @@ -202,14 +202,13 @@ title: オブジェクト > [セレクション型](FormObjects/listbox-object.md#セレクションリストボックス) および [コレクション型](FormObjects/listbox-object.md#コレクションまたはエンティティセレクションリストボックス) のリストボックスカラムや、[オブジェクト](FormObjects/dropdownList_Overview.md#オブジェクトの使用) や [配列](FormObjects/dropdownList_Overview.md#配列の使用) に関連付けられた[ドロップダウンリスト](dropdownList_Overview.md) のプロパティリストでは、このプロパティは、[**データタイプ**](properties_DataSource.md#データタイプ-式の型) と呼ばれています。 -オブジェクトに関連付けられた式または変数のデータ型を指定します。 この設定の主な目的は、プロパティリスト内で提供されるテーマとオプションが、データの型と対応するようにするためです。 つまり、実際に変数の型そのものを決めるわけではありません。 プロジェクトをコンパイルするには、[変数を宣言](Concepts/variables.md#変数の宣言) する必要があります。 +オブジェクトに関連付けられた式または変数のデータ型を指定します。この設定の主な目的は、プロパティリスト内で提供されるテーマとオプションが、データの型と対応するようにするためです。つまり、実際に変数の型そのものを決めるわけではありません。プロジェクトをコンパイルするには、[変数を宣言](Concepts/variables.md#変数の宣言) する必要があります。 ただし、次の特定の場合には、このプロパティは型宣言の機能を持ちえます: - **[ダイナミック変数](#ダイナミック変数)**: このプロパティを使って、ダイナミック変数の型を宣言することができます。 -- **[リストボックスカラム](listbox-column.md)**: このプロパティは列データに表示フォーマットを関連づけるのに使用されます。 提供されるフォーマットは変数型 (配列型のリストボックス) またはデータ/フィールド型 (セレクションおよびコレクション型のリストボックス) により異なります。 使用できる標準の 4D フォーマットはテキスト、数値、整数、日付、時間、ピクチャー、そしてブールです。 テキストの場合は専用の表示フォーマットがありません。 標準フォーマットのほかに、定義したカスタムフォーマットも選択することができます。 -- **[ピクチャー変数](input_overview.md)**: このプロパティを使うと、インタープリターモードにおいてフォームロード前に変数を宣言することができます。 フォーム上のピクチャー変数にピクチャーを表示する際には特別なメカニズムが使用されます。 そのため、他の型の変数とは違って、ピクチャー変数の宣言は、フォームロード前 (`On Load` フォームイベントよりも先) におこなう必要があります。 これを行うためには、フォームのロードより前に`var varName : Picture` 宣言を実行するか(通常、`DIALOG` コマンドを呼び出したメソッド内で行います)、変数をフォームレベルで式タイププロパティを使用して型指定する必要があります。 - このいずれかをおこなわない場合、ピクチャー変数はピクチャーを正しく表示できません (インタープリターモードのみ)。 +- **[リストボックスカラム](listbox-column.md)**: このプロパティは列データに表示フォーマットを関連づけるのに使用されます。提供されるフォーマットは変数型 (配列型のリストボックス) またはデータ/フィールド型 (セレクションおよびコレクション型のリストボックス) により異なります。使用できる標準の 4D フォーマットはテキスト、数値、整数、日付、時間、ピクチャー、そしてブールです。テキストの場合は専用の表示フォーマットがありません。標準フォーマットのほかに、定義したカスタムフォーマットも選択することができます。 +- **[ピクチャー変数](input_overview.md)**: このプロパティを使うと、インタープリターモードにおいてフォームロード前に変数を宣言することができます。フォーム上のピクチャー変数にピクチャーを表示する際には特別なメカニズムが使用されます。そのため、他の型の変数とは違って、ピクチャー変数の宣言は、フォームロード前 (`On Load` フォームイベントよりも先) におこなう必要があります。これを行うためには、フォームのロードより前に`var varName : Picture` 宣言を実行するか(通常、`DIALOG` コマンドを呼び出したメソッド内で行います)、変数をフォームレベルで式タイププロパティを使用して型指定する必要があります。このいずれかをおこなわない場合、ピクチャー変数はピクチャーを正しく表示できません (インタープリターモードのみ)。 #### JSON 文法 @@ -273,14 +272,14 @@ title: オブジェクト コレクション要素あるいはエンティティを使用して、リストボックスの行の中身を定義することができます。 -コレクションあるいはエンティティセレクションを返す式を入力します。 一般的には、コレクションまたはエンティティセレクションを格納している変数名、コレクション要素、あるいはプロパティを入力します。 +コレクションあるいはエンティティセレクションを返す式を入力します。一般的には、コレクションまたはエンティティセレクションを格納している変数名、コレクション要素、あるいはプロパティを入力します。 -コレクションおよびエンティティセレクションは、フォームロード時にフォームから利用可能でなければなりません。 コレクションの各要素、あるいはエンティティセレクションの各エンティティは、リストボックスの行へと割り当てられ、 [`This`](../Concepts/classes.md#this) キーワードを通してオブジェクトとして利用可能です: +コレクションおよびエンティティセレクションは、フォームロード時にフォームから利用可能でなければなりません。コレクションの各要素、あるいはエンティティセレクションの各エンティティは、リストボックスの行へと割り当てられ、 [`This`](../Concepts/classes.md#this) キーワードを通してオブジェクトとして利用可能です: - オブジェクトのコレクションを使用した場合、データソース式内で **This** コマンドを呼び出すことで、各プロパティ値にアクセスすることが可能です。例: `This.`。 - エンティティセレクションを使用した場合、データソース式内で **This** コマンドを呼び出すことで、各属性値へとアクセスすることが可能です。例: `This.`。 -> (オブジェクトでない) スカラー値のコレクションを使用した場合、データソース式内で **This.value** を呼び出すことで、各値にアクセスすることが可能です。 ただしこの場合、値の変更や現在のオブジェクトへのアクセスはできません。 +> (オブジェクトでない) スカラー値のコレクションを使用した場合、データソース式内で **This.value** を呼び出すことで、各値にアクセスすることが可能です。ただしこの場合、値の変更や現在のオブジェクトへのアクセスはできません。 #### JSON 文法 @@ -307,7 +306,7 @@ title: オブジェクト - **配列** (デフォルト): リストボックスの各行に 配列要素を割り当てます。 - **カレントセレクション**: 指定したテーブルのカレントセレクションの各レコードごとに式、フィールド、メソッドが評価されます。 - **命名セレクション**: 指定した命名セレクションに含まれる各レコードごとに式、フィールド、メソッドが評価されます。 -- **コレクションまたはエンティティセレクション**: コレクション要素あるいはエンティティを使用してリストボックスの行の中身を定義します。 この場合 [コレクションまたはエンティティセレクション](properties_Object.md#コレクションまたはエンティティセレクション) プロパティを定義する必要があります。 +- **コレクションまたはエンティティセレクション**: コレクション要素あるいはエンティティを使用してリストボックスの行の中身を定義します。この場合 [コレクションまたはエンティティセレクション](properties_Object.md#コレクションまたはエンティティセレクション) プロパティを定義する必要があります。 #### JSON 文法 @@ -323,7 +322,7 @@ title: オブジェクト ## プラグインの種類 -オブジェクトに関連付ける [プラグインが提供する外部エリア](pluginArea_overview.md) の名称。 ここで指定する名称は、プラグインの manifest.json ファイルにて公開されています。 +オブジェクトに関連付ける [プラグインが提供する外部エリア](pluginArea_overview.md) の名称。ここで指定する名称は、プラグインの manifest.json ファイルにて公開されています。 #### JSON 文法 @@ -355,7 +354,7 @@ title: オブジェクト ## タイトル -オブジェクトにラベルを追加します。 このラベルのフォントとスタイルは指定することができます。 +オブジェクトにラベルを追加します。このラベルのフォントとスタイルは指定することができます。 \文字 (バックスラッシュまたは円マーク) を使用すると、ラベル内で強制的に改行することができます。 @@ -363,7 +362,7 @@ title: オブジェクト ラベルに \ を表示したい場合は \\ と入力します。 -デフォルトでラベルはオブジェクトの中央に置かれます。 またオブジェクトにアイコンも含まれている場合、[タイトル/ピクチャー位置](properties_TextAndPicture.md#タイトルピクチャー位置) プロパティを用いて、これら2 つの要素の相対位置を変更することができます。 +デフォルトでラベルはオブジェクトの中央に置かれます。またオブジェクトにアイコンも含まれている場合、[タイトル/ピクチャー位置](properties_TextAndPicture.md#タイトルピクチャー位置) プロパティを用いて、これら2 つの要素の相対位置を変更することができます。 インターフェースの翻訳の目的で、XLIFF 参照をボタンのタイトルエリアに入力することができます ([付録 B: XLIFFアーキテクチャー](https://doc.4d.com/4Dv20/4D/20.2/Appendix-B-XLIFF-architecture.300-6750166.ja.html) 参照)。 @@ -389,7 +388,7 @@ title: オブジェクト > フッターでの計算は、[`LISTBOX SET FOOTER CALCULATION`](../commands/listbox-set-footer-calculation) 4D コマンドを使用することでも設定することができます。 -様々な自動計算が利用可能です。 以下の表は、列のデータ型に応じて使用することのできる計算と、(コードで明示的に宣言されていないとき) 4D によってフッター変数に自動で割り当てられる型を示しています: +様々な自動計算が利用可能です。以下の表は、列のデータ型に応じて使用することのできる計算と、(コードで明示的に宣言されていないとき) 4D によってフッター変数に自動で割り当てられる型を示しています: | 計算タイプ | Num | Text | Date | Time | Bool | Pict | フッター変数の型 | | ---------------------------------------- | --- | ---- | ---- | ---- | ---- | ---- | -------- | @@ -405,9 +404,9 @@ title: オブジェクト (\*) 配列型のリストボックスのみ -> フッター計算には、宣言された、あるいは動的な [変数](Concepts/variables.md) のみを使用できます。 その他の [式](Concepts/quick-tour.md#式) (例: `Form.value`) はサポートされていません。 +> フッター計算には、宣言された、あるいは動的な [変数](Concepts/variables.md) のみを使用できます。その他の [式](Concepts/quick-tour.md#式) (例: `Form.value`) はサポートされていません。 -自動計算の際、リストボックス行の表示/非表示状態は考慮されません。 表示行だけを計算対象にしたい場合、カスタムを選択してプログラムコードで計算しなくてはなりません。 +自動計算の際、リストボックス行の表示/非表示状態は考慮されません。表示行だけを計算対象にしたい場合、カスタムを選択してプログラムコードで計算しなくてはなりません。 *Null* 値は計算において無視されます。 @@ -420,7 +419,7 @@ title: オブジェクト - 式が "単純" なものの場合 (`[table]field` や `this.attribute` など) には、すべてのリストボックスタイプで **サポートされます** - 式が "複雑" (つまり、`this.attribute` 以外) で、かつリストボックスの行数が多い場合には、コレクション/エンティティセレクションリストボックスにおいて **サポートはされるものの**、パフォーマンス上の理由により **推奨されません**。 -- 式が "複雑" な場合には、カレントセレクション/命名セレクションリストボックスにおいて **サポートされません**。 これらの場合には、カスタム計算を使用する必要があります。 +- 式が "複雑" な場合には、カレントセレクション/命名セレクションリストボックスにおいて **サポートされません**。これらの場合には、カスタム計算を使用する必要があります。 **カスタム** (JSON では "none") を選択した場合、4D は自動計算をおこないません。プログラムを使用して表示する値をエリアの変数に代入しなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Picture.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Picture.md index 0c13115855d1f8..1d87ae5fc753f6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Picture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Picture.md @@ -9,9 +9,9 @@ title: ピクチャー ピクチャーパスに指定できる場所は次の 3箇所です: -- プロジェクトの **Resources** フォルダー。 プロジェクト内の複数のフォームで画像を共有する場合に適切です。 この場合、パス名は "/RESOURCES/<picture path>" です。 -- フォームフォルダー内の画像用フォルダー (たとえば、**Images** と名付けたフォルダー)。 特定のフォームでしか画像が使われない場合や、そのフォームの全体を複製してプロジェクト内、または別のプロジェクトに移動させたい場合に適切です。 この場合、パス名は "<picture path>" となり、フォームフォルダーを基準とした相対パスです。 -- 4D のピクチャー変数。 フォーム実行時に、ピクチャーがメモリに読み込まれている必要があります。 この場合、パス名は "var:<variableName>"。 +- プロジェクトの **Resources** フォルダー。プロジェクト内の複数のフォームで画像を共有する場合に適切です。この場合、パス名は "/RESOURCES/<picture path>" です。 +- フォームフォルダー内の画像用フォルダー (たとえば、**Images** と名付けたフォルダー)。特定のフォームでしか画像が使われない場合や、そのフォームの全体を複製してプロジェクト内、または別のプロジェクトに移動させたい場合に適切です。この場合、パス名は "<picture path>" となり、フォームフォルダーを基準とした相対パスです。 +- 4D のピクチャー変数。フォーム実行時に、ピクチャーがメモリに読み込まれている必要があります。この場合、パス名は "var:<variableName>"。 #### JSON 文法 @@ -53,9 +53,9 @@ title: ピクチャー `JSON 文法では: "truncatedCenter" / "truncatedTopLeft"` -**中央合わせ** フォーマットを選択すると、4D はエリアの中央にピクチャーを配置し、収まらない部分はエリアからはみ出します。 上下、および左右のはみ出し量は同じになります。 +**中央合わせ** フォーマットを選択すると、4D はエリアの中央にピクチャーを配置し、収まらない部分はエリアからはみ出します。上下、および左右のはみ出し量は同じになります。 -**トランケート (中央合わせしない)** フォーマットを選択すると、4D はピクチャーの左上角をフィールドの左上角に合わせて配置し、フィールドエリアに収まらない部分はエリアからはみ出します。 ピクチャーは右と下にはみ出します。 +**トランケート (中央合わせしない)** フォーマットを選択すると、4D はピクチャーの左上角をフィールドの左上角に合わせて配置し、フィールドエリアに収まらない部分はエリアからはみ出します。ピクチャーは右と下にはみ出します。 > ピクチャーフォーマットが **トランケート (中央合わせしない)** の場合、入力エリアにスクロールバーを追加できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Plugins.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Plugins.md index 6b57ef081f3fb5..f523482af96471 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Plugins.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Plugins.md @@ -5,7 +5,7 @@ title: プラグイン ## 詳細設定 -プラグインの作成者が詳細オプションを提供していると、プロパティリストにて **詳細設定** ボタンが使用可能になることがあります。 この場合ボタンをクリックすると、プラグインの制作元によるカスタムダイアログにてそれらのオプションを設定することができます。 +プラグインの作成者が詳細オプションを提供していると、プロパティリストにて **詳細設定** ボタンが使用可能になることがあります。この場合ボタンをクリックすると、プラグインの制作元によるカスタムダイアログにてそれらのオプションを設定することができます。 この詳細設定オプションはプラグインの制作元が制御するため、詳細設定オプションに関する情報はそのプラグインの製作者から提供されます。 @@ -13,7 +13,7 @@ title: プラグイン | 名称 | データタイプ | とりうる値 | | ---------------- | ------ | -------------------------------------------------------------- | -| customProperties | text | オブジェクトの場合は JSON 文字列として、バイナリの場合は base64エンコードの文字列としてプラグインに渡されます。 | +| customProperties | text | オブジェクトの場合は JSON 文字列として、バイナリーの場合は base64エンコードの文字列としてプラグインに渡されます | #### 対象オブジェクト diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Print.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Print.md index e63406febc7718..8f394c1751975e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Print.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Print.md @@ -5,9 +5,9 @@ title: 印刷 ## 印刷時可変 -このプロパティは、レコードの中身に応じてサイズが変化しうるオブジェクトの印刷モードを管理します。 これらのオブジェクト固定長フレームまたは可変長フレームでの印刷を設定することができます。 固定長フレームオブジェクトは、フォーム上でオブジェクト作成するように、オブジェクトのサイズの制限内で印刷をします。 可変長フレームオブジェクトはオブジェクトの中身をすべて印刷するために、印刷時に展開します。 可変サイズとして印刷されるオブジェクト幅 (オブジェクトプロパティによって定義) はこのオプションによって影響はされないという点に注意してください。 オブジェクトの中身に応じて、高さのみが変化します。 +このプロパティは、レコードの中身に応じてサイズが変化しうるオブジェクトの印刷モードを管理します。これらのオブジェクト固定長フレームまたは可変長フレームでの印刷を設定することができます。固定長フレームオブジェクトは、フォーム上でオブジェクト作成するように、オブジェクトのサイズの制限内で印刷をします。可変長フレームオブジェクトはオブジェクトの中身をすべて印刷するために、印刷時に展開します。可変サイズとして印刷されるオブジェクト幅 (オブジェクトプロパティによって定義) はこのオプションによって影響はされないという点に注意してください。 オブジェクトの中身に応じて、高さのみが変化します。 -フォーム内において複数の可変長フレームを隣同士に配置することはできません。 非可変長フレームオブジェクトであれば、可変サイズで印刷されるオブジェクトのどちら側でも配置することができます。 ただし、可変長フレームオブジェクトが最低でも横のオブジェクトより一行分長く、すべてのオブジェクトが上揃えで配置されていなければなりません。 この条件が遵守されない場合、可変長フレームオブジェクトの水平方向の部分ごとに、ほかのフィールドのコンテンツが繰り返されます。 +フォーム内において複数の可変長フレームを隣同士に配置することはできません。非可変長フレームオブジェクトであれば、可変サイズで印刷されるオブジェクトのどちら側でも配置することができます。 ただし、可変長フレームオブジェクトが最低でも横のオブジェクトより一行分長く、すべてのオブジェクトが上揃えで配置されていなければなりません。この条件が遵守されない場合、可変長フレームオブジェクトの水平方向の部分ごとに、ほかのフィールドのコンテンツが繰り返されます。 > [`Print object`](../commands/print-object) および [`Print form`](../commands/print-form) コマンドはこのプロパティをサポートしません。 @@ -15,7 +15,7 @@ title: 印刷 - **可変** オプション (**印刷時可変** 選択時): すべてのサブレコードが印刷されるよう、4D はフォームオブジェクトエリアを拡大あるいは縮小します。 -- **固定 (切り捨て)** オプション (**印刷時可変** 非選択時): オブジェクトエリアに表示されている内容のみを 4D は印刷します。 フォームが印刷されるのは一度のみで、印刷されなかった内容は無視されます。 +- **固定 (切り捨て)** オプション (**印刷時可変** 非選択時): オブジェクトエリアに表示されている内容のみを 4D は印刷します。フォームが印刷されるのは一度のみで、印刷されなかった内容は無視されます。 - **固定 (複数レコード)** (サブフォームのみ): サブフォームの初期サイズを維持しますが、4D はすべてのレコードが印刷されるまで複数回にわたってフォームを印刷します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_RangeOfValues.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_RangeOfValues.md index 0ff33fcd9c4c9a..9a557cc1f59804 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_RangeOfValues.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_RangeOfValues.md @@ -5,7 +5,7 @@ title: 値の範囲 ## デフォルト値 -入力オブジェクトにデフォルト値を割り当てることができます。 このプロパティは、入力オブジェクトに設定されている [変数あるいは式](properties_Object.md#変数あるいは式) がフィールドであるときに便利です。新規レコードが作成され、初めて表示されるときにデフォルト値が代入されます。 エリアが [入力不可](properties_Entry.md#入力可) に設定されていなければ、デフォルト値を書き換えることができます。 +入力オブジェクトにデフォルト値を割り当てることができます。このプロパティは、入力オブジェクトに設定されている [変数あるいは式](properties_Object.md#変数あるいは式) がフィールドであるときに便利です。新規レコードが作成され、初めて表示されるときにデフォルト値が代入されます。エリアが [入力不可](properties_Entry.md#入力可) に設定されていなければ、デフォルト値を書き換えることができます。 デフォルト値を指定できるのは、[式の型](properties_Object.md#式の型式タイプ) が次のいずれかの場合です: @@ -15,7 +15,7 @@ title: 値の範囲 - 時間 - ブール -日付、時刻、シーケンス番号については、4D が提供する記号を使用することができます。 日付と時刻はシステムから取得されます。 シーケンス番号は 4D が自動で生成します。 自動で使用できるデフォルト値の記号は以下の通りです: +日付、時刻、シーケンス番号については、4D が提供する記号を使用することができます。日付と時刻はシステムから取得されます。シーケンス番号は 4D が自動で生成します。自動で使用できるデフォルト値の記号は以下の通りです: | 記号 | 意味 | | -- | ------- | @@ -23,7 +23,7 @@ title: 値の範囲 | #H | 現在の時刻 | | #N | シーケンス番号 | -カレントデータファイルの特定のテーブルにおいて、レコード毎のユニーク番号を生成するためにシーケンス番号を使用することができます。 シーケンス番号は倍長整数型で新規レコード毎に生成されます。 番号は 1 から始まり、1ずつ増加します。 シーケンス番号が割り当てられたレコードがテーブルから削除されても、その番号は再利用されません。 シーケンス番号は各テーブルが保有する内部カウンターが管理します。 詳細は [自動インクリメント](https://doc.4d.com/4Dv20/4D/20.2/Field-properties.300-6750280.ja.html#976029) の段落を参照してください。 +カレントデータファイルの特定のテーブルにおいて、レコード毎のユニーク番号を生成するためにシーケンス番号を使用することができます。シーケンス番号は倍長整数型で新規レコード毎に生成されます。番号は 1 から始まり、1ずつ増加します。シーケンス番号が割り当てられたレコードがテーブルから削除されても、その番号は再利用されません。シーケンス番号は各テーブルが保有する内部カウンターが管理します。詳細は [自動インクリメント](https://doc.4d.com/4Dv20/4D/20.2/Field-properties.300-6750280.ja.html#976029) の段落を参照してください。 > このプロパティと、リストボックス列に固定値を表示させるための > "[デフォルト値](properties_DataSource.md#デフォルト値)" を混同しないようにしてください。 @@ -42,7 +42,7 @@ title: 値の範囲 ## 除外リスト -除外リストを使用すると、当該リストの項目は入力できなくなります。 ユーザーがこのリストに含まれる値を入力したとき、その入力は自動的に却下され、エラーメッセージが表示されます。 +除外リストを使用すると、当該リストの項目は入力できなくなります。ユーザーがこのリストに含まれる値を入力したとき、その入力は自動的に却下され、エラーメッセージが表示されます。 > 階層リストを指定した場合は、第一レベルの項目のみが考慮されます。 @@ -64,10 +64,9 @@ title: 値の範囲 ## 指定リスト -有効な入力値のリストを指定するために使用します。 たとえば、役職名のリストを指定リストとして設定できます。こうすると、事前に作成されたリスト中の役職名だけ有効な値となります。 +有効な入力値のリストを指定するために使用します。たとえば、役職名のリストを指定リストとして設定できます。こうすると、事前に作成されたリスト中の役職名だけ有効な値となります。 -指定リストを指定しても、フィールドが選択されたときにリストは自動で表示されません。 指定リストを表示したい場合は、"データソース"テーマの [選択リスト](properties_DataSource.md#選択リスト) プロパティに同じリストを指定します。 -ただし、[選択リスト](properties_DataSource.md#選択リスト) プロパティだけが指定されているときとは異なり、指定リストも設定されている場合にはキーボードによる入力はできません。ポップアップメニューでのリスト項目の選択だけが可能です。 [選択リスト](properties_DataSource.md#選択リスト) と指定リストにそれぞれ別のリストが指定されている場合、指定リストが優先されます。 +指定リストを指定しても、フィールドが選択されたときにリストは自動で表示されません。指定リストを表示したい場合は、"データソース"テーマの [選択リスト](properties_DataSource.md#選択リスト) プロパティに同じリストを指定します。ただし、[選択リスト](properties_DataSource.md#選択リスト) プロパティだけが指定されているときとは異なり、指定リストも設定されている場合にはキーボードによる入力はできません。ポップアップメニューでのリスト項目の選択だけが可能です。[選択リスト](properties_DataSource.md#選択リスト) と指定リストにそれぞれ別のリストが指定されている場合、指定リストが優先されます。 > 階層リストを指定した場合は、第一レベルの項目のみが考慮されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Reference.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Reference.md index 174d3df32b84d8..282554b2ee2bf3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Reference.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Reference.md @@ -3,7 +3,7 @@ id: propertiesReference title: フォームオブジェクト JSON プロパティリスト --- -この一覧は、すべてのオブジェクトプロパティを JSON名順に並べてまとめたものです。 プロパティ名をクリックすると、詳細説明に移動します。 +この一覧は、すべてのオブジェクトプロパティを JSON名順に並べてまとめたものです。プロパティ名をクリックすると、詳細説明に移動します。 > "フォームオブジェクトプロパティ" の章では、プロパティリストにおけるテーマと名称で各プロパティを紹介しています。 @@ -73,7 +73,7 @@ title: フォームオブジェクト JSON プロパティリスト | **e** | | | | [`enterable`](properties_Entry.md#入力可) | ユーザーがオブジェクトに値を入力できるかどうかを指定します。 | true, false | | [`enterableInList`](properties_Subform.md#リスト更新可) | リストサブフォームにおいて、ユーザーがレコードデータを直接編集できるかどうかを指定します。 | true, false | -| [`entryFilter`](properties_Entry.md#入力フィルター) | オブジェクトあるいはカラムのセルに入力フィルターを割り当てます。 このプロパティは enterable プロパティが有効化されていない時には利用できません。 | 入力フィルターを定義するテキスト | +| [`entryFilter`](properties_Entry.md#入力フィルター) | オブジェクトあるいはカラムのセルに入力フィルターを割り当てます。このプロパティは enterable プロパティが有効化されていない時には利用できません。 | 入力フィルターを定義するテキスト | | [`events`](Events/overview.md) | オブジェクトまたはフォームについて選択されているイベントのリスト | イベント名のコレクション。 例: ["onClick","onDataChange"...]. | | [`excludedList`](properties_RangeOfValues.md#除外リスト) | 除外リストを使用すると、当該リストの項目は入力できなくなります。 | 除外する値のリスト | | **f** | | | @@ -116,17 +116,17 @@ title: フォームオブジェクト JSON プロパティリスト | [`lockedColumnCount`](properties_ListBox.md#スクロールしない列数) | リストボックスの左側に常に表示される列の数 | 最小値: 0 | | [`loopBackToFirstFrame`](properties_Animation.md#先頭フレームに戻る) | ピクチャーを連続的に表示し続けます。 | true, false | | **m** | | | -| [`max`](properties_Scale.md#最大) | 最大値。 時間型のステッパーの場合、値は秒を表します。日付型のステッパーでは、最小および最大プロパティは無視されます。 | 最小値: 0 (数値型の場合) | +| [`max`](properties_Scale.md#最大) | 最大値。時間型のステッパーの場合、値は秒を表します。日付型のステッパーでは、最小および最大プロパティは無視されます。 | 最小値: 0 (数値型の場合) | | [`maxWidth`](properties_CoordinatesAndSizing.md#最大幅) | リストボックス列の最大幅 (ピクセル単位) | 最小値: 0 | | [`metaSource`](properties_Text.md#メタ情報式) | スタイルや、選択の可否設定を格納するメタ情報式 | オブジェクト型の式 | | [`method`](properties_Action.md#メソッド) | プロジェクトメソッド名 | 存在するプロジェクトメソッドの名前 | | [`methodsAccessibility`](properties_WebArea.md#4Dメソッドコールを許可) | Webエリアから呼び出せる 4Dメソッドを指定します。 | "none" (デフォルト), "all" | -| [`min`](properties_Scale.md#最小) | 最小値。 時間型のステッパーの場合、値は秒を表します。日付型のステッパーでは、最小および最大プロパティは無視されます。 | 最小値: 0 (数値型の場合) | +| [`min`](properties_Scale.md#最小) | 最小値。時間型のステッパーの場合、値は秒を表します。日付型のステッパーでは、最小および最大プロパティは無視されます。 | 最小値: 0 (数値型の場合) | | [`minWidth`](properties_CoordinatesAndSizing.md#最小幅) | リストボックス列の最小幅 (ピクセル単位) | 最小値: 0 | | [`movableRows`](properties_Action.md#行の移動可) | ランタイムにおける行の移動を許可します。 | true, false | | [`multiline`](properties_Entry.md#複数行) | 複数行のテキストの扱いを指定します。 | "yes", "no", "automatic" | | **n** | | | -| [`name`](properties_Object.md#オブジェクト名) | フォームオブジェクトの名前。 (フォーム自身については任意) | 既存オブジェクトによって使用されていない名称 | +| [`name`](properties_Object.md#オブジェクト名) | フォームオブジェクトの名前。(フォーム自身については任意) | 既存オブジェクトによって使用されていない名称 | | [`numberFormat`](properties_Display.md#数値フォーマット) | 表示や印刷時に文字フィールドや変数にデータを表示する方法を制御します。 | 数値 (必要に応じて小数点およびマイナス記号を含む) | | **p** | | | | [`picture`](properties_Picture.md#パス名) | ピクチャーボタン、ピクチャーポップアップメニュー、スタティックピクチャーに使用するピクチャーのパス名 | POSIXシンタックスの相対パスまたはファイルシステムパス、ピクチャー変数の場合は "var:<variableName>" | @@ -135,7 +135,7 @@ title: フォームオブジェクト JSON プロパティリスト | [`pluginAreaKind`](properties_Object.md#プラグインの種類) | プラグインが提供する外部エリアの名称 | プラグインの外部エリア名 | | [`popupPlacement`](properties_TextAndPicture.md#ポップアップメニューあり) | ボタン内に逆三角形として表われるシンボルを表示し、ポップアップメニューが付属することを示します。 | "None", Linked", "Separated" | | [`printFrame`](properties_Print.md#印刷時可変) | レコードの中身に応じてサイズが変化しうるオブジェクトの印刷モード | "fixed", "variable", (サブフォームのみ) "fixedMultiple" | -| [`progressSource`](properties_WebArea.md#進捗状況変数) | Webエリアに表示されるページのロードされたパーセンテージを表す 0 から 100 までの値 この変数は 4D が自動で更新します。 手動で変更することはできません。 | 最小値: 0 | +| [`progressSource`](properties_WebArea.md#進捗状況変数) | Webエリアに表示されるページのロードされたパーセンテージを表す 0 から 100 までの値 この変数は 4D が自動で更新します。手動で変更することはできません。 | 最小値: 0 | | **r** | | | | [`radioGroup`](properties_Object.md#ラジオグループ) | 同じラジオグループに属している複数のラジオボタンは、一度にその内の一つのみを選択することができます。 | ラジオグループ名 | | [`requiredList`](properties_RangeOfValues.md#指定リスト) | 有効な入力値のリストを指定します。 | 有効な入力値のリスト | @@ -182,16 +182,16 @@ title: フォームオブジェクト JSON プロパティリスト | [`splitterMode`](properties_ResizingOptions.md#以降のオブジェクトを移動する) | プロパティを適用するとスプリッターオブジェクトは "プッシャー" になり、そのオブジェクトの右側 (垂直スプリッター) または下側 (水平スプリッター) にある他のオブジェクトは、スプリッターと一緒に押し出されて移動します。 | "grow", "move", "fixed" | | [`startPoint`](shapes_overview.md#startPoint-プロパティ) | 線の始点を定義します (JSON文法でのみ利用可能) | "bottomLeft", topLeft" | | [`staticColumnCount`](properties_ListBox.md#ドラッグしない列数) | 実行時にドラッグで移動できない列の数を指定します。 | 最小値: 0 | -| [`step`](properties_Scale.md#ステップ) | 使用時に各値の間にあけることができる最小の間隔です。 時間型のステッパーの場合、このプロパティは秒を表します。日付型のステッパーでは日数を表します。 | 最小値: 1 | +| [`step`](properties_Scale.md#ステップ) | 使用時に各値の間にあけることができる最小の間隔です。時間型のステッパーの場合、このプロパティは秒を表します。日付型のステッパーでは日数を表します。 | 最小値: 1 | | [`storeDefaultStyle`](properties_Text.md#スタイルタグを全て保存) | 変更がおこなわれていなくても、テキストとともにスタイルタグを格納します。 | true, false | | [`stroke`](properties_Text.md#フォントカラー) (テキスト)
    [`stroke`](properties_BackgroundAndBorder.md#線カラー) (線)
    [`stroke`](properties_Text.md#フォントカラー) (リストボックス) | オブジェクト内で使用されるフォントや線のカラーを指定します。 | 任意の css値; "transparent"; "automatic" | | [`strokeDashArray`](properties_BackgroundAndBorder.md#点線タイプ) | 点線のタイプを、点と白のパターンにより指定します。 | 数値配列または文字列 | | [`strokeWidth`](properties_BackgroundAndBorder.md#線幅) | 線の幅を指定します。 | 整数、または 0 (印刷されるフォームにおける最小幅) | -| [`style`](properties_TextAndPicture.md#ボタンスタイル) | ボタンの外観を設定します。 詳細についてはボタンスタイルを参照ください。 | "regular", "flat", "toolbar", "bevel", "roundedBevel", "gradientBevel", "texturedBevel", "office", "help", "circular", "disclosure", "roundedDisclosure", "custom" | +| [`style`](properties_TextAndPicture.md#ボタンスタイル) | ボタンの外観を設定します。詳細についてはボタンスタイルを参照ください。 | "regular", "flat", "toolbar", "bevel", "roundedBevel", "gradientBevel", "texturedBevel", "office", "help", "circular", "disclosure", "roundedDisclosure", "custom" | | [`styledText`](properties_Text.md#マルチスタイル) | 選択エリアでスタイルの利用を可能にするかどうかを指定します。 | true, false | -| [`switchBackWhenReleased`](properties_Animation.md#マウスアップで戻る) | ユーザーがボタンをクリックしているとき以外は、一番目のピクチャーが常に表示されます。 ボタンがクリックされると、マウスボタンが放されるまで二番目のピクチャーが表示されます。 | true, false | +| [`switchBackWhenReleased`](properties_Animation.md#マウスアップで戻る) | ユーザーがボタンをクリックしているとき以外は、一番目のピクチャーが常に表示されます。ボタンがクリックされると、マウスボタンが放されるまで二番目のピクチャーが表示されます。 | true, false | | [`switchContinuously`](properties_Animation.md#マウス押下中は自動更新) | ユーザーがマウスボタンを押している間は、各ピクチャーが連続的に (アニメーションのように) 表示されます。 | true, false | -| [`switchWhenRollover`](properties_Animation.md#ロールオーバー効果) | マウスカーソルが通過すると、ピクチャーボタンの内容が変わります。 カーソルがボタンエリアを離れると、最初のピクチャーが再度表示されます。 | true, false | +| [`switchWhenRollover`](properties_Animation.md#ロールオーバー効果) | マウスカーソルが通過すると、ピクチャーボタンの内容が変わります。カーソルがボタンエリアを離れると、最初のピクチャーが再度表示されます。 | true, false | | **t** | | | | [`table`](properties_Subform.md#ソース) | リストサブフォームが属するテーブル (あれば) | 4D テーブル名、または "" | | [`text`](properties_Object.md#タイトル) | フォームオブジェクトのタイトル | なんらかのテキスト | @@ -203,7 +203,7 @@ title: フォームオブジェクト JSON プロパティリスト | [`threeState`](properties_Display.md#スリーステート) | チェックボックスオブジェクトに、3 番目の状態を付加します。 | true, false | | [`timeFormat`](properties_Display.md#時間フォーマット) | 表示/印刷時に時間をどのように表すかを管理します。 | 既定のフォーマット ("systemShort", "systemMedium", "systemLong", "iso8601", "hh_mm_ss", "hh_mm", "hh_mm_am", "mm_ss", "HH_MM_SS", "HH_MM", "MM_SS", "blankIfNull") または [カスタムフォーマット](../Project/date-time-formats.md) | | [`truncateMode`](properties_Display.md#エリプシスを使用して省略) | リストボックスのカラムが、中身をすべて表示するのには狭すぎる場合の値の表示を管理します。 | "withEllipsis", "none" | -| [`type`](properties_Object.md#タイプ) | 必須設定です。 フォームオブジェクトのタイプを指定します。 | "text", "rectangle", "groupBox", "tab", "line", "button", "checkbox", "radio", "dropdown", "combo", "webArea", "write", "subform", "plugin", "splitter", "buttonGrid", "progress", "ruler", "spinner", "stepper", "list", "pictureButton", "picturePopup", "listbox", "input", "view" | +| [`type`](properties_Object.md#タイプ) | 必須設定です。フォームオブジェクトのタイプを指定します。 | "text", "rectangle", "groupBox", "tab", "line", "button", "checkbox", "radio", "dropdown", "combo", "webArea", "write", "subform", "plugin", "splitter", "buttonGrid", "progress", "ruler", "spinner", "stepper", "list", "pictureButton", "picturePopup", "listbox", "input", "view" | | [`tooltip`](properties_Help.md) | ユーザーに対して、フィールドについての追加情報を提供します。 | ユーザー用のヘルプ情報のテキスト | | [`top`](properties_CoordinatesAndSizing.md#上) | フォーム上のオブジェクトの上の座標 | 最小値: 0 | | **u** | | | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_ResizingOptions.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_ResizingOptions.md index db4055de8c06bd..6707564b66158c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_ResizingOptions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_ResizingOptions.md @@ -11,13 +11,13 @@ title: リサイズオプション ### カラムの自動リサイズの仕組み -- リストボックスの幅を拡大すると、その列も一つずつ、右から左へと順に、[最大幅](properties_CoordinatesAndSizing.md#最大幅) に達するまで拡大されていきます。 [サイズ変更可](#サイズ変更可) プロパティがチェックされている列だけがリサイズされます +- リストボックスの幅を拡大すると、その列も一つずつ、右から左へと順に、[最大幅](properties_CoordinatesAndSizing.md#最大幅) に達するまで拡大されていきます。[サイズ変更可](#サイズ変更可) プロパティがチェックされている列だけがリサイズされます -- リストボックスの幅を縮小するときも同じ手順が適用されますが、順番が逆になります (左から右へと列がリサイズされていきます)。 列の幅がそれぞれ [最小幅](properties_CoordinatesAndSizing.md#最小幅) に達すると、水平スクロールバーがアクティブになります。 +- リストボックスの幅を縮小するときも同じ手順が適用されますが、順番が逆になります (左から右へと列がリサイズされていきます)。列の幅がそれぞれ [最小幅](properties_CoordinatesAndSizing.md#最小幅) に達すると、水平スクロールバーがアクティブになります。 -- カラムは水平スクロールバーが "アクティブ" でない場合にのみリサイズされます。つまり、現サイズでリストボックスのすべての列が完全に表示されている場合のみです。 **注**: 水平スクロールバーの表示/非表示は、アクティブ/非アクティブとは関係ありません。スクロールバーは、非表示かつアクティブであることが可能です。 +- カラムは水平スクロールバーが "アクティブ" でない場合にのみリサイズされます。つまり、現サイズでリストボックスのすべての列が完全に表示されている場合のみです。**注**: 水平スクロールバーの表示/非表示は、アクティブ/非アクティブとは関係ありません。スクロールバーは、非表示かつアクティブであることが可能です。 -- すべての列が最大幅に到達すると、これらはそれ以上拡大されず、余分な空白を埋める形で空の列が右に追加されます。 この余白カラムがあるときにリストボックスの幅を縮小させた場合、余白カラムから先に縮小されていきます。 +- すべての列が最大幅に到達すると、これらはそれ以上拡大されず、余分な空白を埋める形で空の列が右に追加されます。この余白カラムがあるときにリストボックスの幅を縮小させた場合、余白カラムから先に縮小されていきます。 ![](../assets/en/FormObjects/property_columnAutoResizing.png) @@ -47,7 +47,7 @@ title: リサイズオプション ## 横方向サイズ変更 -このプロパティは、ユーザーがフォームの高さをサイズ変更したときに、当該オブジェクトの縦方向に移動するかリサイズするかを指定します。 また、[`OBJECT SET RESIZING OPTIONS`](../commands/object-set-resizing-options) ランゲージコマンドをによって動的に設定することもできます。 +このプロパティは、ユーザーがフォームの高さをサイズ変更したときに、当該オブジェクトの縦方向に移動するかリサイズするかを指定します。また、[`OBJECT SET RESIZING OPTIONS`](../commands/object-set-resizing-options) ランゲージコマンドをによって動的に設定することもできます。 次の値が提供されています: @@ -104,7 +104,7 @@ title: リサイズオプション ## 縦方向サイズ変更 -このプロパティは、ユーザーがフォームの高さをサイズ変更したときに、当該オブジェクトが縦方向に移動するかリサイズするかを指定します。 また、[`OBJECT SET RESIZING OPTIONS`](../commands/object-set-resizing-options) コマンドによって動的に設定することもできます。 +このプロパティは、ユーザーがフォームの高さをサイズ変更したときに、当該オブジェクトが縦方向に移動するかリサイズするかを指定します。また、[`OBJECT SET RESIZING OPTIONS`](../commands/object-set-resizing-options) コマンドによって動的に設定することもできます。 次の値が提供されています: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Scale.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Scale.md index 6b7abced81376c..7b9d89e3639605 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Scale.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Scale.md @@ -112,7 +112,7 @@ title: スケール ## 最小 -インジケーターの最小値です。 時間型のステッパーの場合、値は秒を表します。日付型のステッパーでは、最小および最大プロパティは無視されます。 +インジケーターの最小値です。時間型のステッパーの場合、値は秒を表します。日付型のステッパーでは、最小および最大プロパティは無視されます。 #### JSON 文法 @@ -132,7 +132,7 @@ title: スケール ## ステップ -使用時に各値の間にあけることができる最小の間隔です。 時間型のステッパーの場合、このプロパティは秒を表します。日付型のステッパーでは日数を表します。 +使用時に各値の間にあけることができる最小の間隔です。時間型のステッパーの場合、このプロパティは秒を表します。日付型のステッパーでは日数を表します。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md index afb8aea50f00a6..0019f086edc4d7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Subform.md @@ -23,14 +23,14 @@ title: サブフォーム ## 詳細フォーム -このプロパティを使用して、サブフォームで使用する詳細フォームを割り当てます。 以下のものを使用できます: +このプロパティを使用して、サブフォームで使用する詳細フォームを割り当てます。以下のものを使用できます: -- ウィジェット (ページタイプのサブフォームで、特定の機能を実現するために作成されています)。 この場合、[リストフォーム](#リストフォーム) および [ソース](#ソース) プロパティは存在しないか、空でなくてはいけません。 +- ウィジェット (ページタイプのサブフォームで、特定の機能を実現するために作成されています)。この場合、[リストフォーム](#リストフォーム) および [ソース](#ソース) プロパティは存在しないか、空でなくてはいけません。 コンポーネントで公開されていれば、コンポーネントフォーム名を選べます。 > サブフォームを介して追加の機能を提供する [コンポーネント](Concepts/components.md) を作成することが可能です。 -- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。 詳細フォームはサブレコードを入力したり表示したりするために使用します。 通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。 詳細フォームは、サブフォームと同じテーブルに属していなければなりません。 典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。 詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 +- [リストサブフォーム](#リストフォーム) に関連づける詳細フォーム。詳細フォームはサブレコードを入力したり表示したりするために使用します。通常、詳細フォームにはリストサブフォームより多くの情報が含まれています。詳細フォームは、サブフォームと同じテーブルに属していなければなりません。典型的には、出力フォームをリストフォーム に、入力フォームを詳細フォームに指定します。詳細フォームを指定しない場合、4Dは自動でテーブルのデフォルト入力フォームを使用します。 #### JSON 文法 @@ -50,10 +50,10 @@ title: サブフォーム ## 空行をダブルクリック -リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。 次のオプションから選択することができます: +リストサブフォームの空行がダブルクリックされた際に実行されるアクションを指定します。次のオプションから選択することができます: - 何もしない: ダブルクリックを無視します。 -- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。 [リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。 選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 +- レコード追加: サブフォーム中に新規レコードを作成し、編集モードにします。[リスト更新可](#リスト更新可) オプションが選択されている場合、レコードは直接リスト内に作成されます。選択されていない場合、レコードはサブフォームに割り当てられた [詳細フォーム](#詳細フォーム) 上に作成されます。 #### JSON 文法 @@ -75,15 +75,15 @@ title: サブフォーム `リストサブフォーム` -ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。 選択可能なオプションは以下の通りです: +ユーザーがリストサブフォームの行をダブルクリックした際に実行されるアクションを指定します。選択可能なオプションは以下の通りです: - **何もしない** (デフォルト): 行をダブルクリックしても自動アクションは発動しません。 -- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。 レコードは読み書き可能モードで開かれるので、編集が可能です。 +- **レコード編集**: 行をダブルクリックすると、リストサブフォームに設定された [詳細フォーム](#詳細フォーム) に当該レコードが表示されます。レコードは読み書き可能モードで開かれるので、編集が可能です。 - **レコード表示**: レコード編集と同様の挙動をしますが、レコードは読み取り専用モードで開かれるため、編集はできません。 選択されているアクションに関わらず、`On Double Clicked` フォームイベントが生成されます。 -「レコード編集」「レコード表示」のアクションに関しては `On Open Detail` フォームイベントも生成されます。 リストボックスに関連付けられた詳細フォームに表示されたレコードが閉じられる際には `On Close Detail` フォームイベントが生成されます (レコードが編集されたかどうかは問いません)。 +「レコード編集」「レコード表示」のアクションに関しては `On Open Detail` フォームイベントも生成されます。リストボックスに関連付けられた詳細フォームに表示されたレコードが閉じられる際には `On Close Detail` フォームイベントが生成されます (レコードが編集されたかどうかは問いません)。 #### JSON 文法 @@ -121,9 +121,9 @@ title: サブフォーム ## リストフォーム -このプロパティを使用して、サブフォームで使用するリストフォームを割り当てます。 リストサブフォームを使うことで、他のテーブルのデータを入力、表示、および更新することができます。 +このプロパティを使用して、サブフォームで使用するリストフォームを割り当てます。リストサブフォームを使うことで、他のテーブルのデータを入力、表示、および更新することができます。 -リストサブフォームをデータ入力に使用するには 2つの方法があります。一つはユーザーがサブフォームに直接データを入力する方法です。もう一つは [入力フォーム](#詳細フォーム) を開いてデータを入力する方法です。 後者の設定では、サブフォームとして使用されるフォームがリストフォーム、 入力のために使用されるフォームが詳細フォームとなります。 +リストサブフォームをデータ入力に使用するには 2つの方法があります。一つはユーザーがサブフォームに直接データを入力する方法です。もう一つは [入力フォーム](#詳細フォーム) を開いてデータを入力する方法です。後者の設定では、サブフォームとして使用されるフォームがリストフォーム、入力のために使用されるフォームが詳細フォームとなります。 #### JSON 文法 @@ -161,13 +161,13 @@ title: サブフォーム リストボックス行の選択モードを指定します: -- **なし**: 行を選択することはできません。 [リスト更新可](#リスト更新可) オプションがチェックされている場合を除き、リストをクリックしても効果はありません。 ナビゲーションキーを使用しても、リストをスクロールするだけとなり、その際に `On Selection Change` フォームイベントは生成されません。 -- **単一**: 一度に一行のみ選択できます。 クリックすることで、行を選択できます。 **Ctrl+クリック** (Windows) や **Command+クリック** (macOS) を使うと、対象行の選択状態 (選択・非選択) が切り替わります。 - 上下キーを使うとリストの前後の行が選択されます。 その他のナビゲーションキーはリストをスクロールします。 カレントの行が変更されるたびに、`On Selection Change` フォームイベントが生成されます。 +- **なし**: 行を選択することはできません。[リスト更新可](#リスト更新可) オプションがチェックされている場合を除き、リストをクリックしても効果はありません。ナビゲーションキーを使用しても、リストをスクロールするだけとなり、その際に `On Selection Change` フォームイベントは生成されません。 +- **単一**: 一度に一行のみ選択できます。クリックすることで、行を選択できます。 **Ctrl+クリック** (Windows) や **Command+クリック** (macOS) を使うと、対象行の選択状態 (選択・非選択) が切り替わります。 + 上下キーを使うとリストの前後の行が選択されます。その他のナビゲーションキーはリストをスクロールします。カレントの行が変更されるたびに、`On Selection Change` フォームイベントが生成されます。 - **複数**: 標準のショートカットを使用して複数行を同時に選択できます。 - 選択されたサブレコードは `GET HIGHLIGHTED RECORDS` で取得できます。 - レコードはクリックにより選択されますが、カレントレコードは変更されません。 - - **Ctrl+クリック** (Windows) や **Command+クリック** (macOS) を使うと、対象レコードの選択状態 (選択・非選択) が切り替わります。 上下キーを使うとリストの前後のレコードが選択されます。 その他のナビゲーションキーはリストをスクロールします。 選択レコードが変更されるたびに、`On Selection Change` フォームイベントが生成されます。 + - **Ctrl+クリック** (Windows) や **Command+クリック** (macOS) を使うと、対象レコードの選択状態 (選択・非選択) が切り替わります。上下キーを使うとリストの前後のレコードが選択されます。その他のナビゲーションキーはリストをスクロールします。選択レコードが変更されるたびに、`On Selection Change` フォームイベントが生成されます。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Text.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Text.md index 3f117580564a49..3c33f1bc22f268 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_Text.md @@ -7,7 +7,7 @@ title: テキスト ## ピッカーの使用を許可 -このプロパティが有効化されている場合、[OPEN FONT PICKER](../commands/open-font-picker) および [OPEN COLOR PICKER](../commands/open-color-picker) コマンドを呼び出すことでシステムフォントウィンドウとカラーピッカーウィンドウを表示することができます。 これらのピッカーウィンドウを使用して、ユーザーはフォームオブジェクトのフォントやカラーをクリックによって変更できます。 このプロパティが無効になっていると (デフォルト)、ピッカーを開くコマンドは使用できません。 +このプロパティが有効化されている場合、[OPEN FONT PICKER](../commands/open-font-picker) および [OPEN COLOR PICKER](../commands/open-color-picker) コマンドを呼び出すことでシステムフォントウィンドウとカラーピッカーウィンドウを表示することができます。これらのピッカーウィンドウを使用して、ユーザーはフォームオブジェクトのフォントやカラーをクリックによって変更できます。このプロパティが無効になっていると (デフォルト)、ピッカーを開くコマンドは使用できません。 #### JSON 文法 @@ -131,26 +131,26 @@ title: テキスト このプロパティは、オブジェクトで使用される **フォントテーマ** または **フォントファミリー** を指定します。 -> **フォントテーマ** と **フォントファミリー** プロパティは、どちらか一方しか指定できません。 フォントテーマは、サイズを含めたフォント属性を定めます。 フォントファミリーの場合は、フォント名・フォントサイズ・フォントカラーをそれぞれ定義することができます。 +> **フォントテーマ** と **フォントファミリー** プロパティは、どちらか一方しか指定できません。フォントテーマは、サイズを含めたフォント属性を定めます。フォントファミリーの場合は、フォント名・フォントサイズ・フォントカラーをそれぞれ定義することができます。 ### フォントテーマ -フォントテーマプロパティには、自動スタイルの名前を指定します。 自動スタイルは、オブジェクトに使われるフォントファミリー・フォントサイズ・フォントカラーをシステムパラメーターに応じて動的に定めます。 これらのパラメーターは次に依存します: +フォントテーマプロパティには、自動スタイルの名前を指定します。自動スタイルは、オブジェクトに使われるフォントファミリー・フォントサイズ・フォントカラーをシステムパラメーターに応じて動的に定めます。これらのパラメーターは次に依存します: - プラットフォーム - システム言語 - フォームオブジェクトのタイプ -フォントテーマを使うことで、システムの現インターフェース標準に沿うようにタイトルが表示されることが保証されます。 ただし、マシンごとにサイズが変わるかもしれません。 +フォントテーマを使うことで、システムの現インターフェース標準に沿うようにタイトルが表示されることが保証されます。ただし、マシンごとにサイズが変わるかもしれません。 3つのフォントテーマが提供されています: - **normal**: フォームエディター内で作成された新規オブジェクトにデフォルトで適用される自動スタイルです。 -- **main** および **additional** フォントテーマは [テキストエリア](text.md) と [入力](input_overview.md) オブジェクトでのみサポートされています。 これらのテーマは、おもにダイアログボックスのデザインを目的に提供されています。 インターフェースウィンドウにおいて main フォントテーマは本文用、additional テーマは詳細情報を追記するためのものです。 下に macOS および Windows にてこれらのフォントテーマを使ったダイアログボックスの例を示します: +- **main** および **additional** フォントテーマは [テキストエリア](text.md) と [入力](input_overview.md) オブジェクトでのみサポートされています。これらのテーマは、おもにダイアログボックスのデザインを目的に提供されています。インターフェースウィンドウにおいて main フォントテーマは本文用、additional テーマは詳細情報を追記するためのものです。下に macOS および Windows にてこれらのフォントテーマを使ったダイアログボックスの例を示します: ![](../assets/en/FormObjects/FontThemes.png) -> フォントテーマはフォントだけでなく、サイズやカラーも定めます。 一部のカスタムスタイルプロパティ (太字、イタリック、下線) は動作に影響なく適用することができます。 +> フォントテーマはフォントだけでなく、サイズやカラーも定めます。一部のカスタムスタイルプロパティ (太字、イタリック、下線) は動作に影響なく適用することができます。 #### JSON 文法 @@ -295,9 +295,9 @@ title: テキスト `セレクションおよびコレクション/エンティティセレクション型のリストボックス` -リストボックスの各行にカスタマイズしたフォントカラーを適用するために使用します。 RGBカラーを使用しなければなりません。 この点の詳細については、[`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) コマンドの詳細を参照してください。 +リストボックスの各行にカスタマイズしたフォントカラーを適用するために使用します。 RGBカラーを使用しなければなりません。この点の詳細については、[`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) コマンドの詳細を参照してください。 -式または変数 (配列を除く) を入力します。 表示される行ごとに式や変数は評価されます。 [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) コマンドの章で説明されている定数を使用することができます。 +式または変数 (配列を除く) を入力します。表示される行ごとに式や変数は評価されます。 [`OBJECT SET RGB COLORS`](../commands/object-set-rgb-colors) コマンドの章で説明されている定数を使用することができます。 このプロパティは[`LISTBOX SET PROPERTY`](../commands/listbox-set-property) と `lk font color expression` 定数を組み合わせて使用しても設定することができます。 @@ -332,7 +332,7 @@ Foreground color;Dark shadow color) リストボックスの各行にカスタマイズされた文字スタイルを適用するために使用します。 -式または変数 (配列を除く) を入力します。 式や変数は、表示行ごと (リストボックスのプロパティの場合) または表示セルごと (リストボックス列のプロパティの場合) に評価されます。 [`LISTBOX SET ROW FONT STYLE`](../commands/listbox-set-row-font-style) コマンドのページ内で提示されている定数を使用することができます。 +式または変数 (配列を除く) を入力します。式や変数は、表示行ごと (リストボックスのプロパティの場合) または表示セルごと (リストボックス列のプロパティの場合) に評価されます。 [`LISTBOX SET ROW FONT STYLE`](../commands/listbox-set-row-font-style) コマンドのページ内で提示されている定数を使用することができます。 例: @@ -429,25 +429,25 @@ Choose([Companies]ID;Bold;Plain;Italic;Underline) `コレクションまたはエンティティセレクション型リストボックス` -表示される行ごとに評価される式あるいは変数を指定します。 行テキスト属性全体を定義することができます。 **オブジェクト変数**、あるいは **オブジェクトを返す式** を指定する必要があります。 以下のプロパティがサポートされています: +表示される行ごとに評価される式あるいは変数を指定します。行テキスト属性全体を定義することができます。**オブジェクト変数**、あるいは **オブジェクトを返す式** を指定する必要があります。以下のプロパティがサポートされています: -| プロパティ名 | 型 | 説明 | -| -------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| stroke | string | フォントカラー。 任意の CSSカラー (例: "#FF00FF"), "automatic", "transparent" | -| fill | string | 背景色。 任意の CSSカラー (例: "#F00FFF"), "automatic", "transparent" | -| fontStyle | string | "normal","italic" | -| fontWeight | string | "normal","bold" | -| textDecoration | string | "normal","underline" | -| unselectable | boolean | 対応する行が選択不可 (つまりハイライトすることができない状態) であることを指定します。 このオプションが有効化されている場合、入力可能エリアは入力可能ではなくなります (ただし "シングルクリック編集" オプションが有効化されている場合を除く)。 チェックボックスやリストといったコントロール類は引き続き稼働します。 この設定はリストボックスの選択モードが "なし" の場合には無視されます。 デフォルト値: false。 | -| disabled | boolean | 対応する行を無効化します。 このオプションが有効化されると、入力可能エリアは入力可能ではなくなります。 テキストや、(チェックボックス、リストなどの) コントロール類は暗くなっているかグレーアウトされます。 デフォルト値: false。 | +| プロパティ名 | 型 | 説明 | +| -------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| stroke | string | フォントカラー。任意の CSSカラー (例: "#FF00FF"), "automatic", "transparent" | +| fill | string | 背景色。任意の CSSカラー (例: "#F00FFF"), "automatic", "transparent" | +| fontStyle | string | "normal","italic" | +| fontWeight | string | "normal","bold" | +| textDecoration | string | "normal","underline" | +| unselectable | boolean | 対応する行が選択不可 (つまりハイライトすることができない状態) であることを指定します。このオプションが有効化されている場合、入力可能エリアは入力可能ではなくなります (ただし "シングルクリック編集" オプションが有効化されている場合を除く)。チェックボックスやリストといったコントロール類は引き続き稼働します。この設定はリストボックスの選択モードが "なし" の場合には無視されます。デフォルト値: false。 | +| disabled | boolean | 対応する行を無効化します。このオプションが有効化されると、入力可能エリアは入力可能ではなくなります。テキストや、(チェックボックス、リストなどの)コントロール類は暗くなっているかグレーアウトされます。デフォルト値: false。 | 特別な "cell" プロパティを使用すると、特定の列にプロパティをまとめて適用することができます: -| プロパティ名 | | | 型 | 説明 | -| ------ | ------------ | -------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| cell | | | object | 特定の列に適用するプロパティ | -| | *columnName* | | object | *columnName* はリストボックス列のオブジェクト名です。 | -| | | *propertyName* | string | "stroke", "fill", "fontStyle", "fontWeight", または "textDecoration" プロパティ (前述参照)。 **注**: "unselectable" および "disabled" プロパティは行レベルでのみ定義可能です。 "セル" オブジェクトに指定した場合、これらは無視されます。 | +| プロパティ名 | | | 型 | 説明 | +| ------ | ------------ | -------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| cell | | | object | 特定の列に適用するプロパティ | +| | *columnName* | | object | *columnName* はリストボックス列のオブジェクト名です。 | +| | | *propertyName* | string | "stroke", "fill", "fontStyle", "fontWeight", または "textDecoration" プロパティ (前述参照)。**注**: "unselectable" および "disabled" プロパティは行レベルでのみ定義可能です。"セル" オブジェクトに指定した場合、これらは無視されます。 | > このプロパティで設定されたスタイルは、プロパティリスト内で他のスタイル設定が式により定義されている場合には無視されます ([スタイル式](#スタイル式)、[フォントカラー式](#フォントカラー式)、[背景色式](./properties_BackgroundAndBorder.md#背景色式))。 @@ -514,7 +514,7 @@ End if ## マルチスタイル -このプロパティは、選択された領域で[特定のスタイル](https://doc.4d.com/4Dv20/4D/20.6/Supported-tags.300-7488021.ja.html)を使用する可能性を有効にします。 プロパティリストでこのオプションがチェックされていると、4D はエリア中の `` HTMLタグをスタイル属性として解釈します。 +このプロパティは、選択された領域で[特定のスタイル](https://doc.4d.com/4Dv20/4D/20.6/Supported-tags.300-7488021.ja.html)を使用する可能性を有効にします。プロパティリストでこのオプションがチェックされていると、4D はエリア中の `` HTMLタグをスタイル属性として解釈します。 デフォルトでは、このオプションは有効化されていません。 @@ -542,7 +542,7 @@ End if ``` -このタグは、テキストに4D式 (式、メソッド、フィールド、変数、コマンド、等) を 挿入します。 これらの式は以下のタイミングでトークナイズ度されて評価されます: +このタグは、テキストに4D式 (式、メソッド、フィールド、変数、コマンド、等) を挿入します。これらの式は以下のタイミングでトークナイズ度されて評価されます: - 式が挿入されたとき - オブジェクトがロードされたとき @@ -552,7 +552,7 @@ End if 式の評価された値は `` タグに保存されません。参照のみが保存されます。 -注: 4Dのランゲージやバージョンに関係なく、式の正常な評価を確実にするには、異なるバージョン間において名前が変化しそうな要素 (コマンド、テーブル、フィールド、定数) に対してはトークンシンタックスを使用することが推奨されます。 たとえば、`Current time` コマンドを挿入するには、"`Current time:C178`"と入力します。 この点についての詳細は *フォーミュラ内でのトークンの使用* を参照ください。 +注: 4Dのランゲージやバージョンに関係なく、式の正常な評価を確実にするには、異なるバージョン間において名前が変化しそうな要素 (コマンド、テーブル、フィールド、定数) に対してはトークンシンタックスを使用することが推奨されます。たとえば、`Current time` コマンドを挿入するには、"`Current time:C178`"と入力します。この点についての詳細は *フォーミュラ内でのトークンの使用* を参照ください。 #### URL @@ -560,7 +560,7 @@ End if Visible label ``` -このタグはテキストにURLを挿入します。 例: +このタグはテキストにURLを挿入します。例: ```html 4D Web Site @@ -572,9 +572,9 @@ End if Click here ``` -"ユーザーリンク" は見た目が URL と同じですが、クリックしてもソースは自動的に開きません。 どのような文字列でも参照として渡すことができますが、クリックされたときに起こるアクションはデベロッパーによってプログラムされた内容によります。 つまり、タグがクリックされたときに、URL の代わりに、ファイルや 4Dメソッド等を開いたり実行したりすることができます。 [`ST Get content type`](../commands/st-get-content-type) コマンドによって、ユーザーリンクがクリックされたかどうかを検知することもできます。 +"ユーザーリンク" は見た目が URL と同じですが、クリックしてもソースは自動的に開きません。どのような文字列でも参照として渡すことができますが、クリックされたときに起こるアクションはデベロッパーによってプログラムされた内容によります。つまり、タグがクリックされたときに、URL の代わりに、ファイルや 4Dメソッド等を開いたり実行したりすることができます。 [`ST Get content type`](../commands/st-get-content-type) コマンドによって、ユーザーリンクがクリックされたかどうかを検知することもできます。 -ユーザーリンクは[`ST SET TEXT`](../commands/st-set-text) コマンドによって定義します。 例: +ユーザーリンクは[`ST SET TEXT`](../commands/st-set-text) コマンドによって定義します。例: ```4d ST SET TEXT(txtVar;"This is a user link: User Label";$start;$end) @@ -582,11 +582,11 @@ ST SET TEXT(txtVar;"This is a user link: ` のようなタグも可能です。 タグは標準テキストのコードに保存されますが、解釈されたり表示されたりすることはありません。 これは例えば、HTML形式のメールに画像を挿入するような場合に便利です。 +例として、`` のようなタグも可能です。タグは標準テキストのコードに保存されますが、解釈されたり表示されたりすることはありません。これは例えば、HTML形式のメールに画像を挿入するような場合に便利です。 #### スタイルタグ -ここでは \ タグの属性としてサポートされる4Dのリッチテキストエリアのスタイルを説明します。 これらの属性を使用してカスタムスタイルを指定することも可能です。 ここで説明されている属性のみが4D によってサポートされます。 +ここでは \ タグの属性としてサポートされる4Dのリッチテキストエリアのスタイルを説明します。これらの属性を使用してカスタムスタイルを指定することも可能です。ここで説明されている属性のみが4D によってサポートされます。 - フォント名: ` ... ` - フォントサイズ: ` ... ` @@ -613,7 +613,7 @@ ST SET TEXT(txtVar;"This is a user link: beautiful day! ``` -同プロパティが有効な場合には、エリアはすべてのフォーマット情報を格納します。 先頭の汎用タグはデフォルトスタイルを定義し、変更されたスタイルはネストされたタグに書き込まれます。 格納される内容は以下のようになります: +同プロパティが有効な場合には、エリアはすべてのフォーマット情報を格納します。先頭の汎用タグはデフォルトスタイルを定義し、変更されたスタイルはネストされたタグに書き込まれます。格納される内容は以下のようになります: ``` What a beautiful day! diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_TextAndPicture.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_TextAndPicture.md index 05280916001fa8..dcfbf8e99ee550 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_TextAndPicture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_TextAndPicture.md @@ -5,7 +5,7 @@ title: テキスト、ピクチャー ## 背景パス名 -オブジェクトの背景として使用するピクチャーのパスを指定します。 [複数の状態](#状態の数) を持つ [アイコン](#ピクチャーパス名) を持つオブジェクトの場合、背景ピクチャーにも同じ状態の数が適用されます。 +オブジェクトの背景として使用するピクチャーのパスを指定します。[複数の状態](#状態の数) を持つ [アイコン](#ピクチャーパス名) を持つオブジェクトの場合、背景ピクチャーにも同じ状態の数が適用されます。 パス名は、[スタティックピクチャーのパス名プロパティ](properties_Picture.md#パス名) と同じように指定します。 @@ -27,7 +27,7 @@ title: テキスト、ピクチャー ## ボタンスタイル -ボタンの外観を設定します。 スタイルによっては、特定のオプションが利用できなくなることもあります。 +ボタンの外観を設定します。スタイルによっては、特定のオプションが利用できなくなることもあります。 #### JSON 文法 @@ -47,7 +47,7 @@ title: テキスト、ピクチャー ## 横方向マージン -ボタン内側の縦方向のマージンサイズ (ピクセル単位) を指定します。 マージンにより、ボタンアイコンとタイトルの領域を制限します。 +ボタン内側の縦方向のマージンサイズ (ピクセル単位) を指定します。マージンにより、ボタンアイコンとタイトルの領域を制限します。 背景ピクチャーに境界が含まれるような場合に、このパラメーターを利用します: @@ -60,9 +60,9 @@ title: テキスト、ピクチャー #### JSON 文法 -| 名称 | データタイプ | とりうる値 | -| ------------- | ------ | --------------------------------------- | -| customBorderX | number | "カスタム" スタイルで利用可。 最小値: 0 | +| 名称 | データタイプ | とりうる値 | +| ------------- | ------ | -------------------------------------- | +| customBorderX | number | "カスタム" スタイルで利用可。最小値: 0 | #### 対象オブジェクト @@ -98,7 +98,7 @@ title: テキスト、ピクチャー ボタンクリック時のオフセット値をピクセル単位で指定します。 -このプロパティを使用すると、指定したピクセル数だけボタンタイトルが右下へシフトされます。 この機能により、ボタンのクリック時に独自の3D 効果を適用することができます。 +このプロパティを使用すると、指定したピクセル数だけボタンタイトルが右下へシフトされます。この機能により、ボタンのクリック時に独自の3D 効果を適用することができます。 #### JSON 文法 @@ -135,15 +135,15 @@ title: テキスト、ピクチャー ::: -一つの状態につき、一つの画像を割り当てます。 ソースピクチャーでは、状態を表すアイコンは縦に並んでいなければなりません: +一つの状態につき、一つの画像を割り当てます。ソースピクチャーでは、状態を表すアイコンは縦に並んでいなければなりません: ![](../assets/en/FormObjects/six-states.png) #### JSON 文法 -| 名称 | データタイプ | とりうる値 | -| ---------- | ------ | ----------------------------------------- | -| iconFrames | number | ソースピクチャーに含まれる状態の数。 最小値: 1 | +| 名称 | データタイプ | とりうる値 | +| ---------- | ------ | ---------------------------------------- | +| iconFrames | number | ソースピクチャーに含まれる状態の数。最小値: 1 | #### 対象オブジェクト @@ -181,17 +181,17 @@ title: テキスト、ピクチャー ## タイトル/ピクチャー位置 -このプロパティはアイコンに対するボタンタイトルの相対的な位置を指定します。 ボタン内に、タイトルのみ (関連ピクチャーなし)、またはピクチャーのみ (タイトルなし) が含まれている場合、このプロパティは効果ありません。 デフォルトでは、ピクチャーの下部にタイトルが置かれます。 +このプロパティはアイコンに対するボタンタイトルの相対的な位置を指定します。ボタン内に、タイトルのみ (関連ピクチャーなし)、またはピクチャーのみ (タイトルなし) が含まれている場合、このプロパティは効果ありません。デフォルトでは、ピクチャーの下部にタイトルが置かれます。 このプロパティの各種オプションの結果を次に示します: -| オプション | 説明 | 例題 | -| ------ | --------------------------------------------------------- | ----------------------------------------------------------------- | -| **左** | テキストはアイコンの左に置かれます。 ボタンの内容は右揃えされます。 | ![](../assets/en/FormObjects/property_titlePosition_left.en.png) | -| **上** | テキストはアイコンの上に置かれます。 ボタンの内容は中央揃えされます。 | ![](../assets/en/FormObjects/property_titlePosition_top.png) | -| **右** | テキストはアイコンの右に置かれます。 ボタンの内容は左揃えされます。 | ![](../assets/en/FormObjects/property_titlePosition_right.png) | -| **下** | テキストはアイコンの下に置かれます。 ボタンの内容は中央揃えされます。 | ![](../assets/en/FormObjects/property_titlePosition_bottom.png) | -| **中央** | アイコンのテキストはボタン内で縦と横に中央揃えされます。 テキストをアイコンの中に組み込むような場合に利用します。 | ![](../assets/en/FormObjects/property_titlePosition_centered.png) | +| オプション | 説明 | 例題 | +| ------ | -------------------------------------------------------- | ----------------------------------------------------------------- | +| **左** | テキストはアイコンの左に置かれます。ボタンの内容は右揃えされます。 | ![](../assets/en/FormObjects/property_titlePosition_left.en.png) | +| **上** | テキストはアイコンの上に置かれます。ボタンの内容は中央揃えされます。 | ![](../assets/en/FormObjects/property_titlePosition_top.png) | +| **右** | テキストはアイコンの右に置かれます。ボタンの内容は左揃えされます。 | ![](../assets/en/FormObjects/property_titlePosition_right.png) | +| **下** | テキストはアイコンの下に置かれます。ボタンの内容は中央揃えされます。 | ![](../assets/en/FormObjects/property_titlePosition_bottom.png) | +| **中央** | アイコンのテキストはボタン内で縦と横に中央揃えされます。テキストをアイコンの中に組み込むような場合に利用します。 | ![](../assets/en/FormObjects/property_titlePosition_centered.png) | #### JSON 文法 @@ -215,7 +215,7 @@ title: テキスト、ピクチャー ボタン内に、タイトルのみ (関連ピクチャーなし)、またはピクチャーのみ (タイトルなし) が含まれている場合、このプロパティは効果ありません。 -ボタンがタイトルと画像を持つ場合、デフォルトでは、それらは隣接して表示されます。 次の図は、様々な配置における `imageHugsTitle` プロパティ (有効な場合は true) の効果を示したものです: +ボタンがタイトルと画像を持つ場合、デフォルトでは、それらは隣接して表示されます。次の図は、様々な配置における `imageHugsTitle` プロパティ (有効な場合は true) の効果を示したものです: ![](../assets/en/FormObjects/hugs.png) @@ -237,7 +237,7 @@ title: テキスト、ピクチャー ## 縦方向マージン -ボタン内側の横方向のマージンサイズ (ピクセル単位) を指定します。 マージンにより、ボタンアイコンとタイトルの領域を制限します。 +ボタン内側の横方向のマージンサイズ (ピクセル単位) を指定します。マージンにより、ボタンアイコンとタイトルの領域を制限します。 背景ピクチャーに境界が含まれるような場合に、このパラメーターを利用します。 @@ -245,9 +245,9 @@ title: テキスト、ピクチャー #### JSON 文法 -| 名称 | データタイプ | とりうる値 | -| ------------- | ------ | --------------------------------------- | -| customBorderY | number | "カスタム" スタイルで利用可。 最小値: 0 | +| 名称 | データタイプ | とりうる値 | +| ------------- | ------ | -------------------------------------- | +| customBorderY | number | "カスタム" スタイルで利用可。最小値: 0 | #### 対象オブジェクト @@ -280,7 +280,7 @@ title: テキスト、ピクチャー それぞれのオプションにより、ボタンとポップアップメニューとの関係が指定されます: - ポップアップメニューが **分離** している場合、ボタンの左部分をクリックするとボタンのカレントアクションが直接実行されます。このアクションは、ボタンの右側からアクセスできるポップアップメニューを使用して変更することができます。 -- ポップアップメニューが **リンク** している場合、ボタンをクリックしてもポップアップメニューが表示されるだけです。 このポップアップメニュー上のアクションを選択しないと、実行はおこなわれません。 +- ポップアップメニューが **リンク** している場合、ボタンをクリックしてもポップアップメニューが表示されるだけです。このポップアップメニュー上のアクションを選択しないと、実行はおこなわれません。 :::info @@ -290,7 +290,7 @@ title: テキスト、ピクチャー ### ポップアップメニューの管理 -"ポップアップメニューあり" プロパティは、ボタンのグラフィック面だけを管理するという点に注意が必要です。 ポップアップメニューの表示とその値は管理者が管理すべきものです。具体的には、[`form events`](../Events/overview.md) および [`Dynamic pop up menu`](../commands/dynamic-pop-up-menu) コマンドおよび [`Pop up menu`](../commands/pop-up-menu) コマンドなどを使用して管理しなければなりません。 +"ポップアップメニューあり" プロパティは、ボタンのグラフィック面だけを管理するという点に注意が必要です。ポップアップメニューの表示とその値は管理者が管理すべきものです。具体的には、[`form events`](../Events/overview.md) および [`Dynamic pop up menu`](../commands/dynamic-pop-up-menu) コマンドおよび [`Pop up menu`](../commands/pop-up-menu) コマンドなどを使用して管理しなければなりません。 #### JSON 文法 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_WebArea.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_WebArea.md index 6ec8389ce1a0a5..191b22142e5eb2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_WebArea.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/properties_WebArea.md @@ -27,7 +27,7 @@ Webエリアで実行される JavaScript コードから 4Dメソッドおよ ## 進捗状況変数 -倍長整数型変数の名前です。 この変数には 0 から 100 までの値が格納され、この数値は Webエリアに表示されるページのロードされたパーセンテージを表します。 手動で変更することはできません。 +倍長整数型変数の名前です。この変数には 0 から 100 までの値が格納され、この数値は Webエリアに表示されるページのロードされたパーセンテージを表します。手動で変更することはできません。 > 4D 19 R5 以降、Windows上では、Web エリアが [ 埋め込みWebレンダリングエンジン](properties_WebArea.md#埋め込みwebレンダリングエンジンを使用) を使用している場合にのみ、この変数が更新されます。 @@ -45,7 +45,7 @@ Webエリアで実行される JavaScript コードから 4Dメソッドおよ ## URL -文字列型の変数で、Webエリアにロードされた URL またはロード中の URL が格納されます。 変数と Webエリア間の連携は双方向でおこなわれます。 +文字列型の変数で、Webエリアにロードされた URL またはロード中の URL が格納されます。変数と Webエリア間の連携は双方向でおこなわれます。 - ユーザーが新しい URL を変数に割り当てると、その URL は自動で Webエリアにロードされます。 - Webエリアでブラウズされると、自動で変数の内容が更新されます。 @@ -54,7 +54,7 @@ Webエリアで実行される JavaScript コードから 4Dメソッドおよ ### URL変数と WA OPEN URL コマンド -URL 変数は[`WA OPEN URL`](../commands/wa-open-url) と同じ効果を生み出します。 しかしながら、以下の違いに注意してください。 +URL 変数は[`WA OPEN URL`](../commands/wa-open-url) と同じ効果を生み出します。しかしながら、以下の違いに注意してください。 - ドキュメントにアクセスする場合、この変数は RFC準拠 ("file://c:/My%20Doc") な URL のみを受け付け、システムパス名 ("c:\MyDoc") は受け付けません。 [`WA OPEN URL`](../commands/wa-open-url) コマンドは両方の記法を受け入れます。 - URL変数が空の文字列の場合、Webエリアは URL をロードしません。 [`WA OPEN URL`](../commands/wa-open-url) コマンドは、この場合にはエラーを生成します。 @@ -81,11 +81,11 @@ URL 変数は[`WA OPEN URL`](../commands/wa-open-url) と同じ効果を生み このオプションを使用して、Webエリアで使用する描画エンジンを 2つのうちから選択することができます: -- **チェックなし** - `JSON値: system` (デフォルト): この場合、4Dはシステムの最適なエンジンを使用します。 この結果、HTML5 や JavaScript の最新 Web描画エンジンを自動的に利用できることになります。 しかし、プラットフォーム間で若干描画に違いがでることがあります。 Windows では、4Dは Microsoft Edge WebView2 を使用します。 macOS では、カレントバージョンの WebKit (Safari) です。 +- **チェックなし** - `JSON値: system` (デフォルト): この場合、4Dはシステムの最適なエンジンを使用します。この結果、HTML5 や JavaScript の最新 Web描画エンジンを自動的に利用できることになります。しかし、プラットフォーム間で若干描画に違いがでることがあります。 Windows では、4Dは Microsoft Edge WebView2 を使用します。 macOS では、カレントバージョンの WebKit (Safari) です。 -> Windows で Microsoft Edge WebView2がインストールされていない場合、4D はシステムのレンダリングエンジンとして埋め込みエンジンを使用します。 システムにインストールされているかどうかを確認するには、アプリケーションパネルで "Microsoft Edge WebView2 Runtime" を検索してください。 +> Windows で Microsoft Edge WebView2がインストールされていない場合、4D はシステムのレンダリングエンジンとして埋め込みエンジンを使用します。システムにインストールされているかどうかを確認するには、アプリケーションパネルで "Microsoft Edge WebView2 Runtime" を検索してください。 -- **チェックあり** - `JSON値: embedded`: この場合、4D は Chromium Embedded Framework (CEF) を使用します。 埋め込みWebレンダリングエンジンを使用すると、Webエリアの描画とその動作が (ピクセル単位での若干の相違やネットワーク実装に関連する違いを除き) プラットフォームに関わらず同じになります。 このオプションが選択されると、OS によりおこなわれる自動更新などの利点を得ることができなくなります。 [使用エンジンの新バージョンは 4D のリリースを通して定期的に提供されます](../Notes/updates.md#ライブラリの一覧) 。 +- **チェックあり** - `JSON値: embedded`: この場合、4D は Chromium Embedded Framework (CEF) を使用します。埋め込みWebレンダリングエンジンを使用すると、Webエリアの描画とその動作が (ピクセル単位での若干の相違やネットワーク実装に関連する違いを除き) プラットフォームに関わらず同じになります。このオプションが選択されると、OS によりおこなわれる自動更新などの利点を得ることができなくなります。 [使用エンジンの新バージョンは 4D のリリースを通して定期的に提供されます](../Notes/updates.md#ライブラリの一覧) 。 CEFエンジンには以下のような制約があります: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/radio_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/radio_overview.md index 1e6ba1819241f8..804d3d059da6d7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/radio_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/radio_overview.md @@ -5,7 +5,7 @@ title: ラジオボタン ラジオボタンは、ボタングループの中から1つを選択することができるオブジェクトです。 -ラジオボタンは通常、小さな目玉状の円とテキストを表示します。 しかし、ラジオボタンに [それ以外の外観](#ボタンスタイル) を設定することもできます。 +ラジオボタンは通常、小さな目玉状の円とテキストを表示します。しかし、ラジオボタンに [それ以外の外観](#ボタンスタイル) を設定することもできます。 ![](../assets/en/FormObjects/radio1.png) @@ -16,21 +16,21 @@ title: ラジオボタン ## ラジオボタンの設定 -ラジオボタンは組織的な集合の中で使用されます。 その集合のなかから一度にひとつのボタンしか選択できません。 一連のラジオボタンが連携した状態で動作するためには、それらには同じ [ラジオグループ](properties_Object.md#ラジオグループ) プロパティが設定されていなくてはなりません。 +ラジオボタンは組織的な集合の中で使用されます。 その集合のなかから一度にひとつのボタンしか選択できません。一連のラジオボタンが連携した状態で動作するためには、それらには同じ [ラジオグループ](properties_Object.md#ラジオグループ) プロパティが設定されていなくてはなりません。 -ラジオボタンの結果はメソッドを用いて管理します。 あらゆるボタンと同様に、フォームが初めて開かれる時ラジオボタンは 0 に初期化されています。 ラジオボタンが選択されると、ラジオボタンに割り当てられたメソッドが実行されます。 次の例では、ビデオ収集データベースでラジオボタンを使用し、レコーディングの速さ (SP、LP、EP) を入力します: +ラジオボタンの結果はメソッドを用いて管理します。あらゆるボタンと同様に、フォームが初めて開かれる時ラジオボタンは 0 に初期化されています。ラジオボタンが選択されると、ラジオボタンに割り当てられたメソッドが実行されます。次の例では、ビデオ収集データベースでラジオボタンを使用し、レコーディングの速さ (SP、LP、EP) を入力します: ![](../assets/en/FormObjects/radio2.png) -グループのなかから 1つのラジオボタンを選択すると、そのボタンには 1 が代入され、グループ内の他のすべてのボタンには 0 が代入されます。 一度に1つのラジオボタンしか選択できません。 +グループのなかから 1つのラジオボタンを選択すると、そのボタンには 1 が代入され、グループ内の他のすべてのボタンには 0 が代入されます。一度に1つのラジオボタンしか選択できません。 -> ラジオボタンには [ブール型の式](properties_Object.md#変数あるいは式) を設定することができます。 この場合、グループ内で選択されたラジオボタンの変数には true が代入され、残りのラジオボタンの変数には false が代入されます。 +> ラジオボタンには [ブール型の式](properties_Object.md#変数あるいは式) を設定することができます。この場合、グループ内で選択されたラジオボタンの変数には true が代入され、残りのラジオボタンの変数には false が代入されます。 ラジオボタンオブジェクトに格納された値は (ブールフィールドの場合を除き) 自動保存されません。 変数に格納されたラジオボタンの値はメソッドで管理しなければなりません。 ## ボタンスタイル -ラジオ [ボタンスタイル](properties_TextAndPicture.md#ボタンスタイル)は、ラジオボタンの外観を制御すると同時に、提供されるプロパティをも決定します。 ラジオボタンには、あらかじめ定義されたスタイルを割り当てることができます。 しかし、ラジオボタンが適切に動作するには、同じグループに所属するラジオボタンはすべて同じボタンスタイルに設定されている必要があります。 +ラジオ [ボタンスタイル](properties_TextAndPicture.md#ボタンスタイル)は、ラジオボタンの外観を制御すると同時に、提供されるプロパティをも決定します。ラジオボタンには、あらかじめ定義されたスタイルを割り当てることができます。しかし、ラジオボタンが適切に動作するには、同じグループに所属するラジオボタンはすべて同じボタンスタイルに設定されている必要があります。 次の既定スタイルが提供されています: @@ -48,13 +48,13 @@ title: ラジオボタン ![](../assets/en/FormObjects/radio_flat.png) -フラットスタイルでは、装飾が最小限に抑えられています。 フラットボタンのグラフィック的な装飾は最小限であるため、印刷されるフォームでの使用に適しています。 +フラットスタイルでは、装飾が最小限に抑えられています。フラットボタンのグラフィック的な装飾は最小限であるため、印刷されるフォームでの使用に適しています。 ### ツールバー ツールバースタイルのラジオボタンは、主としてツールバーで使用するためのものです。 -ツールバーボタンは、透明の背景に中央配置のラベルがデフォルトで付いています。 ボタンにマウスオーバーしたときの表示は OS によって異なります: +ツールバーボタンは、透明の背景に中央配置のラベルがデフォルトで付いています。ボタンにマウスオーバーしたときの表示は OS によって異なります: - *Windows* - ボタンがハイライト表示されます。 @@ -64,7 +64,7 @@ title: ラジオボタン ### ベベル -ベベルスタイルは [ツールバー](#ツールバー) スタイルと似た動作をしますが、薄いグレーの背景にグレーの枠が描画されます。 ボタンにマウスオーバーしたときの表示は OS によって異なります: +ベベルスタイルは [ツールバー](#ツールバー) スタイルと似た動作をしますが、薄いグレーの背景にグレーの枠が描画されます。ボタンにマウスオーバーしたときの表示は OS によって異なります: - *Windows* - ボタンがハイライト表示されます。 @@ -97,7 +97,7 @@ OS Xテクスチャースタイルは [ツールバー](#ツールバー) スタ - *Windows* - ツールバースタイルのようなボタンに中央配置のラベルが付き、背景は常に表示されます。 -- *macOS* - 灰色のグラデーションを表示する標準のシステムボタンです。 高さは定義済みで、変更できません。 +- *macOS* - 灰色のグラデーションを表示する標準のシステムボタンです。高さは定義済みで、変更できません。 ![](../assets/en/FormObjects/OSXTextured.png) @@ -105,7 +105,7 @@ OS Xテクスチャースタイルは [ツールバー](#ツールバー) スタ Office XPスタイルは通常ボタン (標準のシステムボタン) ような外観に、[ツールバーボタン](#ツールバーボタン) スタイルの動作を組み合わせたものです。 -Office XPボタンの反転表示と背景のカラーはシステムカラーに基づいています。 ボタンにマウスオーバーしたときの表示は OS によって異なります: +Office XPボタンの反転表示と背景のカラーはシステムカラーに基づいています。ボタンにマウスオーバーしたときの表示は OS によって異なります: - *Windows* - マウスオーバー時にのみ背景が表示されます。 @@ -115,7 +115,7 @@ Office XPボタンの反転表示と背景のカラーはシステムカラー ### 折りたたみ/展開 -このスタイルは標準の折りたたみ/展開アイコンを表示するのに使用します。 これらは階層リストで使用されます。 Windows では [+] または [-] のように表示されます。 macOS では、右や下を指す三角として表示されます。 +このスタイルは標準の折りたたみ/展開アイコンを表示するのに使用します。これらは階層リストで使用されます。 Windows では [+] または [-] のように表示されます。 macOS では、右や下を指す三角として表示されます。 ![](../assets/en/FormObjects/checkbox_collapse.png) @@ -127,7 +127,7 @@ Office XPボタンの反転表示と背景のカラーはシステムカラー ### 開示ボタン -開示ボタンスタイルが適用されると、詳細情報の表示/非表示にするのに使われる標準的な開示ボタンとして描画されます。 値が 0 のときにはボタンの矢印が下向き、値が 1 のときは上向きになります。 +開示ボタンスタイルが適用されると、詳細情報の表示/非表示にするのに使われる標準的な開示ボタンとして描画されます。値が 0 のときにはボタンの矢印が下向き、値が 1 のときは上向きになります。 ![](../assets/en/FormObjects/checkbox_disclosure.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md index db4b8ddfb3586c..57a1bf0acc8629 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/shapes_overview.md @@ -13,9 +13,9 @@ title: 図形 ## 四角 -フォーム上に四角を配置することで、視覚的な効果が得られます。 四角で描画できるのは長方形に限られます。 +フォーム上に四角を配置することで、視覚的な効果が得られます。四角で描画できるのは長方形に限られます。 -四角のグラフィック属性 (線カラー、線幅、点線タイプ等) やリサイズオプションはプロパティリストにて指定できます。 角の [丸み](properties_CoordinatesAndSizing.md#角の半径) を指定することもできます。 +四角のグラフィック属性 (線カラー、線幅、点線タイプ等) やリサイズオプションはプロパティリストにて指定できます。角の [丸み](properties_CoordinatesAndSizing.md#角の半径) を指定することもできます。 ![](../assets/en/FormObjects/shapes_rectangle2.png) @@ -54,7 +54,7 @@ title: 図形 ## 線 -フォーム上に線を配置することで、視覚的な効果が得られます。 線は水平、垂直のほか、あらゆる角度で描画することができます。 +フォーム上に線を配置することで、視覚的な効果が得られます。線は水平、垂直のほか、あらゆる角度で描画することができます。 線のグラフィック属性 (線カラー、線幅、点線タイプ等) やリサイズオプションはプロパティリストにて指定できます。 @@ -118,7 +118,7 @@ title: 図形 ## 楕円 -フォーム上に楕円を配置することで、視覚的な効果が得られます。 楕円を使って円を描くことができます ([幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) を同じ値に設定します)。 +フォーム上に楕円を配置することで、視覚的な効果が得られます。楕円を使って円を描くことができます ([幅](properties_CoordinatesAndSizing.md#幅) と [高さ](properties_CoordinatesAndSizing.md#高さ) を同じ値に設定します)。 ![](../assets/en/FormObjects/shape_oval.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/spinner.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/spinner.md index 9c7d41dd796b26..c25f329f252d69 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/spinner.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/spinner.md @@ -7,9 +7,9 @@ title: スピナー ![](../assets/en/FormObjects/spinner.gif) -このタイプのオブジェクトは通常、ネットワークへの接続や、計算などの処理が実行中であることを表すために使用します。 このインジケーターが選択されるとプロパティリストの [スケール](properties_Scale.md) テーマは非表示になります。 +このタイプのオブジェクトは通常、ネットワークへの接続や、計算などの処理が実行中であることを表すために使用します。このインジケーターが選択されるとプロパティリストの [スケール](properties_Scale.md) テーマは非表示になります。 -フォームが実行されたとき、オブジェクトのアニメーションは開始されません。 [割り当てられた変数](properties_Object.md#変数あるいは式) に値を代入してアニメーションを管理します: +フォームが実行されたとき、オブジェクトのアニメーションは開始されません。[割り当てられた変数](properties_Object.md#変数あるいは式) に値を代入してアニメーションを管理します: - 非 0 値 = アニメーション開始 - 0 = アニメーション停止 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md index cf2575a34eb716..0c18340a85d05b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/splitters.md @@ -3,7 +3,7 @@ id: splitters title: スプリッター --- -スプリッターはフォームを2つのエリアに分割します。 ユーザーはいずれかの方向へスプリッターを移動してエリアを拡げたり縮めたりすることができます。 水平方向または垂直方向のスプリッターを作成できます。 スプリッターでは各オブジェクトのサイズ調整プロパティが考慮されます。 つまり作成するアプリケーションのインタフェースをすべてカスタマイズすることができます。 また、スプリッターは “プッシャー” (押し込みタイプ) にすることも可能です。 +スプリッターはフォームを2つのエリアに分割します。 ユーザーはいずれかの方向へスプリッターを移動してエリアを拡げたり縮めたりすることができます。水平方向または垂直方向のスプリッターを作成できます。スプリッターでは各オブジェクトのサイズ調整プロパティが考慮されます。 つまり作成するアプリケーションのインターフェースをすべてカスタマイズすることができます。また、スプリッターは “プッシャー” (押し込みタイプ) にすることも可能です。 たとえば、スプリッターは列のサイズを変更できるよう、リストフォームで使用されます: @@ -12,11 +12,11 @@ title: スプリッター スプリッターの一般的な特徴をいくつか次に説明します: - あらゆるタイプのフォーム上にスプリッターを必要なだけ設置可能であり、一つのフォーム上で水平と垂直のスプリッターを一緒に使用することができます。 -- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。 スプリッターを動かすと、このオブジェクトのサイズが変更されます。 -- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。 [以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 -- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。 フォームを閉じると、最初の大きさに戻ります。 +- スプリッターはオブジェクトを横切ることができます (オーバーラップ)。スプリッターを動かすと、このオブジェクトのサイズが変更されます。 +- フォーム上で移動されたオブジェクトが完全に表示されたままになるように、また別のスプリッターを超えないように、スプリッターの停止位置が計算されます。[以降のオブジェクトを移動する](properties_ResizingOptions.md#以降のオブジェクトを移動する) (プッシャー) プロパティをスプリッターに割り当てると、スプリッターを右方向または下方向へ動かしても停止することはありません。 +- スプリッターを使用するフォームのサイズを変更すると、フォームが表示されている間だけ、フォームの新しいサイズが保存されます。フォームを閉じると、最初の大きさに戻ります。 -スプリッターは挿入されると線として表示されます。 その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 +スプリッターは挿入されると線として表示されます。その [線のスタイル](properties_BackgroundAndBorder.md#境界線スタイル) を変更してさらに細い線に設定したり、線の種類によっては [線の色](properties_BackgroundAndBorder.md#線カラー) を設定したりすることができます。 #### JSON 例: @@ -43,11 +43,11 @@ title: スプリッター フォーム上では、スプリッター周辺にある各オブジェクトのリサイズオプションに基づいて、スプリッターとこれらのオブジェクトとが作用しあいます: -| オブジェクトのリサイズオプション | 水平スプリッターの上、または垂直スプリッターの左にあるオブジェクト(1) | 水平スプリッターの下、または垂直スプリッターの右にあるオブジェクト (非 "プッシャー" の場合) | 水平スプリッターの下、または垂直スプリッターの右にあるオブジェクト ("プッシャー" の場合) | -| ---------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| なし | そのまま変わらない | 次に停止するまでスプリッターとともに移動 (スプリッターとの相対的な位置は変更されない)。 下または右への移動時の停止位置はウインドウの境界または別のスプリッター。 | 無制限にスプリッターとともに移動 (スプリッターとの相対的な位置は変更されない)。 停止しない (次節を参照)。 | -| 拡大 | 元の位置のままだが、スプリッターの新しい位置に基づいてサイズが調整される | | | -| 移動 | スプリッターとともに移動する | | | +| オブジェクトのリサイズオプション | 水平スプリッターの上、または垂直スプリッターの左にあるオブジェクト(1) | 水平スプリッターの下、または垂直スプリッターの右にあるオブジェクト (非 "プッシャー" の場合) | 水平スプリッターの下、または垂直スプリッターの右にあるオブジェクト ("プッシャー" の場合) | +| ---------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| なし | そのまま変わらない | 次に停止するまでスプリッターとともに移動 (スプリッターとの相対的な位置は変更されない)。下または右への移動時の停止位置はウインドウの境界または別のスプリッター。 | 無制限にスプリッターとともに移動 (スプリッターとの相対的な位置は変更されない)。停止しない (次節を参照)。 | +| 拡大 | 元の位置のままだが、スプリッターの新しい位置に基づいてサイズが調整される | | | +| 移動 | スプリッターとともに移動する | | | *(1) この位置にあるオブジェクトを超えて、右側 (水平)、または下側 (垂直) へスプリッターをドラッグすることはできません。* @@ -57,10 +57,10 @@ title: スプリッター オブジェクトメソッドをスプリッターに指定することができます。スプリッターを移動する間 `On Clicked` イベントでこのメソッドが呼び出されます。 -各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。 この変数はオブジェクトメソッドやフォームメソッドで使用することができます。 この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 +各スプリッターには *倍長整数* 型の [変数](properties_Object.md#変数あるいは式) が割り当てられます。この変数はオブジェクトメソッドやフォームメソッドで使用することができます。この変数の値により、スプリッターの最初の位置に対する現在位置がピクセル単位で示されます。 - この値が負数の場合: スプリッターは上または左方向へ移動されました。 - この値が正数の場合: スプリッターは下または右方向へ移動されました。 - この値が 0 の場合: スプリッターは元の位置に移動されました。 -プログラムによってスプリッターを移動させることも可能です。 これをおこなうには、関連付けた変数の値を設定します。 たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。 移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 +プログラムによってスプリッターを移動させることも可能です。 これをおこなうには、関連付けた変数の値を設定します。たとえば、垂直スプリッターに `split1` という名前の変数が関連付けられている場合、`split1:=-10` という命令を実行すると、ユーザーが手動で動かす場合と同じように、スプリッターは 10ピクセル左方向へ移動します。移動が実際におこなわれるのは、この命令文が記述されているフォームメソッドまたはオブジェクトメソッドを実行しおわったときです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/staticPicture.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/staticPicture.md index b64d5a378d82d7..9de26e3aa09c5a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/staticPicture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/staticPicture.md @@ -7,9 +7,9 @@ title: スタティックピクチャー ![](../assets/en/FormObjects/StaticPict.png) -スタティックピクチャーはフォーム外に格納され、参照によって挿入されます。 フォームエディターにおいては、コピーペーストやドラッグ & ドロップ操作によってスタティックピクチャーオブジェクトが作成されます。 +スタティックピクチャーはフォーム外に格納され、参照によって挿入されます。フォームエディターにおいては、コピーペーストやドラッグ & ドロップ操作によってスタティックピクチャーオブジェクトが作成されます。 -> 複数ページあるフォームの 0ページにピクチャーを配置すると、そのピクチャーは自動ですべてのページに背景として表示されます。 またピクチャーを継承フォームに置くこともでき、そのフォームを継承するすべてのフォームの背景とすることもできます。 どちらの方法も、それぞれのページにピクチャーを配置するより、アプリケーションの動作が速くなります。 +> 複数ページあるフォームの 0ページにピクチャーを配置すると、そのピクチャーは自動ですべてのページに背景として表示されます。またピクチャーを継承フォームに置くこともでき、そのフォームを継承するすべてのフォームの背景とすることもできます。どちらの方法も、それぞれのページにピクチャーを配置するより、アプリケーションの動作が速くなります。 ## 形式と保存場所 @@ -17,8 +17,8 @@ title: スタティックピクチャー ピクチャーパスに指定できる場所は次の 2箇所です: -- プロジェクトの **Resources** フォルダー。 プロジェクト内の複数のフォームで画像を共有する場合に適切です。 この場合、パス名は "/RESOURCES/<picture path>" となります。 -- フォームフォルダー内の画像用フォルダー (たとえば、**Images** と名付けたフォルダー)。 特定のフォームでしか画像が使われない場合や、そのフォームの全体を複製してプロジェクト内、または別のプロジェクトに移動させたい場合に適切です。 この場合、パス名は "<picture path>" となり、フォームフォルダーを基準とした相対パスです。 +- プロジェクトの **Resources** フォルダー。プロジェクト内の複数のフォームで画像を共有する場合に適切です。この場合、パス名は "/RESOURCES/<picture path>" となります。 +- フォームフォルダー内の画像用フォルダー (たとえば、**Images** と名付けたフォルダー)。特定のフォームでしか画像が使われない場合や、そのフォームの全体を複製してプロジェクト内、または別のプロジェクトに移動させたい場合に適切です。この場合、パス名は "<picture path>" となり、フォームフォルダーを基準とした相対パスです。 ## プロパティ一覧 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md index 61804bc8c832af..385be52112b4b5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/stepper.md @@ -13,11 +13,11 @@ title: ステッパー ステッパーには数値、時間、日付変数を割り当てることができます。 -- 時間型の値では最小、最大、ステップ プロパティは秒を表します。 たとえば、ステッパーを 8:00 から 18:00 まで 10分のステップで設定するには: +- 時間型の値では最小、最大、ステップ プロパティは秒を表します。たとえば、ステッパーを 8:00 から 18:00 まで 10分のステップで設定するには: - [最小](properties_Scale.md#最小) = 28,800 (8\*60\*60) - [最大](properties_Scale.md#最大) = 64,800 (18\*60\*60) - [ステップ](properties_Scale.md#ステップ) = 600 (10\*60) -- 日付タイプの値では [ステップ](properties_Scale.md#ステップ) プロパティに入力された値が日数を表します。 最小と最大プロパティは無視されます。 最小と最大プロパティは無視されます。 +- 日付タイプの値では [ステップ](properties_Scale.md#ステップ) プロパティに入力された値が日数を表します。 最小と最大プロパティは無視されます。最小と最大プロパティは無視されます。 > 時間や日付変数に対してステッパーを動作させるためには、プロパティリストで型を設定するだけでなく、C_TIME または C_DATE コマンドで明示的に宣言する必要があります。 > 時間や日付変数に対してステッパーを動作させるためには、プロパティリストで型を設定するだけでなく、`Time` または `Date` 型として [明示的に宣言](../Concepts/variables.md#変数の宣言) する必要があります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md index 1405c55f4bfff9..31d7468a742ef9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/subform_overview.md @@ -12,47 +12,46 @@ title: サブフォーム - **サブフォーム**: 他のフォームに組み込まれることを意図したフォーム。 - **親フォーム**: 1つ以上のサブフォームを含むフォーム。 - **サブフォームコンテナー**: 親フォームに組み込まれた、サブフォームのインスタンスを表示するオブジェクト。 -- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。 このコンセプトはとても重要です。 親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 +- **サブフォームインスタンス**: 親フォームに表示されたサブフォームの実体。このコンセプトはとても重要です。 親フォームには、同じサブフォームのインスタンスを複数表示することができるからです。 - **リストフォーム**: データをリストとして表示するサブフォームインスタンス。 - **詳細フォーム**: リストサブフォームをダブルクリックすることでアクセスすることができる、ページタイプの入力フォーム。 ## リストサブフォーム -リストサブフォームを使うことで、他のテーブルのデータを入力、表示、および更新することができます。 通常は 1対Nリレーションが設定されたデータベースでリストサブフォームを使用します。 リレートされた 1テーブルのフォーム上のリストサブフォームでは、リレートされた Nテーブルのデータを入力・表示・更新します。 一つのフォーム上に、それぞれ異なるテーブルに属する複数のサブフォームを配置できます。 しかし、フォームの同じページ上には、同じテーブルに属するサブフォームを複数配置することはできません。 +リストサブフォームを使うことで、他のテーブルのデータを入力、表示、および更新することができます。通常は 1対Nリレーションが設定されたデータベースでリストサブフォームを使用します。リレートされた 1テーブルのフォーム上のリストサブフォームでは、リレートされた Nテーブルのデータを入力・表示・更新します。一つのフォーム上に、それぞれ異なるテーブルに属する複数のサブフォームを配置できます。しかし、フォームの同じページ上には、同じテーブルに属するサブフォームを複数配置することはできません。 -たとえば、連絡先管理データベースでは、ある連絡先のすべての電話番号を表示するためにリストサブフォームが使用されるでしょう。 連絡先テーブルの画面に電話番号が表示されますが、情報はリレートテーブルに格納されています。 1対Nリレーションを使用することで、このデータベース設計は連絡先ごとに複数の電話番号を簡単に格納できるようになっています。 自動リレーションにより、リレートされている Nテーブルへのデータ入力がプログラムなしで直接おこなうことができます。 +たとえば、連絡先管理データベースでは、ある連絡先のすべての電話番号を表示するためにリストサブフォームが使用されるでしょう。連絡先テーブルの画面に電話番号が表示されますが、情報はリレートテーブルに格納されています。 1対Nリレーションを使用することで、このデータベース設計は連絡先ごとに複数の電話番号を簡単に格納できるようになっています。自動リレーションにより、リレートされている Nテーブルへのデータ入力がプログラムなしで直接おこなうことができます。 リストサブフォームは通常 Nテーブルに結び付けられますが、それだけでなく他の任意のデータベーステーブルのレコードをサブフォームのインスタンスに表示することもできます。 -また、ユーザーがリストサブフォームに直接データを入力するようにもできます。 -サブフォームの設定に基づき、ユーザーがサブレコード上でダブルクリックするか、サブレコードを追加/編集するコマンドを使用すると、詳細フォームが表示されます。 +また、ユーザーがリストサブフォームに直接データを入力するようにもできます。サブフォームの設定に基づき、ユーザーがサブレコード上でダブルクリックするか、サブレコードを追加/編集するコマンドを使用すると、詳細フォームが表示されます。 -> 4Dはサブレコードを管理する基本的なニーズに応える 3つの標準アクション `editSubrecord` (サブレコード編集)、`deleteSubrecord` (サブレコード削除) および `addSubrecord` (サブレコード追加) を提供しています。 フォームに複数のサブフォームインスタンスが含まれる場合、フォーカスを持っているサブフォームにアクションが適用されます。 +> 4Dはサブレコードを管理する基本的なニーズに応える 3つの標準アクション `editSubrecord` (サブレコード編集)、`deleteSubrecord` (サブレコード削除) および `addSubrecord` (サブレコード追加) を提供しています。フォームに複数のサブフォームインスタンスが含まれる場合、フォーカスを持っているサブフォームにアクションが適用されます。 ## ページサブフォーム -ページサブフォームは、カレントサブレコードのデータや、コンテキストに基づく関連する値 (変数やピクチャーなど) を表示できます。 ページサブフォームを使用する利点の一つは、それらが高度な機能を提供したり、親フォームと相互作用したりできることです (ウィジェット)。 ページサブフォームには専用のプロパティやイベントがあり、プログラムから完全に制御することができます。 +ページサブフォームは、カレントサブレコードのデータや、コンテキストに基づく関連する値 (変数やピクチャーなど) を表示できます。ページサブフォームを使用する利点の一つは、それらが高度な機能を提供したり、親フォームと相互作用したりできることです (ウィジェット)。ページサブフォームには専用のプロパティやイベントがあり、プログラムから完全に制御することができます。 -ページサブフォームは [詳細フォーム](properties_Subform.md#詳細フォーム) プロパティで指定された入力フォームを使用します。 リストサブフォームと異なり、使用されるフォームは親フォームと同じテーブルに所属していてもかまいません。 また、プロジェクトフォームを使用することもできます。 実行時、ページサブフォームは入力フォームと同じ標準の表示特性を持ちます。 +ページサブフォームは [詳細フォーム](properties_Subform.md#詳細フォーム) プロパティで指定された入力フォームを使用します。リストサブフォームと異なり、使用されるフォームは親フォームと同じテーブルに所属していてもかまいません。また、プロジェクトフォームを使用することもできます。実行時、ページサブフォームは入力フォームと同じ標準の表示特性を持ちます。 -> 4Dウィジェットは、ページサブフォームに基づいた定義済みの複合オブジェクトです。 詳細は専用のドキュメント [4D Widgets (ウィジェット)](https://doc.4d.com/4Dv20/4D/20/4D-Widgets.100-6343453.ja.html) を参照してください。 +> 4Dウィジェットは、ページサブフォームに基づいた定義済みの複合オブジェクトです。詳細は専用のドキュメント [4D Widgets (ウィジェット)](https://doc.4d.com/4Dv20/4D/20/4D-Widgets.100-6343453.ja.html) を参照してください。 ### バインドされた変数あるいは式の管理 -サブフォームコンテナーオブジェクトには、[変数あるいは式](properties_Object.md#変数あるいは式) をバインドすることができます。 これは、親フォームとサブフォーム間で値を同期するのに便利です。 +サブフォームコンテナーオブジェクトには、[変数あるいは式](properties_Object.md#変数あるいは式) をバインドすることができます。これは、親フォームとサブフォーム間で値を同期するのに便利です。 -デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。 しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など) の変数や式を使用することもできます。 +デフォルトで、4D はサブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式をバインドし、`Form` コマンドを使ってサブフォームのコンテキストで値を共有できるようにします。しかし、単一の値のみを共有したい場合は、任意のスカラー型 (時間、整数など)の変数や式を使用することもできます。 -- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。 この方法は、単一の値を同期させるのに推奨されます。 -- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。 この方法は、複数の値を同期させるのに推奨されます。 +- バインドするスカラー型の変数あるいは式を定義し、[On Bound Variable Change](../Events/onBoundVariableChange.md) や [On Data Change](../Events/onDataChange.md) フォームイベントが発生したときに、`OBJECT Get subform container value` や `OBJECT SET SUBFORM CONTAINER VALUE` コマンドを呼び出して値を共有します。この方法は、単一の値を同期させるのに推奨されます。 +- または、バインドされた **オブジェクト** 型の変数あるいは式を定義し、`Form` コマンドを使用してサブフォームからそのプロパティにアクセスします。この方法は、複数の値を同期させるのに推奨されます。 ### 親フォームとサブフォームの同期 (単一値) -親フォームにおいて、他のオブジェクトとサブフォームコンテナーとに同じ "変数あるいは式" を設定することで、親フォームとサブフォームのコンテキストをリンクし、洗練されたインターフェースを作成することができます。 たとえば、[入力エリア](input_overview.md) が設置されている親フォームに、時刻を静的に表示するサブフォームを置くとします: +親フォームにおいて、他のオブジェクトとサブフォームコンテナーとに同じ "変数あるいは式" を設定することで、親フォームとサブフォームのコンテキストをリンクし、洗練されたインターフェースを作成することができます。たとえば、[入力エリア](input_overview.md) が設置されている親フォームに、時刻を静的に表示するサブフォームを置くとします: ![](../assets/en/FormObjects/subforms1.png) -親フォームにおいて、両オブジェクト (入力エリアとサブフォームコンテナー) の ***変数あるいは式* プロパティは同じ設定にされています**。 変数 (例: `parisTime`)、あるいは式 (例: `Form.parisTime`) を設定することができます。 +親フォームにおいて、両オブジェクト (入力エリアとサブフォームコンテナー) の ***変数あるいは式* プロパティは同じ設定にされています**。変数 (例: `parisTime`)、あるいは式 (例: `Form.parisTime`) を設定することができます。 :::info @@ -71,7 +70,7 @@ title: サブフォーム ケース1: 親フォームの変数あるいは式の値が更新され、この更新をサブフォームに反映させる必要があります。 -この例では、親フォームにおいて `Form.parisTime` の値がユーザー入力、あるいは動的に (たとえば `String(Current time)` コマンドで) "12:15:00" に変更されました。 これは、サブフォームのフォームメソッドで [On Bound Variable Change](../Events/onBoundVariableChange.md) イベントをトリガーします。 +この例では、親フォームにおいて `Form.parisTime` の値がユーザー入力、あるいは動的に (たとえば `String(Current time)` コマンドで) "12:15:00" に変更されました。これは、サブフォームのフォームメソッドで [On Bound Variable Change](../Events/onBoundVariableChange.md) イベントをトリガーします。 以下のコードが実行されます: @@ -105,7 +104,7 @@ End if ケース2: サブフォームの内容が更新され、その更新を親フォームに反映させる必要があります。 -サブフォーム内で、時計オブジェクトに紐づいた `Form.clockValue` 式 (テキスト型) の値がボタンによって変更されます。 これにより、時計オブジェクトの内部で [On Data Change](../Events/onDataChange.md) フォームイベント (当該イベントがオブジェクトに対して選択されている必要があります) がトリガーされ、親フォームの `Form.parisTime` 値を更新します。 +サブフォーム内で、時計オブジェクトに紐づいた `Form.clockValue` 式 (テキスト型) の値がボタンによって変更されます。これにより、時計オブジェクトの内部で [On Data Change](../Events/onDataChange.md) フォームイベント (当該イベントがオブジェクトに対して選択されている必要があります) がトリガーされ、親フォームの `Form.parisTime` 値を更新します。 以下のコードが実行されます: @@ -123,19 +122,19 @@ End if サブフォームの `Form.clockValue` の値が変化するたびに、サブフォームコンテナーの `Form.parisTime` も更新されます。 -> 変数あるいは式の値が複数の場所で設定されている場合、4D は最後にロードされた値を使用します。 以下のロード順が適用されます:
    1 - サブフォームのオブジェクトメソッド
    2 - サブフォームのフォームメソッド
    3 - 親フォームのオブジェクトメソッド
    4 - 親フォームのフォームメソッド +> 変数あるいは式の値が複数の場所で設定されている場合、4D は最後にロードされた値を使用します。以下のロード順が適用されます:
    1 - サブフォームのオブジェクトメソッド
    2 - サブフォームのフォームメソッド
    3 - 親フォームのオブジェクトメソッド
    4 - 親フォームのフォームメソッド ### 親フォームとサブフォームの同期 (複数値) -デフォルトで、4D は各サブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式を作成します。 このオブジェクトの中身は親フォームおよびサブフォームから読み書き可能なため、ローカルなコンテキストにおいて複数の値を共有することができます。 +デフォルトで、4D は各サブフォームコンテナーに [オブジェクト型](properties_Object.md#式の型式タイプ) の変数あるいは式を作成します。このオブジェクトの中身は親フォームおよびサブフォームから読み書き可能なため、ローカルなコンテキストにおいて複数の値を共有することができます。 -親フォームのサブフォームコンテナーにバインドされたオブジェクトは、サブフォーム内では直接 `Form` コマンドによって返されます。 オブジェクトは常に参照によって渡されるため、ユーザーがサブフォーム内でプロパティ値を変更した場合には、その値は自動的にオブジェクト自身に保存され、親フォームでも利用できるようになります。 一方、ユーザーによって、あるいはプログラミングによってオブジェクトのプロパティが親フォーム内で変更された場合も、その値はサブフォーム内で自動更新されます。 つまり、イベント管理は必要ありません。 +親フォームのサブフォームコンテナーにバインドされたオブジェクトは、サブフォーム内では直接 `Form` コマンドによって返されます。オブジェクトは常に参照によって渡されるため、ユーザーがサブフォーム内でプロパティ値を変更した場合には、その値は自動的にオブジェクト自身に保存され、親フォームでも利用できるようになります。一方、ユーザーによって、あるいはプログラミングによってオブジェクトのプロパティが親フォーム内で変更された場合も、その値はサブフォーム内で自動更新されます。つまり、イベント管理は必要ありません。 たとえば、サブフォームでは、入力は (サブフォームの) `Form` オブジェクトプロパティにバインドされています。 ![](../assets/en/FormObjects/subnew1.png) -親フォームで、このサブフォームを 2回表示するとします。 各サブフォームコンテナーは、(親フォームの) `Form` オブジェクトのプロパティである式にバインドされています。 +親フォームで、このサブフォームを 2回表示するとします。各サブフォームコンテナーは、(親フォームの) `Form` オブジェクトのプロパティである式にバインドされています。 ![](../assets/en/FormObjects/subnew2.png) @@ -158,7 +157,7 @@ Form.father:=New object("lastname"; "Golf"; "firstname"; "Félix") ### ポインターの使用 (互換性) -4D v19 R5 以前のバージョンでは、親フォームとサブフォーム間の同期は **ポインター** を使っておこなわれていました。 たとえば、サブフォームオブジェクトを更新するには、以下のコードを呼び出しておこえます: +4D v19 R5 以前のバージョンでは、親フォームとサブフォーム間の同期は **ポインター** を使っておこなわれていました。たとえば、サブフォームオブジェクトを更新するには、以下のコードを呼び出しておこえます: ```4d // サブフォームメソッド @@ -169,11 +168,11 @@ End if ``` -\*\*この方法は互換性のために引き続きサポートされますが、サブフォームに式をバインドすることができないため、廃止予定となります。\*\*今後の開発では、この原則は使うべきではありません。 すべての場合において、フォームとサブフォームの値を同期させるには、[`Form` コマンド](#親フォームとサブフォームの同期-複数値) か [`OBJECT Get subform container value` と `OBJECT SET SUBFORM CONTAINER VALUE` コマンド](#親フォームとサブフォームの同期-単一値) を使用することが推奨されます。 +\*\*この方法は互換性のために引き続きサポートされますが、サブフォームに式をバインドすることができないため、廃止予定となります。\*\*今後の開発では、この原則は使うべきではありません。すべての場合において、フォームとサブフォームの値を同期させるには、[`Form` コマンド](#親フォームとサブフォームの同期-複数値) か [`OBJECT Get subform container value` と `OBJECT SET SUBFORM CONTAINER VALUE` コマンド](#親フォームとサブフォームの同期-単一値) を使用することが推奨されます。 ### 高度なフォーム間通信プログラム -親フォームとサブフォームインスタンス間の通信では、バインドした変数を通して値を交換する以上のことをおこなう必要がある場合があります。 実際、親フォームでおこなわれたアクションに基づきサブフォーム中の変数を更新したり、その逆の処理をしたい場合があるでしょう。 先の "動的な時計" タイプのサブフォームの例で言えば、各時計ごとにアラーム時刻を複数設定したい場合が考えられます。 +親フォームとサブフォームインスタンス間の通信では、バインドした変数を通して値を交換する以上のことをおこなう必要がある場合があります。実際、親フォームでおこなわれたアクションに基づきサブフォーム中の変数を更新したり、その逆の処理をしたい場合があるでしょう。先の "動的な時計" タイプのサブフォームの例で言えば、各時計ごとにアラーム時刻を複数設定したい場合が考えられます。 このようなニーズにこたえるため、4Dは以下のメカニズムを実装しています: @@ -184,9 +183,9 @@ End if #### CALL SUBFORM CONTAINER コマンド {#call-subform-container-command} -`CALL SUBFORM CONTAINER` コマンドを使用すると、サブフォームインスタンスからサブフォームコンテナーオブジェクトに [イベント](../Events/overview.md) を送信できます。 イベントはコンテナーオブジェクトメソッドで受信されます。 (クリックやドラッグ&ドロップなど) サブフォームにより検知されたすべてのイベントの発生元となりえます。 +`CALL SUBFORM CONTAINER` コマンドを使用すると、サブフォームインスタンスからサブフォームコンテナーオブジェクトに [イベント](../Events/overview.md) を送信できます。イベントはコンテナーオブジェクトメソッドで受信されます。(クリックやドラッグ&ドロップなど) サブフォームにより検知されたすべてのイベントの発生元となりえます。 -送信するイベントコードに制限はありません (たとえば 20000 や -100 など)。 既存のイベントに対応するコード (たとえば `On Validate` に対応する 3) を使用することも、カスタムコードを使用することもできます。 前者のケースでは、サブフォームコンテナーのプロパティリストでチェックを入れたイベントのみを使用できます。 後者の場合、使用するコードは既存のフォームイベントに対応してはいけません。 将来の 4Dバージョンで番号が衝突しないようにするために、負数の使用が推奨されます。 +送信するイベントコードに制限はありません (たとえば 20000 や -100 など)。既存のイベントに対応するコード (たとえば `On Validate` に対応する 3) を使用することも、カスタムコードを使用することもできます。前者のケースでは、サブフォームコンテナーのプロパティリストでチェックを入れたイベントのみを使用できます。後者の場合、使用するコードは既存のフォームイベントに対応してはいけません。将来の 4Dバージョンで番号が衝突しないようにするために、負数の使用が推奨されます。 サポートされるサブフォームイベントは以下の通りです: @@ -201,7 +200,7 @@ End if #### EXECUTE METHOD IN SUBFORM コマンド -`EXECUTE METHOD IN SUBFORM` コマンドを使用すると、親フォームやそのオブジェクトから、サブフォームインスタンスのコンテキストにおけるメソッド実行をリクエストできます。これにより、サブフォームの変数やオブジェクト等にアクセスすることができます。 このメソッドは引数も受け取れます。 +`EXECUTE METHOD IN SUBFORM` コマンドを使用すると、親フォームやそのオブジェクトから、サブフォームインスタンスのコンテキストにおけるメソッド実行をリクエストできます。これにより、サブフォームの変数やオブジェクト等にアクセスすることができます。このメソッドは引数も受け取れます。 このメカニズムを図示すると以下のようになります: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md index ecf7bd3284a212..dec791206f6377 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/tabControl.md @@ -3,7 +3,7 @@ id: tabControl title: タブコントロール --- -タブコントロールは、ユーザーが複数の仮想画面の中から選択することのできるオブジェクトを作成します。 タブをクリックすることで、各画面にアクセスします。 +タブコントロールは、ユーザーが複数の仮想画面の中から選択することのできるオブジェクトを作成します。タブをクリックすることで、各画面にアクセスします。 次の複数ページフォームではタブコントロールオブジェクトが使用されています: @@ -11,17 +11,17 @@ title: タブコントロール 各画面を移動するには、目的のタブをクリックします。 -これらの画面は、マルチページフォームの各ページを表わしたり、またはユーザーがタブがクリックすると変化するオブジェクトを表わすこともできます。 タブコントロールをページ移動ツールとして使用する場合、ユーザーがタブをクリックすると [`FORM GOTO PAGE`](../commands/form-goto-page) コマンドまたは `gotoPage` 標準アクションを使用します。 +これらの画面は、マルチページフォームの各ページを表わしたり、またはユーザーがタブがクリックすると変化するオブジェクトを表わすこともできます。タブコントロールをページ移動ツールとして使用する場合、ユーザーがタブをクリックすると [`FORM GOTO PAGE`](../commands/form-goto-page) コマンドまたは `gotoPage` 標準アクションを使用します。 -タブコントロールの他の利用法は、サブフォームやリストボックスに表示されるデータを制御することです。 たとえば、名刺帳はタブコントロールを用いて実現することができます。 タブにはひらがなの各文字を表示し、タブコントロールの動作としてはユーザーがクリックした文字と一致するデータをロードします。 +タブコントロールの他の利用法は、サブフォームやリストボックスに表示されるデータを制御することです。たとえば、名刺帳はタブコントロールを用いて実現することができます。タブにはひらがなの各文字を表示し、タブコントロールの動作としてはユーザーがクリックした文字と一致するデータをロードします。 -各タブにはラベルだけ、またはラベルと小さなアイコンを表示することができます。 アイコンが含まれる場合、そのアイコンは各ラベルの左側に表示されます。 次の図はアイコンを使用するタブコントロールの例です: +各タブにはラベルだけ、またはラベルと小さなアイコンを表示することができます。アイコンが含まれる場合、そのアイコンは各ラベルの左側に表示されます。次の図はアイコンを使用するタブコントロールの例です: ![](../assets/en/FormObjects/tabControl2.png) -タブコントロールを作成すると、4Dがタブの間隔と配置を管理します。 ラベルは配列形式で定義し、アイコンとラベルは階層リスト形式で定義します。 +タブコントロールを作成すると、4Dがタブの間隔と配置を管理します。ラベルは配列形式で定義し、アイコンとラベルは階層リスト形式で定義します。 -タブコントロールが十分大きく、ラベルとアイコンが設定されたタブをすべて表示できる場合は、その両方が表示されます。 タブコントロールの大きさが足らず、ラベルとアイコンを両方とも表示できない場合には、4Dはアイコンだけを表示します。 すべてのアイコンが収まりきらない場合、表示される最後のタブの右側にスクロール矢印が置かれます。 このスクロール矢印を使用し、アイコンを左右にスクロールできます。 +タブコントロールが十分大きく、ラベルとアイコンが設定されたタブをすべて表示できる場合は、その両方が表示されます。タブコントロールの大きさが足らず、ラベルとアイコンを両方とも表示できない場合には、4Dはアイコンだけを表示します。すべてのアイコンが収まりきらない場合、表示される最後のタブの右側にスクロール矢印が置かれます。このスクロール矢印を使用し、アイコンを左右にスクロールできます。 macOSの場合、タブコントロールを標準位置 (上) だけでなく、下にも配置することができます。 @@ -48,17 +48,17 @@ macOSの場合、タブコントロールを標準位置 (上) だけでなく ### オブジェクトの使用 -[コレクション](../Concepts/dt_collection.md) をカプセル化した [オブジェクト](../Concepts/dt_object.md) をタブコントロールの [データソース](properties_Object.md#変数あるいは式) として割り当てることができます。 このオブジェクトには、次のプロパティが格納されていなくてはなりません: +[コレクション](../Concepts/dt_collection.md) をカプセル化した [オブジェクト](../Concepts/dt_object.md) をタブコントロールの [データソース](properties_Object.md#変数あるいは式) として割り当てることができます。このオブジェクトには、次のプロパティが格納されていなくてはなりません: | プロパティ | 型 | 説明 | | -------------- | ---------- | --------------------------------------------------------------------------- | -| `values` | Collection | 必須 - スカラー値のコレクション。 文字列の値のみがサポートされています。 無効、空、または未定義の場合、タブコントロールは空になります | +| `values` | Collection | 必須 - スカラー値のコレクション。文字列の値のみがサポートされています。無効、空、または未定義の場合、タブコントロールは空になります | | `index` | number | タブコントロールのカレントページのインデックス (0 と `collection.length-1` の間の値) | | `currentValue` | Text | 現在選択されている値 | この初期化コードはユーザーにフォームを表示する前に実行しなければなりません。 -次の例では、タブコントロールの [式](properties_Object.md#変数あるいは式) として `Form.tabControl` が定義されています。 フォームオブジェクトに [`gotoPage` 標準アクション](#gotopage-標準アクション) を関連付けることができます。 +次の例では、タブコントロールの [式](properties_Object.md#変数あるいは式) として `Form.tabControl` が定義されています。フォームオブジェクトに [`gotoPage` 標準アクション](#gotopage-標準アクション) を関連付けることができます。 ```4d Form.tabControl:=New object @@ -68,11 +68,11 @@ Form.tabControl.index:=2 // ページ3 から開始します ### 選択リストの使用 -タブコントロールに [選択リスト](properties_DataSource.md#選択リスト-静的リスト) を関連付けることができます。これにはコレクション (静的リスト)、または jsonリスト ("$ref") への JSONポインターを使用します。 リストエディターにてリスト項目に関連付けられたアイコンはタブコントロールに表示されます。 +タブコントロールに [選択リスト](properties_DataSource.md#選択リスト-静的リスト) を関連付けることができます。これにはコレクション (静的リスト)、または jsonリスト ("$ref") への JSONポインターを使用します。リストエディターにてリスト項目に関連付けられたアイコンはタブコントロールに表示されます。 ### テキスト配列の使用 -フォームの各ページの名前を格納するテキスト配列を作成することができます。 このコードはユーザーにフォームを表示する前に実行しなければなりません。 たとえば、このコードをタブコントロールのオブジェクトメソッドに置いて、`On Load` イベントが生じたときにこのメソッドを実行します。 +フォームの各ページの名前を格納するテキスト配列を作成することができます。このコードはユーザーにフォームを表示する前に実行しなければなりません。たとえば、このコードをタブコントロールのオブジェクトメソッドに置いて、`On Load` イベントが生じたときにこのメソッドを実行します。 ```4d ARRAY TEXT(arrPages;3) @@ -93,7 +93,7 @@ Form.tabControl.index:=2 // ページ3 から開始します FORM GOTO PAGE(arrPages) ``` -[`On Clicked`](Events/onClicked.md) イベントが発生すると、このコマンドが実行されます。 この後 [`On Unload`](Events/onUnload.md) イベントの発生時にこの配列をクリアします。 +[`On Clicked`](Events/onClicked.md) イベントが発生すると、このコマンドが実行されます。この後 [`On Unload`](Events/onUnload.md) イベントの発生時にこの配列をクリアします。 オブジェクトメソッドの例を次に示します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md index 651e52a9522a3b..49009e5e9c2208 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/text.md @@ -3,7 +3,7 @@ id: text title: テキスト --- -テキストオブジェクトを使って、指示・タイトル・ラベルなどの静的 (スタティック) なテキストを フォーム上に表示することができます。 これらのテキストは、参照を含むことで動的にもなります。 詳細については [スタティックテキスト中で参照を使用する](https://doc.4d.com/4Dv20/4D/20.2/Using-references-in-static-text.300-6750154.ja.html) を参照ください。 +テキストオブジェクトを使って、指示・タイトル・ラベルなどの静的 (スタティック) なテキストをフォーム上に表示することができます。これらのテキストは、参照を含むことで動的にもなります。詳細については [スタティックテキスト中で参照を使用する](https://doc.4d.com/4Dv20/4D/20.2/Using-references-in-static-text.300-6750154.ja.html) を参照ください。 #### JSON 例: @@ -29,7 +29,7 @@ title: テキスト > このプロパティは `OBJECT SET TEXT ORIENTATION` ランゲージコマンドによっても設定することができます。 -テキストが回転された後でも、サイズや位置などすべてのプロパティを変更することが可能です。 テキストエリアの高さと幅は、回転の方向に依らないという点に注意してください: +テキストが回転された後でも、サイズや位置などすべてのプロパティを変更することが可能です。テキストエリアの高さと幅は、回転の方向に依らないという点に注意してください: ![](../assets/en/FormObjects/staticText2.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/viewProArea_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/viewProArea_overview.md index fbd50b428cddeb..a74f1c6637a7bc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/viewProArea_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/viewProArea_overview.md @@ -3,7 +3,7 @@ id: viewProAreaOverview title: 4D View Pro エリア --- -4D View Pro を使用すると、4Dフォーム内にスプレッドシートエリアを挿入・表示できるようになります。 スプレッドシートとは、セルのグリッドを格納したアプリケーションのことで、これらのセルに情報を入力したり、計算を実行させたり、あるいはピクチャーを表示したりすることができます。 +4D View Pro を使用すると、4Dフォーム内にスプレッドシートエリアを挿入・表示できるようになります。スプレッドシートとは、セルのグリッドを格納したアプリケーションのことで、これらのセルに情報を入力したり、計算を実行させたり、あるいはピクチャーを表示したりすることができます。 ![](../assets/en/FormObjects/viewPro2.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md index 66680cf0179385..9ff0bf44225b9c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md @@ -5,9 +5,9 @@ title: Webエリア Webエリアは、静的および動的な HTMLページ、ファイル、ピクチャー、JavaScript などの様々な Webコンテンツをフォーム中で表示することのできるオブジェクトです。 Web エリアのレンダリングエンジンは、アプリケーションの実行プラットフォームと選択した[レンダリングエンジンオプション](properties_WebArea.md#use-embedded-web-rendering-engine) に応じて変化します。 -同じフォーム内に複数の Webエリアを配置できます。 しかしながら、Webエリアの使用には [いくつかの制約](#webエリアのルール) がつく事に注意して下さい。 +同じフォーム内に複数の Webエリアを配置できます。しかしながら、Webエリアの使用には [いくつかの制約](#webエリアのルール) がつく事に注意して下さい。 -いくつかの専用の[標準アクション](#標準アクション) 、多数の [ランゲージコマンド](../category/web-area)、そして汎用および専用の [フォームイベント](#フォームイベント) を使用することで、Webエリアの機能を管理することができます。 特別な変数を使用して、エリアと 4D環境間で情報を交換することも可能です。 +いくつかの専用の[標準アクション](#標準アクション) 、多数の [ランゲージコマンド](../category/web-area)、そして汎用および専用の [フォームイベント](#フォームイベント) を使用することで、Webエリアの機能を管理することができます。特別な変数を使用して、エリアと 4D環境間で情報を交換することも可能です。 ## Qodly ページを表示する @@ -53,7 +53,7 @@ Webエリアには 2つの特別な変数が自動で割り当てられます: ## $4d オブジェクト -[`4D 埋め込みWebレンダリングエンジン`](properties_WebArea.md#埋め込みwebレンダリングエンジンを使用) はWeb エリア内にて **`$4d` という名前のJavaScript オブジェクト** を提供します。 デフォルトで、 `$4d` はドット記法を通して全ての4D プロジェクトメソッドへのアクセスを許可します。 +[`4D 埋め込みWebレンダリングエンジン`](properties_WebArea.md#埋め込みwebレンダリングエンジンを使用) はWeb エリア内にて **`$4d` という名前のJavaScript オブジェクト** を提供します。デフォルトで、 `$4d` はドット記法を通して全ての4D プロジェクトメソッドへのアクセスを許可します。 例えば、4D 内の `HelloWorld` メソッドを呼び出したい場合: @@ -65,7 +65,7 @@ $4d.HelloWorld(); ### $4d へのアクセスの管理 -[`WA SET CONTEXT`](../commands/wa-set-context) を使用すると、デベロッパーはWeb エリアから `$4d` を通して何が利用可能かをコントロールすることができます。 このコマンドを使用することで、フォーミュラとクラスインスタンスを通して例えば4D メソッドを宣言する**コンテキストオブジェクト**を定義することができます。 +[`WA SET CONTEXT`](../commands/wa-set-context) を使用すると、デベロッパーはWeb エリアから `$4d` を通して何が利用可能かをコントロールすることができます。このコマンドを使用することで、フォーミュラとクラスインスタンスを通して例えば4D メソッドを宣言する**コンテキストオブジェクト**を定義することができます。 現在定義されているコンテキストをチェックするためには、[`WA Get context`](../commands/wa-get-context) を使用します。 @@ -79,14 +79,13 @@ $4d.HelloWorld(); $4d.4DMethodName(param1,paramN,function(result){}) ``` -- `param1...paramN`: 4Dメソッドに対して必要なだけ引数を渡すことができます。 - これらの引数は、JavaScript にサポートされている型であればどんなものでも渡せます (文字列、数値、配列、オブジェクト)。 +- `param1...paramN`: 4Dメソッドに対して必要なだけ引数を渡すことができます。これらの引数は、JavaScript にサポートされている型であればどんなものでも渡せます (文字列、数値、配列、オブジェクト)。 -- `function(result)`: 最後の引数として渡される関数です。 この "コールバック" 関数は、4Dメソッドが実行を終えると同時に呼び出されます。 この関数は `result` 引数を受け取ります。 この "コールバック" 関数は、4Dメソッドが実行を終えると同時に呼び出されます。 この関数は `result` 引数を受け取ります。 +- `function(result)`: 最後の引数として渡される関数です。 この "コールバック" 関数は、4Dメソッドが実行を終えると同時に呼び出されます。 この関数は `result` 引数を受け取ります。この "コールバック" 関数は、4Dメソッドが実行を終えると同時に呼び出されます。この関数は `result` 引数を受け取ります。 -- `result`: 4D メソッドの実行結果。 戻り値は JavaScript でサポートされている型 (文字列、数値、配列、オブジェクト) のいずれかになります。 +- `result`: 4D メソッドの実行結果。戻り値は JavaScript でサポートされている型 (文字列、数値、配列、オブジェクト) のいずれかになります。 -> デフォルトとして、4Dは UTF-8 文字コードで動作しています。 (アクセントが付いた文字などの) 拡張文字を含むテキストを返す場合には、Webエリアで表示されるページの文字コードが UTF-8 に宣言されていることを確認してください。 この場合、HTML ページに以下の行を追加してエンコーディングを宣言して下さい: +> デフォルトとして、4Dは UTF-8 文字コードで動作しています。(アクセントが付いた文字などの) 拡張文字を含むテキストを返す場合には、Webエリアで表示されるページの文字コードが UTF-8 に宣言されていることを確認してください。この場合、HTML ページに以下の行を追加してエンコーディングを宣言して下さい: > `` #### 例題 1 @@ -165,7 +164,7 @@ $4d.calcSum(33, 45, 75, 102.5, 7, function(theSum) ## 標準アクション -Webエリアを自動で管理するために、4つの特別な自動アクションを使用できます: `Open Back URL`、 `Open Forward URL`、 `Refresh Current URL` そして`Stop Loading URL` です。 ボタンやメニューコマンドにこれらのアクションを割り当てることで、基本の Webインターフェースを素早く実装できます。 これらのアクションは、[標準アクション](/Desktop/standard-actions) のページに詳細な説明があります。 +Webエリアを自動で管理するために、4つの特別な自動アクションを使用できます: `Open Back URL`、 `Open Forward URL`、 `Refresh Current URL` そして`Stop Loading URL` です。ボタンやメニューコマンドにこれらのアクションを割り当てることで、基本の Webインターフェースを素早く実装できます。これらのアクションは、[標準アクション](/Desktop/standard-actions) のページに詳細な説明があります。 ## フォームイベント @@ -190,12 +189,11 @@ Webエリアを自動で管理するために、4つの特別な自動アクシ ### ユーザーインターフェース -フォームが実行されると、他のフォームエリアとの対話を可能にする、標準のブラウザーインタフェース機能が Web エリア内で利用可能になります。 +フォームが実行されると、他のフォームエリアとの対話を可能にする、標準のブラウザーインターフェース機能が Web エリア内で利用可能になります。 - **編集メニューコマンド**: Webエリアにフォーカスがあるとき、**編集** メニューコマンドを使用してコピーやペースト、すべてを選択などのアクションを選択に応じて実行できます。 -- **コンテキストメニュー**: Web エリアでは、システムの標準の[コンテキストメニュー](properties_Entry.md#コンテキストメニュー) を使用することができます。 コンテキストメニューの表示は[`WA SET PREFERENCE`](../commands/wa-set-preference) コマンドを使用することによってコントロール可能です。 -- **ドラッグ&ドロップ**: 4D のオブジェクトプロパティに基づき、ユーザーは Webエリア内で、または Webエリアと 4Dフォームオブジェクト間で、テキストやピクチャー、ドキュメントをドラッグ&ドロップできます。 - セキュリティ上の理由から、ファイルまたは URL のドラッグ&ドロップによって Webエリアのコンテンツを変更することは、デフォルトで禁止されています。 この場合、カーソルは"禁止"アイコン![](../assets/en/FormObjects/forbidden.png) を表示します。 "ドロップ" アイコンを表示し、[`On Window Opening Denied`](Events/onWindowOpeningDenied.md) イベントを発生させるには、`WA SET PREFERENCE(*;"warea";WA enable URL drop;True)` 文を使う必要があります。 このイベントにおいては、[`WA OPEN URL`](../commands/wa-open-url) コマンドを呼び出すか、または[URL 変数](properties_WebArea.md#url) を設定することでユーザードロップに対応することができます。 +- **コンテキストメニュー**: Web エリアでは、システムの標準の[コンテキストメニュー](properties_Entry.md#コンテキストメニュー) を使用することができます。コンテキストメニューの表示は[`WA SET PREFERENCE`](../commands/wa-set-preference) コマンドを使用することによってコントロール可能です。 +- **ドラッグ&ドロップ**: 4D のオブジェクトプロパティに基づき、ユーザーは Webエリア内で、または Webエリアと 4Dフォームオブジェクト間で、テキストやピクチャー、ドキュメントをドラッグ&ドロップできます。セキュリティ上の理由から、ファイルまたは URL のドラッグ&ドロップによって Webエリアのコンテンツを変更することは、デフォルトで禁止されています。この場合、カーソルは"禁止"アイコン![](../assets/en/FormObjects/forbidden.png) を表示します。"ドロップ" アイコンを表示し、[`On Window Opening Denied`](Events/onWindowOpeningDenied.md) イベントを発生させるには、`WA SET PREFERENCE(*;"warea";WA enable URL drop;True)` 文を使う必要があります。このイベントにおいては、[`WA OPEN URL`](../commands/wa-open-url) コマンドを呼び出すか、または[URL 変数](properties_WebArea.md#url) を設定することでユーザードロップに対応することができます。 > 上記のドラッグ&ドロップ機能は[macOS のシステムレンダリングエンジン](properties_WebArea.md#use-embedded-web-rendering-engine) を使用したWeb エリアではサポートされていません。 @@ -210,11 +208,11 @@ Webエリアを自動で管理するために、4つの特別な自動アクシ ### Webエリアと Webサーバーのコンフリクト (Windows) -Windows においては、Webエリアから、同じ 4Dアプリケーションで起動中の Webサーバーへのアクセスはお勧めできません。 もちろん、リモートの 4D から 4D Server の Webサーバーにアクセスすることはできます。 自身の Webサーバーにアクセスできないということです。 +Windows においては、Webエリアから、同じ 4Dアプリケーションで起動中の Webサーバーへのアクセスはお勧めできません。もちろん、リモートの 4D から 4D Server の Webサーバーにアクセスすることはできます。 自身の Webサーバーにアクセスできないということです。 ### プロトコルの挿入 (macOS) -macOS 上の Webエリアで、プログラムにより処理される URL は、プロトコルで開始されていなければなりません。 つまり、"www.mysite.com" ではなく、"http://www.mysite.com" 文字列を渡さなければならないということです。 +macOS 上の Webエリアで、プログラムにより処理される URL は、プロトコルで開始されていなければなりません。つまり、"www.mysite.com" ではなく、"http://www.mysite.com" 文字列を渡さなければならないということです。 ## Webインスペクターへのアクセス @@ -264,7 +262,7 @@ Webインスペクターを表示させるには、`WA OPEN WEB INSPECTOR` コ :::warning -カスタムの4DCEFParameters.json ファイルを追加することは、[4D View Pro エリア](../ViewPro/configuring.md#フォームエリアプロパティ) を含め、基本的に4D の全ての埋め込みWeb エリアに影響し得ます。 このカスタムのスイッチが4D アプリケーションを不安定にしないようにするのは開発者の責任です。 +カスタムの4DCEFParameters.json ファイルを追加することは、[4D View Pro エリア](../ViewPro/configuring.md#フォームエリアプロパティ) を含め、基本的に4D の全ての埋め込みWeb エリアに影響し得ます。このカスタムのスイッチが4D アプリケーションを不安定にしないようにするのは開発者の責任です。 ::: @@ -295,11 +293,11 @@ Webインスペクターを表示させるには、`WA OPEN WEB INSPECTOR` コ - **macOS.switches**: macOS 専用のCEF スイッチ。 - **windows.switches**: Windows 専用のCEF スイッチ。 -カスタムファイル内のスイッチが優先されます。 カスタムファイル内のスイッチが優先されます。 同一ファイル内においてスイッチが重複して定義されていた場合、プラットフォーム固有のサブセクション内 ("macOS.switches" or "windows.switches")で定義されているスイッチが優先され、設定として使用されます。 +カスタムファイル内のスイッチが優先されます。カスタムファイル内のスイッチが優先されます。 同一ファイル内においてスイッチが重複して定義されていた場合、プラットフォーム固有のサブセクション内 ("macOS.switches" or "windows.switches")で定義されているスイッチが優先され、設定として使用されます。 :::note -サポートされているスイッチの一覧は常に進化しており、CEF 開発チームによって管理されています。 利用可能なスイッチ一覧については、CEF デベロッパーコミュニティを参照する必要があります。 +サポートされているスイッチの一覧は常に進化しており、CEF 開発チームによって管理されています。利用可能なスイッチ一覧については、CEF デベロッパーコミュニティを参照する必要があります。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/writeProArea_overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/writeProArea_overview.md index 2d6058b4b42125..9310700c5944a9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/writeProArea_overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/FormObjects/writeProArea_overview.md @@ -3,7 +3,7 @@ id: writeProAreaOverview title: 4D Write Pro エリア --- -4D Write Pro は、4Dユーザーに対して、4Dアプリケーションに完全に統合した高度なワードプロセスツールを提供します。 4D Write Proを使用すれば、プリフォーマットされた Eメールや文章に画像、スキャン済みの署名、フォーマットされたテキストやダイナミック変数用のプレースホルダーなどを含めることができます。 また、請求書やレポートを動的に作成し、フォーマット済みのテキストや画像を含めることができます。 +4D Write Pro は、4Dユーザーに対して、4Dアプリケーションに完全に統合した高度なワードプロセスツールを提供します。 4D Write Proを使用すれば、プリフォーマットされた Eメールや文章に画像、スキャン済みの署名、フォーマットされたテキストやダイナミック変数用のプレースホルダーなどを含めることができます。また、請求書やレポートを動的に作成し、フォーマット済みのテキストや画像を含めることができます。 ![](../assets/en/FormObjects/writePro2.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/GettingStarted/Installation.md b/i18n/ja/docusaurus-plugin-content-docs/current/GettingStarted/Installation.md index 248deca826e38d..06c95260f03f94 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/GettingStarted/Installation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/GettingStarted/Installation.md @@ -3,7 +3,7 @@ id: installation title: インストール --- -4D へようこそ! このページでは、4D 製品のインストールと起動について必要な情報をまとめています。 +4D へようこそ!このページでは、4D 製品のインストールと起動について必要な情報をまとめています。 ## 最低動作環境 @@ -27,7 +27,7 @@ Windows 用のセットアップパネルには、**Windows App SDK** のイン ## ログイン -インストールが完了すると、4D を起動し、ログインすることができます。 起動するには、4D 製品のアイコンをダブルクリックします。 +インストールが完了すると、4D を起動し、ログインすることができます。起動するには、4D 製品のアイコンをダブルクリックします。 ![](../assets/en/getStart/logo4d.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/GettingStarted/creating.md b/i18n/ja/docusaurus-plugin-content-docs/current/GettingStarted/creating.md index b58c00311950b5..b1f7c8ace3f36c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/GettingStarted/creating.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/GettingStarted/creating.md @@ -5,7 +5,7 @@ title: プロジェクトの作成・開始 ## プロジェクトの作成 -新規の 4Dアプリケーションプロジェクトは **4D** または **4D Server** アプリケーションを使って作成します。 いずれの場合も、プロジェクトファイルはローカルマシン上に保存します。 +新規の 4Dアプリケーションプロジェクトは **4D** または **4D Server** アプリケーションを使って作成します。いずれの場合も、プロジェクトファイルはローカルマシン上に保存します。 新規プロジェクトを作成するには: @@ -15,14 +15,14 @@ title: プロジェクトの作成・開始 - **ファイル** メニューより \*\*新規 > プロジェクト...\*\*を選択します: ![](../assets/en/getStart/projectCreate-1.png) - (4D のみ) **新規** ツールバーボタンより \*\*プロジェクト...\*\*を選択します:

    ![](../assets/en/getStart/projectCreate-2.png)

    標準の **保存** ダイアログが表示され、4D プロジェクトの名前と保存場所を指定します。 -3. プロジェクトフォルダー名を入力したら、**保存**をクリックします。 この名称はつぎの場所に使用されます: +3. プロジェクトフォルダー名を入力したら、**保存**をクリックします。この名称はつぎの場所に使用されます: - プロジェクト全体を保存するフォルダーの名称 - ["Project" フォルダー](../Project/architecture.md#project-フォルダー) 内の最初の階層にある .4DProject ファイルの名称 -OS によって許可されている名称であれば使用可能です。 しかしながら、異なる OS での使用を予定していたり、ソース管理ツールを利用したりするのであれば、それらの命名規則を考慮する必要があります。 +OS によって許可されている名称であれば使用可能です。しかしながら、異なる OS での使用を予定していたり、ソース管理ツールを利用したりするのであれば、それらの命名規則を考慮する必要があります。 -**保存** ダイアログを受け入れると、4D は開いているプロジェクト (あれば) を閉じ、指定の場所にプロジェクトフォルダーを作成し、プロジェクトに必要なファイルを設置します。 (詳細については [4D プロジェクトのアーキテクチャー](Project/architecture.md) を参照ください)。 +**保存** ダイアログを受け入れると、4D は開いているプロジェクト (あれば) を閉じ、指定の場所にプロジェクトフォルダーを作成し、プロジェクトに必要なファイルを設置します。(詳細については [4D プロジェクトのアーキテクチャー](Project/architecture.md) を参照ください)。 これで、プロジェクトの開発を始めることができます。 @@ -39,7 +39,7 @@ OS によって許可されている名称であれば使用可能です。 し 2. プロジェクトの ["Project" フォルダー](../Project/architecture.md#project-フォルダー) 内にある `.4dproject` ファイルを選択し、**開く** をクリックします。 - デフォルトで、プロジェクトはカレントデータファイルとともに開かれます。 ほかにも、次のファイルタイプを選択できます: + デフォルトで、プロジェクトはカレントデータファイルとともに開かれます。ほかにも、次のファイルタイプを選択できます: - *圧縮されたプロジェクトファイル*: `.4dz` 拡張子 - 運用プロジェクト - *ショートカットファイル*: `.4DLink` 拡張子 - プロジェクトやアプリケーションを起動する際に必要な追加のパラメーターを格納しています (アドレス、認証情報、他) @@ -59,7 +59,7 @@ OS によって許可されている名称であれば使用可能です。 し - **インタープリター** または **コンパイル済み**: これらのオプションは、選択したプロジェクトが [インタープリターおよびコンパイル済みコード](Concepts/interpreted.md) を含んでいる場合に選択可能となります。 - **[Maintenance Security Center](MSC/overview.md)**: 損傷を受けたプロジェクトに必要な修復を施すために、保護モードでプロジェクトを開きます。 -- **データファイル** - プロジェクトで使用するデータファイルを指定できます。 デフォルトでは、**現在のデータファイル** オプションが選択されています。 +- **データファイル** - プロジェクトで使用するデータファイルを指定できます。デフォルトでは、**現在のデータファイル** オプションが選択されています。 ## プロジェクトを開く (その他の方法) @@ -82,7 +82,7 @@ Windows 上では、4D Server プロジェクトが[サービスとして登録] ### 4DLinkファイルを使ってプロジェクトを開く -[`.4DLink` ファイル](#4dlinkファイルについて) を使用して、4D アプリケーションとターゲットの4D プロジェクトを起動することができます。 これをおこなうには 2つの方法があります: +[`.4DLink` ファイル](#4dlinkファイルについて) を使用して、4D アプリケーションとターゲットの4D プロジェクトを起動することができます。これをおこなうには 2つの方法があります: - `.4DLink` をダブルクリック、あるいは 4Dアプリケーションにドラッグ&ドロップする - **ファイル** > **最近使用したプロジェクトを開く** のサブメニューを開き、プロジェクトを選択する @@ -99,12 +99,12 @@ Windows 上では、4D Server プロジェクトが[サービスとして登録] `.4DLink` ファイルは、4Dプロジェクトのアドレスや接続識別子を保存し、プロジェクトを開くための操作を短縮します。 -ローカルプロジェクトを初めて開くとき、またはサーバーに初めて接続するとき、4D は `.4DLink` ファイルを自動生成します。 このファイルは、次の場所にあるローカル環境設定フォルダーに置かれます: +ローカルプロジェクトを初めて開くとき、またはサーバーに初めて接続するとき、4D は `.4DLink` ファイルを自動生成します。このファイルは、次の場所にあるローカル環境設定フォルダーに置かれます: - Windows: C:\Users\UserName\AppData\Roaming\4D\Favorites vXX\ - macOS: Users/UserName/Library/Application Support/4D/Favorites vXX/ -XX はアプリケーションのバージョン番号を意味します。 たとえば、4D v19 なら "Favorites v19" となります。 +XX はアプリケーションのバージョン番号を意味します。たとえば、4D v19 なら "Favorites v19" となります。 このフォルダーには、2つのサブフォルダーがあります: @@ -113,5 +113,5 @@ XX はアプリケーションのバージョン番号を意味します。 た `.4DLink` ファイルは XMLエディターで作成することもできます。 -`.4DLink` ファイルを構築するために使用できる XMLキーを定義した DTD が4D より提供されます。 この DTD は database_link.dtd という名前で、4Dアプリケーションの `\Resources\DTD\` サブフォルダーにあります。 +`.4DLink` ファイルを構築するために使用できる XMLキーを定義した DTD が4D より提供されます。この DTD は database_link.dtd という名前で、4Dアプリケーションの `\Resources\DTD\` サブフォルダーにあります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md index d3bd476d38a279..ae3a8568083178 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/analysis.md @@ -4,13 +4,13 @@ title: ログ解析ページ sidebar_label: ログ解析ページ --- -ログ解析ページを使用して、カレントログファイルに記録された内容を見ることができます。 この機能はアプリケーション利用状況の解析、エラーや不具合の原因となった処理を探すなどの場合に役立ちます。 クライアント/サーバーモードの場合、各クライアントマシンごとの操作を検証することもできます。 +ログ解析ページを使用して、カレントログファイルに記録された内容を見ることができます。この機能はアプリケーション利用状況の解析、エラーや不具合の原因となった処理を探すなどの場合に役立ちます。クライアント/サーバーモードの場合、各クライアントマシンごとの操作を検証することもできます。 -> データベースのデータに対しておこなわれた操作をロールバックさせることもできます。 詳細は [ロールバック](rollback.md) ページを参照してください。 +> データベースのデータに対しておこなわれた操作をロールバックさせることもできます。詳細は [ロールバック](rollback.md) ページを参照してください。 ![](../assets/en/MSC/MSC_analysis.png) -ログファイルに記録された操作は行として表示されます。 各操作の様々な情報が列に表示されます。 ヘッダーをドラッグすることによって列の並び順を変えることもできます。 +ログファイルに記録された操作は行として表示されます。各操作の様々な情報が列に表示されます。ヘッダーをドラッグすることによって列の並び順を変えることもできます。 この情報を使用して各操作のソースとコンテキストを識別できます: @@ -34,21 +34,21 @@ sidebar_label: ログ解析ページ - **プライマリーキー/BLOB**: 各レコードのプライマリーキーのコンテンツ (プライマリーキーが複数のフィールドから構成されているときには、値はセミコロンで区切られています)、またはオペレーションに関連した BLOB のシーケンス番号 -- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。 この内部番号は処理のコンテキストに対応します。 +- **プロセス**: 処理が実行された内部プロセス番号。 この内部番号は処理のコンテキストに対応します。この内部番号は処理のコンテキストに対応します。 - **サイズ**: 操作により処理されたデータのサイズ (バイト単位) - **日付と時刻**: 処理が実行された日付と時刻 -- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 +- **システムユーザー**: 操作を実行したユーザーのシステム名。 クライアント/サーバーモードでは、クライアントマシン名が表示されます。シングルユーザーモードでは、ユーザーのセッション名が表示されます。ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 -- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 +- **4Dユーザー**: 操作を実行したユーザーの 4Dユーザー名。 ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。ユーザーに対してエイリアスが設定されていた場合、4Dユーザー名の代わりのそのエイリアスが表示されます。 -- **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 +- **値**: レコードの追加や更新の場合、フィールドの値。値はセミコロン “;” で区切られます。文字形式に表現できる値のみを表示します。 **値**: レコードの追加や更新の場合、フィールドの値。 値はセミコロン “;” で区切られます。 文字形式に表現できる値のみを表示します。 ***注**: データベースが暗号化されており、開かれたログファイルに対応する有効なデータキーが提供されていない場合、暗号化された値はこのカラムには表示されません。* - **レコード**: レコード番号 -選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 +選択したアプリケーションのカレントログファイル (デフォルトで "データファイル名.journal" というファイル名) の内容を更新するには **解析** をクリックします。 ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。 **書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。ブラウズボタンをクリックすると、アプリケーションの他のログファイルを選択できます。**書き出し...** ボタンを使用してファイルの内容をテキストとして書き出せます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/backup.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/backup.md index b3373560720a2e..0b6206b54811f1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/backup.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/backup.md @@ -10,10 +10,10 @@ MSC のバックアップページは、データベースのバックアップ このページは以下の 3つのエリアで構成されています: -- **バックアップファイルの保存先**: アプリケーションのバックアップファイルの場所に関する情報を表示します。 また、ここはバックアップディスクの空き/使用スペースも表示します。 また、ここはバックアップディスクの空き/使用スペースも表示します。 +- **バックアップファイルの保存先**: アプリケーションのバックアップファイルの場所に関する情報を表示します。 また、ここはバックアップディスクの空き/使用スペースも表示します。また、ここはバックアップディスクの空き/使用スペースも表示します。 - **前回のバックアップの情報**: アプリケーションで最近おこなわれた (自動または手動の) バックアップの日付および時刻を提供します。 - **バックアップファイルの内容**: バックアップファイルに含まれるファイルおよびフォルダーをリストアップします。 **バックアップ** ボタンは、手動のバックアップを開始するのに使用します。 -このページでバックアップパラメーターを変更することはできません。 これをおこなうには **データベースプロパティ...** ボタンをクリックします。 \ No newline at end of file +このページでバックアップパラメーターを変更することはできません。これをおこなうには **データベースプロパティ...** ボタンをクリックします。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/compact.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/compact.md index 1672262d379f39..439c40ed3aa107 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/compact.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/compact.md @@ -10,13 +10,11 @@ sidebar_label: 圧縮ページ ファイルの圧縮は以下のニーズに応えるためにおこないます: -- **ファイルのサイズの削減と最適化**: ファイルには使っていないスペースがあるかもしれません。 実際、レコードを削除すると、それらがファイル上で占有していたスペースが空になります。 4D はできる限りこういったスペースを再利用しますが、データのサイズは可変なため、連続的に削除や変更をおこなうと、必然的にプログラムにとって使用不可のスペースが作り出されます。 大量のデータが削除された直後についても同じことが言えます: 空のスペースはそのままファイルに残ります。 - データファイルのサイズと、実際にデータに使われているスペースの比率をデータの使用率と呼びます。 使用率が低すぎると、スペースが無駄なだけではなく、データベースパフォーマンスの低下につながります。 圧縮は空きスペースを取り除き、データのストレージを再編成、最適化するためにおこないます。 - "情報" エリアには、フラグメンテーションに関するデータが要約され、必要な操作が表示されます。 MSC の情報ページの [データ](information.md#データ) タブには、カレントデータファイルのフラグメンテーション情報が表示されます。 +- **ファイルのサイズの削減と最適化**: ファイルには使っていないスペースがあるかもしれません。実際、レコードを削除すると、それらがファイル上で占有していたスペースが空になります。 4D はできる限りこういったスペースを再利用しますが、データのサイズは可変なため、連続的に削除や変更をおこなうと、必然的にプログラムにとって使用不可のスペースが作り出されます。大量のデータが削除された直後についても同じことが言えます: 空のスペースはそのままファイルに残ります。データファイルのサイズと、実際にデータに使われているスペースの比率をデータの使用率と呼びます。使用率が低すぎると、スペースが無駄なだけではなく、データベースパフォーマンスの低下につながります。圧縮は空きスペースを取り除き、データのストレージを再編成、最適化するためにおこないます。"情報" エリアには、フラグメンテーションに関するデータが要約され、必要な操作が表示されます。 MSC の情報ページの [データ](information.md#データ) タブには、カレントデータファイルのフラグメンテーション情報が表示されます。 -- **完全なデータ更新**: ストラクチャーファイルの現設定を全データに適用します。 同じテーブルのデータが異なる形式で保存されている場合 (たとえばデータベースストラクチャーに変更を加えたとき) に便利です。 同じテーブルのデータが異なる形式で保存されている場合 (たとえばデータベースストラクチャーに変更を加えたとき) に便利です。 +- **完全なデータ更新**: ストラクチャーファイルの現設定を全データに適用します。 同じテーブルのデータが異なる形式で保存されている場合 (たとえばデータベースストラクチャーに変更を加えたとき) に便利です。同じテーブルのデータが異なる形式で保存されている場合 (たとえばデータベースストラクチャーに変更を加えたとき) に便利です。 -> 圧縮はメンテナンスモードでのみ可能です。 標準モードでこの操作を実行しようとすると、警告ダイアログボックスが表示され、アプリケーションを終了してメンテナンスモードで再起動することを知らせます。 ただし、アプリケーションが開いていないデータファイルを圧縮することは可能です ([レコードとインデックスを圧縮](#レコードとインデックスを圧縮) 参照)。 +> 圧縮はメンテナンスモードでのみ可能です。標準モードでこの操作を実行しようとすると、警告ダイアログボックスが表示され、アプリケーションを終了してメンテナンスモードで再起動することを知らせます。ただし、アプリケーションが開いていないデータファイルを圧縮することは可能です ([レコードとインデックスを圧縮](#レコードとインデックスを圧縮) 参照)。 ## 通常モード @@ -26,17 +24,17 @@ sidebar_label: 圧縮ページ > 圧縮はオリジナルファイルのコピーを伴うため、ファイルが格納されているディスクに十分な空きスペースがない場合、ボタンは使用不可になります。 -この操作は、メインファイルの他、インデックスファイルもすべて圧縮します。 4D はオリジナルファイルをコピーし、オリジナルファイルの隣に作成された **Replaced Files (Compacting)** フォルダーにそれらを置きます。 圧縮操作を複数回実行すると、毎回新しいフォルダーが作成されます。 フォルダー名は、"Replaced Files (Compacting)_1", "Replaced Files (Compacting)_2" のようになります。 元のファイルのコピー先は、特殊モードを使って変更できます。 +この操作は、メインファイルの他、インデックスファイルもすべて圧縮します。 4D はオリジナルファイルをコピーし、オリジナルファイルの隣に作成された **Replaced Files (Compacting)** フォルダーにそれらを置きます。圧縮操作を複数回実行すると、毎回新しいフォルダーが作成されます。フォルダー名は、"Replaced Files (Compacting)_1", "Replaced Files (Compacting)_2" のようになります。元のファイルのコピー先は、特殊モードを使って変更できます。 -操作が完了すると、圧縮ファイルは自動的にオリジナルファイルと置き換えられます。 アプリケーションは即座に操作可能になります。 +操作が完了すると、圧縮ファイルは自動的にオリジナルファイルと置き換えられます。アプリケーションは即座に操作可能になります。 -> データベースが暗号化されている場合、復号化と暗号化のステップが圧縮過程に含まれるため、カレントデータの暗号化キーが必要になります。 有効なデータキーが未提供の場合には、パスフレーズまたはデータキーを要求するダイアログボックスが表示されます。 +> データベースが暗号化されている場合、復号化と暗号化のステップが圧縮過程に含まれるため、カレントデータの暗号化キーが必要になります。有効なデータキーが未提供の場合には、パスフレーズまたはデータキーを要求するダイアログボックスが表示されます。 -**警告**: 圧縮操作は毎回オリジナルファイルのコピーを伴うため、アプリケーションフォルダーのサイズが大きくなります。 アプリケーションのサイズが過剰に増加しな いよう、これを考慮することが大切です (とくに、4Dアプリケーションがパッケージとして表示される macOS の場合)。 パッケージのサイズを小さく保つには、パッケージ内オリジナルファイルのコピーを手動で削除することも役立ちます。 +**警告**: 圧縮操作は毎回オリジナルファイルのコピーを伴うため、アプリケーションフォルダーのサイズが大きくなります。アプリケーションのサイズが過剰に増加しな いよう、これを考慮することが大切です (とくに、4Dアプリケーションがパッケージとして表示される macOS の場合)。パッケージのサイズを小さく保つには、パッケージ内オリジナルファイルのコピーを手動で削除することも役立ちます。 ## ログファイルを開く -圧縮が完了すると、4D はプロジェクトの Logs フォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Compact_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 +圧縮が完了すると、4D はプロジェクトの Logs フォルダーにログファイルを生成します。このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。このファイルは XML形式で作成され、ApplicationName_Compact_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 @@ -49,20 +47,19 @@ sidebar_label: 圧縮ページ ### レコードとインデックスを圧縮 -**レコードとインデックスを圧縮** には、カレントデータファイルのパス名と、他のデータファイルを指定するのに使用する **[...]** ボタンが表示されます。 このボタンをクリックすると標準のファイルを開くダイアログが表示され、圧縮するデータファイルを選択することができます。 開かれているストラクチャーファイルと互換性のあるデータファイルを選択しなければなりません。 このダイアログボックスを受け入れると、圧縮するファイルのパス名が更新されます。 +**レコードとインデックスを圧縮** には、カレントデータファイルのパス名と、他のデータファイルを指定するのに使用する **[...]** ボタンが表示されます。このボタンをクリックすると標準のファイルを開くダイアログが表示され、圧縮するデータファイルを選択することができます。開かれているストラクチャーファイルと互換性のあるデータファイルを選択しなければなりません。このダイアログボックスを受け入れると、圧縮するファイルのパス名が更新されます。 -2つめの **[...]** ボタンを使用して、圧縮処理前に元ファイルをコピーする保存先を変更できます。 とくに大きなデータファイルを圧縮する際、コピー先を別のディスクに変更するためにこのオプションを使用します。 +2つめの **[...]** ボタンを使用して、圧縮処理前に元ファイルをコピーする保存先を変更できます。とくに大きなデータファイルを圧縮する際、コピー先を別のディスクに変更するためにこのオプションを使用します。 ### レコードの強制更新 -このオプションが選択されていると、4D は現在のストラクチャー定義に基づき、圧縮処理中に各テーブルのすべてのレコードを再保存します。 このオプションが選択されていないと、4D は単にディスク上のデータの並びを再構成するだけです。 このオプションは以下のケースで有用です: +このオプションが選択されていると、4D は現在のストラクチャー定義に基づき、圧縮処理中に各テーブルのすべてのレコードを再保存します。このオプションが選択されていないと、4D は単にディスク上のデータの並びを再構成するだけです。このオプションは以下のケースで有用です: -- アプリケーションストラクチャーのフィールド型がデータ入力後に変更された場合、 たとえば倍長整数型を実数型に変更したようなケースです。 たとえば倍長整数型を実数型に変更したようなケースです。 4D では (データを失うリスクがあるにしても) まったく異なる型に変更することさえ可能です。 たとえば、実数型をテキスト型にすることができます。 - この場合、4Dは既に入力されたデータを遡及的に変換することはしません。 データはレコードがロードされ保存される際に変換されます。 このオプションを使用すればデータの変換を強制できます。 +- アプリケーションストラクチャーのフィールド型がデータ入力後に変更された場合、 たとえば倍長整数型を実数型に変更したようなケースです。たとえば倍長整数型を実数型に変更したようなケースです。 4D では (データを失うリスクがあるにしても) まったく異なる型に変更することさえ可能です。 たとえば、実数型をテキスト型にすることができます。この場合、4Dは既に入力されたデータを遡及的に変換することはしません。 データはレコードがロードされ保存される際に変換されます。このオプションを使用すればデータの変換を強制できます。 -- データが入力された後にテキスト、ピクチャー、または BLOB の外部保存オプションが変更された場合。 これはとくに v13以前からデータベースを変換した場合に発生します。 前述の型変更と同様、4Dはすでに入力されたデータを遡及的に変換しません。 入力済みデータに対して新しい保存設定を適用するために、このオプションを選択して圧縮をおこないます。 +- データが入力された後にテキスト、ピクチャー、または BLOB の外部保存オプションが変更された場合。これはとくに v13以前からデータベースを変換した場合に発生します。前述の型変更と同様、4Dはすでに入力されたデータを遡及的に変換しません。入力済みデータに対して新しい保存設定を適用するために、このオプションを選択して圧縮をおこないます。 -- テーブルやフィールドが削除された場合。 この場合、レコードの再保存をおこないながら圧縮することで、削除された領域を圧縮することができ、ファイルサイズを減らすことができます。 +- テーブルやフィールドが削除された場合。この場合、レコードの再保存をおこないながら圧縮することで、削除された領域を圧縮することができ、ファイルサイズを減らすことができます。 > このオプションが選択されていると、すべてのインデックスが更新されます。 @@ -70,14 +67,14 @@ sidebar_label: 圧縮ページ (レコードの強制更新を選択した場合にのみ選択可能) -このオプションを使用すると圧縮の際、レコードのアドレステーブルを完全に再構築します。 これによりアドレステーブルのサイズが最適化されます。 このオプションは主に大量のデータを作成し、そして削除したような場合に使用します。 そうでない場合、最適化に明白な意味はありません。 +このオプションを使用すると圧縮の際、レコードのアドレステーブルを完全に再構築します。これによりアドレステーブルのサイズが最適化されます。 このオプションは主に大量のデータを作成し、そして削除したような場合に使用します。そうでない場合、最適化に明白な意味はありません。 -このオプションを使用した場合、圧縮処理に時間がかかるようになり、さらに `SAVE SET` コマンドを使用して保存したセットなど、レコード番号に依存するものが無効になる点に留意してください。 そのため、この場合には保存したセットはすべて削除するよう強く推奨します。 そうでなければ不正なデータセットを使用することになります。 +このオプションを使用した場合、圧縮処理に時間がかかるようになり、さらに `SAVE SET` コマンドを使用して保存したセットなど、レコード番号に依存するものが無効になる点に留意してください。そのため、この場合には保存したセットはすべて削除するよう強く推奨します。 そうでなければ不正なデータセットを使用することになります。 :::note 注記 -- 圧縮は、ゴミ箱に入れられたテーブルのレコードも対象とします。 ゴミ箱に大量のレコードがある場合、処理が遅くなる原因となります。 -- このオプションを使用すると、アドレステーブルは (それに伴ってデータベースそのものも) カレントログファイルとの互換性を失います。 ログファイルは自動で保存され、次回アプリケーションを起動した際に新しいログファイルが作成されなければなりません。 +- 圧縮は、ゴミ箱に入れられたテーブルのレコードも対象とします。ゴミ箱に大量のレコードがある場合、処理が遅くなる原因となります。 +- このオプションを使用すると、アドレステーブルは (それに伴ってデータベースそのものも) カレントログファイルとの互換性を失います。ログファイルは自動で保存され、次回アプリケーションを起動した際に新しいログファイルが作成されなければなりません。 - アドレステーブルの圧縮が必要かどうかは、総レコード数と MSC の [情報](information.md) ページ内にあるアドレステーブルサイズを比較することで判断することができます。 - [`TRUNCATE TABLE`](../commands/truncate-table) コマンドは指定されたテーブルに対してアドレステーブルを自動的にリセットします。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/encrypt.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/encrypt.md index 00ea0f90a51f19..d357476095ca66 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/encrypt.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/encrypt.md @@ -12,20 +12,20 @@ sidebar_label: 暗号化ページ ::: -暗号化/復号化操作をおこなうたびに、新しいフォルダーが作成されます。 暗号化/復号化操作をおこなうたびに、新しいフォルダーが作成されます。 そのフォルダーは "Replaced Files (Encrypting) *yyyy-mm-dd hh-mm-ss*" あるいは "Replaced Files (Decrypting) *yyyy-mm-dd hh-mm-ss*" と名前が付けられます。 +暗号化/復号化操作をおこなうたびに、新しいフォルダーが作成されます。暗号化/復号化操作をおこなうたびに、新しいフォルダーが作成されます。 そのフォルダーは "Replaced Files (Encrypting) *yyyy-mm-dd hh-mm-ss*" あるいは "Replaced Files (Decrypting) *yyyy-mm-dd hh-mm-ss*" と名前が付けられます。 -> 暗号化は [メンテナンスモード](overview.md#メンテナンスモードでの表示) でのみ利用可能です。 標準モードでこの操作を実行しようとすると、警告ダイアログが表示され、アプリケーションを終了してメンテナンスモードで再起動することを知らせます。 標準モードでこの操作を実行しようとすると、警告ダイアログが表示され、アプリケーションを終了してメンテナンスモードで再起動することを知らせます。 +> 暗号化は [メンテナンスモード](overview.md#メンテナンスモードでの表示) でのみ利用可能です。 標準モードでこの操作を実行しようとすると、警告ダイアログが表示され、アプリケーションを終了してメンテナンスモードで再起動することを知らせます。標準モードでこの操作を実行しようとすると、警告ダイアログが表示され、アプリケーションを終了してメンテナンスモードで再起動することを知らせます。 **Warning:** -- データファイルの暗号化は時間がかかる操作です。 実行中は (ユーザーによって割り込み可能な) 進捗インジケーターが表示されます。 また、アプリケーションの暗号化操作には必ず圧縮のステップが含まれるという点に注意してください。 -- 暗号化操作をおこなうたびに、その操作はデータファイルのコピーを作成し、その結果アプリケーションファイルのサイズは増大します。 アプリケーションのサイズが過剰に増加しな いよう、これを考慮することが大切です (とくに、4Dアプリケーションがパッケージとして表示される macOS の場合)。 パッケージのサイズを小さく保つには、パッケージ内オリジナルファイルのコピーを手動で削除/移動することも役立ちます。 +- データファイルの暗号化は時間がかかる操作です。実行中は (ユーザーによって割り込み可能な) 進捗インジケーターが表示されます。また、アプリケーションの暗号化操作には必ず圧縮のステップが含まれるという点に注意してください。 +- 暗号化操作をおこなうたびに、その操作はデータファイルのコピーを作成し、その結果アプリケーションファイルのサイズは増大します。アプリケーションのサイズが過剰に増加しな いよう、これを考慮することが大切です (とくに、4Dアプリケーションがパッケージとして表示される macOS の場合)。パッケージのサイズを小さく保つには、パッケージ内オリジナルファイルのコピーを手動で削除/移動することも役立ちます。 ## データを初めて暗号化する場合 MSC でデータファイルを初めて暗号化する場合、以下のような手順を踏む必要があります: -1. ストラクチャーエディターにおいて、データを暗号化したいテーブルに対して **暗号化可能** 属性にチェックを入れます。 詳細は "テーブルプロパティ" の章を参照してください。 詳細は "テーブルプロパティ" の章を参照してください。 +1. ストラクチャーエディターにおいて、データを暗号化したいテーブルに対して **暗号化可能** 属性にチェックを入れます。 詳細は "テーブルプロパティ" の章を参照してください。詳細は "テーブルプロパティ" の章を参照してください。 2. MSC の暗号化ページを開きます。 MSC の暗号化ページを開きます。 どのテーブルにも **暗号化可能** 属性を付けないでページを開こうとした場合、ページに以下のメッセージが表示されます: @@ -33,14 +33,12 @@ MSC でデータファイルを初めて暗号化する場合、以下のよう そうでない場合には、以下のメッセージが表示されます: ![](../assets/en/MSC/MSC_encrypt2.png)

    このメッセージは、少なくとも 1つのテーブルに対して **暗号化可能** 属性のステータスが変更されていて、データファイルがまだ暗号化されていないことを意味します。 - **注:** すでに暗号化されているデータファイル、または復号化されたデータファイルに対して、**暗号化可能** 属性のステータスが変更された場合にも同じメッセージが表示されます (以下参照)。

    - **注:** すでに暗号化されているデータファイル、または復号化されたデータファイルに対して、**暗号化可能** 属性のステータスが変更された場合にも同じメッセージが表示されます (以下参照)。

    + **注:** すでに暗号化されているデータファイル、または復号化されたデータファイルに対して、**暗号化可能** 属性のステータスが変更された場合にも同じメッセージが表示されます (以下参照)。

    **注:** すでに暗号化されているデータファイル、または復号化されたデータファイルに対して、**暗号化可能** 属性のステータスが変更された場合にも同じメッセージが表示されます (以下参照)。

    3. 暗号化ピクチャーボタンをクリックします。 ![](../assets/en/MSC/MSC_encrypt3.png) データファイル用パスフレーズの入力を促されます: ![](../assets/en/MSC/MSC_encrypt4.png) - パスフレーズはデータ暗号化キーを生成するのに使用されます。 パスフレーズはパスワードの強化版のようなもので、大量の文字を含めることができます。 たとえば、"We all came out to Montreux" あるいは "My 1st Great Passphrase!!" のようなパスフレーズを入力することが可能です。 - のようなパスフレーズを入力することが可能です。 + パスフレーズはデータ暗号化キーを生成するのに使用されます。パスフレーズはパスワードの強化版のようなもので、大量の文字を含めることができます。たとえば、"We all came out to Montreux" あるいは "My 1st Great Passphrase!!" のようなパスフレーズを入力することが可能です。のようなパスフレーズを入力することが可能です。 パスフレーズの安全性は、セキュリティレベルインジケーターによって確認できます: ![](../assets/en/MSC/MSC_encrypt5.png) (濃い緑色は、もっとも安全なレベルであることを示します)。 @@ -48,11 +46,11 @@ MSC でデータファイルを初めて暗号化する場合、以下のよう 暗号化プロセスがスタートします。 MSC が標準モードで開かれていた場合、アプリケーションはメンテナンスモードで再起動されます。 -4D では暗号化キーを保存することができます (以下の [暗号化キーを保存する](#暗号化キーを保存する) の段落を参照してください)。 暗号化キーの保存は、このタイミングか、あるいは後でおこなうこともできます。 また暗号化ログファイルを開くこともできます。 暗号化キーの保存は、このタイミングか、あるいは後でおこなうこともできます。 また暗号化ログファイルを開くこともできます。 +4D では暗号化キーを保存することができます (以下の [暗号化キーを保存する](#暗号化キーを保存する) の段落を参照してください)。 暗号化キーの保存は、このタイミングか、あるいは後でおこなうこともできます。 また暗号化ログファイルを開くこともできます。暗号化キーの保存は、このタイミングか、あるいは後でおこなうこともできます。また暗号化ログファイルを開くこともできます。 暗号化プロセスが正常に完了した場合、暗号化ページは 暗号化メンテナンスオペレーション ボタンを表示します。 -**警告**: 暗号化操作の最中、4D は新しい、空のデータファイルを作成したうえで、元のデータファイルからデータを注入します。 "暗号化可能" テーブルに属しているレコードは暗号化後にコピーされ、他のレコードは単にコピーされるだけです (圧縮オペレーションも実行されます)。 操作が正常に完了した場合、もとのデータファイルは "Replaced Files (Encrypting)" フォルダーへ移動されます。 暗号化されたデータファイルを配布する場合、暗号化されていないデーファイルをアプリケーションフォルダーからすべて移動/削除しておくようにしてください。 +**警告**: 暗号化操作の最中、4D は新しい、空のデータファイルを作成したうえで、元のデータファイルからデータを注入します。"暗号化可能" テーブルに属しているレコードは暗号化後にコピーされ、他のレコードは単にコピーされるだけです (圧縮オペレーションも実行されます)。操作が正常に完了した場合、もとのデータファイルは "Replaced Files (Encrypting)" フォルダーへ移動されます。暗号化されたデータファイルを配布する場合、暗号化されていないデーファイルをアプリケーションフォルダーからすべて移動/削除しておくようにしてください。 ## 暗号化メンテナンスオペレーション @@ -65,7 +63,7 @@ MSC でデータファイルを初めて暗号化する場合、以下のよう セキュリティ上の理由から、すべての暗号化メンテナンスオペレーションはカレントのデータ暗号化キーの入力を要求します。 - データ暗号化キーが既に 4Dキーチェーン (1) に読み込まれている場合、そのキーは 4D によって自動的に再利用されます。 -- データ暗号化キーが見つからない場合、それを入力する必要があります。 以下のようなダイアログが表示されます: +- データ暗号化キーが見つからない場合、それを入力する必要があります。以下のようなダイアログが表示されます: ![](../assets/en/MSC/MSC_encrypt7.png) この段階では 2つの選択肢があります: @@ -83,7 +81,7 @@ MSC でデータファイルを初めて暗号化する場合、以下のよう ### カレントの暗号化キーでデータを再暗号化する -この操作は、データを格納している 1つ以上のテーブルにおいて **暗号化可能** 属性が変更された場合に有用です。 この場合、データの整合性を保つために、4D はアプリケーション内のそのテーブルのレコードへの書き込みアクセスを禁止します。 有効な暗号化ステータスを得るために、データの再暗号化が必要になります。 +この操作は、データを格納している 1つ以上のテーブルにおいて **暗号化可能** 属性が変更された場合に有用です。この場合、データの整合性を保つために、4D はアプリケーション内のそのテーブルのレコードへの書き込みアクセスを禁止します。有効な暗号化ステータスを得るために、データの再暗号化が必要になります。 1. **カレントの暗号化キーでデータを再暗号化** をクリックします。 2. カレントのデータ暗号化キーを入力します。 @@ -93,7 +91,7 @@ MSC でデータファイルを初めて暗号化する場合、以下のよう ### パスフレーズを変更してデータを再暗号化する -この操作は、カレントの暗号化データキーを変更したい場合に有用です。 たとえば、セキュリティ上のルール (3ヶ月ごとにパスプレーズを変更する必要があるなど) を遵守するために変更をおこないたいケースが考えられます。 +この操作は、カレントの暗号化データキーを変更したい場合に有用です。たとえば、セキュリティ上のルール (3ヶ月ごとにパスプレーズを変更する必要があるなど) を遵守するために変更をおこないたいケースが考えられます。 1. **パスフレーズを変更してデータを再暗号化する** をクリックします。 2. カレントのデータ暗号化キーを入力します。 @@ -105,7 +103,7 @@ MSC でデータファイルを初めて暗号化する場合、以下のよう ### 全データを復号化 -この操作は、データファイルからすべての暗号化を取り除きます。 データを暗号化しておきたくない場合、以下の手順に従ってください: +この操作は、データファイルからすべての暗号化を取り除きます。データを暗号化しておきたくない場合、以下の手順に従ってください: 1. **全データを復号化** をクリックします。 2. カレントのデータ暗号化キーを入力します (カレントの暗号化キーを入力する 参照)。 @@ -113,11 +111,11 @@ MSC でデータファイルを初めて暗号化する場合、以下のよう データが完全に復号化され、確認メッセージが表示されます: ![](../assets/en/MSC/MSC_encrypt10.png) -> データファイルが復号化されると、テーブルの暗号化ステータスは暗号化可能属性と合致しなくなります。 ステータスを合致させるためには、データベースのストラクチャーレベルにおいてすべての **暗号化可能** 属性を選択解除しなければなりません。 +> データファイルが復号化されると、テーブルの暗号化ステータスは暗号化可能属性と合致しなくなります。ステータスを合致させるためには、データベースのストラクチャーレベルにおいてすべての **暗号化可能** 属性を選択解除しなければなりません。 ## 暗号化キーを保存する -4D ではデータ暗号化キーを専用ファイルに保存しておくことができます。 ファイル名には、`.4DKeyChain` の拡張子が必要です (例: "myKeys.4DKeyChain")。 このファイルを USBキーなどの外部デバイスに保存しておくと、暗号化されたアプリケーションを使うのが簡単になります。 なぜならユーザーは暗号化されたデータにアクセスするには、アプリケーションを開く前にデバイスを接続してキーを提供すればよいからです。 +4D ではデータ暗号化キーを専用ファイルに保存しておくことができます。ファイル名には、`.4DKeyChain` の拡張子が必要です (例: "myKeys.4DKeyChain")。このファイルを USBキーなどの外部デバイスに保存しておくと、暗号化されたアプリケーションを使うのが簡単になります。 なぜならユーザーは暗号化されたデータにアクセスするには、アプリケーションを開く前にデバイスを接続してキーを提供すればよいからです。 新しいパスフレーズが提供されるたびに暗号化キーを保存することができます: @@ -128,13 +126,13 @@ MSC でデータファイルを初めて暗号化する場合、以下のよう :::caution -[自動復元とログの統合](../Backup/settings.md#自動復元とログの統合) 機能を使用する場合、デバイスの一番上の階層にデータ暗号化キーファイルを保存することが必須となります。 復元処理がトリガーされるとき、4D は暗号化キーファイルにアクセスできなくてはなりません。できない場合には、エラーが発生します。 復元処理がトリガーされるとき、4D は暗号化キーファイルにアクセスできなくてはなりません。 できない場合には、エラーが発生します。 +[自動復元とログの統合](../Backup/settings.md#自動復元とログの統合) 機能を使用する場合、デバイスの一番上の階層にデータ暗号化キーファイルを保存することが必須となります。 復元処理がトリガーされるとき、4D は暗号化キーファイルにアクセスできなくてはなりません。できない場合には、エラーが発生します。復元処理がトリガーされるとき、4D は暗号化キーファイルにアクセスできなくてはなりません。 できない場合には、エラーが発生します。 ::: ## ログファイル -暗号化オペレーションが完了すると、4D はアプリケーションの Logsフォルダー内にファイルを生成します。 このファイルは XML形式で作成され、"*ApplicationName_Encrypt_Log_yyyy-mm-dd hh-mm-ss.xml*" または "*ApplicationName_Decrypt_Log_yyyy-mm-dd hh-mm-ss.xml*" という名前がつけられます。 +暗号化オペレーションが完了すると、4D はアプリケーションの Logsフォルダー内にファイルを生成します。このファイルは XML形式で作成され、"*ApplicationName_Encrypt_Log_yyyy-mm-dd hh-mm-ss.xml*" または "*ApplicationName_Decrypt_Log_yyyy-mm-dd hh-mm-ss.xml*" という名前がつけられます。 新しくログファイルが生成されるたび、MSCページに ログファイルを開く ボタンが表示されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/information.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/information.md index 68893fbd25e185..da21e8d111966d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/information.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/information.md @@ -4,24 +4,21 @@ title: 情報ページ sidebar_label: 情報ページ --- -情報ページは 4D環境、システム環境、データベースおよびアプリケーションファイルについての情報を提供します。 各ページは、ウィンドウ上部にあるタブコントロールを使って切り替えできます。 +情報ページは 4D環境、システム環境、データベースおよびアプリケーションファイルについての情報を提供します。各ページは、ウィンドウ上部にあるタブコントロールを使って切り替えできます。 ## プログラム このページにはアプリケーションならびにアクティブな 4Dフォルダーの名前、バージョンおよび場所を表示します (アクティブ4Dフォルダーについては *4Dランゲージリファレンス* の `Get 4D folder` コマンドを参照ください)。 -ウィンドウの中央部は、プロジェクトならびにデータファイルとログファイル (あれば) の名前および場所を表示します。 ウィンドウの下部は、4Dライセンスフォルダーの名前、ライセンスのタイプ、および、カレント 4Dユーザーの名前を表示します。 +ウィンドウの中央部は、プロジェクトならびにデータファイルとログファイル (あれば) の名前および場所を表示します。ウィンドウの下部は、4Dライセンスフォルダーの名前、ライセンスのタイプ、および、カレント 4Dユーザーの名前を表示します。 - **パス名の表示と選択**: **プログラム** タブでは、ディスク上の一連の親フォルダーを表示するポップアップメニューの形でパス名が示されます: ![](../assets/en/MSC/MSC_popup.png) メニュー項目 (ディスクまたはフォルダー) を選択すると、そのパスが新しいシステムウィンドウで開かれます。 - **パスをコピー** コマンドは、システムのディレクトリ区切り文字を使用して、完全なパス名をクリップボードにテキストとしてコピーします。 - **パスをコピー** コマンドは、システムのディレクトリ区切り文字を使用して、完全なパス名をクリップボードにテキストとしてコピーします。 + **パスをコピー** コマンドは、システムのディレクトリ区切り文字を使用して、完全なパス名をクリップボードにテキストとしてコピーします。**パスをコピー** コマンドは、システムのディレクトリ区切り文字を使用して、完全なパス名をクリップボードにテキストとしてコピーします。 - **ライセンスフォルダー**: - **ライセンスフォルダー** ボタンをクリックすると、新しいシステムウィンドウを開き、アクティブなライセンスフォルダーの中身を表示します。 インストールされた 4D環境用のライセンスファイルはすべてこのフォルダーに格納されていなければなりません。 ファイルを Webブラウザーで開くと、ライセンスの情報が表示されます。 - ライセンスフォルダーの場所はバージョンや OS により異なります。 ウィンドウの中央部は、プロジェクトならびにデータファイルとログファイル (あれば) の名前および場所を表示します。 ウィンドウの下部は、4Dライセンスフォルダーの名前、ライセンスのタイプ、および、カレント 4Dユーザーの名前を表示します。 - ***注**: 上部メニューの "ヘルプ > ライセンスマネージャー..." からアクセスできるダイアログボックスにも同じボタンがあります。* + **ライセンスフォルダー** ボタンをクリックすると、新しいシステムウィンドウを開き、アクティブなライセンスフォルダーの中身を表示します。インストールされた 4D環境用のライセンスファイルはすべてこのフォルダーに格納されていなければなりません。ファイルを Webブラウザーで開くと、ライセンスの情報が表示されます。ライセンスフォルダーの場所はバージョンや OS により異なります。ウィンドウの中央部は、プロジェクトならびにデータファイルとログファイル (あれば) の名前および場所を表示します。 ウィンドウの下部は、4Dライセンスフォルダーの名前、ライセンスのタイプ、および、カレント 4Dユーザーの名前を表示します。***注**: 上部メニューの "ヘルプ > ライセンスマネージャー..." からアクセスできるダイアログボックスにも同じボタンがあります。* ## テーブル @@ -35,14 +32,13 @@ sidebar_label: 情報ページ - **ID**: テーブルの内部番号 - **アドレステーブルサイズ**: 各テーブルのアドレステーブルのサイズ。 アドレステーブルとは、テーブル内で作成される各レコードにつき 1つの要素を保存する内部テーブルのことです。 これはレコードとその物理アドレスをつなげる働きをします。 パフォーマンス上の理由から、レコードが削除されてもリサイズはされず、そのためそのサイズはテーブル内のカレントレコード数とは異なる場合があります。 この差異が著しく大きい場合、"アドレステーブルを圧縮" オプションをチェックした状態でデータ圧縮を実行することで、アドレステーブルサイズを最適化することができます ([圧縮](compact.md) ページを参照してください)。 - ***注**: アドレステーブルサイズとレコード数の差異は、キャッシュフラッシュの途中での事象によるものである可能性もあります。* 削除されたテーブルの名前は括弧付きで表示されます (ゴミ箱の中に残っている場合)。 -- **レコード**: テーブル内の総レコード数。 レコードが破損していたり読み込めなかった場合には、数字の代わりに *Error* が表示されます。 この場合、検証と修復ツールの使用を検討してください。 レコードが破損していたり読み込めなかった場合には、数字の代わりに *Error* が表示されます。 この場合、検証と修復ツールの使用を検討してください。 -- **フィールド**: テーブル内のフィールド数。 非表示のフィールドはカウントされますが、削除されたフィールドはカウントされません。 非表示のフィールドはカウントされますが、削除されたフィールドはカウントされません。 + \***注**: アドレステーブルサイズとレコード数の差異は、キャッシュフラッシュの途中での事象によるものである可能性もあります。\*削除されたテーブルの名前は括弧付きで表示されます (ゴミ箱の中に残っている場合)。 +- **レコード**: テーブル内の総レコード数。 レコードが破損していたり読み込めなかった場合には、数字の代わりに *Error* が表示されます。 この場合、検証と修復ツールの使用を検討してください。レコードが破損していたり読み込めなかった場合には、数字の代わりに *Error* が表示されます。この場合、検証と修復ツールの使用を検討してください。 +- **フィールド**: テーブル内のフィールド数。 非表示のフィールドはカウントされますが、削除されたフィールドはカウントされません。非表示のフィールドはカウントされますが、削除されたフィールドはカウントされません。 - **インデックス**: テーブル内のあらゆるインデックスの数 - **暗号化可能**: チェックされていれば、ストラクチャーレベルにおいてこのテーブルは **暗号化可能** 属性が選択されています (デザインリファレンスマニュアルの [暗号化可能](https://doc.4d.com/4Dv18/4D/18/Table-properties.300-4575566.ja.html#4168557) の項目を参照ください)。 -- **暗号化済み**: チェックされていれば、テーブルのレコードはデータファイルにおいて暗号化されています。 **暗号化済み**: チェックされていれば、テーブルのレコードはデータファイルにおいて暗号化されています。 ***注**: 暗号化可能と暗号化済みオプション間において整合性が取れていない場合、必ず MSC の 暗号化 ページにてデータファイルの暗号化状態を確認してください。* -- **アドレステーブルサイズ**: 各テーブルのアドレステーブルのサイズ。 アドレステーブルとは、テーブル内で作成される各レコードにつき 1つの要素を保存する内部テーブルのことです。 これはレコードとその物理アドレスをつなげる働きをします。 パフォーマンス上の理由から、レコードが削除されてもリサイズはされず、そのためそのサイズはテーブル内のカレントレコード数とは異なる場合があります。 この差異が著しく大きい場合、"アドレステーブルを圧縮" オプションをチェックした状態でデータ圧縮を実行することで、アドレステーブルサイズを最適化することができます ([圧縮](compact.md) ページを参照してください)。 - ***注**: アドレステーブルサイズとレコード数の差異は、キャッシュフラッシュの途中での事象によるものである可能性もあります。* +- **暗号化済み**: チェックされていれば、テーブルのレコードはデータファイルにおいて暗号化されています。**暗号化済み**: チェックされていれば、テーブルのレコードはデータファイルにおいて暗号化されています。 ***注**: 暗号化可能と暗号化済みオプション間において整合性が取れていない場合、必ず MSC の 暗号化 ページにてデータファイルの暗号化状態を確認してください。* +- **アドレステーブルサイズ**: 各テーブルのアドレステーブルのサイズ。アドレステーブルとは、テーブル内で作成される各レコードにつき 1つの要素を保存する内部テーブルのことです。これはレコードとその物理アドレスをつなげる働きをします。パフォーマンス上の理由から、レコードが削除されてもリサイズはされず、そのためそのサイズはテーブル内のカレントレコード数とは異なる場合があります。この差異が著しく大きい場合、"アドレステーブルを圧縮" オプションをチェックした状態でデータ圧縮を実行することで、アドレステーブルサイズを最適化することができます ([圧縮](compact.md) ページを参照してください)。***注**: アドレステーブルサイズとレコード数の差異は、キャッシュフラッシュの途中での事象によるものである可能性もあります。* ## データ @@ -56,6 +52,6 @@ sidebar_label: 情報ページ > このページに表示される情報には、データファイル外に格納されたデータは反映されません (データをデータファイル外に保存 参照)。 -断片化があまりにも進んだファイルはディスク、そしてデータベースのパフォーマンスを低下させます。 使用率が低すぎる場合、4Dは警告アイコンを表示して (このアイコンは情報ページボタンと対応するファイルタイプのタブに表示されます)、圧縮が必要であることを警告します: ![](../assets/en/MSC/MSC_infowarn.png) +断片化があまりにも進んだファイルはディスク、そしてデータベースのパフォーマンスを低下させます。使用率が低すぎる場合、4Dは警告アイコンを表示して (このアイコンは情報ページボタンと対応するファイルタイプのタブに表示されます)、圧縮が必要であることを警告します: ![](../assets/en/MSC/MSC_infowarn.png) 警告アイコンは [圧縮](compact.md) ページボタンにも表示されます: ![](../assets/en/MSC/MSC_compactwarn.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/overview.md index 4ac1b28f87e977..dfcfd8c6b79213 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/overview.md @@ -8,11 +8,11 @@ Maintenance & Security Center (MSC) は、データとストラクチャー **注**: MSC は 4Dリモート接続ではご利用いただけません。 -MSCウィンドウを開く方法は幾つかあります。 アクセスの方法により、"メンテナンス" モードまたは "標準" モードのいずれによってアプリケーションを開くかが決定されます。 メンテナンスモードの場合、4D はプロジェクトを開かず、その参照だけが MSC に供給されます。 標準モードの場合、4D はプロジェクトを開きます。 +MSCウィンドウを開く方法は幾つかあります。アクセスの方法により、"メンテナンス" モードまたは "標準" モードのいずれによってアプリケーションを開くかが決定されます。メンテナンスモードの場合、4D はプロジェクトを開かず、その参照だけが MSC に供給されます。標準モードの場合、4D はプロジェクトを開きます。 ## メンテナンスモードでの表示 -メンテナンスモードでは、MSCウィンドウだけが表示されます (4Dアプリケーションはプロジェクトを開きません)。 つまり、損傷が激しいため 4D が標準モードで開けないプロジェクトにもアクセスできるということです。 さらに、特定の操作 (圧縮、修復など) はプロジェクトをメンテナンスモードで開くことを要求します ([アクセス権](#アクセス権) 参照)。 +メンテナンスモードでは、MSCウィンドウだけが表示されます (4Dアプリケーションはプロジェクトを開きません)。つまり、損傷が激しいため 4D が標準モードで開けないプロジェクトにもアクセスできるということです。さらに、特定の操作 (圧縮、修復など) はプロジェクトをメンテナンスモードで開くことを要求します ([アクセス権](#アクセス権) 参照)。 次の 2つの場所から、MSC をメインテナンスモードで開くことができます: @@ -21,11 +21,11 @@ MSCウィンドウを開く方法は幾つかあります。 アクセスの方 ![](../assets/en/MSC/MSC_standardOpen.png) - **ヘルプ > メンテナンス&セキュリティセンター (MSC)** メニュー、または、ツールバーの **MSC** ボタンの使用 (プロジェクトが開かれていない状態で) ![](../assets/en/MSC/mscicon.png) - この機能を呼び出すと、標準のファイルを開くダイアログボックスが表示され、検査する *.4DProject* または *.4dz* ファイルを指定できます。 プロジェクトは開かれません。 プロジェクトは開かれません。 + この機能を呼び出すと、標準のファイルを開くダイアログボックスが表示され、検査する *.4DProject* または *.4dz* ファイルを指定できます。 プロジェクトは開かれません。プロジェクトは開かれません。 ## 標準モードでの表示 -標準モードではプロジェクトが開いています。 このモードでは、特定の保守機能を使用できません。 この場合に MSCウィンドウを開く方法は幾つかあります。 +標準モードではプロジェクトが開いています。このモードでは、特定の保守機能を使用できません。この場合に MSCウィンドウを開く方法は幾つかあります。 - **ヘルプ>メンテナンス&セキュリティセンター (MSC)** メニュー、または、ツールバーの **MSC** ボタンの使用: ![](../assets/en/MSC/mscicon.png) @@ -37,5 +37,5 @@ MSCウィンドウを開く方法は幾つかあります。 アクセスの方 特定の MSC機能は、MSC が開かれたモードによっては利用できません: - バックアップ機能は、プロジェクトが開かれている状態でしか利用できません (MSC は標準モードで開かれている必要があります)。 -- データの圧縮、ロールバック、復元、修復、および暗号化の機能は、開いていないデータファイルでのみ使用できます (MSC はメンテナンスモードで開かれていなければなりません) 。 プロジェクトが標準モードで開かれている時にこれらの機能を試みた場合は、メンテナンスモードでアプリケーション再起動を促すダイアログボックスが表示されます。 -- 暗号化されたデータベースにおいては、暗号化されたデータまたは .journal ファイルへのアクセスには有効なデータキーが提供されている必要があります ([暗号化ページ](encrypt.md) 参照)。 提供されていない場合、暗号化されたデータは見ることができません。 提供されていない場合、暗号化されたデータは見ることができません。 +- データの圧縮、ロールバック、復元、修復、および暗号化の機能は、開いていないデータファイルでのみ使用できます (MSC はメンテナンスモードで開かれていなければなりません) 。プロジェクトが標準モードで開かれている時にこれらの機能を試みた場合は、メンテナンスモードでアプリケーション再起動を促すダイアログボックスが表示されます。 +- 暗号化されたデータベースにおいては、暗号化されたデータまたは .journal ファイルへのアクセスには有効なデータキーが提供されている必要があります ([暗号化ページ](encrypt.md) 参照)。 提供されていない場合、暗号化されたデータは見ることができません。提供されていない場合、暗号化されたデータは見ることができません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md index 8acf406169b802..04c7ab0f3e95a1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/repair.md @@ -4,44 +4,44 @@ title: 修復ページ sidebar_label: 修復ページ --- -このページは、データファイルが損傷を受けたとき、それを修復するために使用します。 一般的にこれらの機能は、4Dの起動時や MSC による [検査](verify.md) の結果アプリケーションに損傷を見つけたときに、4D技術者の監督下で実行します。 +このページは、データファイルが損傷を受けたとき、それを修復するために使用します。一般的にこれらの機能は、4Dの起動時や MSC による [検査](verify.md) の結果アプリケーションに損傷を見つけたときに、4D技術者の監督下で実行します。 -**警告**: 修復操作は毎回オリジナルファイルのコピーを伴うため、アプリケーションフォルダーのサイズが大きくなります。 アプリケーションのサイズが過剰に増加しな いよう、これを考慮することが大切です (とくに、4Dアプリケーションがパッケージとして表示される macOS の場合)。 パッケージのサイズを小さく保つには、パッケージ内オリジナルファイルのコピーを手動で削除することも役立ちます。 +**警告**: 修復操作は毎回オリジナルファイルのコピーを伴うため、アプリケーションフォルダーのサイズが大きくなります。アプリケーションのサイズが過剰に増加しな いよう、これを考慮することが大切です (とくに、4Dアプリケーションがパッケージとして表示される macOS の場合)。パッケージのサイズを小さく保つには、パッケージ内オリジナルファイルのコピーを手動で削除することも役立ちます。 -> 修復はメンテナンスモードでのみ可能です。 標準モードでこの操作を実行しようとすると、警告ダイアログが表示され、アプリケーションを終了してメンテナンスモードで再起動することを知らせます。 +> 修復はメンテナンスモードでのみ可能です。標準モードでこの操作を実行しようとすると、警告ダイアログが表示され、アプリケーションを終了してメンテナンスモードで再起動することを知らせます。 -> データベースが暗号化されている場合、復号化と暗号化のステップが修復過程に含まれるため、カレントデータの暗号化キーが必要になります。 有効な暗号化キーがまだ提供されていない場合、パスフレーズ、あるいは暗号化キーを要求するダイアログが表示されます (暗号化ページ参照)。 +> データベースが暗号化されている場合、復号化と暗号化のステップが修復過程に含まれるため、カレントデータの暗号化キーが必要になります。有効な暗号化キーがまだ提供されていない場合、パスフレーズ、あるいは暗号化キーを要求するダイアログが表示されます (暗号化ページ参照)。 ## データファイル修復 ### 修復するデータ -カレントデータファイルのパス名。 **[...]** ボタンを使って、他のデータファイルを指定することができます。 このボタンをクリックすると標準のファイルを開くダイアログが表示され、修復するデータファイルを選択することができます。 [標準の修復](#標準の修復) を実行する場合、開かれたストラクチャーに対応するデータファイルを選択しなければなりません。 [レコードヘッダーによる再生](#レコードヘッダーによる再生) を実行する場合、どのデータファイルでも選択できます。 このダイアログを受け入れると、ウィンドウには修復対象のファイルのパス名が表示されます。 +カレントデータファイルのパス名。 **[...]** ボタンを使って、他のデータファイルを指定することができます。このボタンをクリックすると標準のファイルを開くダイアログが表示され、修復するデータファイルを選択することができます。[標準の修復](#標準の修復) を実行する場合、開かれたストラクチャーに対応するデータファイルを選択しなければなりません。[レコードヘッダーによる再生](#レコードヘッダーによる再生) を実行する場合、どのデータファイルでも選択できます。このダイアログを受け入れると、ウィンドウには修復対象のファイルのパス名が表示されます。 ### オリジナルをここに移動 -デフォルトで修復処理の前に元のデータファイルが複製されます。 このファイルは、アプリケーションフォルダーの "Replaced files (repairing)" サブフォルダーに配置されます。 二つ目の **[...]** ボタンを使用して、複製ファイルの保存先を変更できます。 とくに大きなデータファイルを修復する際、コピー先を別のディスクに変更するためにこのオプションを使用します。 +デフォルトで修復処理の前に元のデータファイルが複製されます。このファイルは、アプリケーションフォルダーの "Replaced files (repairing)" サブフォルダーに配置されます。二つ目の **[...]** ボタンを使用して、複製ファイルの保存先を変更できます。とくに大きなデータファイルを修復する際、コピー先を別のディスクに変更するためにこのオプションを使用します。 ### 修復済ファイル -4Dは元のファイルの場所に空のデータファイルを新規作成します。 元のファイルは、"\Replaced Files (Repairing) {日付} {時刻}"という名前のフォルダーがオリジナルの移動先に指定したフォルダー内に作成され (デフォルトはアプリケーションフォルダー)、そこに移動されます。 修復されたデータは、新規作成された空のファイルに格納されます。 +4Dは元のファイルの場所に空のデータファイルを新規作成します。元のファイルは、"\Replaced Files (Repairing) {日付} {時刻}"という名前のフォルダーがオリジナルの移動先に指定したフォルダー内に作成され (デフォルトはアプリケーションフォルダー)、そこに移動されます。修復されたデータは、新規作成された空のファイルに格納されます。 ## 標準の修復 -少数のレコードやインデックスが損傷を受けているケース (アドレステーブルは損傷を受けていない) では、標準の修復を選択します。 データは圧縮および修復されます。 このタイプの修復をおこなうには、データファイルとストラクチャーファイルが対応していなければなりません。 +少数のレコードやインデックスが損傷を受けているケース (アドレステーブルは損傷を受けていない) では、標準の修復を選択します。データは圧縮および修復されます。このタイプの修復をおこなうには、データファイルとストラクチャーファイルが対応していなければなりません。 -修復操作が完了すると、MSCの "修復" ページが表示され、修復の結果が表示されます。 修復に成功していれば、その旨のメッセージが表示されます。 その場合、アプリケーションをそのまま使い始めることができます。 +修復操作が完了すると、MSCの "修復" ページが表示され、修復の結果が表示されます。修復に成功していれば、その旨のメッセージが表示されます。その場合、アプリケーションをそのまま使い始めることができます。 ![](../assets/en/MSC/MSC_RepairOK.png) ## レコードヘッダーによる再生 このローレベルな修復オプションは、データファイルが大きく損傷していて、バックアップの復元や標準の修復など、他の手段では回復できなかった場合にのみ使用します。 -4Dのレコードはサイズが可変です。 故に、そのレコードをロードするには、ディスク上のどこに格納されているか、その場所を "アドレステーブル" という専用テーブルに記録しておく必要があります。 プログラムは、インデックスやアドレステーブルを経由して、レコードのアドレスにアクセスします。 レコードやインデックスのみが損傷を受けている場合、標準の修復を使用すれば通常は問題が解決されます。 しかし、アドレステーブル自身が損傷を受けている場合には、これを再構築しなくてはならないため、より高度な修復作業が必要となります。 これをおこなうために、MSC は各レコードのヘッダーに位置するマーカーを使用します。 マーカーがレコード情報のサマリーと比較されることにより、アドレステーブルが再構築可能となります。 +4Dのレコードはサイズが可変です。 故に、そのレコードをロードするには、ディスク上のどこに格納されているか、その場所を "アドレステーブル" という専用テーブルに記録しておく必要があります。プログラムは、インデックスやアドレステーブルを経由して、レコードのアドレスにアクセスします。レコードやインデックスのみが損傷を受けている場合、標準の修復を使用すれば通常は問題が解決されます。しかし、アドレステーブル自身が損傷を受けている場合には、これを再構築しなくてはならないため、より高度な修復作業が必要となります。これをおこなうために、MSC は各レコードのヘッダーに位置するマーカーを使用します。マーカーがレコード情報のサマリーと比較されることにより、アドレステーブルが再構築可能となります。 > ストラクチャーのテーブルプロパティで **レコードを完全に削除** オプションを解除していると、ヘッダーマーカーを使用した復旧によって削除したはずのレコードが復活する原因となります。 > -> ヘッダーによる再生において、整合性の制約は考慮されません。 この処理をおこなった後、重複不可フィールドに重複する値が現れたり、**NULL値を許可しない** に定義したフィールドに NULL値が現れたりするかもしれません。 +> ヘッダーによる再生において、整合性の制約は考慮されません。この処理をおこなった後、重複不可フィールドに重複する値が現れたり、**NULL値を許可しない** に定義したフィールドに NULL値が現れたりするかもしれません。 **スキャンおよび修復...** ボタンをクリックすると、4Dはデータファイルを完全にスキャンします。 スキャンを完了すると、結果が以下のウィンドウに表示されます: スキャンを完了すると、結果が以下のウィンドウに表示されます: @@ -51,28 +51,25 @@ sidebar_label: 修復ページ "データファイル中で見つかったレコード" エリアには 2つのリストがあり、データスキャン結果の概要が表示されます。 -- 左のリストには、データファイルスキャンの情報が表示されます。 各行には、データファイル中の再生可能なレコードのグループが表示されます: +- 左のリストには、データファイルスキャンの情報が表示されます。各行には、データファイル中の再生可能なレコードのグループが表示されます: - **順番** の列には、レコードグループの再生順が表示されます。 - **カウント** 列には、グループに含まれるレコード数が表示されます。 - - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 - - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 + - **割当先テーブル** 列には、識別されたレコードのグループに割り当てられたテーブルの名前が表示されます。 割り当てられたテーブルの名前は自動で緑色で表示されます。 割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。割り当てられたテーブルの名前は自動で緑色で表示されます。割り当てされなかったグループ、つまりどのレコードにも関連づけることができなかったテーブルは赤色で表示されます。 + - **再生** 列では、レコードを再生するかどうかを各グループごとに指定できます。 デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。デフォルトで、テーブルに割り当てられるすべてのグループが選択されています。 - 右側のリストには、プロジェクトファイルのテーブルが表示されます。 ### 手動による割り当て -アドレステーブルが損傷を受けているため、テーブルに割り当てることのできないレコードグループがある場合、それらを手動で割り当てることができます。 -これにはまず、左側のリストの中で割り当てられていないレコードグループを選択します。 グループ先頭の複数レコードの内容が "レコードの内容" エリアにプレビューされるため、それがどのテーブルのレコードか判断しやすくなります: +アドレステーブルが損傷を受けているため、テーブルに割り当てることのできないレコードグループがある場合、それらを手動で割り当てることができます。これにはまず、左側のリストの中で割り当てられていないレコードグループを選択します。グループ先頭の複数レコードの内容が "レコードの内容" エリアにプレビューされるため、それがどのテーブルのレコードか判断しやすくなります: ![](../assets/en/MSC/mscrepair3.png) -次に "割り当てられていないテーブル" リストから、グループを割り当てるテーブルを選択し、**テーブルを識別** ボタンをクリックします。 割り当てのためにドラッグ&ドロップを使用することもできます。 -結果そのレコードグループは選択したテーブルに割り当てられ、そのテーブルのレコードとして再生されます。 手動で割り当てられたテーブルはリスト中黒色で表示されます。 -**レコードを無視する** ボタンをクリックすると、レコードグループに対するテーブルの割り当てを手動で解除できます。 +次に "割り当てられていないテーブル" リストから、グループを割り当てるテーブルを選択し、**テーブルを識別** ボタンをクリックします。割り当てのためにドラッグ&ドロップを使用することもできます。結果そのレコードグループは選択したテーブルに割り当てられ、そのテーブルのレコードとして再生されます。手動で割り当てられたテーブルはリスト中黒色で表示されます。**レコードを無視する** ボタンをクリックすると、レコードグループに対するテーブルの割り当てを手動で解除できます。 ## ログファイルを開く -修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。 このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。 このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 +修復が完了すると、4D はプロジェクトの Logsフォルダーにログファイルを生成します。このファイルを使用すると実行されたオペレーションをすべて閲覧することができます。このファイルは XML形式で作成され、ApplicationName_Repair_Log_yyyy-mm-dd hh-mm-ss.xml というファイル名がつけられます。 - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/restore.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/restore.md index 745118d77dd02f..654ac2780e2dc8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/restore.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/restore.md @@ -10,54 +10,54 @@ sidebar_label: 復元ページ > 4D の自動復元機能は、アプリケーション復元後に場合に応じてデータログファイルを統合します。 -ウィンドウの左側には、アプリケーションの既存のバックアップが表示されます。 **ブラウズ...** ボタンをクリックして、他の場所にあるアーカイブファイルを選択することもできます。 選択したアーカイブはリストに追加されます。 +ウィンドウの左側には、アプリケーションの既存のバックアップが表示されます。**ブラウズ...** ボタンをクリックして、他の場所にあるアーカイブファイルを選択することもできます。選択したアーカイブはリストに追加されます。 このリストからバックアップファイルを選択すると、ウィンドウの右側にはそのバックアップについての説明が表示されます: -- **パス**: 選択されたバックアップファイルの完全パス名。 表示 ボタンをクリックすると、システムウィンドウでバックアップファイルが表示されます。 表示 ボタンをクリックすると、システムウィンドウでバックアップファイルが表示されます。 +- **パス**: 選択されたバックアップファイルの完全パス名。 表示 ボタンをクリックすると、システムウィンドウでバックアップファイルが表示されます。表示 ボタンをクリックすると、システムウィンドウでバックアップファイルが表示されます。 - **日付と時刻**: バックアップの日付と時刻 -- **内容**: バックアップファイルの内容。 各項目の右側にはチェックボックスがあり、復元をおこなうかどうか、ファイルごとに選択できます。 **すべてを選択する** や **すべての選択をはずす** ボタンを利用して、復元するファイルの設定をおこなうこともできます。 -- **復元されたファイルの保存先フォルダー**: 復元されたファイルが配置されるフォルダー。 デフォルトで 4D は Projectフォルダーと同階層にアーカイブ名 (拡張子なし) のフォルダーを作成し、そこにファイルを復元します。 この場所を変更するには **[...]** をクリックして復元ファイルの配置場所を指定します。 +- **内容**: バックアップファイルの内容。各項目の右側にはチェックボックスがあり、復元をおこなうかどうか、ファイルごとに選択できます。**すべてを選択する** や **すべての選択をはずす** ボタンを利用して、復元するファイルの設定をおこなうこともできます。 +- **復元されたファイルの保存先フォルダー**: 復元されたファイルが配置されるフォルダー。デフォルトで 4D は Projectフォルダーと同階層にアーカイブ名 (拡張子なし) のフォルダーを作成し、そこにファイルを復元します。この場所を変更するには **[...]** をクリックして復元ファイルの配置場所を指定します。 **復元** ボタンをクリックすると、選択した項目の復元処理が実行されます。 ## 複数のログファイルを連続して統合する -**復元後にひとつ以上のログファイルを統合** オプションを使用して、アプリケーションに複数のログファイルを統合することができます。 たとえば、4つのバックアップに対応する 4つのログファイルアーカイブがある場合、最初のバックアップを復元して、ログアーカイブを一つずつ統合することが可能です。 これにより、たとえば最新のバックアップファイルを失った場合でも、データファイルを復旧することができます。 たとえば、4つのバックアップに対応する 4つのログファイルアーカイブがある場合、最初のバックアップを復元して、ログアーカイブを一つずつ統合することが可能です。 これにより、たとえば最新のバックアップファイルを失った場合でも、データファイルを復旧することができます。 +**復元後にひとつ以上のログファイルを統合** オプションを使用して、アプリケーションに複数のログファイルを統合することができます。 たとえば、4つのバックアップに対応する 4つのログファイルアーカイブがある場合、最初のバックアップを復元して、ログアーカイブを一つずつ統合することが可能です。 これにより、たとえば最新のバックアップファイルを失った場合でも、データファイルを復旧することができます。たとえば、4つのバックアップに対応する 4つのログファイルアーカイブがある場合、最初のバックアップを復元して、ログアーカイブを一つずつ統合することが可能です。これにより、たとえば最新のバックアップファイルを失った場合でも、データファイルを復旧することができます。 -このオプションが選択されていると、4Dは復元後に標準のファイルを開くダイアログを表示します。 ファイルを開くダイアログは、キャンセルされるまで統合の都度表示されます。 +このオプションが選択されていると、4Dは復元後に標準のファイルを開くダイアログを表示します。ファイルを開くダイアログは、キャンセルされるまで統合の都度表示されます。 ## 暗号化されたデータベースの復元 -カレントアプリケーションと複数のバックアップファイル (.4BK) やログファイル (.4BL) の間で、データ暗号化キー (パスフレーズ) が変更されている可能性があることに注意が必要です。 合致した暗号化キーは常に必要となります。 +カレントアプリケーションと複数のバックアップファイル (.4BK) やログファイル (.4BL) の間で、データ暗号化キー (パスフレーズ) が変更されている可能性があることに注意が必要です。合致した暗号化キーは常に必要となります。 暗号化されたデータベースのバックアップを復元し、カレントログファイルを統合したい場合、以下の点に注意してください: - 古いパスフレーズを使用してバックアップを復元した場合、そのパスフレーズは次回のデータベース起動時に必要となります。 -- 暗号化のあと、暗号化されたデータファイルを開く際に、バックアップが実行され新しいログファイルが作成されます。 そのため、バックアップファイル (.4BK) を特定のキーで復号化した後、異なるキーで暗号化されたログファイル (.4BL) をそれに統合することはできません。 +- 暗号化のあと、暗号化されたデータファイルを開く際に、バックアップが実行され新しいログファイルが作成されます。そのため、バックアップファイル (.4BK) を特定のキーで復号化した後、異なるキーで暗号化されたログファイル (.4BL) をそれに統合することはできません。 以下の表は、複数のキーを使用したバックアップ/復元操作における過程の一例をまとめたものです: -| 演算 | 生成されるファイル | 説明 | -| ------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 新規データファイル作成 | | | -| 新規データ追加 (レコード番号1番) | | | -| データベースをバックアップ | 0000.4BL および 0001.4BK | | -| データを追加 (レコード番号2番) | | | -| データベースをバックアップ | 0001.4BL および 0002.4BK | | -| データを追加 (レコード番号3番) | | | -| Key1を使用してデータファイルを暗号化 | 0003.4BK ファイル (Key1で暗号化) | 暗号化をすると (ログファイルも含め) 元のファイルは "Replaced files (Encrypting) YYY-DD-MM HH-MM-SS" というフォルダーに保存されます。 暗号化されたデータファイルを開く際、新しいログファイルが作成され、このログファイルを有効化するためにバックアップ処理がおこなわれます。 | -| データを追加 (レコード番号4番) | | | -| データベースをバックアップ | 0003.4BL および 0004.4BK ファイル (Key1で暗号化) | 0003.4BK を復元し、0003.4BL を統合することが可能です | -| データを追加 (レコード番号5番) | | | -| データベースをバックアップ | 0004.4BL および 0005.4BK ファイル (Key1で暗号化) | 0003.4BK を復元し、0003.4BL + 0004.4BL を統合することが可能です。 また、0004.4BK を復元し、0004.4BL を統合することが可能です。 | -| データを追加 (レコード番号6番) | | | -| Key2を使用してデータファイルを暗号化 | 0006.4BK ファイル (Key2で暗号化) | 暗号化をすると (ログファイルも含め) 元のファイルは "Replaced files (Encrypting) YYY-DD-MM HH-MM-SS" というフォルダーに保存されます。 暗号化されたデータファイルを開く際、新しいログファイルが作成され、このログファイルを有効化するためにバックアップ処理がおこなわれます。 | -| データを追加 (レコード番号7番) | | | -| データベースをバックアップ | 0006.4BL および 0007.4BK ファイル (Key2で暗号化) | 0006.4BK を復元し、0006.4BL を統合することが可能です | -| データを追加 (レコード番号8番) | | | -| データベースをバックアップ | 0007.4BL および 0008.4BK ファイル (Key2で暗号化) | 0006.4BK を復元し、0006.4BL + 0007.4BL を統合することが可能です。 また、0007.4BK を復元し、0007.4BL を統合することが可能です。 | - -> バックアップを復元し、一つ以上の .4BL ファイルを統合する場合、復元された .4BK ファイルおよび .4BL ファイルは同じ暗号化キーを持っていなければなりません。 統合プロセスの間、.4BL ファイルが統合される際に有効な暗号化キーが 4Dキーチェーンに見つからなかった場合、エラーが生成されます。 +| 演算 | 生成されるファイル | 説明 | +| ------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 新規データファイル作成 | | | +| 新規データ追加 (レコード番号1番) | | | +| データベースをバックアップ | 0000.4BL および 0001.4BK | | +| データを追加 (レコード番号2番) | | | +| データベースをバックアップ | 0001.4BL および 0002.4BK | | +| データを追加 (レコード番号3番) | | | +| Key1を使用してデータファイルを暗号化 | 0003.4BK ファイル (Key1で暗号化) | 暗号化をすると (ログファイルも含め) 元のファイルは "Replaced files (Encrypting) YYY-DD-MM HH-MM-SS" というフォルダーに保存されます。暗号化されたデータファイルを開く際、新しいログファイルが作成され、このログファイルを有効化するためにバックアップ処理がおこなわれます。 | +| データを追加 (レコード番号4番) | | | +| データベースをバックアップ | 0003.4BL および 0004.4BK ファイル (Key1で暗号化) | 0003.4BK を復元し、0003.4BL を統合することが可能です | +| データを追加 (レコード番号5番) | | | +| データベースをバックアップ | 0004.4BL および 0005.4BK ファイル (Key1で暗号化) | 0003.4BK を復元し、0003.4BL + 0004.4BL を統合することが可能です。また、0004.4BK を復元し、0004.4BL を統合することが可能です。 | +| データを追加 (レコード番号6番) | | | +| Key2を使用してデータファイルを暗号化 | 0006.4BK ファイル (Key2で暗号化) | 暗号化をすると (ログファイルも含め) 元のファイルは "Replaced files (Encrypting) YYY-DD-MM HH-MM-SS" というフォルダーに保存されます。暗号化されたデータファイルを開く際、新しいログファイルが作成され、このログファイルを有効化するためにバックアップ処理がおこなわれます。 | +| データを追加 (レコード番号7番) | | | +| データベースをバックアップ | 0006.4BL および 0007.4BK ファイル (Key2で暗号化) | 0006.4BK を復元し、0006.4BL を統合することが可能です | +| データを追加 (レコード番号8番) | | | +| データベースをバックアップ | 0007.4BL および 0008.4BK ファイル (Key2で暗号化) | 0006.4BK を復元し、0006.4BL + 0007.4BL を統合することが可能です。また、0007.4BK を復元し、0007.4BL を統合することが可能です。 | + +> バックアップを復元し、一つ以上の .4BL ファイルを統合する場合、復元された .4BK ファイルおよび .4BL ファイルは同じ暗号化キーを持っていなければなりません。統合プロセスの間、.4BL ファイルが統合される際に有効な暗号化キーが 4Dキーチェーンに見つからなかった場合、エラーが生成されます。 > > 連続した複数のデータキーを同じ外部デバイスに保存していた場合、バックアップの復元とログファイルの統合をおこなうと、デバイスが接続されていれば合致するキーの検索が自動的におこなわれます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/rollback.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/rollback.md index 87bd5fd0da14ff..4dde73a1590d0d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/rollback.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/rollback.md @@ -4,7 +4,7 @@ title: ロールバックページ sidebar_label: ロールバックページ --- -このページは、データファイルに対して実行された操作をロールバックする機能を提供します。 この機能は、複数レベルに適用された取り消し機能に似ています。 この機能はとくに、間違ってデータベースレコードを削除した場合に便利です。 +このページは、データファイルに対して実行された操作をロールバックする機能を提供します。この機能は、複数レベルに適用された取り消し機能に似ています。この機能はとくに、間違ってデータベースレコードを削除した場合に便利です。 この機能は、アプリケーションのログファイルが有効なときにのみ使用できます。 @@ -14,12 +14,12 @@ sidebar_label: ロールバックページ 操作リストの内容と動作は [ログ解析](analysis.md) ページのものと同じです。 -操作のロールバックをおこなうには、それ以降の全操作をキャンセルする行を選択します。 選択された行が保持される最後の操作になります。 たとえば削除をキャンセルしたい場合、その削除操作のひとつ前の行を選択します。 すると、削除操作とそれ以降の処理がすべてキャンセルされます。 +操作のロールバックをおこなうには、それ以降の全操作をキャンセルする行を選択します。選択された行が保持される最後の操作になります。たとえば削除をキャンセルしたい場合、その削除操作のひとつ前の行を選択します。すると、削除操作とそれ以降の処理がすべてキャンセルされます。 ![](../assets/en/MSC/MSC_rollback2.png) 次に、**ロールバック** ボタンをクリックします。 4Dは処理を続行してもよいか、確認してきます。 **OK** をクリックすると、データは選択された行の状態に戻ります。 -アーカイブされたファイルから復旧したデータベースに対してロールバックをおこなう場合には、ウィンドウの下部にあるメニューを使用して適用するログファイルを選択できます。 この場合、アーカイブに対応するログファイルを指定しなければなりません。 +アーカイブされたファイルから復旧したデータベースに対してロールバックをおこなう場合には、ウィンドウの下部にあるメニューを使用して適用するログファイルを選択できます。この場合、アーカイブに対応するログファイルを指定しなければなりません。 -ロールバックは次のように動作します: ユーザーが **ロールバック** ボタンをクリックすると、4Dはカレントデータベースを閉じ、最新のバックアップからデータベースデータの復元をおこないます。 復元されたデータベースが開かれ、4Dはログファイル中で選択された操作までを統合します。 データベースがまだ保存されていない場合、4Dは空のデータファイルを使います。 復元されたデータベースが開かれ、4Dはログファイル中で選択された操作までを統合します。 データベースがまだ保存されていない場合、4Dは空のデータファイルを使います。 \ No newline at end of file +ロールバックは次のように動作します: ユーザーが **ロールバック** ボタンをクリックすると、4Dはカレントデータベースを閉じ、最新のバックアップからデータベースデータの復元をおこないます。 復元されたデータベースが開かれ、4Dはログファイル中で選択された操作までを統合します。 データベースがまだ保存されていない場合、4Dは空のデータファイルを使います。復元されたデータベースが開かれ、4Dはログファイル中で選択された操作までを統合します。データベースがまだ保存されていない場合、4Dは空のデータファイルを使います。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/verify.md b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/verify.md index 194a16cab224e4..0ffe57c8744831 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/MSC/verify.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/MSC/verify.md @@ -4,14 +4,13 @@ title: 検査ページ sidebar_label: 検査ページ --- -このページでは、データおよび構造上の整合性を検査できます。 検査は、レコードおよびインデックスについて実行できます。 -この機能は検査のみをおこないます。 エラーが見つかり修復が必要な場合は [修復ページ](repair.md) を使用するよう表示されます。 +このページでは、データおよび構造上の整合性を検査できます。検査は、レコードおよびインデックスについて実行できます。この機能は検査のみをおこないます。エラーが見つかり修復が必要な場合は [修復ページ](repair.md) を使用するよう表示されます。 ## アクション このページには、検査機能に直接アクセスするための、次のアクションボタンが置かれています。 -> データベースが暗号化されている場合、検査の中には暗号化されたデータの整合性の評価も含まれます。 有効なデータキーがまだ提供されていない場合、パスフレーズ、あるいはデータキーを要求するダイアログが表示されます。 +> データベースが暗号化されている場合、検査の中には暗号化されたデータの整合性の評価も含まれます。有効なデータキーがまだ提供されていない場合、パスフレーズ、あるいはデータキーを要求するダイアログが表示されます。 - **レコードとインデックスを検査**: 全体のデータ検査処理を開始します。 - **レコードのみを検査**: レコードのみの検査処理を開始します (インデックスは検査されません)。 @@ -21,7 +20,7 @@ sidebar_label: 検査ページ ## ログファイルを開く -要求された検査に関係なく、4D はアプリケーションの `Logs` フォルダーにログファイルを生成します。 このファイルには実行された検査の内容が記録され、エラーがあればそれも示されます。問題がない場合は [OK] が表示されます。 このファイルは XML形式で、ファイル名は *ApplicationName***Verify_Log***yyyy-mm-dd hh-mm-ss*.xml となり、それぞれ以下の要素が入ります: このファイルには実行された検査の内容が記録され、エラーがあればそれも示されます。 問題がない場合は [OK] が表示されます。 このファイルは XML形式で、ファイル名は *ApplicationName***Verify_Log***yyyy-mm-dd hh-mm-ss*.xml となり、それぞれ以下の要素が入ります: +要求された検査に関係なく、4D はアプリケーションの `Logs` フォルダーにログファイルを生成します。 このファイルには実行された検査の内容が記録され、エラーがあればそれも示されます。問題がない場合は [OK] が表示されます。 このファイルは XML形式で、ファイル名は *ApplicationName***Verify_Log***yyyy-mm-dd hh-mm-ss*.xml となり、それぞれ以下の要素が入ります: このファイルには実行された検査の内容が記録され、エラーがあればそれも示されます。 問題がない場合は [OK] が表示されます。このファイルは XML形式で、ファイル名は *ApplicationName***Verify_Log***yyyy-mm-dd hh-mm-ss*.xml となり、それぞれ以下の要素が入ります: - *ApplicationName* は拡張子を除いたプロジェクトファイルの名前です (例: "Invoices" 等) - *yyyy-mm-dd hh-mm-ss* はファイルのタイムスタンプです。これはローカルのシステム時間でメンテナンスオペレーションが開始された時刻に基づいています (例: "2019-02-11 15-20-45")。 @@ -36,9 +35,9 @@ sidebar_label: 検査ページ 検査する項目を指定することにより、検査処理にかかる時間を短縮できます。 -リストには、データベースの全テーブルが表示されます。 各テーブルに対して、検査対象をレコードやインデックスに限定できます。 三角形のアイコンをクリックしてテーブルまたはインデックス付フィールドの内容を展開し、要求に応じてチェックボックスにチェックを入れたり解除したりします。 デフォルトでは、すべての項目にチェックが入っています。 **すべて選択**、**すべての選択をはずす**、**すべてのレコード** および **すべてのインデックス** のショートカットボタンも使用できます。 +リストには、データベースの全テーブルが表示されます。各テーブルに対して、検査対象をレコードやインデックスに限定できます。三角形のアイコンをクリックしてテーブルまたはインデックス付フィールドの内容を展開し、要求に応じてチェックボックスにチェックを入れたり解除したりします。デフォルトでは、すべての項目にチェックが入っています。**すべて選択**、**すべての選択をはずす**、**すべてのレコード** および **すべてのインデックス** のショートカットボタンも使用できます。 -テーブルの各行に対して、"アクション" カラムは実行する操作を表示します。 テーブルが展開されると、"レコード" および "インデックスフィールド" の行は関連する項目の数を表示します。 +テーブルの各行に対して、"アクション" カラムは実行する操作を表示します。テーブルが展開されると、"レコード" および "インデックスフィールド" の行は関連する項目の数を表示します。 "ステータス" カラムは、記号を使用して各項目の検査ステータスを表示します: @@ -52,4 +51,4 @@ sidebar_label: 検査ページ **ログファイルを開く** ボタンをクリックすると、マシンのデフォルトブラウザーを使用してログファイルを表示します (上記の [ログファイルを開く](#ログファイルを開く) 参照)。 -> 標準ページは、詳細ページでおこなわれた変更はまったく考慮しません。 標準ページの検査ボタンをクリックすると、すべての項目が検査されます。 逆に、詳細ページでおこなわれた設定は、セッションからセッションへと保持されます。 +> 標準ページは、詳細ページでおこなわれた変更はまったく考慮しません。 標準ページの検査ボタンをクリックすると、すべての項目が検査されます。逆に、詳細ページでおこなわれた設定は、セッションからセッションへと保持されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/bars.md b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/bars.md index a6627a0515aa2d..f03351b566e274 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/bars.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/bars.md @@ -3,28 +3,26 @@ id: bars title: メニューバーの管理 --- -メニューバーはカスタムアプリケーションにおいて主要なインターフェースを提供します。 各カスタムアプリケーションにおいて、最低1つのメニューを添付したメニューバーを1つ作成しなければなりません。 デフォルトで、メニューバー#1 がアプリケーションモードで表示されます。 `SET MENU BAR` コマンドを使用して、メニューバーを変更することができます。 +メニューバーはカスタムアプリケーションにおいて主要なインターフェースを提供します。各カスタムアプリケーションにおいて、最低1つのメニューを添付したメニューバーを1つ作成しなければなりません。デフォルトで、メニューバー#1 がアプリケーションモードで表示されます。 `SET MENU BAR` コマンドを使用して、メニューバーを変更することができます。 各メニューバーにはカスタムスプラッシュスクリーンを関連付けることができます。またメニューバーとスプラッシュスクリーンはプレビューすることができます。 ## スプラッシュスクリーン -各メニューバーにカスタムスラッシュスクリーンを関連付けることにより、アピアランスを拡張できます。 スプラッシュスクリーンを含むウィンドウは、メニューバーが表示されるとき、その下に表示されます。 ロゴなどのピクチャーを表示できます。 デフォルトで、4D はスプラッシュスクリーンに 4D ロゴを表示します: +各メニューバーにカスタムスラッシュスクリーンを関連付けることにより、アピアランスを拡張できます。スプラッシュスクリーンを含むウィンドウは、メニューバーが表示されるとき、その下に表示されます。ロゴなどのピクチャーを表示できます。デフォルトで、4D はスプラッシュスクリーンに 4D ロゴを表示します: ![](../assets/en/Menus/splash1.png) -任意の画像編集アプリケーションで作成したピクチャーをスプラッシュスクリーンで使用できます。 クリップボードにコピーした画像、あるいはハードディスク上の画像を使用できます。 4D がサポートする標準のピクチャータイプの画像を使用できます。 +任意の画像編集アプリケーションで作成したピクチャーをスプラッシュスクリーンで使用できます。クリップボードにコピーした画像、あるいはハードディスク上の画像を使用できます。 4D がサポートする標準のピクチャータイプの画像を使用できます。 -スプラッシュスクリーンピクチャーはメニューエディターでのみ設定できます: まず、カスタムスプラッシュスクリーンを割り当てたいメニューバーを選択します。 ウィンドウ右側に"背景画像"エリアが表示されます。 -ディスクに保存されたピクチャーを直接開くには、**開く** ボタンをクリックするか、“背景画像” エリアをクリックします。 ポップアップメニューが表示されます: +スプラッシュスクリーンピクチャーはメニューエディターでのみ設定できます: まず、カスタムスプラッシュスクリーンを割り当てたいメニューバーを選択します。ウィンドウ右側に"背景画像"エリアが表示されます。ディスクに保存されたピクチャーを直接開くには、**開く** ボタンをクリックするか、“背景画像” エリアをクリックします。ポップアップメニューが表示されます: - クリップボードのピクチャーをペーストするには **ペースト** を選択します。 -- ディスクファイルとして保存された画像を開くには **開く** を選択します。 - 開くを選択すると、標準のファイルを開くダイアログボックスが表示されます。使用するピクチャーを選択します。 設定が完了すると、選択した画像がプレビューとして表示されます。 これにより、メニューバーとの関連付けが確認できます。 +- ディスクファイルとして保存された画像を開くには **開く** を選択します。開くを選択すると、標準のファイルを開くダイアログボックスが表示されます。使用するピクチャーを選択します。設定が完了すると、選択した画像がプレビューとして表示されます。これにより、メニューバーとの関連付けが確認できます。 ![](../assets/en/Menus/splash2.png) -メニューバーをテストすると、設定の結果を見ることができます (後述参照)。 アプリケーションモードでは、ピクチャーはスプラッシュスクリーンに "トランケート (中央合わせ)" で表示されます。 +メニューバーをテストすると、設定の結果を見ることができます (後述参照)。アプリケーションモードでは、ピクチャーはスプラッシュスクリーンに "トランケート (中央合わせ)" で表示されます。 > ストラクチャー設定では、インターフェース > 一般の **ウィンドウの表示** オプションを使用して、スプラッシュスクリーンの表示/非表示を設定できます。 @@ -38,7 +36,7 @@ title: メニューバーの管理 ![](../assets/en/Menus/splash3.png) -すると、メニューバーとスプラッシュスクリーンのプレビューが表示されます。 メニューや階層メニューを表示させることができます。 ただし、プレビュー状態のメニューを選択してもコマンドは実行されません。 メニューやツールバーの動作を確認するには、**実行** メニューから **アプリケーションモード** を選択します。 +すると、メニューバーとスプラッシュスクリーンのプレビューが表示されます。メニューや階層メニューを表示させることができます。ただし、プレビュー状態のメニューを選択してもコマンドは実行されません。メニューやツールバーの動作を確認するには、**実行** メニューから **アプリケーションモード** を選択します。 :::info diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/creating.md b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/creating.md index 79fbb1a5e85ba9..81ee644886597f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/creating.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/creating.md @@ -5,24 +5,24 @@ title: メニューとメニューバーの作成 メニューおよびメニューバーを作成するには次の 2つの方法があります: -- 4Dツールボックスウィンドウのメニューエディターを使用する。 この場合、メニューとメニューバーはアプリケーションのストラクチャーに保存されます。 -- "メニュー" テーマのランゲージコマンドを使用して動的におこなう。 この場合、メニューとメニューバーは保存されず、メモリ内にのみ存在します。 +- 4Dツールボックスウィンドウのメニューエディターを使用する。この場合、メニューとメニューバーはアプリケーションのストラクチャーに保存されます。 +- "メニュー" テーマのランゲージコマンドを使用して動的におこなう。この場合、メニューとメニューバーは保存されず、メモリ内にのみ存在します。 両方の機能を組み合わせて、メモリ内のメニューを定義するのに、ストラクチャーに作成したメニューをテンプレートとして使うこともできます。 ## デフォルトメニューバー -カスタムアプリケーションには、少なくとも 1つのメニューを持つ 1つのメニューバーが必要です。 新規にプロジェクトを作成すると、4D は自動でデフォルトメニューバー (メニューバー#1) を作成します。 このデフォルトメニューバーには、標準のメニューとデザインモードに入るためのコマンドが用意されています。 +カスタムアプリケーションには、少なくとも 1つのメニューを持つ 1つのメニューバーが必要です。新規にプロジェクトを作成すると、4D は自動でデフォルトメニューバー (メニューバー#1) を作成します。このデフォルトメニューバーには、標準のメニューとデザインモードに入るためのコマンドが用意されています。 -このメニューが用意されているため、ユーザーはプロジェクトを起動するとすぐにアプリケーションモードを使用できます。 **実行** メニューから **アプリケーションモード** コマンドを選択すると、自動でメニューバー#1 が呼び出されます。 +このメニューが用意されているため、ユーザーはプロジェクトを起動するとすぐにアプリケーションモードを使用できます。**実行** メニューから **アプリケーションモード** コマンドを選択すると、自動でメニューバー#1 が呼び出されます。 デフォルトメニューバーには 3つメニューがあります: -- **ファイル**: このメニューには **終了** コマンドだけが含まれています。 このコマンドには *quit* 標準アクションが割り当てられていて、選択されるとアプリケーションが終了します。 -- **編集**: 編集メニューは標準であり、内容の変更が可能です。 編集メニューのコマンド (コピーやペーストなど) は標準アクションで指定できます。 +- **ファイル**: このメニューには **終了** コマンドだけが含まれています。このコマンドには *quit* 標準アクションが割り当てられていて、選択されるとアプリケーションが終了します。 +- **編集**: 編集メニューは標準であり、内容の変更が可能です。編集メニューのコマンド (コピーやペーストなど) は標準アクションで指定できます。 - **モード**: モードメニューにはデフォルトで、アプリケーションモードを終了するための **デザインモードに戻る** コマンドが含まれます。 -> メニュータイトルはハードコードされたテキストではなく、xliff参照を使用しています。 この点については [タイトルプロパティ](properties.md#タイトル) を参照してください。 +> メニュータイトルはハードコードされたテキストではなく、xliff参照を使用しています。この点については [タイトルプロパティ](properties.md#タイトル) を参照してください。 このメニューバーを必要に応じて変更したり、新しく追加したりできます。 @@ -30,37 +30,29 @@ title: メニューとメニューバーの作成 ### メニューエディターを使用する -1. 作成する対象 (メニューバーまたはメニュー) を選択し、エリアの下にある追加ボタン ![](../assets/en/Menus/PlussNew.png) をクリックします。 - または
    - リストのコンテキストメニューあるいはリストの下にあるオプションメニューから **新規メニューバー作成** または **新規メニュー作成** を選択します。 - メニューバーを作成した場合は、新しいメニューバーがリスト中に追加され、デフォルトメニュー (ファイルと編集) があらかじめ添付されています。 -2. (任意) メニューバー/メニューの名前の上でダブルクリックすると、名前を編集できるモードになり、名前を変更することができます。 - または
    ウィンドウ右の "タイトル" エリアに名前を入力します。 - メニューバー名はユニークでなければなりません。 名前には 31文字までの文字列を指定できます。 メニューのタイトルには文字列リテラルのほかに、参照も使用できます ([タイトルプロパティ](properties.md#タイトル) の説明を参照ください)。 +1. 作成する対象 (メニューバーまたはメニュー) を選択し、エリアの下にある追加ボタン ![](../assets/en/Menus/PlussNew.png) をクリックします。または
    + リストのコンテキストメニューあるいはリストの下にあるオプションメニューから **新規メニューバー作成** または **新規メニュー作成** を選択します。メニューバーを作成した場合は、新しいメニューバーがリスト中に追加され、デフォルトメニュー (ファイルと編集) があらかじめ添付されています。 +2. (任意) メニューバー/メニューの名前の上でダブルクリックすると、名前を編集できるモードになり、名前を変更することができます。または
    ウィンドウ右の "タイトル" エリアに名前を入力します。メニューバー名はユニークでなければなりません。名前には 31文字までの文字列を指定できます。メニューのタイトルには文字列リテラルのほかに、参照も使用できます ([タイトルプロパティ](properties.md#タイトル) の説明を参照ください)。 ### 4Dランゲージを使用する `Create menu` コマンドを使って、新規メニューバーまたはメニュー参照 (*MenuRef*) をメモリ上に作成します。 -メニューが *MenuRef* 参照を使用して処理される場合、メニューとメニューバーの間に違いはありません。 両方とも項目のリストから構成されます。 それらの利用方法のみが異なります。 メニューバーの各項目は、それ自身が 1つのメニューであり、項目から構成されています。 +メニューが *MenuRef* 参照を使用して処理される場合、メニューとメニューバーの間に違いはありません。両方とも項目のリストから構成されます。それらの利用方法のみが異なります。メニューバーの各項目は、それ自身が 1つのメニューであり、項目から構成されています。 `Create menu` で空のメニューを作成した場合には、`APPEND MENU ITEM` または `INSERT MENU ITEM` コマンドによって項目を追加していきます。また、同コマンドのソースメニューとして、メニューエディターで定義されたメニューを指定した場合には、そのコピーが新しいメニューとして作成されます。 ## 項目の追加 -各メニューには、メニューがクリックされたときにドロップダウン表示されるメニュー項目を作成しなければなりません。 項目を追加してメソッドや標準アクションを割り当てたり、他のメニューをサブメニューとして添付したりできます。 +各メニューには、メニューがクリックされたときにドロップダウン表示されるメニュー項目を作成しなければなりません。項目を追加してメソッドや標準アクションを割り当てたり、他のメニューをサブメニューとして添付したりできます。 ### メニューエディターを使用する メニュー項目を追加するには: -1. ソースメニューリスト中で、項目を追加するメニューを選択します。 - メニューが既に項目を持っていれば、それが中央のリストに表示されます。 新しい項目を挿入するには、その上にくる項目を選択します。 ドラッグ&ドロップ操作で、後から順番を変更することも可能です。 -2. メニューエディターのオプションメニュー、またはエディターのコンテキストメニュー (中央のリスト内で右クリック) から **メニューバー/メニュー "メニュー名" に項目を追加** を選択します。 - または
    中央のリストの下にある追加ボタン ![](../assets/en/Menus/PlussNew.png) をクリックします。 - 項目が追加され、デフォルト名 "項目 X" が割り当てられます (X は項目の番号)。 -3. 項目名の上でダブルクリックすると、名前を編集できるモードになり、名前を変更することができます。 - または
    ウィンドウ右の "タイトル" エリアに名前を入力します。 名前には 31文字までの文字列を指定できます。 メニューのタイトルには文字列リテラルのほかに、参照も使用できます (後述参照)。 +1. ソースメニューリスト中で、項目を追加するメニューを選択します。メニューが既に項目を持っていれば、それが中央のリストに表示されます。新しい項目を挿入するには、その上にくる項目を選択します。ドラッグ&ドロップ操作で、後から順番を変更することも可能です。 +2. メニューエディターのオプションメニュー、またはエディターのコンテキストメニュー (中央のリスト内で右クリック) から **メニューバー/メニュー "メニュー名" に項目を追加** を選択します。または
    中央のリストの下にある追加ボタン ![](../assets/en/Menus/PlussNew.png) をクリックします。項目が追加され、デフォルト名 "項目 X" が割り当てられます (X は項目の番号)。 +3. 項目名の上でダブルクリックすると、名前を編集できるモードになり、名前を変更することができます。または
    ウィンドウ右の "タイトル" エリアに名前を入力します。名前には 31文字までの文字列を指定できます。メニューのタイトルには文字列リテラルのほかに、参照も使用できます (後述参照)。 ### 4Dランゲージを使用する @@ -70,7 +62,7 @@ title: メニューとメニューバーの作成 ### メニューエディターを使用する -メニューエディターを使って、メニューバー、メニュー、メニュー項目をいつでも削除できます。 各メニューやメニューバーは 1つの参照しか持たない点に留意してください。 あるメニューが、複数のメニューバーやメニューに添付されていた場合、そのメニューに対しておこわれた変更や削除はこのメニューのすべての他のオカレンスに対しても有効となります。 メニューを削除すると、参照だけが削除されます。 特定のメニューへの最後の参照を削除しようとすると、4Dはアラートを表示します。 +メニューエディターを使って、メニューバー、メニュー、メニュー項目をいつでも削除できます。各メニューやメニューバーは 1つの参照しか持たない点に留意してください。あるメニューが、複数のメニューバーやメニューに添付されていた場合、そのメニューに対しておこわれた変更や削除はこのメニューのすべての他のオカレンスに対しても有効となります。メニューを削除すると、参照だけが削除されます。特定のメニューへの最後の参照を削除しようとすると、4Dはアラートを表示します。 メニューバー、メニュー、メニューコマンドを削除するには: @@ -81,15 +73,15 @@ title: メニューとメニューバーの作成 ### 4Dランゲージを使用する -`DELETE MENU ITEM` コマンドを使ってメニュー参照から項目を削除します。 メニュー参照をメモリからアンロードするには `RELEASE MENU` コマンドを使います。 +`DELETE MENU ITEM` コマンドを使ってメニュー参照から項目を削除します。メニュー参照をメモリからアンロードするには `RELEASE MENU` コマンドを使います。 ## メニューの添付 メニューを作成したら、それをメニューバーや別のメニューに (サブメニューとして) 添付できます。 -サブメニューは、テーマに基づき機能をグループ化する目的で使用されます。 サブメニューとその項目は、メニューと同じ属性 (アクション、メソッド、ショートカット、アイコン等) を持つことができます。 サブメニューの項目は元の特性やプロパティを保持し、サブメニューの動作は標準のメニューと同じです。 +サブメニューは、テーマに基づき機能をグループ化する目的で使用されます。サブメニューとその項目は、メニューと同じ属性 (アクション、メソッド、ショートカット、アイコン等) を持つことができます。サブメニューの項目は元の特性やプロパティを保持し、サブメニューの動作は標準のメニューと同じです。 -サブメニューのサブメニューを作成することができ、階層化に制限はありません。 しかし、インターフェース標準に沿うには、2レベルを超えるサブメニューは推奨されません。 +サブメニューのサブメニューを作成することができ、階層化に制限はありません。しかし、インターフェース標準に沿うには、2レベルを超えるサブメニューは推奨されません。 ランタイムにおいてプログラミングによりメニューを変更した場合、そのメニューが添付されているすべてのインスタンスに変更が反映されます。 @@ -101,12 +93,11 @@ title: メニューとメニューバーの作成 また、メニューバーを選択してから、リストの下にあるオプションメニューをクリックする方法もあります。 - メニューに他のメニューを添付するには: 左のリスト中でメニューを選択し、次に中央リストのメニュー項目上で右クリックし、**項目 "項目名" にサブメニューを添付 >** を選択、そしてサブメニューとして使用するメニューを選択します: ![](../assets/en/Menus/attach2.png) - また、メニュー項目を選択してから、リストの下にあるオプションメニューをクリックする方法もあります。 - 添付されたメニューはサブメニューとなります。 項目のタイトルは保持されますが (元のサブメニュー名は無視されます)、このタイトルを変更することができます。 + また、メニュー項目を選択してから、リストの下にあるオプションメニューをクリックする方法もあります。添付されたメニューはサブメニューとなります。項目のタイトルは保持されますが (元のサブメニュー名は無視されます)、このタイトルを変更することができます。 #### メニューの分離 -メニューバーからメニューを、あるいはメニューからサブメニューを分離できます。 分離されたメニューは、メニューバーやメニューから利用できなくなります。 しかしメニューリストには残されます。 +メニューバーからメニューを、あるいはメニューからサブメニューを分離できます。分離されたメニューは、メニューバーやメニューから利用できなくなります。 しかしメニューリストには残されます。 メニューを分離するには、中央リスト内の分離したいメニュー上で右クリックし、**メニュー "メニュー名" をメニューバー "メニューバー名" から分離** または **項目 "項目名" のサブメニューを分離** を選択します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/overview.md index e8ebb045f78205..1ab577a68ec060 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/overview.md @@ -3,20 +3,20 @@ id: overview title: メニュー --- -4Dアプリケーション用にカスタムメニューを作成できます。 デスクトップアプリケーションではプルダウン形式のメニューが標準機能であるため、メニューを追加することでアプリケーションがより使いやすくなりユーザーに親しみやすいものになるでしょう。 +4Dアプリケーション用にカスタムメニューを作成できます。デスクトップアプリケーションではプルダウン形式のメニューが標準機能であるため、メニューを追加することでアプリケーションがより使いやすくなりユーザーに親しみやすいものになるでしょう。 ![](../assets/en/Menus/menubar.png) -**メニューバー** とは、スクリーン上にまとめて表示されるメニューのグループです。 メニューバー上の各 **メニュー** はメニューコマンドを持ちます。またメニューコマンドは階層メニューと呼ばれるサブメニューを持つこともできます。 メニューやサブメニューコマンドをユーザーが選択すると、プロジェクトメソッドまたは標準アクションが呼び出されます。 +**メニューバー** とは、スクリーン上にまとめて表示されるメニューのグループです。メニューバー上の各 **メニュー** はメニューコマンドを持ちます。またメニューコマンドは階層メニューと呼ばれるサブメニューを持つこともできます。メニューやサブメニューコマンドをユーザーが選択すると、プロジェクトメソッドまたは標準アクションが呼び出されます。 -各アプリケーションに対し、異なるメニューバーを複数作成することもできます。 たとえば、あるメニューバーには標準的なデータベース処理用のメニューを納め、別のメニューバーはレポート作成時にのみアクティブにすることができます。 また別のメニューバーには、レコード入力用のメニューコマンドを含むメニューを格納することも可能です。 入力フォームと一緒に表示されるメニューバーには同じメニューを格納しながらも、データ入力中は不要になるメニューコマンドを選択不可にすることができます。 +各アプリケーションに対し、異なるメニューバーを複数作成することもできます。たとえば、あるメニューバーには標準的なデータベース処理用のメニューを納め、別のメニューバーはレポート作成時にのみアクティブにすることができます。また別のメニューバーには、レコード入力用のメニューコマンドを含むメニューを格納することも可能です。入力フォームと一緒に表示されるメニューバーには同じメニューを格納しながらも、データ入力中は不要になるメニューコマンドを選択不可にすることができます。 あるメニューを複数のメニューバーや他メニューで使用したり、どのメニューバーにも割り当てずにプログラムからのみ管理することもできます (独立メニューと呼びます)。 メニューを設計する際には以下の 2つのルールを覚えておいてください: - メニューに適している機能に対しメニューを使用する: メニューコマンドは、レコードの追加や検索、レポートの印刷のような作業を実行しなければなりません。 -- メニューコマンドを機能別にまとめる: たとえば、レポートの印刷をおこなうメニューコマンドはすべて同じメニュー内に置くべきです。 また別の例として、特定のテーブルに関するすべての操作を 1つのメニューに納めてもよいでしょう。 +- メニューコマンドを機能別にまとめる: たとえば、レポートの印刷をおこなうメニューコマンドはすべて同じメニュー内に置くべきです。また別の例として、特定のテーブルに関するすべての操作を 1つのメニューに納めてもよいでしょう。 メニューやメニューバーを作成するには以下のいずれかを使用します: @@ -30,6 +30,6 @@ title: メニュー ![](../assets/en/Menus/editor1.png) -メニューおよびメニューバーは両方ともエディター左の階層リスト中に表示されます。 各メニューは、メニューバーあるいは別のメニューに添付できます。 後者の場合、そのメニューはサブメニューとなります。 +メニューおよびメニューバーは両方ともエディター左の階層リスト中に表示されます。各メニューは、メニューバーあるいは別のメニューに添付できます。後者の場合、そのメニューはサブメニューとなります。 -4D はメニューバーに連番を割り当てます。 メニューバー#1 が一番上に表示されます。 メニューバーの名前を変更することができますが、番号は変更できません。 この番号はランゲージコマンドで使用されます。 +4D はメニューバーに連番を割り当てます。 メニューバー#1 が一番上に表示されます。メニューバーの名前を変更することができますが、番号は変更できません。この番号はランゲージコマンドで使用されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md index 8aec9a71e72dce..a959b3bafc61cb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/properties.md @@ -9,18 +9,18 @@ title: メニュープロパティ **タイトル** プロパティには、アプリケーションインターフェースに表示されるメニュー/メニュー項目のラベルを指定します。 -メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。 または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。 次のの参照タイプを使用できます: +メニューエディターを使って、テキストリテラルを直接、ラベルとして入力することができます。または、変数参照、xliff参照を使用することもできます。これによりアプリケーションの翻訳が容易になります。次のの参照タイプを使用できます: - :xliff:MyLabel という形の XLIFFリソース参照。 XLIFF参照についての詳細は、*4D デザインリファレンス* の [XLIFF アーキテクチャー](https://doc.4d.com/4Dv18/4D/18/Appendix-B-XLIFF-architecture.300-4575737.ja.html) の章を参照ください。 -- (**非推奨**) `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。 この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。 この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。 二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 +- (**非推奨**) `:<>vlang,3` という形のインタープロセス変数名と、それに続く数値。この変数の内容を変更すると、メニューが表示される際にラベルも変更されます。この場合、ラベルは XLIFFリソースを呼び出します。 `<>vlang` 変数に含まれる値は *group* 要素の *id* 属性値に対応します。二つ目の値 (例では3) は *trans-unit* 要素の *id* 属性の値を指定します。 4D ランゲージを使用することで、[`APPEND MENU ITEM`](../commands/append-menu-item)、 [`INSERT MENU ITEM`](../commands/insert-menu-item)、 および [`SET MENU ITEM`](../commands/set-menu-item) コマンドらの *itemText* 引数を通してタイトルのプロパティを設定することができます。 ### 制御文字の使用 -メニュータイトルに制御文字 (メタ文字) を直接使用し、メニューのプロパティをいくつか設定することができます。 たとえば、メニュータイトルに "/G" という文字を入れると、キーボードショートカットである Ctrl+G (Windows) または Command+G (macOS) を割り当てることができます。 +メニュータイトルに制御文字 (メタ文字) を直接使用し、メニューのプロパティをいくつか設定することができます。たとえば、メニュータイトルに "/G" という文字を入れると、キーボードショートカットである Ctrl+G (Windows) または Command+G (macOS) を割り当てることができます。 -制御文字は、表示されるメニューラベルには含まれません。 したがって、制御文字として利用しない場合は、これらの文字の並びをタイトルに使用しないことが推奨されます。 制御文字には次のようなものがあります: +制御文字は、表示されるメニューラベルには含まれません。したがって、制御文字として利用しない場合は、これらの文字の並びをタイトルに使用しないことが推奨されます。制御文字には次のようなものがあります: | 文字 | 説明 | 効果 | | --------------------------- | ---------------- | ----------------------------------------------------------------------------------- | @@ -33,48 +33,45 @@ title: メニュープロパティ ## 引数 -各メニュー項目にカスタム引数を関連付けることができます。 メニュー項目の引数は、その内容を自由に設定できる文字列です。 これはメニューエディター内で設定するか、あるいは [`SET MENU ITEM PARAMETER`](../commands/set-menu-item-parameter) コマンドを通して設定することができます。 +各メニュー項目にカスタム引数を関連付けることができます。メニュー項目の引数は、その内容を自由に設定できる文字列です。これはメニューエディター内で設定するか、あるいは [`SET MENU ITEM PARAMETER`](../commands/set-menu-item-parameter) コマンドを通して設定することができます。 メニュー項目引数は、メニューのプログラミングによる管理において特に有用で、具体的には [`Dynamic pop up menu`](../commands/dynamic-pop-up-menu)、 [`Get menu item parameter`](../commands/get-menu-item-parameter) および [`Get selected menu item parameter`](../commands/get-selected-menu-item-parameter) コマンドを使用している際に有用です。 ## アクション -メニューにはプロジェクトメソッドや標準アクションを割り当てることができます。 メニュー項目が選択されると、4D は割り当てられた標準アクションまたはプロジェクトメソッドを実行します。 例えば、**月次報告書** メニューコマンドを設定し、財務データを格納したテーブルをもとに月次報告書を作成するプロジェクトメソッドを呼び出すことができます。 **カット** メニューコマンドは、`cut` 標準アクションを呼び出して、選択項目をクリップボードへ移動し、それを前面にあるウインドウから消去します。 +メニューにはプロジェクトメソッドや標準アクションを割り当てることができます。メニュー項目が選択されると、4D は割り当てられた標準アクションまたはプロジェクトメソッドを実行します。例えば、**月次報告書** メニューコマンドを設定し、財務データを格納したテーブルをもとに月次報告書を作成するプロジェクトメソッドを呼び出すことができます。**カット** メニューコマンドは、`cut` 標準アクションを呼び出して、選択項目をクリップボードへ移動し、それを前面にあるウインドウから消去します。 -標準アクションやメソッドをメニューに割り当てていない場合、そのメニューを選択すると、4D はアプリケーション環境からデザインモードに戻ります。 デザインモードに移行できない場合は、4D を終了します。 +標準アクションやメソッドをメニューに割り当てていない場合、そのメニューを選択すると、4D はアプリケーション環境からデザインモードに戻ります。デザインモードに移行できない場合は、4D を終了します。 -標準アクションは、システム機能に関連した操作 (コピー、終了、等) や、 データベースに関連した操作 (レコード追加、全選択、等) を実行するのに使用します。 +標準アクションは、システム機能に関連した操作 (コピー、終了、等) や、データベースに関連した操作 (レコード追加、全選択、等) を実行するのに使用します。 -標準アクションとプロジェクトメソッドの両方をメニューに割り当てることも可能です。 この場合、標準アクションが実行されることはありません。 しかし、4D はこのアクションを使用し、状況に合わせてメニューコマンドを使用可/使用不可に設定します。 メニューが使用不可の場合、割り当てられたプロジェクトメソッドは実行されません。 +標準アクションとプロジェクトメソッドの両方をメニューに割り当てることも可能です。この場合、標準アクションが実行されることはありません。 しかし、4D はこのアクションを使用し、状況に合わせてメニューコマンドを使用可/使用不可に設定します。メニューが使用不可の場合、割り当てられたプロジェクトメソッドは実行されません。 -求める結果の種類によって、標準アクションまたはプロジェクトメソッドのいずれを割り当てるかを選択します。 原則として、標準アクションは最適化された方法で実行される (コンテキストに応じたメニューの有効/無効の自動切り替え) ため、できるだけこちらを選ぶ方が良いでしょう。 +求める結果の種類によって、標準アクションまたはプロジェクトメソッドのいずれを割り当てるかを選択します。原則として、標準アクションは最適化された方法で実行される (コンテキストに応じたメニューの有効/無効の自動切り替え) ため、できるだけこちらを選ぶ方が良いでしょう。 ### プロジェクトメソッドまたは標準アクションの割り当て メニューエディターにて、標準アクション/プロジェクトメソッドをメニューに割り当てることができます: -- **メソッド名**: 既存のプロジェクトメソッドをコンボボックスで選択します。 プロジェクトメソッドがまだ存在しない場合、"メソッド名" コンボボックスにメソッド名を入力し、[...] ボタンをクリックします。 すると、4D はメソッド作成ダイアログボックスを表示し、コードエディターを開きます。 -- **標準アクション**: 割り当てたいアクションを "標準アクション" コンボボックスから選択するか、記述します。 サポートされているアクションと引数 (任意) であれば、エリア内に入力することができます。 標準アクションの一覧については、*デザインリファレンス* の [標準アクション](https://doc.4d.com/4Dv18/4D/18/Standard-actions.300-4575620.ja.html) を参照してください。 +- **メソッド名**: 既存のプロジェクトメソッドをコンボボックスで選択します。プロジェクトメソッドがまだ存在しない場合、"メソッド名" コンボボックスにメソッド名を入力し、[...] ボタンをクリックします。すると、4D はメソッド作成ダイアログボックスを表示し、コードエディターを開きます。 +- **標準アクション**: 割り当てたいアクションを "標準アクション" コンボボックスから選択するか、記述します。サポートされているアクションと引数 (任意) であれば、エリア内に入力することができます。標準アクションの一覧については、*デザインリファレンス* の [標準アクション](https://doc.4d.com/4Dv18/4D/18/Standard-actions.300-4575620.ja.html) を参照してください。 **macOS に関する注記:** macOS の場合、プラットフォームインターフェース標準に合わせるために、*quit* (終了) アクションが割り当てられたカスタムメニューコマンドは自動でアプリケーションメニュー内に置かれます。 4D ランゲージを使用すると、[`SET MENU ITEM METHOD`](../commands/set-menu-item-method) コマンドを使用してプロジェクトメソッドを割り当てることができる他、[`SET MENU ITEM PROPERTY`](../commands/set-menu-item-property) を使用して標準アクションを割り当てることもできます。 ### 新規プロセスで開始 -メソッドを割り当てたメニューの場合、**新規プロセスで開始** オプションが利用可能です。 このオプションは、メニューエディターのチェックボックスによって設定するほかに、`SET MENU ITEM PROPERTY` コマンドに *property* 引数を渡して設定することもできます。 +メソッドを割り当てたメニューの場合、**新規プロセスで開始** オプションが利用可能です。このオプションは、メニューエディターのチェックボックスによって設定するほかに、`SET MENU ITEM PROPERTY` コマンドに *property* 引数を渡して設定することもできます。 -**新規プロセスで開始** チェックボックスを選択した場合、4D はそのメニューコマンドが選択されると新しいプロセスを作成します。 -通常、メニューコマンドに割り当てたメソッドは、明示的にプログラムから新規プロセスを作成しない限り、カレントプロセスで実行されます。 **新規プロセスで開始** チェックボックスを選択すると、新規プロセスを簡単に開始することができます。 このチェックボックスを選択した場合は、このメニューコマンドを選択すると新規プロセスが作成されます。 +**新規プロセスで開始** チェックボックスを選択した場合、4D はそのメニューコマンドが選択されると新しいプロセスを作成します。通常、メニューコマンドに割り当てたメソッドは、明示的にプログラムから新規プロセスを作成しない限り、カレントプロセスで実行されます。**新規プロセスで開始** チェックボックスを選択すると、新規プロセスを簡単に開始することができます。このチェックボックスを選択した場合は、このメニューコマンドを選択すると新規プロセスが作成されます。 -プロセスリストにおいて、4D は "ML_プロセス番号" というフォーマットのデフォルト名を新規プロセスに割り当てます。 -このように、メニューから開始されたプロセスの名前は、接頭辞 "ML_" とプロセス番号を組み合わせて設定されます。 +プロセスリストにおいて、4D は "ML_プロセス番号" というフォーマットのデフォルト名を新規プロセスに割り当てます。このように、メニューから開始されたプロセスの名前は、接頭辞 "ML_" とプロセス番号を組み合わせて設定されます。 ### イベントを発生させない 標準アクションを割り当てたメニューの場合、**イベントを発生させない** オプションがメニューエディター内で利用可能です。 -このオプションを選択すると、4D は関連アクションを実行する前に、カーソルが置かれているフィールドの "確定 (バリデート)" をおこないません。 -このオプションは主に **編集** メニューコマンドに使用されます。 デフォルトでは、4D はフィールド内容を処理し、"確定" してから、標準アクションを実行します (メニューコマンドやショートカットを使用)。これにより、`On Data Change` フォームイベントが発生します。 しかし、コピー&ペーストタイプのコマンドの場合、コマンドを呼び出すたびに `On Data Change` フォームイベントが予想外に生成されてしまい、処理に差し支える可能性があります。 その場合は、**イベントを発生させない** オプションを選択するのが有効です。 +このオプションを選択すると、4D は関連アクションを実行する前に、カーソルが置かれているフィールドの "確定 (バリデート)" をおこないません。このオプションは主に **編集** メニューコマンドに使用されます。デフォルトでは、4D はフィールド内容を処理し、"確定" してから、標準アクションを実行します (メニューコマンドやショートカットを使用)。これにより、`On Data Change` フォームイベントが発生します。しかし、コピー&ペーストタイプのコマンドの場合、コマンドを呼び出すたびに `On Data Change` フォームイベントが予想外に生成されてしまい、処理に差し支える可能性があります。その場合は、**イベントを発生させない** オプションを選択するのが有効です。 ## アクセス権 @@ -84,22 +81,21 @@ title: メニュープロパティ ### 区切り線 -メニュー内のメニューコマンドグループは区切り線を使って分割できます。 この表示方法は、機能ごとにメニューコマンドをグループ化するのに便利です。 +メニュー内のメニューコマンドグループは区切り線を使って分割できます。この表示方法は、機能ごとにメニューコマンドをグループ化するのに便利です。 ![](../assets/en/Menus/separator.png) 区切り線を追加するには、専用のメニューコマンドを作成します。 -メニューエディターでは、メニューのタイトルエリアにテキストを入力する代わりに、**区切り線** オプションを選択します。 すると、カレントメニューバーのエリアに線が表示されます。 このオプションが選択されると、ほかのプロパティは無効になります。 -**注:** macOS ではメニュー項目タイトルの一文字目を "-" にすると、その行が区切り線になります。 +メニューエディターでは、メニューのタイトルエリアにテキストを入力する代わりに、**区切り線** オプションを選択します。すると、カレントメニューバーのエリアに線が表示されます。このオプションが選択されると、ほかのプロパティは無効になります。**注:** macOS ではメニュー項目タイトルの一文字目を "-" にすると、その行が区切り線になります。 4D ランゲージにおいては、[`APPEND MENU ITEM`](../commands/append-menu-item)、 [`INSERT MENU ITEM`](../commands/insert-menu-item)、 および [`SET MENU ITEM`](../commands/set-menu-item) コマンドの *itemText* に対して`-` あるいは `(-` を入力することで分割線を挿入することができます。 ### ショートカット -メニューコマンドにはショートカットを割り当てることができます。 メニューコマンドにキーボードショートカットが割り当てられると、メニューを開いたときにそれがメニューコマンドの右に表示されます。 たとえば、編集メニューのコピーコマンドの右に "Ctrl+C" (Windows) または "Command+C" (macOS) と表示されます。 +メニューコマンドにはショートカットを割り当てることができます。メニューコマンドにキーボードショートカットが割り当てられると、メニューを開いたときにそれがメニューコマンドの右に表示されます。たとえば、編集メニューのコピーコマンドの右に "Ctrl+C" (Windows) または "Command+C" (macOS) と表示されます。 -ショートカットには **Shift** や **Alt** (Windows) または **Option** (macOS) キーを追加できます。 これにより使用できるショートカットの数を増やすことができます。 以下のタイプのショートカットを定義できます: +ショートカットには **Shift** や **Alt** (Windows) または **Option** (macOS) キーを追加できます。これにより使用できるショートカットの数を増やすことができます。以下のタイプのショートカットを定義できます: - Windows: - Ctrl+文字 @@ -130,16 +126,13 @@ title: メニュープロパティ メニューエディターでキーボードショートカットを割り当てるには: -キーボードショートカットを割り当てるメニュー項目を選択します。 -"ショートカット" 入力エリアの [...] ボタンをクリックします。 以下のウィンドウが表示されます: +キーボードショートカットを割り当てるメニュー項目を選択します。"ショートカット" 入力エリアの [...] ボタンをクリックします。以下のウィンドウが表示されます: ![](../assets/en/Menus/Shortcut.png) -文字を入力し、(必要であれば) **Shift** そして **Alt** (**Option**) チェックボックスを選択します。 -指定する組み合わせのキーを押すと、押したキーがウィンドウに反映されます (このときには **Ctrl/Command** キーは押しません)。 +文字を入力し、(必要であれば) **Shift** そして **Alt** (**Option**) チェックボックスを選択します。指定する組み合わせのキーを押すと、押したキーがウィンドウに反映されます (このときには **Ctrl/Command** キーは押しません)。 -> Ctrl/Command キーの選択を解除することはできません。 このキーは必須です。 -> 内容を消去するには **クリア** をクリックします。 **OK** をクリックすると、内容を確定してウィンドウを閉じます。 指定したショートカットが "ショートカット" 入力エリアに表示されます: +> Ctrl/Command キーの選択を解除することはできません。 このキーは必須です。内容を消去するには **クリア** をクリックします。 **OK** をクリックすると、内容を確定してウィンドウを閉じます。指定したショートカットが "ショートカット" 入力エリアに表示されます: 4Dランゲージでキーボードショートカットを割り当てるには、`SET ITEM SHORTCUT` コマンドを使います。 @@ -147,9 +140,9 @@ title: メニュープロパティ ### 選択可 -メニューエディターにて、メニュー項目を有効として表示するか無効として表示するかを選択できます。 ユーザーは有効なメニュー項目を選択できます。 無効なメニュー項目は灰色で表示され、選択することはできません。 **選択可** チェックボックスの選択が解除されていると、メニューコマンドは灰色で表示され、選択することができません。 +メニューエディターにて、メニュー項目を有効として表示するか無効として表示するかを選択できます。ユーザーは有効なメニュー項目を選択できます。 無効なメニュー項目は灰色で表示され、選択することはできません。**選択可** チェックボックスの選択が解除されていると、メニューコマンドは灰色で表示され、選択することができません。 -明示的に設定しない限り、4D は自動でカスタムメニューに追加された項目を有効にします。 たとえば、特定の条件下で `ENABLE MENU ITEM` コマンドを使用して有効化するために、初期状態を無効にすることができます (無効化には `DISABLE MENU ITEM` コマンドを使います)。 +明示的に設定しない限り、4D は自動でカスタムメニューに追加された項目を有効にします。たとえば、特定の条件下で `ENABLE MENU ITEM` コマンドを使用して有効化するために、初期状態を無効にすることができます (無効化には `DISABLE MENU ITEM` コマンドを使います)。 ### チェック @@ -159,7 +152,7 @@ title: メニュープロパティ ### フォントスタイル -メニューコマンドにフォントスタイル (太字、下線、イタリック) を適用することができます。 メニューエディターのオプションを使用して、または [`SET MENU ITEM STYLE`](../commands/set-menu-item-style) ランゲージコマンドを使って、メニューのスタイルを太字・イタリック・下線でカスタマイズすることができます。 +メニューコマンドにフォントスタイル (太字、下線、イタリック) を適用することができます。メニューエディターのオプションを使用して、または [`SET MENU ITEM STYLE`](../commands/set-menu-item-style) ランゲージコマンドを使って、メニューのスタイルを太字・イタリック・下線でカスタマイズすることができます。 一般的なルールとして、フォントスタイルの適用は慎重におこなってください。 煩雑なスタイルの使用はユーザーの注意をそらし、アプリケーションの見た目を悪くします。 @@ -167,11 +160,11 @@ title: メニュープロパティ ### 項目アイコン -メニュー項目にアイコンを関連付けることができます。 設定されたアイコンはメニューの左に表示されます: +メニュー項目にアイコンを関連付けることができます。設定されたアイコンはメニューの左に表示されます: ![](../assets/en/Menus/iconMenu.png) -メニューエディターでアイコンを設定するには、"項目アイコン" エリアをクリックし、**開く** を選択してディスクからピクチャーを開きます。 プロジェクトの Resources フォルダーに格納されていないピクチャーファイルを選択した場合、そのファイルは自動的に Resources フォルダーにコピーされます。 項目アイコンを設定すると、プレビューエリアに表示されます: +メニューエディターでアイコンを設定するには、"項目アイコン" エリアをクリックし、**開く** を選択してディスクからピクチャーを開きます。プロジェクトの Resources フォルダーに格納されていないピクチャーファイルを選択した場合、そのファイルは自動的に Resources フォルダーにコピーされます。項目アイコンを設定すると、プレビューエリアに表示されます: ![](../assets/en/Menus/iconpreview.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/sdi.md b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/sdi.md index 75cbd86d15b9d2..822a0755706ecd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Menus/sdi.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Menus/sdi.md @@ -7,7 +7,7 @@ Windows において、組みこみ 4Dアプリケーションを SDI (シング :::info -SDI/MDI という概念は macOS には存在しません。 この機能は Windows用アプリケーション専用のもので、関連オプションは macOS においてはすべて無視されます。 この機能は Windows用アプリケーション専用のもので、関連オプションは macOS においてはすべて無視されます。 +SDI/MDI という概念は macOS には存在しません。 この機能は Windows用アプリケーション専用のもので、関連オプションは macOS においてはすべて無視されます。この機能は Windows用アプリケーション専用のもので、関連オプションは macOS においてはすべて無視されます。 ::: @@ -36,11 +36,11 @@ SDIモードは以下の実行環境に限り利用可能です: ## SDIモードでのアプリケーションの管理 -4Dアプリケーションを SDIモードで実行するために、特別な実装は必要ありません。既存のメニューバーは自動的に SDIウィンドウへと移されます。 しかしながら、以下に挙げられている特定の原則に注意する必要があります。 +4Dアプリケーションを SDIモードで実行するために、特別な実装は必要ありません。既存のメニューバーは自動的に SDIウィンドウへと移されます。しかしながら、以下に挙げられている特定の原則に注意する必要があります。 ### ウィンドウ内のメニュー -SDIモードでは、同プロセス中に開かれたすべてのドキュメントタイプウィンドウ (たとえばフローティングパレットはこれに含まれません) には自動的にプロセスメニューバーが表示されます。 ただし、プロセスメニューバーが非表示の状態でも、メニュー項目のショートカットは有効です。 +SDIモードでは、同プロセス中に開かれたすべてのドキュメントタイプウィンドウ (たとえばフローティングパレットはこれに含まれません) には自動的にプロセスメニューバーが表示されます。ただし、プロセスメニューバーが非表示の状態でも、メニュー項目のショートカットは有効です。 メニューは、コンテンツのサイズを変更することなくウィンドウの上部に追加されます: @@ -59,7 +59,7 @@ SDIモードで表示されている場合、[デバッガーウィンドウ](.. ### 自動終了 -MDIモードで実行時、ユーザーによってアプリケーションウィンドウ (MDIウィンドウ) が閉じられると、4Dアプリケーションが終了します。 しかしながら、SDIモードで実行時、4Dアプリケーションにはアプリケーションウィンドウがなく、また開いているウィンドウをすべて閉じたとしても、必ずしもユーザーがアプリケーションを終了したいと思っているとは限りません (たとえばフェイスレスプロセスが熟考中かもしれません) が、場合によっては終了したいという場合もあります。 +MDIモードで実行時、ユーザーによってアプリケーションウィンドウ (MDIウィンドウ) が閉じられると、4Dアプリケーションが終了します。しかしながら、SDIモードで実行時、4Dアプリケーションにはアプリケーションウィンドウがなく、また開いているウィンドウをすべて閉じたとしても、必ずしもユーザーがアプリケーションを終了したいと思っているとは限りません (たとえばフェイスレスプロセスが熟考中かもしれません) が、場合によっては終了したいという場合もあります。 こういった場合を管理するため、SDIモードで実行されている 4Dアプリケーションには、以下の条件が満たされた場合に自動的に (`QUIT 4D` コマンドを呼び出して) 終了する機構が含まれています: @@ -79,16 +79,16 @@ MDIモードで実行時、ユーザーによってアプリケーションウ 4D によって透過的に管理されるとはいえ、SDIモードではアプリケーションインターフェースの管理に関してこれまでと若干の差異が存在します。 4Dランゲージにおける特異性は以下の表にある通りです。 -| コマンド/機能 | Windows での SDIモードの特徴 | -| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `Open form window` | SDIモードにおけるフローティングウィンドウのサポート (`Controller form window`) およびメニューバーの削除 (`Form has no menu bar`) のオプション | -| `Menu bar height` | メニューバーが 2行以上に折り返されている場合でも単一行のメニューバーのピクセル単位での高さを返します。 フォームウィンドウをともなわないプロセスからコマンドが呼ばれている場合には 0 を返します。 | -| `SHOW MENU BAR` / `HIDE MENU BAR` | カレントの (コードが実行されている場所の) フォームウィンドウにのみ適用されます | -| `MAXIMIZE WINDOW` | ウィンドウはスクリーンサイズいっぱいまで最大化されます | -| `CONVERT COORDINATES` | `XY Screen` はメインスクリーンが (0,0) に位置するグローバルな座標系です。 座標系の左側、あるいは上側にあるスクリーンについては、負の値の座標を持つことができ、右側、あるいは下側にあるスクリーンについては `Screen height` や `Screen width` から返される値より大き値を持つことができます。 | -| `MOUSE POSITION` | グローバル座標はスクリーンからの相対位置になります | -| `GET WINDOW RECT` | window パラメーターに -1 を渡した場合、コマンドは 0;0;0;0 を返します | -| `On Drop database method` | サポートされていません | +| コマンド/機能 | Windows での SDIモードの特徴 | +| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `Open form window` | SDIモードにおけるフローティングウィンドウのサポート (`Controller form window`) およびメニューバーの削除 (`Form has no menu bar`) のオプション | +| `Menu bar height` | メニューバーが 2行以上に折り返されている場合でも単一行のメニューバーのピクセル単位での高さを返します。フォームウィンドウをともなわないプロセスからコマンドが呼ばれている場合には 0 を返します。 | +| `SHOW MENU BAR` / `HIDE MENU BAR` | カレントの (コードが実行されている場所の) フォームウィンドウにのみ適用されます | +| `MAXIMIZE WINDOW` | ウィンドウはスクリーンサイズいっぱいまで最大化されます | +| `CONVERT COORDINATES` | `XY Screen` はメインスクリーンが (0,0) に位置するグローバルな座標系です。座標系の左側、あるいは上側にあるスクリーンについては、負の値の座標を持つことができ、右側、あるいは下側にあるスクリーンについては `Screen height` や `Screen width` から返される値より大き値を持つことができます。 | +| `MOUSE POSITION` | グローバル座標はスクリーンからの相対位置になります | +| `GET WINDOW RECT` | window パラメーターに -1 を渡した場合、コマンドは 0;0;0;0 を返します | +| `On Drop database method` | サポートされていません | :::info 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 6c47ccb3fdf988..cc608af96bddfe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -33,7 +33,7 @@ title: リリースノート #### 動作の変更 -- **`GET /Employee/$entityset/?$method=release`** のREST シンタックスは**廃止予定** となり、今後使用されるべきではありません。 エンティティセットを削除するには、今後は [`/$entityset/$release` とPOST 動詞(メソッド)](../REST/$entityset.md) を組み合わせて使用してください。 +- **`GET /Employee/$entityset/?$method=release`** のREST シンタックスは**廃止予定** となり、今後使用されるべきではありません。エンティティセットを削除するには、今後は [`/$entityset/$release` とPOST 動詞(メソッド)](../REST/$entityset.md) を組み合わせて使用してください。 ## 4D 21 R3 @@ -50,13 +50,13 @@ title: リリースノート - 新しい[データベース設定の新しい **AI** ページ](../settings/ai.md) を使うことで、4D AIKit コンポーネントを使用したコード内から呼び出し可能な、 [プロバイダーモデルエイリアス](../aikit/provider-model-aliases.md) を設定することができるようになりました。 - 4D AIKit コンポーネント: 新しい[Providers](../aikit/Classes/OpenAIProviders.md) クラスを使用して [プロバイダーとモデルエイリアス](../aikit/provider-model-aliases.md) をインスタンス化して管理することができます。 - ORDA データモデル関数および共有/セッションシングルトン関数における [`server` キーワード](../Concepts/classes.md#server) のサポート。 -- Liquid glass および Fluent UI インターフェースのフォーム用の新しい[印刷レンダラー](../FormEditor/forms.md#印刷レンダリングエンジン)。 [クラシックインターフェースのレンダラーを有効化する](../FormEditor/forms.md#旧式印刷レンダラー) ための新しい互換性オプション。 +- Liquid glass および Fluent UI インターフェースのフォーム用の新しい[印刷レンダラー](../FormEditor/forms.md#印刷レンダリングエンジン)。[クラシックインターフェースのレンダラーを有効化する](../FormEditor/forms.md#旧式印刷レンダラー) ための新しい互換性オプション。 - 依存関係: [GitLab リポジトリ上に保存されたコンポーネント](../Project/components.md#configuring-a-gitlab-repository) のサポート。 - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=21_R3): 4D 21 R3 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2026/101/release-note-version-21r3/))。 #### macOS におけるLiquid glass のサポート -- macOS 26 Tahoe 上での4D における、[**Liquid glass** インターフェース](https://www.apple.com/newsroom/2025/06/apple-introduces-a-delightful-and-elegant-new-software-design/) の自動サポート。 詳細な情報については、[こちらの blog 記事](https://blog.4d.com/the-new-macos-tahoe-design-comes-to-your-4d-applications) を参照してください。 +- macOS 26 Tahoe 上での4D における、[**Liquid glass** インターフェース](https://www.apple.com/newsroom/2025/06/apple-introduces-a-delightful-and-elegant-new-software-design/) の自動サポート。詳細な情報については、[こちらの blog 記事](https://blog.4d.com/the-new-macos-tahoe-design-comes-to-your-4d-applications) を参照してください。 - [`FORM Theme`](../commands/form-theme) コマンド および [CSS メディアクエリ](../FormEditor/createStylesheet.md#media-queries)から返される新しい値。 - 開発者がインターフェースを徐々に適合していけるようにするために、アプリケーションの*Info.plist* ファイル内の"UIDesignRequiresCompatibility" キーを使用して**4D 組み込みのアプリケーションにおいてLiquid glass を無効化する機能** ([このキーに関するApple のドキュメンテーション](https://developer.apple.com/documentation/BundleResources/Information-Property-List/UIDesignRequiresCompatibility) を参照のこと)。 @@ -64,9 +64,9 @@ title: リリースノート - [`JSON Validate`](../commands/json-validate) コマンドは *$schema* キーを考慮するようになり、スキーマ内でサポートされていないバージョンが宣言されたときにはエラーを生成するようになりました。 - 分かりやすさのために、フォーミュラオブジェクトは、汎用的な [`4D.Function`](../API/FunctionClass.md) クラスを継承する [`4D.Formula`](../API/FormulaClass.md) クラスの新しいインスタンスになりました。 -- 4D 21 R3 では、[コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー) にもたらされた新しい改良が、ランゲージコマンドに対しても適用されます([こちらのblog 記事](https://blog.4d.com/enhancement-of-command-syntax-checking-in-the-editor)を参照してください)。 以前は検知されなかったシンタックスエラーがコード内でフラグ付けされるようになりました。 +- 4D 21 R3 では、[コードライブチェッカー](../code-editor/write-class-method.md#警告とエラー) にもたらされた新しい改良が、ランゲージコマンドに対しても適用されます([こちらのblog 記事](https://blog.4d.com/enhancement-of-command-syntax-checking-in-the-editor)を参照してください)。以前は検知されなかったシンタックスエラーがコード内でフラグ付けされるようになりました。 - [設定ダイアログボックス](../settings/overview.md) から、"PHP" ページが削除されました。 PHP インタープリターを設定するためには、[`SET DATABASE PARAMETER` のPHP セレクター](../commands/set-database-parameter#php-interpreter-ip-address-55) を使用してください。 -- **旧式** ネットワークレイヤーはサポートされなくなりました。 旧式ネットワークレイヤーを使用していたプロジェクトまたはバイナリーデータベースは、4D 21 R3 以降にアップグレードした際に自動的に[**ServerNet**](../settings/client-server.md#ネットワークレイヤー) へと設定されます。 +- **旧式** ネットワークレイヤーはサポートされなくなりました。旧式ネットワークレイヤーを使用していたプロジェクトまたはバイナリーデータベースは、4D 21 R3 以降にアップグレードした際に自動的に[**ServerNet**](../settings/client-server.md#ネットワークレイヤー) へと設定されます。 ## 4D 21 R2 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md index c2d10f281da4e1..8059ee531885b3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md @@ -3,7 +3,7 @@ id: client-server-optimization title: クライアント/サーバーの最適化 --- -4Dは、クライアント/サーバーアーキテクチャーにおいてエンティティセレクションを使用、あるいはエンティティを読み込む ORDAリクエストについて最適化する機構を提供しています。 この最適化機構は、ネットワーク間でやり取りされるデータの量を大幅に縮小させることで 4Dの実行速度を向上させます。 これには以下のような機能が含まれます: +4Dは、クライアント/サーバーアーキテクチャーにおいてエンティティセレクションを使用、あるいはエンティティを読み込む ORDAリクエストについて最適化する機構を提供しています。この最適化機構は、ネットワーク間でやり取りされるデータの量を大幅に縮小させることで 4Dの実行速度を向上させます。これには以下のような機能が含まれます: - **最適化コンテキスト** - **ORDAキャッシュ** @@ -19,7 +19,7 @@ title: クライアント/サーバーの最適化 最適化コンテキストは、以下の実装に基づいています: -- クライアントがサーバーに対してエンティティセレクションのリクエストを送ると、4D はコード実行の途中で、エンティティセレクションのどの属性がクライアント側で実際に使用されているかを自動的に "学習" し、それに対応した "最適化コンテキスト" をビルドします。 このコンテキストはエンティティセレクションに付随し、使用された属性を保存していきます。 他の属性があとで使用された場合には自動的に情報を更新していきます。 以下のメソッドや関数が学習のトリガーとなります: +- クライアントがサーバーに対してエンティティセレクションのリクエストを送ると、4D はコード実行の途中で、エンティティセレクションのどの属性がクライアント側で実際に使用されているかを自動的に "学習" し、それに対応した "最適化コンテキスト" をビルドします。このコンテキストはエンティティセレクションに付随し、使用された属性を保存していきます。他の属性があとで使用された場合には自動的に情報を更新していきます。以下のメソッドや関数が学習のトリガーとなります: - [`Create entity selection`](../commands/create-entity-selection) - [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) - [`dataClass.all()`](../API/DataClassClass.md#all) @@ -27,7 +27,7 @@ title: クライアント/サーバーの最適化 - [`dataClass.query()`](../API/DataClassClass.md#query) - [`entitySelection.query()`](../API/EntitySelectionClass.md#query) -- サーバー上の同じエンティティセレクションに対してその後に送られたリクエストは、最適化コンテキストを再利用して、サーバーから必要な属性のみを取得していくことで、処理を速くします。 たとえば、[エンティティセレクション型のリストボックス](#エンティティセレクション型リストボックス) では、先頭行の表示中に学習がおこなわれます。 次の行からは、表示が最適化されます。 以下の関数は、ソースのエンティティセレクションの最適化コンテキストを、戻り値のエンティティセレクションに自動的に付与します: +- サーバー上の同じエンティティセレクションに対してその後に送られたリクエストは、最適化コンテキストを再利用して、サーバーから必要な属性のみを取得していくことで、処理を速くします。たとえば、[エンティティセレクション型のリストボックス](#エンティティセレクション型リストボックス) では、先頭行の表示中に学習がおこなわれます。次の行からは、表示が最適化されます。以下の関数は、ソースのエンティティセレクションの最適化コンテキストを、戻り値のエンティティセレクションに自動的に付与します: - [`entitySelection.and()`](../API/EntitySelectionClass.md#and) - [`entitySelection.minus()`](../API/EntitySelectionClass.md#minus) - [`entitySelection.or()`](../API/EntitySelectionClass.md#or) @@ -43,7 +43,7 @@ title: クライアント/サーバーの最適化 :::note 互換性に関する注意 -[`Open datastore`](../commands/open-datastore) で確立された接続で扱われるコンテキストは、メジャーバージョンが共通する 4D でのみ使用できます。 たとえば、4D 20.x リモートアプリケーションは、4D Server 20.x のデータストアのコンテキストのみを使用できます。 +[`Open datastore`](../commands/open-datastore) で確立された接続で扱われるコンテキストは、メジャーバージョンが共通する 4D でのみ使用できます。たとえば、4D 20.x リモートアプリケーションは、4D Server 20.x のデータストアのコンテキストのみを使用できます。 ::: @@ -62,11 +62,11 @@ title: クライアント/サーバーの最適化 ### contextプロパティの使用 -**context** プロパティを使用することで、最適化の利点をさらに増幅させることができます。 このプロパティは、あるエンティティセレクション用に "学習した" 最適化コンテキストを参照します。 これを新しいエンティティセレクションを返す ORDA関数に引数として渡すことで、その返されたエンティティセレクションでは学習フェーズを最初から省略して使用される属性をサーバーにリクエストできるようになります。 +**context** プロパティを使用することで、最適化の利点をさらに増幅させることができます。このプロパティは、あるエンティティセレクション用に "学習した" 最適化コンテキストを参照します。これを新しいエンティティセレクションを返す ORDA関数に引数として渡すことで、その返されたエンティティセレクションでは学習フェーズを最初から省略して使用される属性をサーバーにリクエストできるようになります。 > [`.setRemoteContextInfo()`](../API/DataStoreClass.md#setremotecontextinfo) 関数を使って、コンテキストを作成することもできます。 -エンティティセレクションを扱うすべての ORDA関数は、context プロパティをサポートします (たとえば dataClass.query( ) あるいは dataClass.all( ) など)。 同じ最適化 context プロパティは、同じデータクラスのエンティティセレクションに対してであればどのエンティティセレクションにも渡すことができます。 ただし、 コードの他の部分で新しい属性が使用された際にはコンテキストは自動的に更新されるという点に注意してください。 同じコンテキストを異なるコードで再利用しすぎると、コンテキストを読み込み過ぎて、結果として効率が落ちる可能性があります。 +エンティティセレクションを扱うすべての ORDA関数は、context プロパティをサポートします (たとえば dataClass.query( ) あるいは dataClass.all( ) など)。同じ最適化 context プロパティは、同じデータクラスのエンティティセレクションに対してであればどのエンティティセレクションにも渡すことができます。ただし、 コードの他の部分で新しい属性が使用された際にはコンテキストは自動的に更新されるという点に注意してください。同じコンテキストを異なるコードで再利用しすぎると、コンテキストを読み込み過ぎて、結果として効率が落ちる可能性があります。 > 同様の機構は読み込まれたエンティティにも実装されており、それによって使用した属性のみがリクエストされるようになります ([`dataClass.get( )`](../API/DataClassClass.md#get) 関数参照)。 @@ -99,16 +99,16 @@ title: クライアント/サーバーの最適化 4D クライアント/サーバーデスクトップアプリケーションでのエンティティセレクション型リストボックスにおいては、そのコンテンツを表示またはスクロールする際に、最適化が自動的に適用されます。 つまり、リストボックスに表示されている属性のみがサーバーにリクエストされます。 -また、リストボックスの **カレントの項目** プロパティ式 ([コレクション/エンティティセレクション型リストボックス](FormObjects/listbox_overview.md#リストボックスの型) 参照) を介してカレントエンティティをロードする場合には、専用の "ページモード" コンテキストが提供されます。 これによって、"ページ" が追加属性をリクエストしても、リストボックスのコンテキストのオーバーロードが避けられます。 なお、ページコンテキストの生成/使用は **カレントの項目** 式を使用した場合に限ります (たとえば、`entitySelection[index]` を介して同じエンティティにアクセスした場合は、エンティティセレクションコンテキストが変化します)。 +また、リストボックスの **カレントの項目** プロパティ式 ([コレクション/エンティティセレクション型リストボックス](FormObjects/listbox_overview.md#リストボックスの型) 参照) を介してカレントエンティティをロードする場合には、専用の "ページモード" コンテキストが提供されます。これによって、"ページ" が追加属性をリクエストしても、リストボックスのコンテキストのオーバーロードが避けられます。なお、ページコンテキストの生成/使用は **カレントの項目** 式を使用した場合に限ります (たとえば、`entitySelection[index]` を介して同じエンティティにアクセスした場合は、エンティティセレクションコンテキストが変化します)。 -その後、エンティティを走査する関数がサーバーに送信するリクエストにも、同じ最適化が適用されます。 以下の関数は、ソースエンティティの最適化コンテキストを、戻り値のエンティティに自動的に付与します: +その後、エンティティを走査する関数がサーバーに送信するリクエストにも、同じ最適化が適用されます。以下の関数は、ソースエンティティの最適化コンテキストを、戻り値のエンティティに自動的に付与します: - [`entity.next()`](../API/EntityClass.md#next) - [`entity.first()`](../API/EntityClass.md#first) - [`entity.last()`](../API/EntityClass.md#last) - [`entity.previous()`](../API/EntityClass.md#previous) -たとえば、次のコードは選択したエンティティをロードし、所属しているエンティティセレクションを走査します。 エンティティは独自のコンテキストにロードされ、リストボックスのコンテキストは影響されません: +たとえば、次のコードは選択したエンティティをロードし、所属しているエンティティセレクションを走査します。エンティティは独自のコンテキストにロードされ、リストボックスのコンテキストは影響されません: ```4d $myEntity:=Form.currentElement // カレント項目の式 @@ -118,7 +118,7 @@ title: クライアント/サーバーの最適化 ### コンテキストの事前設定 -最高のパフォーマンスを得るには、アプリケーションの機能またはアルゴリズムごとに最適化コンテキストが定義されていることが推奨されます。 たとえば、あるコンテキストは顧客に関するクエリに、別のコンテキストは商品に関するクエリに使用することができます。 +最高のパフォーマンスを得るには、アプリケーションの機能またはアルゴリズムごとに最適化コンテキストが定義されていることが推奨されます。たとえば、あるコンテキストは顧客に関するクエリに、別のコンテキストは商品に関するクエリに使用することができます。 最高レベルに最適化された最終アプリケーションを提供したい場合、以下の手順でコンテキストを事前に設定することで、学習フェーズを省略することができます: @@ -131,11 +131,11 @@ title: クライアント/サーバーの最適化 最適化のため、ORDA経由でサーバーにリクエストしたデータは、(4Dキャッシュとは異なる) ORDAリモートキャッシュに読み込まれます。 ORDAキャッシュはデータクラスごとに構成され、30秒後に失効します。 -キャッシュに含まれるデータは、タイムアウトに達すると期限切れとみなされます。 期限切れデータにアクセスする場合は、サーバーにリクエストが送信されます。 期限切れデータは、スペースが必要になるまでキャッシュに残ります。 +キャッシュに含まれるデータは、タイムアウトに達すると期限切れとみなされます。期限切れデータにアクセスする場合は、サーバーにリクエストが送信されます。期限切れデータは、スペースが必要になるまでキャッシュに残ります。 [`refresh()`](../API/EntitySelectionClass.md#refresh) 関数を使用して、ORDAキャッシュにあるエンティティセレクションのデータをいつでも強制的に期限切れにすることができます。 -デフォルトでは、ORDAキャッシュは 4D によって透過的に処理されます。 しかし、以下の ORDAクラスの関数を使用して、その内容を制御することができます: +デフォルトでは、ORDAキャッシュは 4D によって透過的に処理されます。しかし、以下の ORDAクラスの関数を使用して、その内容を制御することができます: - [dataClass.setRemoteCacheSettings()](../API/DataClassClass.md#setremotecachesettings) - [dataClass.getRemoteCache()](../API/DataClassClass.md#getremotecache) @@ -143,9 +143,9 @@ title: クライアント/サーバーの最適化 ### `local` キーワードの使用 -デフォルトで、[ORDA データモデル関数](../ORDA/ordaClasses.md) はサーバー上で実行されます。これは関数リクエストと結果のみがネットワーク越しで送信されるため、一般的にはベストパフォーマンスを提供するとされています。 しかしながら、関数がローカルキャッシュ内に既にあるデータを処理するために、クライアント側だけで完全に完結可能な場合もあります。 この場合、[関数定義内で `local` キーワードを使用する](../Concepts/classes.md#local) ことによって、サーバーへのリクエスト回数をおさえ、結果としてアプリケーションのパフォーマンスを改善することができます。 +デフォルトで、[ORDA データモデル関数](../ORDA/ordaClasses.md) はサーバー上で実行されます。これは関数リクエストと結果のみがネットワーク越しで送信されるため、一般的にはベストパフォーマンスを提供するとされています。しかしながら、関数がローカルキャッシュ内に既にあるデータを処理するために、クライアント側だけで完全に完結可能な場合もあります。この場合、[関数定義内で `local` キーワードを使用する](../Concepts/classes.md#local) ことによって、サーバーへのリクエスト回数をおさえ、結果としてアプリケーションのパフォーマンスを改善することができます。 -最終的にサーバーへのアクセスが必要になっても (ORDAキャッシュが有効期限切れになった場合など) 関数は動作します。 もっとも、それではローカル実行によるパフォーマンスの向上は見込めないため、ローカル関数がサーバー上のデータにアクセスしないことを確認しておくことが推奨されます。 サーバーに対して複数のリクエストをおこなうローカル関数は、サーバー上で実行されて結果だけを返す関数よりも非効率的です。 たとえば、Schools Entityクラスの次の関数を考えます: +最終的にサーバーへのアクセスが必要になっても (ORDAキャッシュが有効期限切れになった場合など) 関数は動作します。もっとも、それではローカル実行によるパフォーマンスの向上は見込めないため、ローカル関数がサーバー上のデータにアクセスしないことを確認しておくことが推奨されます。サーバーに対して複数のリクエストをおこなうローカル関数は、サーバー上で実行されて結果だけを返す関数よりも非効率的です。たとえば、Schools Entityクラスの次の関数を考えます: ```4d // 最も若い生徒を取得する @@ -155,7 +155,7 @@ local Function getYoungest() : Object ``` - `local` キーワードを **使わない** 場合、1つのリクエストで結果が得られます。 -- `local` キーワードを **使う** 場合、4つのリクエストが必要になります: Schools エンティティの students エンティティセレクションの取得、`query()` の実行、`orderBy()` の実行、`slice()` の実行。 この例では、`local` キーワードを使用するのは適切ではありません。 この例では、`local` キーワードを使用するのは適切ではありません。 +- `local` キーワードを **使う** 場合、4つのリクエストが必要になります: Schools エンティティの students エンティティセレクションの取得、`query()` の実行、`orderBy()` の実行、`slice()` の実行。 この例では、`local` キーワードを使用するのは適切ではありません。この例では、`local` キーワードを使用するのは適切ではありません。 #### 例: 属性のチェック diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md index 2734f686a7cc0a..823bb892331cd2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/dsMapping.md @@ -3,7 +3,7 @@ id: dsmapping title: データモデルオブジェクト --- -ORDA テクノロジーは、その下地となる[データベースストラクチャー](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.ja.html) の自動マッピングに基づいています。 ORDA は、エンティティやエンティティセレクションオブジェクトを介してデータへのアクセスも提供します。 結果的に ORDA は、データモデルオブジェクト一式の形でデータベース全体を公開します。 +ORDA テクノロジーは、その下地となる[データベースストラクチャー](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.ja.html) の自動マッピングに基づいています。 ORDA は、エンティティやエンティティセレクションオブジェクトを介してデータへのアクセスも提供します。結果的に ORDA は、データモデルオブジェクト一式の形でデータベース全体を公開します。 ## ストラクチャーマッピング @@ -19,8 +19,8 @@ ORDA テクノロジーは、その下地となる[データベースストラ 変換の際には以下のルールが適用されます: -- テーブル、フィールド、そしてリレーション名はオブジェクトプロパティ名へとマップされます。 それらの名前が標準のオブジェクト命名規則に則っているようにしてください ([識別子の命名規則](Concepts/identifiers.md) 参照)。 -- データストアは単一のプライマリーキーを持つテーブルのみを参照します。 以下のテーブルは参照されません: +- テーブル、フィールド、そしてリレーション名はオブジェクトプロパティ名へとマップされます。それらの名前が標準のオブジェクト命名規則に則っているようにしてください ([識別子の命名規則](Concepts/identifiers.md) 参照)。 +- データストアは単一のプライマリーキーを持つテーブルのみを参照します。以下のテーブルは参照されません: - プライマリーキーがないテーブル - 複合プライマリーキーを持つテーブル - BLOBフィールドは、[BLOB オブジェクト](Concepts/dt_blob.md#blob-の種類) 型の属性として利用可能です。 @@ -41,13 +41,13 @@ ORDA テクノロジーは、その下地となる[データベースストラ ### データモデルのアップデート -データベースストラクチャーレベルで変更がおこなわれると、カレントの ORDA モデルレイヤーは無効化されます。 これらの変更には、以下のものが含まれます: +データベースストラクチャーレベルで変更がおこなわれると、カレントの ORDA モデルレイヤーは無効化されます。これらの変更には、以下のものが含まれます: - テーブル、フィールド、リレーションの追加または削除 - テーブル、フィールド、リレーションの名称変更 - フィールドの核となるプロパティ (型、重複不可、インデックス、自動インクリメント、null値サポートなど) の変更 -カレントの ORDA モデルレイヤーが無効化されると、その後 4D または 4D Server のローカルの `ds` データストアを呼び出した時にモデルレイヤーが自動的に再読み込みされ、更新されます。 ただし、エンティティやエンティティセレクションなど、ORDA オブジェクトへの既存の参照は、再生成されるまではそれらが作成されたときのモデルを使用し続けるという点に注意してください。 +カレントの ORDA モデルレイヤーが無効化されると、その後 4D または 4D Server のローカルの `ds` データストアを呼び出した時にモデルレイヤーが自動的に再読み込みされ、更新されます。ただし、エンティティやエンティティセレクションなど、ORDA オブジェクトへの既存の参照は、再生成されるまではそれらが作成されたときのモデルを使用し続けるという点に注意してください。 また、アップデートされた ORDA モデルレイヤーは、以下のコンテキストにおいては自動的には利用可能にはなりません: @@ -58,10 +58,10 @@ ORDA テクノロジーは、その下地となる[データベースストラ ### データストア -データストアは、データベースへのインターフェースオブジェクトです。 データベース全体を反映したものをオブジェクトとしてビルドします。 データストアは **モデル** と **データ** から構成されています: +データストアは、データベースへのインターフェースオブジェクトです。データベース全体を反映したものをオブジェクトとしてビルドします。データストアは **モデル** と **データ** から構成されています: -- モデルにはデータストアを構成するすべてのデータクラスが格納され、その詳細な情報も含まれます。 これはその下地にあるデータベース自体からは独立した存在です。 -- データとは、そのモデル内で使用・保存される情報を指します。 たとえば、従業員の名前、住所、生年月日などはデータストア内で扱うことができるデータに含まれます。 +- モデルにはデータストアを構成するすべてのデータクラスが格納され、その詳細な情報も含まれます。これはその下地にあるデータベース自体からは独立した存在です。 +- データとは、そのモデル内で使用・保存される情報を指します。たとえば、従業員の名前、住所、生年月日などはデータストア内で扱うことができるデータに含まれます。 データストア型オブジェクトは、[**データストア**](../API/DataStoreClass.md) クラスの関数とプロパティを介して扱うことができます。 @@ -92,7 +92,7 @@ $mydatastore:=OB Copy(ds) // null を返します ### データクラス -データクラスとは、テーブルに相当するものです。 オブジェクトモデルとして使用され、リレーショナル属性 (データクラス間のリレーションに基づいてビルドされた属性) を含めてすべてのフィールドを属性として参照します。 リレーショナル属性はクエリにおいて通常の属性のように使用することができます。 +データクラスとは、テーブルに相当するものです。オブジェクトモデルとして使用され、リレーショナル属性 (データクラス間のリレーションに基づいてビルドされた属性) を含めてすべてのフィールドを属性として参照します。リレーショナル属性はクエリにおいて通常の属性のように使用することができます。 データクラス型オブジェクトは、[**データクラス**](../API/DataClassClass.md) クラスの関数とプロパティを介して扱うことができます。 @@ -102,7 +102,7 @@ $mydatastore:=OB Copy(ds) // null を返します ![](../assets/en/ORDA/companyTable.png) -`Company` テーブルは `ds` データストア内のデータクラスとして自動的に利用可能です。 以下のように書くことができます: +`Company` テーブルは `ds` データストア内のデータクラスとして自動的に利用可能です。以下のように書くことができます: ```4d var $compClass : cs.Company // Company クラスのオブジェクト変数として $compClass を宣言します @@ -114,7 +114,7 @@ $compClass:=ds.Company // Company データクラスへの参照を $compClass - 属性 - リレーション属性 -データクラスは実際のデータベースの概略を提供し、概念的なデータモデルの管理を可能にします。 データクラスはデータストアをクエリする唯一の方法です。 クエリは単一のデータクラスを通して実行されます。 クエリはデータクラスの属性およびリレーション属性名に基づいてビルドされます。 リレーション属性は、一つのクエリ内で複数のリンクされたテーブルを用いる手段です。 +データクラスは実際のデータベースの概略を提供し、概念的なデータモデルの管理を可能にします。データクラスはデータストアをクエリする唯一の方法です。クエリは単一のデータクラスを通して実行されます。クエリはデータクラスの属性およびリレーション属性名に基づいてビルドされます。リレーション属性は、一つのクエリ内で複数のリンクされたテーブルを用いる手段です。 データクラスオブジェクト自身は、オブジェクトとしてコピーすることはできません: @@ -132,24 +132,23 @@ OB GET PROPERTY NAMES(ds.Employee;$prop) ### 属性 -データクラスプロパティは、下地にあるフィールドやリレーションを説明する属性オブジェクトです。 例: +データクラスプロパティは、下地にあるフィールドやリレーションを説明する属性オブジェクトです。例: ```4d $nameAttribute:=ds.Company.name // クラス属性への参照 $revenuesAttribute:=ds.Company["revenues"] // 別の書き方 ``` -このコードは、`$nameAttribute` および `$revenuesAttribute` に、`Company` クラスの name および revenues 属性の参照をそれぞれ代入します。 このシンタックスで返されるのは、属性内に保管されている値ではなく、[**属性のプロパティ** を含む](../API/DataClassClass.md#属性名)、属性自身の参照である点に留意してください。 -値を管理するためには、[エンティティ](#エンティティ) を使用する必要があります。 +このコードは、`$nameAttribute` および `$revenuesAttribute` に、`Company` クラスの name および revenues 属性の参照をそれぞれ代入します。このシンタックスで返されるのは、属性内に保管されている値ではなく、[**属性のプロパティ** を含む](../API/DataClassClass.md#属性名)、属性自身の参照である点に留意してください。値を管理するためには、[エンティティ](#エンティティ) を使用する必要があります。 テーブル内の適格なフィールドはすべて、親 [データクラス](#データクラス) の属性として利用可能です。 `Open datastore` コマンドまたは [REST リクエスト](REST/gettingStarted.md) によってアクセスするリモートデータストアの場合、データクラスの属性として公開したい各フィールドについて 4D ストラクチャーのレベルで **RESTリソースとして公開** プロパティを設定する必要があります。 #### ストレージ属性とリレーション属性 -データクラス属性にはいくつかの種類があります。 ストレージ、リレートエンティティ、リレートエンティティズです。 スカラーである属性 (単一の値のみを提供するもの) は標準の 4D データ型 (整数、テキスト、オブジェクトなど) をサポートします。 +データクラス属性にはいくつかの種類があります。 ストレージ、リレートエンティティ、リレートエンティティズです。スカラーである属性 (単一の値のみを提供するもの) は標準の 4D データ型 (整数、テキスト、オブジェクトなど) をサポートします。 -- **ストレージ属性** は4D データベース内のフィールドに相当するもので、インデックスをつけることができます。 ストレージ属性に割り当てられた値は、保存時にエンティティの一部として保存されます。 ストレージ属性にアクセスしたとき、その値はデータストアから直接取り出されます。 ストレージ属性はエンティティを構成するもっとも基礎的な要素であり、名前とデータ型により定義されます。 -- **リレーション属性** は他のエンティティへのアクセスを提供します。 リレーション属性は単一のエンティティ (あるいはエンティティなし) あるいはエンティティセレクション (0からNまでのエンティティ) のどちらかになります。 リレーション属性はリレーショナルストラクチャーの "クラシックな" リレーションに基づいており、リレートエンティティあるいはリレートエンティティズへの直接的なアクセスを提供します。 リレーション属性は、ORDA においては名前を使用することで直接的に利用可能です。 +- **ストレージ属性** は4D データベース内のフィールドに相当するもので、インデックスをつけることができます。ストレージ属性に割り当てられた値は、保存時にエンティティの一部として保存されます。ストレージ属性にアクセスしたとき、その値はデータストアから直接取り出されます。ストレージ属性はエンティティを構成するもっとも基礎的な要素であり、名前とデータ型により定義されます。 +- **リレーション属性** は他のエンティティへのアクセスを提供します。リレーション属性は単一のエンティティ (あるいはエンティティなし) あるいはエンティティセレクション (0からNまでのエンティティ) のどちらかになります。リレーション属性はリレーショナルストラクチャーの "クラシックな" リレーションに基づいており、リレートエンティティあるいはリレートエンティティズへの直接的なアクセスを提供します。リレーション属性は、ORDA においては名前を使用することで直接的に利用可能です。 たとえば、以下の部分的なデータベースストラクチャーと、そのリレーションプロパティについて考えます: @@ -171,17 +170,17 @@ OB GET PROPERTY NAMES(ds.Employee;$prop) ![](../assets/en/ORDA/dataclassProperties.png) -これらのオブジェクトは属性を表しますが、データへのアクセスは与えないという点に注意してください。 データの読み書きは [エンティティオブジェクト](entities.md#エンティティ属性の使用) を通しておこなわれます。 +これらのオブジェクトは属性を表しますが、データへのアクセスは与えないという点に注意してください。データの読み書きは [エンティティオブジェクト](entities.md#エンティティ属性の使用) を通しておこなわれます。 #### 計算属性とエイリアス属性 -[計算属性](ordaClasses.md#計算属性) と [エイリアス属性](ordaClasses.md#エイリアス属性) は "仮想" 属性です。 この属性値はアクセスされるたびに評価され、保存されません。 計算属性は、基礎となるデータベースストラクチャーには属しませんが、その上に構築され、データモデルの属性と同様に使用することができます。 +[計算属性](ordaClasses.md#計算属性) と [エイリアス属性](ordaClasses.md#エイリアス属性) は "仮想" 属性です。この属性値はアクセスされるたびに評価され、保存されません。計算属性は、基礎となるデータベースストラクチャーには属しませんが、その上に構築され、データモデルの属性と同様に使用することができます。 ### Entity -エンティティとは、レコードに相当するものです。 実際にはデータベース内のレコードを参照するオブジェクトです。 エンティティは、[データクラス](#データクラス) のインスタンスとも解釈可能なオブジェクトです。 同時にエンティティは、データストアがもとにしているデータベースに相関するデータも格納しています。 +エンティティとは、レコードに相当するものです。実際にはデータベース内のレコードを参照するオブジェクトです。エンティティは、[データクラス](#データクラス) のインスタンスとも解釈可能なオブジェクトです。同時にエンティティは、データストアがもとにしているデータベースに相関するデータも格納しています。 -エンティティの目的はデータの管理 (作成、更新、削除) です。 エンティティセレクションを用いてエンティティ参照を取得した場合、その参照にはエンティティセレクションについての情報も保持されるため、セレクションを走査することが可能です。 +エンティティの目的はデータの管理 (作成、更新、削除) です。エンティティセレクションを用いてエンティティ参照を取得した場合、その参照にはエンティティセレクションについての情報も保持されるため、セレクションを走査することが可能です。 エンティティ型オブジェクトは、 [**エンティティ**](../API/EntityClass.md) クラスの関数とプロパティを介して扱うことができます。 @@ -201,7 +200,7 @@ OB GET PROPERTY NAMES(ds.Employee;$prop) ### エンティティセレクション -エンティティセレクションとは、同じデータクラスに所属する一つ以上のエンティティへの参照を格納しているオブジェクトのことです。 通常、クエリの結果として、あるいはリレーション属性の戻り値として作成されます。 エンティティセレクションは、データクラスから 0個、1個、あるいは X個のエンティティを格納することができます (X はデータクラスに格納されているエンティティの総数です)。 +エンティティセレクションとは、同じデータクラスに所属する一つ以上のエンティティへの参照を格納しているオブジェクトのことです。通常、クエリの結果として、あるいはリレーション属性の戻り値として作成されます。エンティティセレクションは、データクラスから 0個、1個、あるいは X個のエンティティを格納することができます (X はデータクラスに格納されているエンティティの総数です)。 エンティティセレクション型オブジェクトは [**EntitySelection**](../API/EntitySelectionClass.md) クラスの関数とプロパティを介して扱うことができます。 @@ -233,7 +232,7 @@ $e:=ds.Employee.all() // 結果のエンティティセレクションへの参 #### エンティティセレクションの順列あり/順列なし -`orderBy( )` メソッドを使用した場合、あるいは特定のオプションを使用した場合は除き、4D ORDA は最適化の観点からデフォルトで順列なしのエンティティセレクションを作成します。 このドキュメントでは、指定されている場合を除き、"エンティティセレクション" は "順列なしのエンティティセレクション" を指すこととします。 +`orderBy( )` メソッドを使用した場合、あるいは特定のオプションを使用した場合は除き、4D ORDA は最適化の観点からデフォルトで順列なしのエンティティセレクションを作成します。このドキュメントでは、指定されている場合を除き、"エンティティセレクション" は "順列なしのエンティティセレクション" を指すこととします。 順列ありのエンティティセレクションは、必要な場合において、あるいはオプションを使用して特別に要求した場合に限り作成されます。 たとえば、以下のような場合です: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/entities.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/entities.md index 3ea98038c3cf0e..9acd272bfda38e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/entities.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/entities.md @@ -3,7 +3,7 @@ id: entities title: データ操作 --- -ORDA では、[エンティティ](dsMapping.md#entity) および [エンティティセレクション](dsMapping.md#エンティティセレクション) を介してデータにアクセスします。 これらのオブジェクトを使って、データストアのデータを作成・更新・クエリ・ソートすることができます。 +ORDA では、[エンティティ](dsMapping.md#entity) および [エンティティセレクション](dsMapping.md#エンティティセレクション) を介してデータにアクセスします。これらのオブジェクトを使って、データストアのデータを作成・更新・クエリ・ソートすることができます。 ## エンティティの作成 @@ -12,9 +12,9 @@ ORDA では、[エンティティ](dsMapping.md#entity) および [エンティ - エンティティはデータベースレコードへの参照であるため、まず 4Dランゲージを使用してレコードを作成し、その後 [`entity.next()`](../API/EntityClass.md#next) や [`entitySelection.first()`](../API/EntitySelectionClass.md#first) といった ORDA関数を介して、それをエンティティとして参照できます。 - また、[`dataClass.new()`](../API/DataClassClass.md#new) 関数を使用してエンティティを作成することもできます。 -エンティティはメモリ内にしか作成されないという点に注意してください。 データストアに追加したい場合、[`entity.save()`](../API/EntityClass.md#save) 関数を呼ぶ必要があります。 +エンティティはメモリ内にしか作成されないという点に注意してください。データストアに追加したい場合、[`entity.save()`](../API/EntityClass.md#save) 関数を呼ぶ必要があります。 -エンティティ属性は、エンティティオブジェクトのプロパティとして直接利用可能です。 詳細な情報については、[エンティティ属性の使用](#エンティティ属性の使用) を参照してください。 +エンティティ属性は、エンティティオブジェクトのプロパティとして直接利用可能です。詳細な情報については、[エンティティ属性の使用](#エンティティ属性の使用) を参照してください。 たとえば、カレントデータストア内の "Employee" データクラスに新しいエンティティを作成し、firstname と name 属性に "John" と "Dupont" を割り当てたい場合を考えます: @@ -26,11 +26,11 @@ $myEntity.firstname:="John" // 'John' を 'firstname' 属性に代入します $myEntity.save() // エンティティを保存します ``` -> エンティティは、それが作成されたプロセス内でのみ定義されます。 そのため、たとえばエンティティへの参照を、インタープロセス変数内に保存して他のプロセスで使用する、といったことはできません。 +> エンティティは、それが作成されたプロセス内でのみ定義されます。そのため、たとえばエンティティへの参照を、インタープロセス変数内に保存して他のプロセスで使用する、といったことはできません。 ## エンティティと参照 -エンティティには、4Dレコードへの参照が格納されています。 異なるエンティティが同じ 4Dレコードを参照することもあり得ます。 また、エンティティは 4Dオブジェクト変数に保存可能であることから、異なる変数が同じエンティティへの参照を格納していることもあり得ます。 +エンティティには、4Dレコードへの参照が格納されています。異なるエンティティが同じ 4Dレコードを参照することもあり得ます。また、エンティティは 4Dオブジェクト変数に保存可能であることから、異なる変数が同じエンティティへの参照を格納していることもあり得ます。 以下のコードを実行した場合: @@ -65,9 +65,9 @@ $myEntity.save() // エンティティを保存します ![](../assets/en/ORDA/entityRef2.png) -しかし、両方のエンティティが同じレコードを参照していることに注意してください。 どちらの場合でも、`entity.save()` メソッドを呼び出した場合、レコードは更新されます (衝突が発生した場合を除きます。[エンティティロッキング](#エンティティロッキング) 参照)。 +しかし、両方のエンティティが同じレコードを参照していることに注意してください。どちらの場合でも、`entity.save()` メソッドを呼び出した場合、レコードは更新されます (衝突が発生した場合を除きます。[エンティティロッキング](#エンティティロッキング) 参照)。 -実際には、`$e1` も `$e2` もエンティティそのものではなく、エンティティへの参照です。 これはつまり、どのような関数やメソッドにも直接受け渡すことができ、ポインターのように振る舞うということです。そしてこれは 4Dポインターよりもずっと高速です。 例: +実際には、`$e1` も `$e2` もエンティティそのものではなく、エンティティへの参照です。これはつまり、どのような関数やメソッドにも直接受け渡すことができ、ポインターのように振る舞うということです。そしてこれは 4Dポインターよりもずっと高速です。例: ```4d For each($entity;$selection) @@ -90,7 +90,7 @@ $myEntity.save() // エンティティを保存します :::info -エンティティでは、4Dランゲージのような "カレントレコード" という概念はありません。 エンティティは、いくつでも必要な数を同時に使用することができます。 また、エンティティには自動ロックの機構が備わっています ([エンティティロッキング](#エンティティロッキング) 参照)。 エンティティの読み込みには、[レイジーローディング](glossary.md#レイジーローディング) 機構が使用されます。これはつまり必要な分の情報だけが読み込まれるということです。 いずれにせよ、クライアント/サーバーでは必要であればエンティティを直接自動的に読み込むことも可能です。 +エンティティでは、4Dランゲージのような "カレントレコード" という概念はありません。エンティティは、いくつでも必要な数を同時に使用することができます。また、エンティティには自動ロックの機構が備わっています ([エンティティロッキング](#エンティティロッキング) 参照)。エンティティの読み込みには、[レイジーローディング](glossary.md#レイジーローディング) 機構が使用されます。これはつまり必要な分の情報だけが読み込まれるということです。いずれにせよ、クライアント/サーバーでは必要であればエンティティを直接自動的に読み込むことも可能です。 ::: @@ -125,7 +125,7 @@ $myEntity.save() // エンティティを保存します ::: -リレート属性にアクセスできるかどうかは、属性の型によります。 たとえば、以下のようなストラクチャーがあるとき: +リレート属性にアクセスできるかどうかは、属性の型によります。たとえば、以下のようなストラクチャーがあるとき: ![](../assets/en/ORDA/entityAttributes.png) @@ -136,11 +136,11 @@ $myEntity.save() // エンティティを保存します $EntitySel:=ds.Company.all().first().companyProjects // 先頭の会社に関連する Project エンティティセレクションを取得します ``` -上記の例において、*theClient* と *companyProjects* はどちらもプライマリーリレーション属性であり、二つのデータクラス間の直接的なリレーションを表すことに注意してください。 しかしながら、複数のレベルのリレーションを通したパスに基づいてリレーション属性をビルドすることも可能です(循環参照含む)。 たとえば、以下のようなストラクチャーの場合を考えます: +上記の例において、*theClient* と *companyProjects* はどちらもプライマリーリレーション属性であり、二つのデータクラス間の直接的なリレーションを表すことに注意してください。しかしながら、複数のレベルのリレーションを通したパスに基づいてリレーション属性をビルドすることも可能です(循環参照含む)。たとえば、以下のようなストラクチャーの場合を考えます: ![](../assets/en/ORDA/entityAttributes2.png) -社員はそれぞれマネージャーにもなりえますし、マネージャーを持つこともできます。 ある社員のマネージャーのマネージャーを取得したい場合、以下のように書くことができます: +社員はそれぞれマネージャーにもなりえますし、マネージャーを持つこともできます。ある社員のマネージャーのマネージャーを取得したい場合、以下のように書くことができます: ```4d $myEmp:=ds.Employee.get(50) @@ -151,9 +151,9 @@ $myEntity.save() // エンティティを保存します ピクチャー属性には画像を格納することができます。同様に、任意のバイナリーデータを Blob属性に格納することができます。 -ORDA を使って属性に代入できるのは、データそのもの、つまり画像や Blobオブジェクト、またはデータを格納する **ファイルへの参照** のいずれかです。 この場合、エンティティにはファイルパスのみが保存されます。 この場合、エンティティにはファイルパスのみが保存されます。 +ORDA を使って属性に代入できるのは、データそのもの、つまり画像や Blobオブジェクト、またはデータを格納する **ファイルへの参照** のいずれかです。 この場合、エンティティにはファイルパスのみが保存されます。この場合、エンティティにはファイルパスのみが保存されます。 -この機能により、同じ画像を複製せずに複数のエンティティで利用できるほか、好きなようにファイルを整理したり、4D の外でファイルを使用したりできます。 また、データファイルのサイズを管理するのにも役立ちます。 +この機能により、同じ画像を複製せずに複数のエンティティで利用できるほか、好きなようにファイルを整理したり、4D の外でファイルを使用したりできます。また、データファイルのサイズを管理するのにも役立ちます。 ファイルの参照として使用できるのは以下のいずれかです: @@ -179,17 +179,17 @@ Function createCompany($name : Text; $logo : 4D.File) 属性への代入がどのようにされたか (データそのもの、またはファイルの参照) にかかわらず、属性に対する読み取りアクセスはユーザーにとって透過的です。 -代入時にファイルがディスク上に存在する必要はありません (この場合にエラーは返されません)。 属性の読み取り時に参照されたファイルが見つからない場合には、null値が返されます。 +代入時にファイルがディスク上に存在する必要はありません (この場合にエラーは返されません)。属性の読み取り時に参照されたファイルが見つからない場合には、null値が返されます。 :::tip -4D は画像やデータをローカルキャッシュに読み込みます。 読み込み後に参照ファイルが変更された場合、アプリケーションで変更を反映するにはファイルを再代入する必要があります。 +4D は画像やデータをローカルキャッシュに読み込みます。読み込み後に参照ファイルが変更された場合、アプリケーションで変更を反映するにはファイルを再代入する必要があります。 ::: :::note -ファイル参照の代入はローカルモード (4D Server または 4Dシングルユーザー) でのみサポートされています。 リモートで、または RESTリクエストを介して代入を行うと、エラーが生成されます。 +ファイル参照の代入はローカルモード (4D Server または 4Dシングルユーザー) でのみサポートされています。リモートで、または RESTリクエストを介して代入を行うと、エラーが生成されます。 ::: @@ -208,7 +208,7 @@ ORDAアーキテクチャーでは、リレーション属性はエンティテ > ORDAでは、リレーションの自動あるいは手動プロパティは何の効力も持ちません。 -"employer" 属性に直接値を代入したい場合には、"Company" データクラスの既存エンティティを渡す必要があります。 例: +"employer" 属性に直接値を代入したい場合には、"Company" データクラスの既存エンティティを渡す必要があります。例: ```4d $emp:=ds.Employee.new() // 新規の社員エンティティを作成します @@ -217,7 +217,7 @@ ORDAアーキテクチャーでは、リレーション属性はエンティテ $emp.save() ``` -また、主キー値 (Number または Text) を通して "1"側のリレートエンティティを直接取得することもできます。 例: +また、主キー値 (Number または Text) を通して "1"側のリレートエンティティを直接取得することもできます。例: ```4d $emp:=ds.Employee.new() @@ -228,9 +228,9 @@ ORDAアーキテクチャーでは、リレーション属性はエンティテ $emp.save() ``` -これはとくに、リレーショナルデータベースから大量のデータを読み込むときに有用です。 このような読み込みでは通常 "ID" カラムが含まれており、これはリレーション属性に直接割り当て可能なプライマリーキーを参照しています。 +これはとくに、リレーショナルデータベースから大量のデータを読み込むときに有用です。このような読み込みでは通常 "ID" カラムが含まれており、これはリレーション属性に直接割り当て可能なプライマリーキーを参照しています。 -"N" データクラス側のリレーション属性を通して、"1" リレートエンティティの属性値を、直接代入・変更することができます。 たとえば、Employee エンティティにリレートされている Company エンティティの name 属性を変更したい場合、以下のように書くことができます: +"N" データクラス側のリレーション属性を通して、"1" リレートエンティティの属性値を、直接代入・変更することができます。たとえば、Employee エンティティにリレートされている Company エンティティの name 属性を変更したい場合、以下のように書くことができます: ```code4d $emp:=ds.Employee.get(2) // プライマリーキーが 2 の Employee エンティティを読み込みます @@ -257,11 +257,11 @@ $emp:=ds.Employee.get(2) // プライマリーキーが 2 の Employee エンテ ::: -データクラスに対して、異なるエンティティセレクションを好きなだけ同時に作成し、使用することができます。 エンティティセレクションは、エンティティへの参照を格納しているに過ぎないという点に注意してください。 異なるエンティティセレクションが同じエンティティへの参照を格納することも可能です。 +データクラスに対して、異なるエンティティセレクションを好きなだけ同時に作成し、使用することができます。エンティティセレクションは、エンティティへの参照を格納しているに過ぎないという点に注意してください。異なるエンティティセレクションが同じエンティティへの参照を格納することも可能です。 :::note -エンティティが削除されると、その参照は *undefined* の値とともにエンティティセレクションに 残ります。 この場合、[`.clean()`](API/EntitySelectionClass.md#clean) 関数を呼び出すことで、削除されたエンティティ参照が含まれないエンティティセレクションを新規に取得することができます。 +エンティティが削除されると、その参照は *undefined* の値とともにエンティティセレクションに 残ります。この場合、[`.clean()`](API/EntitySelectionClass.md#clean) 関数を呼び出すことで、削除されたエンティティ参照が含まれないエンティティセレクションを新規に取得することができます。 ::: @@ -275,18 +275,18 @@ $emp:=ds.Employee.get(2) // プライマリーキーが 2 の Employee エンテ - 共有オブジェクトまたは共有コレクションに保存することが可能で、複数のプロセス間あるいはワーカー間で引数として受け渡しすることができます。 - 複数の共有オブジェクトまたは共有コレクションに保存することが可能です。また、グループに属している共有オブジェクトまたは共有コレクションに保存することも可能です。 -- 新たにエンティティを追加することはできません。 共有可能なエンティティセレクションに対してエンティティを追加しようとした場合、エラーがトリガーされます (エラー1637 - このエンティティセレクションは編集不可です)。 共有可能なエンティティセレクションに対してエンティティを追加したい場合、[`.add()`](API/EntitySelectionClass.md#add) 関数を呼び出す前に、[`.copy()`](API/EntitySelectionClass.md#copy) 関数を使用して共有不可のエンティティセレクションへと変換する必要があります。 +- 新たにエンティティを追加することはできません。共有可能なエンティティセレクションに対してエンティティを追加しようとした場合、エラーがトリガーされます (エラー1637 - このエンティティセレクションは編集不可です)。共有可能なエンティティセレクションに対してエンティティを追加したい場合、[`.add()`](API/EntitySelectionClass.md#add) 関数を呼び出す前に、[`.copy()`](API/EntitySelectionClass.md#copy) 関数を使用して共有不可のエンティティセレクションへと変換する必要があります。 -> 大多数のエンティティセレクション関数 ([`.slice()`](API/EntitySelectionClass.md#slice), [`.and()`](API/EntitySelectionClass.md#and) 等) は、呼び出し対象のエンティティセレクションを変更せずに新規のエンティティセレクションを返すため、共有可能なエンティティセレクションに対して使用できます。 +> 大多数のエンティティセレクション関数 ([`.slice()`](API/EntitySelectionClass.md#slice), [`.and()`](API/EntitySelectionClass.md#and) 等)は、呼び出し対象のエンティティセレクションを変更せずに新規のエンティティセレクションを返すため、共有可能なエンティティセレクションに対して使用できます。 **追加可能** なエンティティセレクションは以下のような特徴を持ちます: -- プロセス間での共有はできません。また共有オブジェクト/コレクションへの保存もできません。 共有不可のエンティティセレクションを共有オブジェクト/コレクションに保存しようとした場合、エラーがトリガーされます (エラー -10721 - 共有オブジェクトまたはコレクションにおいてサポートされる値の型ではありません)。 +- プロセス間での共有はできません。また共有オブジェクト/コレクションへの保存もできません。共有不可のエンティティセレクションを共有オブジェクト/コレクションに保存しようとした場合、エラーがトリガーされます (エラー -10721 - 共有オブジェクトまたはコレクションにおいてサポートされる値の型ではありません)。 - 新規エンティティを受け取ることができます (つまり、[`.add()`](API/EntitySelectionClass.md#add) 関数を使用できます)。 #### 共有可能/追加可能エンティティセレクションの定義 -エンティティセレクションが **共有可能** または **追加可能** のいずれの特性を持つかは、そのエンティティセレクションの作成時に定義され、あとから変更することはできません。 エンティティセレクションの特性は、[.isAlterable()](API/EntitySelectionClass.md#isalterable) 関数または `OB Is shared` コマンドを使って確認することができます。 +エンティティセレクションが **共有可能** または **追加可能** のいずれの特性を持つかは、そのエンティティセレクションの作成時に定義され、あとから変更することはできません。エンティティセレクションの特性は、[.isAlterable()](API/EntitySelectionClass.md#isalterable) 関数または `OB Is shared` コマンドを使って確認することができます。 新規のエンティティセレクションは次の場合に **共有可能** です: @@ -317,7 +317,7 @@ $toModify:=ds.Company.all().copy() // $toModify は追加可能です 新規のエンティティセレクションは次の場合に、元となるエンティティセレクションの特性を **継承** します: -- 既存のエンティティセレクションに対して呼び出された ORDAクラス関数 ([.query()](API/EntitySelectionClass.md#query), [.slice()](API/EntitySelectionClass.md#slice), 等) によって生成された場合 。 +- 既存のエンティティセレクションに対して呼び出された ORDAクラス関数 ([.query()](API/EntitySelectionClass.md#query), [.slice()](API/EntitySelectionClass.md#slice), 等) によって生成された場合。 - リレーションに基づいて生成された場合: - [entity.*attributeName*](API/EntityClass.md#attributename) (例: "company.employees") の *attributeName* が 1対Nリレーション属性で、かつ entity 自身がエンティティセレクションに属している場合 ([entity.getSelection()](API/EntityClass.md#getselection) エンティティセレクションと同じ特性になります)。 - [entitySelection.*attributeName*](API/EntitySelectionClass.md#attributename) (例: "employees.employer") の *attributeName* がリレーション属性の場合 (エンティティセレクションと同じ特性になります)。 @@ -342,7 +342,7 @@ $comp2:=$lowSal.employer // $lowSal が追加可能なため $comp2 も追加可 :::note サーバーから返されるエンティティセレクション -クライアント/サーバーのアーキテクチャーにおいては、サーバー上で [`copy()`](API/EntitySelectionClass.md#copy) が呼び出されたとしても、サーバーから返されるエンティティセレクションは、クライアント上では常に共有可能です。 このエンティティセレクションをクライアント側で追加可能にするには、クライアント側で [`copy()`](API/EntitySelectionClass.md#copy) を実行する必要があります。 例: +クライアント/サーバーのアーキテクチャーにおいては、サーバー上で [`copy()`](API/EntitySelectionClass.md#copy) が呼び出されたとしても、サーバーから返されるエンティティセレクションは、クライアント上では常に共有可能です。このエンティティセレクションをクライアント側で追加可能にするには、クライアント側で [`copy()`](API/EntitySelectionClass.md#copy) を実行する必要があります。例: ```4d // 関数は常にサーバー上で実行されます @@ -414,7 +414,7 @@ CALL WORKER("mailing"; "sendMails"; $paid; $unpaid) ### エンティティセレクションとストレージ属性 -すべてのストレージ属性 (テキスト、数値、ブール、日付) はエンティティセレクションの、あるいはエンティティのプロパティとして利用可能です。 エンティティセレクションと組み合わせて使用した場合、スカラー属性はスカラー値のコレクションを返します。 例: +すべてのストレージ属性 (テキスト、数値、ブール、日付) はエンティティセレクションの、あるいはエンティティのプロパティとして利用可能です。エンティティセレクションと組み合わせて使用した場合、スカラー属性はスカラー値のコレクションを返します。例: ```4d var $locals : cs.PersonSelection @@ -427,7 +427,7 @@ $localEmails:=$locals.emailAddress // メールアドレス (文字列) のコ ### エンティティセレクションとリレーション属性 -様々なクエリの方法に加えて、リレーション属性をエンティティセレクションのプロパティとして使用することで新しいエンティティセレクションを得ることもできます。 たとえば、以下のようなストラクチャーの場合を考えます: +様々なクエリの方法に加えて、リレーション属性をエンティティセレクションのプロパティとして使用することで新しいエンティティセレクションを得ることもできます。たとえば、以下のようなストラクチャーの場合を考えます: ![](../assets/en/ORDA/entitySelectionRelationAttributes.png) @@ -440,23 +440,23 @@ $myInvoices:=$myParts.invoiceItems.invoice ``` -最後の行は、$myParts エンティティセレクション内のパーツにリレートされている請求項目が少なくとも1行含まれているすべての請求書のエンティティセレクションを、*$myInvoices* 内に返します。 エンティティセレクションのプロパティとしてリレーション属性が使用されると、返される結果は、たとえ返されるエンティティが一つだけだとしても、常に新しいエンティティセレクションとなります。 エンティティセレクションのプロパティとしてリレーション属性が使用された結果、エンティティが何も返ってこない場合には、返されるのは空のエンティティセレクションであり、null ではありません。 +最後の行は、$myParts エンティティセレクション内のパーツにリレートされている請求項目が少なくとも1行含まれているすべての請求書のエンティティセレクションを、*$myInvoices* 内に返します。エンティティセレクションのプロパティとしてリレーション属性が使用されると、返される結果は、たとえ返されるエンティティが一つだけだとしても、常に新しいエンティティセレクションとなります。エンティティセレクションのプロパティとしてリレーション属性が使用された結果、エンティティが何も返ってこない場合には、返されるのは空のエンティティセレクションであり、null ではありません。 ## エンティティセレクションを制限する {#restricting-entity-selections} -ORDAでは、あらゆるデータクラスにおいて、エンティティへのアクセスを制限するフィルターを作成することができます。 一旦実装されると、データクラスのエンティティが **ORDAクラス関数** ([`all()`](../API/DataClassClass.md#all) や [`query()`](../API/EntitySelectionClass.md#query)など) または [**REST API**](../category/api-dataclass) ([Data Explorer](../Admin/dataExplorer.md) や [remote datastores](remoteDatastores.md)など) によってアクセスされるたびに、フィルターが自動的に適用されます。 +ORDAでは、あらゆるデータクラスにおいて、エンティティへのアクセスを制限するフィルターを作成することができます。一旦実装されると、データクラスのエンティティが **ORDAクラス関数** ([`all()`](../API/DataClassClass.md#all) や [`query()`](../API/EntitySelectionClass.md#query)など) または [**REST API**](../category/api-dataclass) ([Data Explorer](../Admin/dataExplorer.md) や [remote datastores](remoteDatastores.md)など) によってアクセスされるたびに、フィルターが自動的に適用されます。 -カレントセッションユーザーなど任意のビジネスルールに基づいて構築されたフィルターは、制限されたデータ表示を可能にします。 たとえば、営業担当者が顧客との取引に使用するようなアプリケーションでは、認証された営業担当者が管理する顧客のみに閲覧を制限することができます。 +カレントセッションユーザーなど任意のビジネスルールに基づいて構築されたフィルターは、制限されたデータ表示を可能にします。たとえば、営業担当者が顧客との取引に使用するようなアプリケーションでは、認証された営業担当者が管理する顧客のみに閲覧を制限することができます。 :::info -フィルターは **エンティティ** に対して適用されます。 **データクラス** そのもの、または特定の **属性** へのアクセスを制限するには、[セッション権限](privileges.md) の利用がより適切です。 +フィルターは **エンティティ** に対して適用されます。**データクラス** そのもの、または特定の **属性** へのアクセスを制限するには、[セッション権限](privileges.md) の利用がより適切です。 ::: ### 制限フィルターの定義 -データクラスのフィルターを作成するには、データクラスの [**DataClass クラス**](dsMapping.md#dataclass) 内に `event restrict` 関数を定義します。 すると、フィルターは自動的に有効になります。 +データクラスのフィルターを作成するには、データクラスの [**DataClass クラス**](dsMapping.md#dataclass) 内に `event restrict` 関数を定義します。すると、フィルターは自動的に有効になります。 ### `Function event restrict` @@ -467,9 +467,9 @@ Function event restrict() -> $result : cs.*DataClassName*Selection // コード ``` -この関数は、データクラスのエンティティセレクションまたはエンティティが要求されるたびに呼び出されます。 フィルターは、エンティティセレクションが作成されたときに一度だけ実行されます。 +この関数は、データクラスのエンティティセレクションまたはエンティティが要求されるたびに呼び出されます。フィルターは、エンティティセレクションが作成されたときに一度だけ実行されます。 -フィルターは、データクラスのエンティティセレクションを返さなければなりません。 戻り値のエンティティセレクションには、クエリの結果や、[`Storage`](../API/SessionClass.md#storage) に格納されているものなどが使えます。 +フィルターは、データクラスのエンティティセレクションを返さなければなりません。戻り値のエンティティセレクションには、クエリの結果や、[`Storage`](../API/SessionClass.md#storage) に格納されているものなどが使えます。 :::note @@ -477,7 +477,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection ::: -関数は、データクラスの有効なエンティティセレクションを返さなければなりません。 以下の場合、フィルターは適用されません (初期リクエストに対応するすべてのエンティティが返されます): +関数は、データクラスの有効なエンティティセレクションを返さなければなりません。以下の場合、フィルターは適用されません (初期リクエストに対応するすべてのエンティティが返されます): - 関数の戻り値が **null** である - 関数の戻り値が **未定義** である @@ -485,7 +485,7 @@ Function event restrict() -> $result : cs.*DataClassName*Selection #### 例題 -Web または RESTリクエストによりアクセスされた場合、Customersデータクラスが公開するのは、認証された営業担当者が担当している顧客に限定されるようにします。 認証段階で、営業担当者は `Session` オブジェクトに格納されます。 また、他の種類のリクエストも扱います。 +Web または RESTリクエストによりアクセスされた場合、Customersデータクラスが公開するのは、認証された営業担当者が担当している顧客に限定されるようにします。認証段階で、営業担当者は `Session` オブジェクトに格納されます。また、他の種類のリクエストも扱います。 ```4d Class extends DataClass @@ -519,7 +519,7 @@ Function event restrict() : cs.CustomersSelection ### フィルターの有効化に関する詳細 -フィルターは、4Dプロジェクト (スタンドアロンおよびクライアント/サーバーアーキテクチャー) で実行されるすべての ORDA または RESTリクエストに適用されます。 プロジェクトを開くと、フィルターはすぐに有効になります。つまり、`On Startup` データベースメソッド内でもトリガーできます。 +フィルターは、4Dプロジェクト (スタンドアロンおよびクライアント/サーバーアーキテクチャー) で実行されるすべての ORDA または RESTリクエストに適用されます。プロジェクトを開くと、フィルターはすぐに有効になります。つまり、`On Startup` データベースメソッド内でもトリガーできます。 :::info @@ -527,22 +527,22 @@ Function event restrict() : cs.CustomersSelection ::: -| 関数 | 説明 | -| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [dataclass.get()](../API/DataClassClass.md#get) | エンティティがフィルターに適合しない場合、`null` が返されます | -| [entity.reload()](../API/EntityClass.md#reload) | クライアント/サーバーおよびリモートデータストアのみ | -| [dataclass.all()](../API/DataClassClass.md#all) | | -| [dataclass.fromCollection()](../API/DataClassClass.md#fromcollection) |
  • 更新の場合、フィルターに適合するエンティティのみを更新できます。 フィルターに適合しないエンティティをコレクションが参照している場合、新規エンティティとして作成されます (重複PKエラーがない場合)。
  • 作成の場合、フィルターに適合しないエンティティも作成されますが、作成後に読み込まれません
  • | -| [entitySelection.and()](../API/EntitySelectionClass.md#and) | フィルターに適合するエンティティのみが返されます | -| [entitySelection.or()](../API/EntitySelectionClass.md#or) | フィルターに適合するエンティティのみが返されます | -| [entitySelection.minus()](../API/EntitySelectionClass.md#minus) | フィルターに適合するエンティティのみが返されます | -| [dataclass.query()](../API/DataClassClass.md#query) | | -| [entitySelection.query()](../API/EntitySelectionClass.md#query) | | -| [entitySelection.attributeName](../API/EntitySelectionClass.md#attributename) | *attributeName* が、制限されたデータクラスのリレートエンティティまたはリレートエンティティズの場合、フィルターが適用されます (エイリアスおよび計算属性も含む) | -| [entity.attributeName](../API/EntityClass.md#attributename) | *attributeName* が、制限されたデータクラスのリレートエンティティズの場合、フィルターが適用されます (エイリアスおよび計算属性も含む) | -| [Create entity selection](../commands/create-entity-selection) | | - -その他の ORDA関数によるデータアクセスはフィルターを直接的にトリガーしないものの、その恩恵を受けることがあります。 たとえば、[`entity.next()`](../API/EntityClass.md#next) 関数は、すでにフィルタリングされたエンティティセレクションにおける次のエンティティを返します。 一方、制限されていないエンティティセレクションの場合、[`entity.next()`](../API/EntityClass.md#next) はフィルタリングされていないエンティティ群に対して動作します。 +| 関数 | 説明 | +| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [dataclass.get()](../API/DataClassClass.md#get) | エンティティがフィルターに適合しない場合、`null` が返されます | +| [entity.reload()](../API/EntityClass.md#reload) | クライアント/サーバーおよびリモートデータストアのみ | +| [dataclass.all()](../API/DataClassClass.md#all) | | +| [dataclass.fromCollection()](../API/DataClassClass.md#fromcollection) |
  • 更新の場合、フィルターに適合するエンティティのみを更新できます。フィルターに適合しないエンティティをコレクションが参照している場合、新規エンティティとして作成されます (重複PKエラーがない場合)。
  • 作成の場合、フィルターに適合しないエンティティも作成されますが、作成後に読み込まれません
  • | +| [entitySelection.and()](../API/EntitySelectionClass.md#and) | フィルターに適合するエンティティのみが返されます | +| [entitySelection.or()](../API/EntitySelectionClass.md#or) | フィルターに適合するエンティティのみが返されます | +| [entitySelection.minus()](../API/EntitySelectionClass.md#minus) | フィルターに適合するエンティティのみが返されます | +| [dataclass.query()](../API/DataClassClass.md#query) | | +| [entitySelection.query()](../API/EntitySelectionClass.md#query) | | +| [entitySelection.attributeName](../API/EntitySelectionClass.md#attributename) | *attributeName* が、制限されたデータクラスのリレートエンティティまたはリレートエンティティズの場合、フィルターが適用されます (エイリアスおよび計算属性も含む) | +| [entity.attributeName](../API/EntityClass.md#attributename) | *attributeName* が、制限されたデータクラスのリレートエンティティズの場合、フィルターが適用されます (エイリアスおよび計算属性も含む) | +| [Create entity selection](../commands/create-entity-selection) | | + +その他の ORDA関数によるデータアクセスはフィルターを直接的にトリガーしないものの、その恩恵を受けることがあります。たとえば、[`entity.next()`](../API/EntityClass.md#next) 関数は、すでにフィルタリングされたエンティティセレクションにおける次のエンティティを返します。一方、制限されていないエンティティセレクションの場合、[`entity.next()`](../API/EntityClass.md#next) はフィルタリングされていないエンティティ群に対して動作します。 :::note @@ -552,7 +552,7 @@ Function event restrict() : cs.CustomersSelection ## エンティティロッキング -一般的に、複数のユーザーあるいはプロセスが同じエンティティを同時に読み込んで変更しようとした際にコンフリクトが発生する可能性を管理する必要があります。 レコードロックは、リレーショナルデータベースにおいてデータに矛盾した更新がなされないようにするための手段です。 読み込み時にレコードをロックして他のプロセスが更新できないようにする、あるいは逆に保存時に読み込んでからの間に他のプロセスがレコードを変更していないかどうかを検証する、というのが基本的な概念です。 前者は **ペシミスティック・レコードロック** と呼ばれ、他のユーザーに対してレコードをロックすることで、変更したいレコードを書き込むことができるようにするものです。 後者は **オプティミスティック・レコードロック** と呼ばれ、レコードが更新される必要がある場合にのみ書き込み権限を与えるという柔軟性があります。 ペシミスティック・レコードロックでは、更新される必要がないときでもレコードはロックされたままです。 オプティミスティック・レコードロックではレコードの書き込みの可能/不可能は更新時に判断されます。 +一般的に、複数のユーザーあるいはプロセスが同じエンティティを同時に読み込んで変更しようとした際にコンフリクトが発生する可能性を管理する必要があります。レコードロックは、リレーショナルデータベースにおいてデータに矛盾した更新がなされないようにするための手段です。読み込み時にレコードをロックして他のプロセスが更新できないようにする、あるいは逆に保存時に読み込んでからの間に他のプロセスがレコードを変更していないかどうかを検証する、というのが基本的な概念です。前者は **ペシミスティック・レコードロック** と呼ばれ、他のユーザーに対してレコードをロックすることで、変更したいレコードを書き込むことができるようにするものです。後者は **オプティミスティック・レコードロック** と呼ばれ、レコードが更新される必要がある場合にのみ書き込み権限を与えるという柔軟性があります。ペシミスティック・レコードロックでは、更新される必要がないときでもレコードはロックされたままです。オプティミスティック・レコードロックではレコードの書き込みの可能/不可能は更新時に判断されます。 ORDA では、以下の二つのロックモードを提供しています: @@ -561,22 +561,22 @@ ORDA では、以下の二つのロックモードを提供しています: ### 自動オプティミスティック・ロック -この自動機構は、"オプティミスティック・ロック" に基づいたもので、これは Webアプリケーションの場合にとくに適しています。 この概念は以下のような動作原理に基づいています: +この自動機構は、"オプティミスティック・ロック" に基づいたもので、これは Webアプリケーションの場合にとくに適しています。この概念は以下のような動作原理に基づいています: - すべてのエンティティは必ず読み書き可能な状態でロードされます。エンティティの *事前* ロックというのはありません。 - 各エンティティには保存されるたびにインクリメントされる内部的なロックスタンプを持っています。 - プロセスあるいはユーザーが `entity.save()` メソッドでエンティティを保存しようとした場合、4D は保存しようとしているエンティティのスタンプの値とデータ内にあるエンティティのスタンプの値を比較します (データ編集の場合): - 値が合致している場合、エンティティは保存され、内部スタンプの値はインクリメントされます。 - - 値が合致しない場合、読み込みから保存までの間に他のユーザーがエンティティを編集したことになります。 保存は実行されず、エラーが返されます。 + - 値が合致しない場合、読み込みから保存までの間に他のユーザーがエンティティを編集したことになります。保存は実行されず、エラーが返されます。 オプティミスティック・ロックの動作は以下ように図解することができます: 1. 二つのプロセスが同じエンティティを読み込んだとします。

    ![](../assets/en/ORDA/optimisticLock1.png) -2. 最初のプロセスがエンティティを編集し、それを保存しようとします。 すると `entity.save()` メソッドが呼び出されます。 4Dエンジンは、編集されたエンティティの内部スタンプ値とデータに保存されているエンティティの内部スタンプ値を自動的に比較します。 これは合致しますので、エンティティは保存され、その内部スタンプ値はインクリメントされます。

    ![](../assets/en/ORDA/optimisticLock2.png) +2. 最初のプロセスがエンティティを編集し、それを保存しようとします。すると `entity.save()` メソッドが呼び出されます。 4Dエンジンは、編集されたエンティティの内部スタンプ値とデータに保存されているエンティティの内部スタンプ値を自動的に比較します。これは合致しますので、エンティティは保存され、その内部スタンプ値はインクリメントされます。

    ![](../assets/en/ORDA/optimisticLock2.png) -3. 二つ目のプロセスも読み込んだエンティティを編集し、それを保存しようとします。 すると `entity.save()` メソッドが呼び出されます。 編集されたエンティティの内部スタンプ値はデータに保存されているエンティティの内部スタンプ値と合致しないので、保存は実行されず、エラーが返されます。

    ![](../assets/en/ORDA/optimisticLock3.png) +3. 二つ目のプロセスも読み込んだエンティティを編集し、それを保存しようとします。すると `entity.save()` メソッドが呼び出されます。編集されたエンティティの内部スタンプ値はデータに保存されているエンティティの内部スタンプ値と合致しないので、保存は実行されず、エラーが返されます。

    ![](../assets/en/ORDA/optimisticLock3.png) この流れは以下のコードのように分解することもできます: @@ -590,15 +590,15 @@ $person1:=ds.Person.get(1) // エンティティを参照 ``` -この例では、$person1 に Person の、キーが 1 のエンティティを代入します。 次に、同じエンティティの別の参照を変数 $person2 に代入します。 $person1 を用いて、人物の名前を変更してエンティティを保存します。 同じことを $person2 を使用して実行しようとすると、4D はディスク上のエンティティをチェックし、変数 $person2 に代入されたものと同じかどうかを調べます。 結果としてこれは同じものでは無いので、success プロパティには false が返され、二つ目の変更は保存されません。 +この例では、$person1 に Person の、キーが 1 のエンティティを代入します。次に、同じエンティティの別の参照を変数 $person2 に代入します。 $person1 を用いて、人物の名前を変更してエンティティを保存します。同じことを $person2 を使用して実行しようとすると、4D はディスク上のエンティティをチェックし、変数 $person2 に代入されたものと同じかどうかを調べます。結果としてこれは同じものでは無いので、success プロパティには false が返され、二つ目の変更は保存されません。 -こういった状況が発生した場合には、たとえば `entity.reload()` メソッドを使用してディスクからエンティティを再読込し、変更をもう一度おこなうことができます。 また `entity.save()` メソッドは、異なるプロセスがそれぞれ異なる属性を変更していた場合には保存を実行する "automerge" オプションも提供しています。 +こういった状況が発生した場合には、たとえば `entity.reload()` メソッドを使用してディスクからエンティティを再読込し、変更をもう一度おこなうことができます。また `entity.save()` メソッドは、異なるプロセスがそれぞれ異なる属性を変更していた場合には保存を実行する "automerge" オプションも提供しています。 -> **トランザクション** 内においては、特定レコードのコピーがコンタキスト内に一つしか存在しないため、レコードスタンプは使用されません。 レコードを参照するエンティティが複数あっても、同じコピーが検収されるため `entity.save()` による処理がスタンプエラーを生成することはありません。 +> **トランザクション** 内においては、特定レコードのコピーがコンタキスト内に一つしか存在しないため、レコードスタンプは使用されません。レコードを参照するエンティティが複数あっても、同じコピーが検収されるため `entity.save()` による処理がスタンプエラーを生成することはありません。 ### ペシミスティック・ロック -エンティティは、データアクセス時に任意にロックおよびアンロックすることができます。 エンティティがプロセスからロックされている場合、そのエンティティはプロセスに読み書き可能モードで読み込まれていますが、他のすべてのプロセスに対してロックされています。 ロックされたエンティティは、他のプロセスからは読み込みモードでのみ読み込むことができます。 つまり、その値を編集・保存することはできません。 +エンティティは、データアクセス時に任意にロックおよびアンロックすることができます。エンティティがプロセスからロックされている場合、そのエンティティはプロセスに読み書き可能モードで読み込まれていますが、他のすべてのプロセスに対してロックされています。ロックされたエンティティは、他のプロセスからは読み込みモードでのみ読み込むことができます。 つまり、その値を編集・保存することはできません。 この機能は `Entity` クラスの 2つの関数に基づいています: @@ -620,7 +620,7 @@ $person1:=ds.Person.get(1) // エンティティを参照 ![](../assets/en/ORDA/concurrent1.png) -**トランザクションロック** はクラシックコマンドと ORDAコマンドの両方に適用されます。 マルチプロセスあるいはマルチユーザーアプリケーションにおいては、トランザクション内でクラシックコマンドを使用してレコードをロックした場合、そのトランザクションが OK あるいはキャンセルされるまで、他のプロセスからそのレコードに相当するエンティティをロックすることはできません (逆もまた然りです)。 +**トランザクションロック** はクラシックコマンドと ORDAコマンドの両方に適用されます。マルチプロセスあるいはマルチユーザーアプリケーションにおいては、トランザクション内でクラシックコマンドを使用してレコードをロックした場合、そのトランザクションが OK あるいはキャンセルされるまで、他のプロセスからそのレコードに相当するエンティティをロックすることはできません (逆もまた然りです)。 - クラシックコマンドを使用してロックした場合:

    ![](../assets/en/ORDA/concurrent2.png) - ORDA関数を使用してロックした場合:

    ![](../assets/en/ORDA/concurrent3.png) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md index 440d7232052353..c142531eab162f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/global-stamp.md @@ -7,12 +7,11 @@ title: グローバルスタンプの使い方 4D は内部的な **グローバル変更スタンプ** を自動的に管理します。これは、アクティビティの監視、バックアップ、増分同期の実行など、データ変更追跡の実装をするのに便利です。 -グローバル変更スタンプは、データベースの復元やインポートなどの場合も含め、4D が常に管理する番号です。 ただし、[`.setGlobalStamp()`](../API/DataStoreClass.md#setglobalstamp) 関数を使用すればスタンプを変更できることに注意してください。 +グローバル変更スタンプは、データベースの復元やインポートなどの場合も含め、4D が常に管理する番号です。ただし、[`.setGlobalStamp()`](../API/DataStoreClass.md#setglobalstamp) 関数を使用すればスタンプを変更できることに注意してください。 [データ変更追跡を設定および有効化](#データ変更追跡の設定) すると、レコードの変更 (追加・変更・削除) ごとに、以下のアクションが 4D によって自動的に実行されます: -1. グローバル変更スタンプのカレント値は、関連エンティティの特別な "__GlobalStamp" 属性に保存されます。 - 削除処理の場合には、削除されたエンティティの情報を持つ新しいエンティティが `__DeletedRecords` テーブルに追加され、グローバル変更スタンプのカレント値が "__Stamp" 属性に保存されます。 +1. グローバル変更スタンプのカレント値は、関連エンティティの特別な "__GlobalStamp" 属性に保存されます。削除処理の場合には、削除されたエンティティの情報を持つ新しいエンティティが `__DeletedRecords` テーブルに追加され、グローバル変更スタンプのカレント値が "__Stamp" 属性に保存されます。 2. グローバル変更スタンプの値が増分されます。 @@ -26,7 +25,7 @@ title: グローバルスタンプの使い方 ## データ変更追跡の設定 -デフォルトでは、グローバル変更スタンプは作成されません ([`.getGlobalStamp()`](../API/DataStoreClass.md#getglobalstamp) 関数は 0 を返します)。 データ変更追跡を有効にするには、特別なフィールドとテーブルをストラクチャーに追加する必要があります。 ストラクチャーエディターのコンテキストメニューを使用すると、必要な要素をすべて自動的に作成できます。 +デフォルトでは、グローバル変更スタンプは作成されません ([`.getGlobalStamp()`](../API/DataStoreClass.md#getglobalstamp) 関数は 0 を返します)。データ変更追跡を有効にするには、特別なフィールドとテーブルをストラクチャーに追加する必要があります。ストラクチャーエディターのコンテキストメニューを使用すると、必要な要素をすべて自動的に作成できます。 ### ストラクチャー要件 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/glossary.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/glossary.md index 5a4c9932a09301..971812eaa46637 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/glossary.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/glossary.md @@ -9,20 +9,20 @@ title: 用語集 ## アクション -[リソース上](#リソース) に対しておこなえるアクションを指します。 利用可能なアクションは、create (作成)、read (読み取り)、update (更新)、drop (削除)、execute (実行)、および promote (昇格) です。 +[リソース上](#リソース) に対しておこなえるアクションを指します。利用可能なアクションは、create (作成)、read (読み取り)、update (更新)、drop (削除)、execute (実行)、および promote (昇格) です。 ## 属性 -属性とは、リレーショナルデータベース内における最小の保存セルです ([リレーション属性](#リレーション属性) も参照してください)。 データクラス属性とエンティティ属性を混同しないようにしてください: +属性とは、リレーショナルデータベース内における最小の保存セルです ([リレーション属性](#リレーション属性) も参照してください)。データクラス属性とエンティティ属性を混同しないようにしてください: - データクラスオブジェクトにおける各プロパティは、対応するテーブルの対応するフィールドへとマップするデータクラス属性です (同じ名前と型)。 - エンティティオブジェクトにおけるエンティティ属性は、対応するデータストア属性の値を格納するプロパティです。 -> *属性* と *プロパティ* は似た概念です。 "属性" はデータを保存するデータクラスプロパティを指定するのに使われるのに対し、"プロパティ"はより一般的な概念でオブジェクト内で保存されるデータを定義します。 +> *属性* と *プロパティ* は似た概念です。"属性" はデータを保存するデータクラスプロパティを指定するのに使われるのに対し、"プロパティ"はより一般的な概念でオブジェクト内で保存されるデータを定義します。 ## 属性パス -属性パスとは、あるデータクラスあるいはエンティティ内の属性へのパスです。 [プロパティパス](#プロパティパス) も参照ください。 +属性パスとは、あるデータクラスあるいはエンティティ内の属性へのパスです。[プロパティパス](#プロパティパス) も参照ください。 ## クラスコード @@ -30,7 +30,7 @@ title: 用語集 ## 計算属性 -計算属性は、実際には情報を保存しません。 代わりに、同じエンティティや他のエンティティ、属性、関数などから得られる値に基づいて、その属性値を決定します。 計算属性が参照されると、それを定義する "計算" が評価され、値が決定されます。 計算属性の値を算出するにあたっては、ユーザー定義のコードによって、その評価中に評価の仕方を決定することも可能です。 +計算属性は、実際には情報を保存しません。代わりに、同じエンティティや他のエンティティ、属性、関数などから得られる値に基づいて、その属性値を決定します。計算属性が参照されると、それを定義する "計算" が評価され、値が決定されます。計算属性の値を算出するにあたっては、ユーザー定義のコードによって、その評価中に評価の仕方を決定することも可能です。 ## データモデルクラス @@ -46,7 +46,7 @@ ORDA データモデルクラスの関数。 ## データクラス -データクラスとは、データを記述するオブジェクトモデルです。 データストアによって提供されるデータベースのテーブルは、データクラスを通して管理されます。 データストアから提供されたデータベースの各テーブルは、対応する同名のデータクラスを持ちます。 テーブルの各フィールドは、データクラスの属性です。 +データクラスとは、データを記述するオブジェクトモデルです。データストアによって提供されるデータベースのテーブルは、データクラスを通して管理されます。データストアから提供されたデータベースの各テーブルは、対応する同名のデータクラスを持ちます。テーブルの各フィールドは、データクラスの属性です。 データクラスは単一のデータストアにリレートされています。 @@ -65,7 +65,7 @@ ORDA データモデルクラスの関数。 利用できるデータベースは、スタンダロンまたはクライアント/サーバーで開いているメインの 4D データベース (メインデータストア)、および REST リソースとして公開された 4D Server データベースです (リモートデータストア)。 -データストアは単一のデータベースのみを参照しますが、 データストアは単一のデータベースのみを参照しますが、 複数のデータベースをアクセスするために複数のデータストアを開くことも可能です。 +データストアは単一のデータベースのみを参照しますが、データストアは単一のデータベースのみを参照しますが、 複数のデータベースをアクセスするために複数のデータストアを開くことも可能です。 ## DataStore クラス @@ -77,23 +77,23 @@ ORDA データモデルクラスの関数。 ## ディープコピー -ディープコピーは、あるオブジェクトとそこに格納されているすべての参照を複製します。 ディープコピーのあと、コピーされたコレクションには、すべてのオリジナル要素の複製 (つまり新規参照) が格納されています。 シャロウコピー も合わせて参照してください。 +ディープコピーは、あるオブジェクトとそこに格納されているすべての参照を複製します。ディープコピーのあと、コピーされたコレクションには、すべてのオリジナル要素の複製 (つまり新規参照) が格納されています。シャロウコピー も合わせて参照してください。 ## ds -`ds` は、[データストア](dsMapping.md#データストア) のオブジェクト参照を返す 4Dランゲージコマンドです。 この参照は 4D のメインデータベースが提供するデータストアに合致します。 +`ds` は、[データストア](dsMapping.md#データストア) のオブジェクト参照を返す 4Dランゲージコマンドです。この参照は 4D のメインデータベースが提供するデータストアに合致します。 ## エンティティ -エンティティとは、データクラスモデルに対応するオブジェクトです。 エンンティティには、データクラスと同じ属性が格納されます。 +エンティティとは、データクラスモデルに対応するオブジェクトです。エンンティティには、データクラスと同じ属性が格納されます。 -エンティティは、データクラスのインスタンスとも解釈可能なオブジェクトです。 しかしながら、エンティティはリレートされたデータも格納しています。 エンティティの目的はデータの管理 (作成、更新、削除) です。 +エンティティは、データクラスのインスタンスとも解釈可能なオブジェクトです。しかしながら、エンティティはリレートされたデータも格納しています。エンティティの目的はデータの管理 (作成、更新、削除) です。 詳細な情報については、 [エンティティ](entities.md) を参照して下さい。 ## エンティティセレクション -エンティティセレクションは、一つのオブジェクトです。 データストアをクエリすると、エンティティセレクションが返されます。 エンティティセレクションとは、同じデータクラスに所属するエンティティへの参照のセットのことです。 +エンティティセレクションは、一つのオブジェクトです。データストアをクエリすると、エンティティセレクションが返されます。エンティティセレクションとは、同じデータクラスに所属するエンティティへの参照のセットのことです。 エンティティセレクションは以下を格納します: @@ -105,11 +105,11 @@ ORDA データモデルクラスの関数。 ## 汎用クラス -エンティティやデータクラスなどの ORDA オブジェクト用のビルトインクラス。 汎用クラスのプロパティや関数は、ユーザー拡張クラス (例: `EmployeeEntity`) において自動で利用可能です。 +エンティティやデータクラスなどの ORDA オブジェクト用のビルトインクラス。汎用クラスのプロパティや関数は、ユーザー拡張クラス (例: `EmployeeEntity`) において自動で利用可能です。 ## レイジーローディング -エンティティは参照として管理されているため、データは必要なときにのみロードされます。 つまりコードや、インターフェースウィジェットを通してアクセスしたときなどです。 この最適化原理は、レイジーローディングと呼ばれています。 +エンティティは参照として管理されているため、データは必要なときにのみロードされます。 つまりコードや、インターフェースウィジェットを通してアクセスしたときなどです。この最適化原理は、レイジーローディングと呼ばれています。 ## メインデータストア @@ -117,7 +117,7 @@ ORDA データモデルクラスの関数。 ## メソッド -データストア、データクラス、エンティティセレクション、エンティティなどの ORDA オブジェクトは、オブジェクトのクラスを定義します。 これらのクラスには、オブジェクトを直接操作するための専用のメソッドが提供されています。 これらのメソッドはメンバー関数とも呼ばれます。 このメソッドを使用するには、オブジェクトのインスタンスに対して呼び出します。 +データストア、データクラス、エンティティセレクション、エンティティなどの ORDA オブジェクトは、オブジェクトのクラスを定義します。これらのクラスには、オブジェクトを直接操作するための専用のメソッドが提供されています。これらのメソッドはメンバー関数とも呼ばれます。このメソッドを使用するには、オブジェクトのインスタンスに対して呼び出します。 たとえば、`query()` メソッドはデータクラスのメンバー関数です。 `$myClass` 変数にデータクラスオブジェクトを格納している場合、次のように書くことができます: @@ -142,25 +142,25 @@ $myClass.query("name = smith") ## オプティミスティック・ロック -"オプティミスティック・ロック" モードでは、エンティティは更新されるまでは明示的にはロックされていません。 各エンティティは、そのエンティティがディスクに保存されるたびに自動でインクリメントされる内部スタンプを持っています。 entity.save( ) および entity.drop( ) メソッドは(メモリ内に) ロードされたスタンプと、ディスク上のエンティティのスタンプが合致しない場合、あるいはエンティティがドロップされている場合にはエラーを返します。 オプティミスティック・ロックは ORDA 実装内でのみ使用可能です。 ペシミスティック・ロック も合わせて参照してください。 +"オプティミスティック・ロック" モードでは、エンティティは更新されるまでは明示的にはロックされていません。各エンティティは、そのエンティティがディスクに保存されるたびに自動でインクリメントされる内部スタンプを持っています。 entity.save( ) および entity.drop( ) メソッドは(メモリ内に) ロードされたスタンプと、ディスク上のエンティティのスタンプが合致しない場合、あるいはエンティティがドロップされている場合にはエラーを返します。オプティミスティック・ロックは ORDA 実装内でのみ使用可能です。ペシミスティック・ロック も合わせて参照してください。 ## ペシミスティック・ロック -"ペシミスティック・ロック" とは、entity.lock( ) メソッドにより、エンティティがアクセスされる前にそれをロックすることを意味します。 ロックが解除されるまで、他のプロセスからはそのエンティティを更新することも、ドロップすることもできません。 クラシック 4Dランゲージにおいてはペシミスティック・ロックのみが利用可能です。 オプティミスティック・ロック も合わせて参照してください。 +"ペシミスティック・ロック" とは、entity.lock( ) メソッドにより、エンティティがアクセスされる前にそれをロックすることを意味します。ロックが解除されるまで、他のプロセスからはそのエンティティを更新することも、ドロップすることもできません。クラシック 4Dランゲージにおいてはペシミスティック・ロックのみが利用可能です。オプティミスティック・ロック も合わせて参照してください。 ## 権限 -[リソース](#リソース) に対する実行が許可された [アクション](#アクション) の範囲のことです。 ビジネスロジックに応じて、複数の権限を [ロール](#ロール) としてまとめることができます。 +[リソース](#リソース) に対する実行が許可された [アクション](#アクション) の範囲のことです。ビジネスロジックに応じて、複数の権限を [ロール](#ロール) としてまとめることができます。 ## プロパティ [属性](#属性) を参照してください。 -> 属性とプロパティは似た概念です。 "属性" はデータを保存するデータクラスプロパティを指定するのに使われるのに対し、"プロパティ"はより一般的な概念でオブジェクト内で保存されるデータを定義します。 +> 属性とプロパティは似た概念です。"属性" はデータを保存するデータクラスプロパティを指定するのに使われるのに対し、"プロパティ"はより一般的な概念でオブジェクト内で保存されるデータを定義します。 ## プロパティパス -プロパティパスとは、あるオブジェクトのプロパティへのパスです。 プロパティが複数の階層にネストされている場合、各階層はドット (".") +プロパティパスとは、あるオブジェクトのプロパティへのパスです。プロパティが複数の階層にネストされている場合、各階層はドット (".") ## 通常クラス @@ -189,32 +189,32 @@ ORDA オブジェクトとは関わりのないユーザークラス。 ## リモートデータストア -4D または (HTTP経由で利用可能な) 4D Server 上で開かれている、REST リソースとして公開された 4Dデータベース。 このデータベースは他のマシンにおいてデータストアとしてローカルに参照することができ、その際には割り当てられた locaID で識別されます。 リモートデータストアは ORDA の概念 (データストア、データクラス、エンティティセレクション等) を使って利用できます。 利用にあたってはライセンスが消費されます。 +4D または (HTTP経由で利用可能な) 4D Server 上で開かれている、REST リソースとして公開された 4Dデータベース。このデータベースは他のマシンにおいてデータストアとしてローカルに参照することができ、その際には割り当てられた locaID で識別されます。リモートデータストアは ORDA の概念 (データストア、データクラス、エンティティセレクション等) を使って利用できます。利用にあたってはライセンスが消費されます。 ## リソース -[権限](#権限) における [アクション](#アクション) の許可・拒否の対象となる ORDA 要素。 利用可能なリソースは、データストア、データクラス、データクラス属性、ORDAデータモデル関数のいずれかです。 +[権限](#権限) における [アクション](#アクション) の許可・拒否の対象となる ORDA 要素。利用可能なリソースは、データストア、データクラス、データクラス属性、ORDAデータモデル関数のいずれかです。 ## ロール -ロールとは、管理者が使用することを目的とした、公開された [権限](#権限) のことです。 ロールは 1つ以上の権限を持つことができます。 +ロールとは、管理者が使用することを目的とした、公開された [権限](#権限) のことです。ロールは 1つ以上の権限を持つことができます。 ## セッション -4Dアプリケーションがリモートデータストアに接続すると、4D Server (HTTP) 上では セッション が作成されます。 セッションcookie が生成され、ローカルデータストアID と紐づけられます。 +4Dアプリケーションがリモートデータストアに接続すると、4D Server (HTTP) 上では セッション が作成されます。セッションcookie が生成され、ローカルデータストアID と紐づけられます。 -新規セッションが開始されるごとに、ライセンスが消費されます。 セッションが閉じられると、ライセンスは解放されます。 +新規セッションが開始されるごとに、ライセンスが消費されます。セッションが閉じられると、ライセンスは解放されます。 -アクティビティのないセッションはタイムアウト後に自動的に終了します。 デフォルトのタイムアウトは 48時間で、任意に設定することができます (最少時間は 60分)。 +アクティビティのないセッションはタイムアウト後に自動的に終了します。デフォルトのタイムアウトは 48時間で、任意に設定することができます (最少時間は 60分)。 ## シャロウコピー -シャロウコピーは、要素の構造のみを複製し、同じ内部参照を保持します。 シャロウコピーのあと、二つのコレクションに格納された個々の要素は同じものが共有されています。 ディープコピー も合わせて参照してください。 +シャロウコピーは、要素の構造のみを複製し、同じ内部参照を保持します。シャロウコピーのあと、二つのコレクションに格納された個々の要素は同じものが共有されています。ディープコピー も合わせて参照してください。 ## スタンプ -"オプティミステック" ロックテクノロジーにおいて使用されるものです。 すべてのエンティティにはスタンプと呼ばれる内部カウンターがあり、エンティティが保存されるたびにインクリメントされていきます。 エンティティ内のスタンプとディスク上に保存されているエンティティのスタンプを自動的に比較することで、4D は同じエンティティへの書き込みの衝突を防いでいます。 +"オプティミステック" ロックテクノロジーにおいて使用されるものです。すべてのエンティティにはスタンプと呼ばれる内部カウンターがあり、エンティティが保存されるたびにインクリメントされていきます。エンティティ内のスタンプとディスク上に保存されているエンティティのスタンプを自動的に比較することで、4D は同じエンティティへの書き込みの衝突を防いでいます。 ## ストレージ属性 -ストレージ属性 (スカラー属性と呼ばれることも) は、データストアクラスの属性の中で最も基本的なタイプであり、リレーショナルデータベースのフィールドに最も直接的に対応するものです。 ストレージ属性は、データクラスのエンティティ毎に 1つの値を持ちます。 +ストレージ属性 (スカラー属性と呼ばれることも) は、データストアクラスの属性の中で最も基本的なタイプであり、リレーショナルデータベースのフィールドに最も直接的に対応するものです。ストレージ属性は、データクラスのエンティティ毎に 1つの値を持ちます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 6910f6983c2a67..f41091c02b103d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -12,9 +12,9 @@ title: エンティティイベント
    -エンティティイベントとは、エンティティやエンティティ属性が操作(追加、削除、変更)されるたびに ORDA によって自動的に呼び出される関数です。 シンプルなイベントを書き、それをより洗練されたものに変えていくことができます。 +エンティティイベントとは、エンティティやエンティティ属性が操作(追加、削除、変更)されるたびに ORDA によって自動的に呼び出される関数です。シンプルなイベントを書き、それをより洗練されたものに変えていくことができます。 -イベント関数の実行は直接トリガーすることはできません。 イベントは、ユーザーアクションや、エンティティまたはその属性に対するコードを通して実行された操作に基づいて、ORDA によって自動的に呼び出されます。 +イベント関数の実行は直接トリガーすることはできません。イベントは、ユーザーアクションや、エンティティまたはその属性に対するコードを通して実行された操作に基づいて、ORDA によって自動的に呼び出されます。 :::tip 関連したblog 記事 @@ -24,7 +24,7 @@ title: エンティティイベント :::info 互換性に関する注意 -データストアにおける ORDA エンティティイベントは、4D データベースにおけるトリガーに相当します。 しかしながら、4D クラシックランゲージコマンドを使用して 4D データベースレベルでトリガーされたアクション、あるいは標準アクションは、ORDA イベントをトリガーしません。 また、トリガーとは異なり、ORDA エンティティイベントはエンティティを保存または削除する際に、データクラスの元となるテーブル全体をロックしないことに注意して下さい。 個別のエンティティ(つまりレコード)に起因している限りは、複数のイベントが同時に実行されることが可能です。 +データストアにおける ORDA エンティティイベントは、4D データベースにおけるトリガーに相当します。しかしながら、4D クラシックランゲージコマンドを使用して 4D データベースレベルでトリガーされたアクション、あるいは標準アクションは、ORDA イベントをトリガーしません。また、トリガーとは異なり、ORDA エンティティイベントはエンティティを保存または削除する際に、データクラスの元となるテーブル全体をロックしないことに注意して下さい。個別のエンティティ(つまりレコード)に起因している限りは、複数のイベントが同時に実行されることが可能です。 ::: @@ -34,17 +34,17 @@ title: エンティティイベント イベント関数は必ず[Entity クラス](../ORDA/ordaClasses.md#エンティティクラス) 内で定義されます。 -イベントは **エンティティ** レベルまたは **属性** レベルで設定することができます(属性には [**計算属性**](../ORDA/ordaClasses.md#計算属性) も含まれます)。 前者の場合、エンティティのあらゆる属性でイベントがトリガーされます。それ以外の場合、イベントは対象となる属性に対してのみトリガーされます。 +イベントは **エンティティ** レベルまたは **属性** レベルで設定することができます(属性には [**計算属性**](../ORDA/ordaClasses.md#計算属性) も含まれます)。前者の場合、エンティティのあらゆる属性でイベントがトリガーされます。それ以外の場合、イベントは対象となる属性に対してのみトリガーされます。 同じイベントに対して、異なる属性に対して異なる関数を定義することができます。 -また同じイベントを属性レベルとエンティティレベルの両方で定義することも可能です。 その場合、属性イベントが先に呼ばれ、その後にエンティティイベントが呼ばれます。 +また同じイベントを属性レベルとエンティティレベルの両方で定義することも可能です。その場合、属性イベントが先に呼ばれ、その後にエンティティイベントが呼ばれます。 ### リモート構成における実行 一般的に、ORDA イベントはサーバー上で実行されます。 -しかしながらクライアント/サーバー構成においては、[`local`](../Concepts/classes.md#local) キーワードの使用によっては、`touched()` イベント関数を**サーバーまたはクライアント**で実行することが可能です。 クライアント側で特定の実装をすることにより、イベントをクライアント上でトリガーすることができるようになります。 +しかしながらクライアント/サーバー構成においては、[`local`](../Concepts/classes.md#local) キーワードの使用によっては、`touched()` イベント関数を**サーバーまたはクライアント**で実行することが可能です。クライアント側で特定の実装をすることにより、イベントをクライアント上でトリガーすることができるようになります。 :::note @@ -52,7 +52,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) 関数は必ずロー ::: -他のリモート構成(例: [Qodly アプリケーション](https://developer.4d.com/qodly)、[REST API リクエスト](../REST/REST_requests.md)、あるいは[`Open datastore`](../commands/open-datastore) を通したリクエスト)においては、イベント関数は必ず**サーバー側**で実行されます。 これはつまりイベントをトリガーするためには、属性がタッチされたことがサーバーから"見える"ようにしておくようにしなければならいことを意味します(以下参照)。 +他のリモート構成(例: [Qodly アプリケーション](https://developer.4d.com/qodly)、[REST API リクエスト](../REST/REST_requests.md)、あるいは[`Open datastore`](../commands/open-datastore) を通したリクエスト)においては、イベント関数は必ず**サーバー側**で実行されます。これはつまりイベントをトリガーするためには、属性がタッチされたことがサーバーから"見える"ようにしておくようにしなければならいことを意味します(以下参照)。 ### 概要表 @@ -82,7 +82,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) 関数は必ずロー ## *event* 引数 -イベント関数は、単一の *event* オブジェクトを引数として受け取ります。 関数が呼び出されると、引数には複数のプロパティに値が入れられます: +イベント関数は、単一の *event* オブジェクトを引数として受け取ります。関数が呼び出されると、引数には複数のプロパティに値が入れられます: | プロパティ名 | 利用可能性 | 型 | 説明 | | | :------------------ | :-------------------------------------------------------------------------------------------- | :--------- | :--------------------------------------------------------------------------------------------------------- | - | @@ -98,7 +98,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) 関数は必ずロー [一部のイベント関数](#概要表) は **エラーオブジェクト** を返すことでエラーを生成し実行中のアクションを停止することができます。 -イベント中にエラーが発生した場合、他のイベントも最初にエラーが生成された時点で停止し、アクション(保存やドロップ)も停止します。 このエラーは[スタンプが変更された、エンティティがロックされていた](../API/EntityClass.md#save) などの潜在的なエラーの前に送信されます。 +イベント中にエラーが発生した場合、他のイベントも最初にエラーが生成された時点で停止し、アクション(保存やドロップ)も停止します。このエラーは[スタンプが変更された、エンティティがロックされていた](../API/EntityClass.md#save) などの潜在的なエラーの前に送信されます。 ### エラーオブジェクトのプロパティ @@ -112,8 +112,8 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) 関数は必ずロー - [深刻なエラー](../Concepts/error-handling.md#予測可能なエラーvs予測不可なエラー) は[`save()`](../API/EntityClass.md#save) または [`drop()`](../API/EntityClass.md#drop) 関数から返される **Result オブジェクト** の `errors` コレクションプロパティにスタックされます。 - **validate** イベントによってトリガーされたエラーの場合、 `seriousError` プロパティを使用することで生成するエラーのレベルを選択することができます: - - **true** の場合: 深刻なエラーが生成され、[try catch](../Concepts/error-handling.md#trycatchend-try)などの[エラー処理コード](../Concepts/error-handling.md#予測可能なエラーvs予測不可なエラー) によって管理される必要があります。 呼び出した関数のresult オブジェクトでは、`status` には `dk status serious validation error` が入り、 `statusText` には "Serious Validation Error" が入ります。 エラーはイベントの終わりに生成され、保存/ドロップアクションをリクエストしているクライアント(例えばREST クライアントなど)に届きます。 - - **false** (デフォルト)の場合: [静か(予測可能) なエラーが生成されます](../Concepts/error-handling.md#予測可能なエラーvs予測不可なエラー)。 これは例外はトリガーせず、また[`Last errors`](../commands/last-errors) コマンドから返されるエラーの中にはスタックされません。 呼び出した関数のresult オブジェクトでは、`status` には `dk status validation failed` が入り、 `statusText` には "Mild Validation Error" が入ります。 + - **true** の場合: 深刻なエラーが生成され、[try catch](../Concepts/error-handling.md#trycatchend-try)などの[エラー処理コード](../Concepts/error-handling.md#予測可能なエラーvs予測不可なエラー) によって管理される必要があります。呼び出した関数のresult オブジェクトでは、`status` には `dk status serious validation error` が入り、 `statusText` には "Serious Validation Error" が入ります。エラーはイベントの終わりに生成され、保存/ドロップアクションをリクエストしているクライアント(例えばREST クライアントなど)に届きます。 + - **false** (デフォルト)の場合: [静か(予測可能) なエラーが生成されます](../Concepts/error-handling.md#予測可能なエラーvs予測不可なエラー)。これは例外はトリガーせず、また[`Last errors`](../commands/last-errors) コマンドから返されるエラーの中にはスタックされません。呼び出した関数のresult オブジェクトでは、`status` には `dk status validation failed` が入り、 `statusText` には "Mild Validation Error" が入ります。 - **保存時/ドロップ時** のイベントによってトリガーされたエラーの場合、エラーオブジェクトが返されると、 `seriousError` プロパティの値に関わらず、エラーは常に深刻なエラーとして生成されます。 ## イベント関数の詳細 @@ -139,7 +139,7 @@ ORDA [`constructor()`](./ordaClasses.md#class-constructor) 関数は必ずロー - ユーザーが4D フォーム上で値を設定した - 4D コードが `:=` 演算子によって代入を行った。 4D コードが `:=` 演算子によって代入を行った。 このイベントは自己代入の場合にもトリガーされます(`$entity.attribute:=$entity.attribute`)。 - **`local` キーワード を使用しないクライアント/サーバー**: `:=` 演算子によって代入を行う一部の4D コードは、[サーバー上で実行されます](../commands/execute-on-server)。 -- **`local` キーワードを使用しないクライアント/サーバー**、**[Qodly アプリケーション](https://developer.4d.com/qodly)** および **[リモートデータストア](../commands/open-datastore)**: ORDA 関数(エンティティ上の関数あるいはエンティティを引数として使用する関数)を呼び出した場合にはエンティティは4D Server に受信されます。 これはつまり、リモートアプリケーション側に*refresh* あるいは *preview* 関数を実装することでORDA リクエストをサーバーに送信し、イベントをトリガーするようにする必要があるかもしれない、ということです。 +- **`local` キーワードを使用しないクライアント/サーバー**、**[Qodly アプリケーション](https://developer.4d.com/qodly)** および **[リモートデータストア](../commands/open-datastore)**: ORDA 関数(エンティティ上の関数あるいはエンティティを引数として使用する関数)を呼び出した場合にはエンティティは4D Server に受信されます。これはつまり、リモートアプリケーション側に*refresh* あるいは *preview* 関数を実装することでORDA リクエストをサーバーに送信し、イベントをトリガーするようにする必要があるかもしれない、ということです。 - REST サーバー: 値は REST サーバーに、[REST リクエスト](../REST/$method.md#methodupdate) (`$method=update`) とともに受信されます。 関数は [*event* オブジェクト](#event-引数) を引数として受け取ります。 @@ -172,7 +172,7 @@ Function event touched($event : Object) "touched" イベントは、[計算属性](./ordaClasses.md#計算属性)に対して[`Function query()`](./ordaClasses.md#function-query-attributename) 内でインデックスクエリコードを書くことが不可能な場合にとても有用です。 -これは例えば、[`query`](./ordaClasses.md#function-query-attributename) 関数が同じエンティティの異なる属性の値どうしを比較したいような場合です。 これは返されたORDA クエリ内でフォーミュラを使う必要があり、結果としてシーケンシャルクエリをトリガーすることになります。 +これは例えば、[`query`](./ordaClasses.md#function-query-attributename) 関数が同じエンティティの異なる属性の値どうしを比較したいような場合です。これは返されたORDA クエリ内でフォーミュラを使う必要があり、結果としてシーケンシャルクエリをトリガーすることになります。 このような場合を完全に理解するために、以下の2つの計算属性について調べてみましょう: @@ -184,7 +184,7 @@ Function get sameDay() : Boolean return (This.departureDate=This.arrivalDate) ``` -たとえ非常に似ていたとしても、これらのクエリは同じ型の値を比較している訳ではないため、これらの関数を同一のクエリと関連づけることはできません。 前者は属性を与えられた値と比較する一方、後者は属性どうしを比較します。 +たとえ非常に似ていたとしても、これらのクエリは同じ型の値を比較している訳ではないため、これらの関数を同一のクエリと関連づけることはできません。前者は属性を与えられた値と比較する一方、後者は属性どうしを比較します。 - *onGoing* 属性に対しては、[`query`](./ordaClasses.md#function-query-attributename) 関数をシンプルに書くことができ、またインデックス付きの属性を使用します: @@ -326,7 +326,7 @@ Function event validateSave ($event : Object) このイベントは、エンティティが保存されようとするたびに毎回トリガーされます。 - 関数をエンティティレベルで定義していた場合(第一シンタックス)、その関数はエンティティの任意の属性に対して呼び出されます。 -- 関数を属性レベルで定義していた場合(第二シンタックス)、関数はその属性に対してのみ呼び出されます。 この関数は、エンティティ内の指定した属性がタッチされていない場合には、実行**されません**。 +- 関数を属性レベルで定義していた場合(第二シンタックス)、関数はその属性に対してのみ呼び出されます。この関数は、エンティティ内の指定した属性がタッチされていない場合には、実行**されません**。 関数は [*event* オブジェクト](#event-引数) を引数として受け取ります。 @@ -335,7 +335,7 @@ Function event validateSave ($event : Object) - [`entity.save()`](../API/EntityClass.md#save) - [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) -このイベントは、エンティティが実際に保存される **前に** トリガーされるため、データの一貫性をチェックし、必要であればアクションを停止することができます。 例えば、このイベントを使用して、 "出発日" < "到着日" であることをチェックすることができます。 +このイベントは、エンティティが実際に保存される **前に** トリガーされるため、データの一貫性をチェックし、必要であればアクションを停止することができます。例えば、このイベントを使用して、 "出発日" < "到着日" であることをチェックすることができます。 アクションを停止するためには、関数のコードで[エラーオブジェクト](#エラーオブジェクト) を返す必要があります。 @@ -347,7 +347,7 @@ Function event validateSave ($event : Object) #### 例題 -この例では、マージンが50% 未満の製品を保存することは許可されていません。 無効な price 属性の場合、エラーオブジェクトを換えし、保存アクションを停止します。 +この例では、マージンが50% 未満の製品を保存することは許可されていません。無効な price 属性の場合、エラーオブジェクトを換えし、保存アクションを停止します。 ```4d // ProductsEntity class @@ -378,8 +378,8 @@ Function event saving ($event : Object) このイベントはエンティティが保存されるたびにトリガーされます。 -- 関数をエンティティレベルで定義していた場合(第一シンタックス)、その関数はエンティティの任意の属性に対して呼び出されます。 この関数はエンティティ内でどの属性もタッチされていない場合でも実行されます(例: 保存されるたびに外部アプリへとデータを送信する場合など)。 -- 関数を属性レベルで定義していた場合(第二シンタックス)、関数はその属性に対してのみ呼び出されます。 この関数は、エンティティ内の指定した属性がタッチされていない場合には、実行**されません**。 +- 関数をエンティティレベルで定義していた場合(第一シンタックス)、その関数はエンティティの任意の属性に対して呼び出されます。この関数はエンティティ内でどの属性もタッチされていない場合でも実行されます(例: 保存されるたびに外部アプリへとデータを送信する場合など)。 +- 関数を属性レベルで定義していた場合(第二シンタックス)、関数はその属性に対してのみ呼び出されます。この関数は、エンティティ内の指定した属性がタッチされていない場合には、実行**されません**。 関数は [*event* オブジェクト](#event-引数) を引数として受け取ります。 @@ -388,7 +388,7 @@ Function event saving ($event : Object) - [`entity.save()`](../API/EntityClass.md#save) - [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) -このイベントはエンティティが実際に保存されている**最中に**トリガーされます。 [`validateSave()`](#function-event-validatesave) イベント関数が定義されていると場合、 `saving()` イベント関数は、 `validateSave()`がエラーを何もトリガーしなかった場合に呼び出されます。 例えば、このイベントを使用して、Google Drive アカウントにドキュメントを作成することができます。 +このイベントはエンティティが実際に保存されている**最中に**トリガーされます。 [`validateSave()`](#function-event-validatesave) イベント関数が定義されていると場合、 `saving()` イベント関数は、 `validateSave()`がエラーを何もトリガーしなかった場合に呼び出されます。例えば、このイベントを使用して、Google Drive アカウントにドキュメントを作成することができます。 :::note @@ -450,13 +450,13 @@ Function event afterSave($event : Object) // コード ``` -このイベントは、少なくとも一つの属性が編集されていたエンティティがデータファイルに保存された直後にトリガーされます。 エンティティ内でどの属性もタッチされていない場合には、これは実行されません。 +このイベントは、少なくとも一つの属性が編集されていたエンティティがデータファイルに保存された直後にトリガーされます。エンティティ内でどの属性もタッチされていない場合には、これは実行されません。 -このイベントは、データを保存した後に、アプリケーション外に保存アクションを電波させたい場合や、管理タスクを実行したりするのに有用です。 例えばこれを使用して、データが保存された後に確認メールを送信することができます。 あるいは、データ保存中にエラーが発生した場合、これを使用してロールバックを行い、データの一貫性を復元することもできます。 +このイベントは、データを保存した後に、アプリケーション外に保存アクションを電波させたい場合や、管理タスクを実行したりするのに有用です。例えばこれを使用して、データが保存された後に確認メールを送信することができます。あるいは、データ保存中にエラーが発生した場合、これを使用してロールバックを行い、データの一貫性を復元することもできます。 関数は [*event* オブジェクト](#event-引数) を引数として受け取ります。 -- 無限ループに陥るのを避けるため、この関数内でカレントのエンティティ上で(`This` を通して) [`save()`](../API/EntityClass.md#save) を呼び出すのは**許可されていません**。 これはエラーを発生させます。 +- 無限ループに陥るのを避けるため、この関数内でカレントのエンティティ上で(`This` を通して) [`save()`](../API/EntityClass.md#save) を呼び出すのは**許可されていません**。これはエラーを発生させます。 - この関数では[エラーオブジェクト](#エラーオブジェクト) をスローすることは**サポートされていません**。 #### 例題 @@ -509,7 +509,7 @@ Function event validateDrop ($event : Object) #### 例題 -この例では、"TO DELETE" とラベルのついていない製品をドロップすることはできません。 この場合、エラーオブジェクトを返すことで、ドロップアクションを停止することができます。 +この例では、"TO DELETE" とラベルのついていない製品をドロップすることはできません。この場合、エラーオブジェクトを返すことで、ドロップアクションを停止することができます。 ```4d // ProductsEntity class @@ -598,11 +598,11 @@ Function event afterDrop($event : Object) このイベントはエンティティがドロップ(削除)された直後にトリガーされます。 -このイベントは、データをドロップした後に、アプリケーション外にドロップアクションを伝播させたい場合や、管理タスクを実行したりするのに有用です。 例えばこれを使用して、データがドロップされたあとにキャンセルメールを送信することができます。 あるいは、データのドロップ中にエラーが発生した場合、あとで管理者がデータの一貫性をチェックできるように情報を記録することができます。 +このイベントは、データをドロップした後に、アプリケーション外にドロップアクションを伝播させたい場合や、管理タスクを実行したりするのに有用です。例えばこれを使用して、データがドロップされたあとにキャンセルメールを送信することができます。あるいは、データのドロップ中にエラーが発生した場合、あとで管理者がデータの一貫性をチェックできるように情報を記録することができます。 関数は [*event* オブジェクト](#event-引数) を引数として受け取ります。 -- 無限ループに陥るのを避けるため、この関数内でカレントのエンティティ上で(`This` を通して) [`drop()`](../API/EntityClass.md#drop) を呼び出すのは**許可されていません**。 これはエラーを発生させます。 +- 無限ループに陥るのを避けるため、この関数内でカレントのエンティティ上で(`This` を通して) [`drop()`](../API/EntityClass.md#drop) を呼び出すのは**許可されていません**。これはエラーを発生させます。 - この関数では[エラーオブジェクト](#エラーオブジェクト) をスローすることは**サポートされていません**。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md index 586f1b1466e4b0..c3e2f1e7b96d62 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md @@ -3,9 +3,9 @@ id: ordaClasses title: データモデルクラス --- -ORDAでは、[データモデル](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.ja.html)の上に高レベルクラス関数を作成することができます。 これによってビジネス指向のコードを書き、APIのように "公開" することができます。 データストア、データクラス、エンティティ、およびエンティティセレクションはそれぞれ、関数を持つことのできるクラスオブジェクトとして提供されています。 +ORDAでは、[データモデル](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-database-structure.200-6750097.ja.html)の上に高レベルクラス関数を作成することができます。これによってビジネス指向のコードを書き、APIのように "公開" することができます。データストア、データクラス、エンティティ、およびエンティティセレクションはそれぞれ、関数を持つことのできるクラスオブジェクトとして提供されています。 -たとえば、選択中の社員より給与の高い社員一覧を返す `getNextWithHigherSalary()` 関数を `EmployeeEntity` クラスに作成したとします。 この関数は簡単に呼び出すことができます: +たとえば、選択中の社員より給与の高い社員一覧を返す `getNextWithHigherSalary()` 関数を `EmployeeEntity` クラスに作成したとします。この関数は簡単に呼び出すことができます: ```4d $nextHigh:=ds.Employee.get(1).getNextWithHigherSalary() @@ -24,7 +24,7 @@ Form.comp.city:=$cityManager.City.getCityName(Form.comp.zipcode) - 構造が発展した場合には影響を受ける関数を適応させるだけで、クライアントアプリケーションは引き続き透過的にそれらを呼び出すことができます。 -- デフォルトでは、データモデルクラス関数 ([計算属性関数](#計算属性-1) 含む) および [エイリアス属性](エイリアス属性-1) はすべて、リモートアプリケーションに対して **非公開** に設定されており、RESTリクエストで呼び出すことはできません。 公開する関数やエイリアスは [`exposed`](#公開vs非公開関数) キーワードによって明示的に宣言する必要があります。 +- デフォルトでは、データモデルクラス関数 ([計算属性関数](#計算属性-1) 含む) および [エイリアス属性](エイリアス属性-1) はすべて、リモートアプリケーションに対して **非公開** に設定されており、RESTリクエストで呼び出すことはできません。公開する関数やエイリアスは [`exposed`](#公開vs非公開関数) キーワードによって明示的に宣言する必要があります。 ![](../assets/en/ORDA/api.png) @@ -36,7 +36,7 @@ ORDA では、**`4D`** [クラスストア](Concepts/classes.md#クラススト ![](../assets/en/ORDA/ClassDiagramImage.png) -ORDA データモデルクラスはすべて **`cs`** クラスストアのプロパティとして公開されます。 次の ORDA クラスが提供されています: +ORDA データモデルクラスはすべて **`cs`** クラスストアのプロパティとして公開されます。次の ORDA クラスが提供されています: | クラス | 例 | 次によってインスタンス化されます | | ------------------------------------------- | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -58,12 +58,12 @@ ORDA データモデルユーザークラスのオブジェクトインスタン
    履歴 -| リリース | 内容 | -| ----- | -------------------------------------------------------------------- | -| 21 R3 | `server` キーワードのサポート。 | -| 19 R4 | Entity クラスのエイリアス属性 | -| 19 R3 | Entity クラスの計算属性 | -| 18 R5 | データモデルクラス関数は、デフォルトでは REST に公開されません。 新しい `exposed` および `local` キーワード。 | +| リリース | 内容 | +| ----- | ------------------------------------------------------------------- | +| 21 R3 | `server` キーワードのサポート。 | +| 19 R4 | Entity クラスのエイリアス属性 | +| 19 R3 | Entity クラスの計算属性 | +| 18 R5 | データモデルクラス関数は、デフォルトでは REST に公開されません。新しい `exposed` および `local` キーワード。 |
    @@ -215,7 +215,7 @@ ORDA で公開されるテーブル毎に、Entity クラスが `cs` クラス #### Class constructor -エンティティクラスに対して **class constructor** を定義することができます。 クラスコンストラクターはエンティティがメモリ内に作成されるたびに呼び出され、これを使用して一部の値を初期化することができます。 +エンティティクラスに対して **class constructor** を定義することができます。クラスコンストラクターはエンティティがメモリ内に作成されるたびに呼び出され、これを使用して一部の値を初期化することができます。 詳細な情報については[Class constructor](#class-constructor-1) を参照してください。 @@ -273,13 +273,13 @@ End if データモデルクラスを作成・編集する際には次のルールに留意しなくてはなりません: -- 4D のテーブル名は、**cs** [クラスストア](Concepts/classes.md#クラスストア) 内において自動的に DataClass クラス名として使用されるため、**cs** 名前空間において衝突があってはなりません。 特に: - - 4D テーブルと [ユーザークラス名](../Project/code-overview.md#クラスの作成) に同じ名前を使用してはいけません。 衝突が起きた場合には、ユーザークラスのコンストラクターは使用不可となります (コンパイラーにより警告が返されます)。 +- 4D のテーブル名は、**cs** [クラスストア](Concepts/classes.md#クラスストア) 内において自動的に DataClass クラス名として使用されるため、**cs** 名前空間において衝突があってはなりません。特に: + - 4D テーブルと [ユーザークラス名](../Project/code-overview.md#クラスの作成) に同じ名前を使用してはいけません。衝突が起きた場合には、ユーザークラスのコンストラクターは使用不可となります (コンパイラーにより警告が返されます)。 - 4D テーブルに予約語を使用してはいけません (例: "DataClass")。 -- クラス定義の際、[`Class extends`](../Concepts/classes.md#class-extends-classname) ステートメントに使用する親クラスの名前は完全に合致するものでなくてはいけません (文字の大小が区別されます)。 たとえば、EntitySelection クラスを継承するには `Class extends EntitySelection` と書きます。 +- クラス定義の際、[`Class extends`](../Concepts/classes.md#class-extends-classname) ステートメントに使用する親クラスの名前は完全に合致するものでなくてはいけません (文字の大小が区別されます)。たとえば、EntitySelection クラスを継承するには `Class extends EntitySelection` と書きます。 -- データモデルクラスオブジェクトのインスタンス化に `new()` キーワードは使えません (エラーが返されます)。 上述の ORDA クラステーブルに一覧化されている、通常の [インスタンス化の方法](#アーキテクチャー) を使う必要があります。 +- データモデルクラスオブジェクトのインスタンス化に `new()` キーワードは使えません (エラーが返されます)。上述の ORDA クラステーブルに一覧化されている、通常の [インスタンス化の方法](#アーキテクチャー) を使う必要があります。 - **`4D`** [クラスストア](Concepts/classes.md#クラスストア) のネイティブな ORDA クラス関数を、データモデルユーザークラス関数でオーバーライドすることはできません。 @@ -290,7 +290,7 @@ End if - シングルユーザーアプリケーションでは、**プリエンプティブまたはコオペラティブプロセス** で実行されます (呼び出し元のプロセスに依存します)。 - クライアント/サーバーアプリケーションでは、**プリエンプティブプロセス** で実行されます (ただし、[`local`](../Concepts/classes.md#local) キーワードが使用されている場合は、シングルユーザーの場合と同様に、呼び出し元プロセスに依存します)。 -クライアント/サーバーで動作するように設計されているプロジェクトでは、データモデルクラス関数のコードがスレッドセーフであることを確認してください。 スレッドセーフでないコードが呼び出された場合、実行時にエラーが発生します (シングルユーザーアプリケーションではコオペラティブ実行がサポートされているため、コンパイル時にはエラーが発生しません)。 +クライアント/サーバーで動作するように設計されているプロジェクトでは、データモデルクラス関数のコードがスレッドセーフであることを確認してください。スレッドセーフでないコードが呼び出された場合、実行時にエラーが発生します (シングルユーザーアプリケーションではコオペラティブ実行がサポートされているため、コンパイル時にはエラーが発生しません)。 ## `Class constructor` @@ -316,11 +316,11 @@ Class constructor() ::: -ORDA クラスコンストラクター関数は、[作成された方法に関わらず](#クラス関数をトリガーするコマンド)、新規エンティティがメモリ内に作成された直後にトリガーされます。 これは例えばカスタムのID など、エンティティインスタンス化時に初期値を設定するのに有用です。 +ORDA クラスコンストラクター関数は、[作成された方法に関わらず](#クラス関数をトリガーするコマンド)、新規エンティティがメモリ内に作成された直後にトリガーされます。これは例えばカスタムのID など、エンティティインスタンス化時に初期値を設定するのに有用です。 -この関数は [エンティティレベル](#entity-クラス) でのみ設定可能です。 コンストラクター関数は、1つのエンティティクラスに 1つしか存在できません (そうでない場合はエラーが返されます)。 +この関数は [エンティティレベル](#entity-クラス) でのみ設定可能です。コンストラクター関数は、1つのエンティティクラスに 1つしか存在できません (そうでない場合はエラーが返されます)。 -ORDA クラスコンストラクター関数は、引数を受け取ることも返すこともしません。 しかし、 [`This`](../commands/this).を使用して属性値を初期化することができます。 コンストラクターによって初期化された値は、対応する属性がコードによって値が入力される場合にはそれによって上書きされるということに注意してください。 +ORDA クラスコンストラクター関数は、引数を受け取ることも返すこともしません。しかし、 [`This`](../commands/this).を使用して属性値を初期化することができます。コンストラクターによって初期化された値は、対応する属性がコードによって値が入力される場合にはそれによって上書きされるということに注意してください。 :::note @@ -351,11 +351,11 @@ ORDA クラスコンストラクター関数は、[ユーザークラスコン #### リモート構成 -リモート設定を使用する場合、以下の原則に注意する必要があります: **クライアント/サーバー** では、呼び出しコードの実行場所においては、クライアントまたはサーバーのどちらからでも関数を呼び出すことが可能です。 クライアント上で呼び出された場合、クライアントが新規エンティティを保存しようとして、サーバーのメモリ上に作成するために更新リクエストを送信したときにはもう一度トリガーされることはありません。 +リモート設定を使用する場合、以下の原則に注意する必要があります: **クライアント/サーバー** では、呼び出しコードの実行場所においては、クライアントまたはサーバーのどちらからでも関数を呼び出すことが可能です。クライアント上で呼び出された場合、クライアントが新規エンティティを保存しようとして、サーバーのメモリ上に作成するために更新リクエストを送信したときにはもう一度トリガーされることはありません。 :::warning -[`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) のような関数は大量のエンティティを一度を作成し、結果としてエンティティクラスコンストラクターをトリガーしうるため、パフォーマンス上の理由から、コンストラクターコードに過度に時間を消費するような処理を実行しないように注意する必要があります。 リモート設定においては(以下参照)、コードはサーバーに対して複数のリクエストをトリガーしてはいけません。 +[`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) のような関数は大量のエンティティを一度を作成し、結果としてエンティティクラスコンストラクターをトリガーしうるため、パフォーマンス上の理由から、コンストラクターコードに過度に時間を消費するような処理を実行しないように注意する必要があります。リモート設定においては(以下参照)、コードはサーバーに対して複数のリクエストをトリガーしてはいけません。 ::: @@ -452,25 +452,25 @@ Note over Qodly page: product.creationDate は "25/06/17"
    そして product. ### 概要 -計算属性は、計算をマスクするデータ型を持つデータクラス属性です。 [標準的な 4Dクラス](Concepts/classes.md)は、`get` (*ゲッター*) および `set` (*セッター*) [アクセサー関数](Concepts/classes.md#function-get-と-function-set) を用いて、計算プロパティの概念を実装しています。 ORDA のデータクラス属性はこれを利用し、さらに `query` と `orderBy` の 2つの関数で機能を拡張しています。 +計算属性は、計算をマスクするデータ型を持つデータクラス属性です。[標準的な 4Dクラス](Concepts/classes.md)は、`get` (*ゲッター*) および `set` (*セッター*) [アクセサー関数](Concepts/classes.md#function-get-と-function-set) を用いて、計算プロパティの概念を実装しています。 ORDA のデータクラス属性はこれを利用し、さらに `query` と `orderBy` の 2つの関数で機能を拡張しています。 -計算属性には最低限、その値がどのように算出されるかを記述した `get` 関数が必要です。 属性に*ゲッター*関数が定義されている場合、4D は対応するストレージスペースをデータストアに作成せず、代わりに属性がアクセスされるたびに関数のコードを実行します。 属性がアクセスされなければ、コードも実行されません。 +計算属性には最低限、その値がどのように算出されるかを記述した `get` 関数が必要です。属性に*ゲッター*関数が定義されている場合、4D は対応するストレージスペースをデータストアに作成せず、代わりに属性がアクセスされるたびに関数のコードを実行します。属性がアクセスされなければ、コードも実行されません。 -計算属性は、その属性に値が割り当てられたときに実行される `set` 関数を実装することもできます。 *セッター*関数は、割り当てられた値をどのように処理するかを記述します。通常は、1つ以上のストレージ属性や、場合によっては他のエンティティにリダイレクトします。 +計算属性は、その属性に値が割り当てられたときに実行される `set` 関数を実装することもできます。*セッター*関数は、割り当てられた値をどのように処理するかを記述します。通常は、1つ以上のストレージ属性や、場合によっては他のエンティティにリダイレクトします。 -ストレージ属性と同様に、計算属性も **クエリ** に含めることができます。 デフォルトでは、ORDA のクエリで計算属性が使用された場合、その属性はエンティティ毎に一度計算されます。 場合によっては、これで十分です。 しかし、特にクライアント/サーバーにおいてはパフォーマンスを向上させるため、実際のデータクラス属性に基づいた `query` 関数を計算属性に実装することで、それらのインデックスの恩恵を受けることができます。 +ストレージ属性と同様に、計算属性も **クエリ** に含めることができます。デフォルトでは、ORDA のクエリで計算属性が使用された場合、その属性はエンティティ毎に一度計算されます。場合によっては、これで十分です。しかし、特にクライアント/サーバーにおいてはパフォーマンスを向上させるため、実際のデータクラス属性に基づいた `query` 関数を計算属性に実装することで、それらのインデックスの恩恵を受けることができます。 -同様に、計算属性を **並べ替え** に含めることもできます。 デフォルトでは、ORDA の並べ替えで計算属性が使用された場合、その属性はエンティティ毎に一度計算されます。 クエリと同様に、実際のデータクラス属性に基づいた `orderBy` 関数を計算属性に実装することで、パフォーマンスを向上させることができます。 +同様に、計算属性を **並べ替え** に含めることもできます。デフォルトでは、ORDA の並べ替えで計算属性が使用された場合、その属性はエンティティ毎に一度計算されます。クエリと同様に、実際のデータクラス属性に基づいた `orderBy` 関数を計算属性に実装することで、パフォーマンスを向上させることができます。 ### 計算属性の定義 -計算属性を作成するには、データクラスの [**Entity クラス**](#entity-クラス) に `get` アクセサー関数を定義します。 計算属性は、データクラス属性およびエンティティ属性として自動的に利用可能になります。 +計算属性を作成するには、データクラスの [**Entity クラス**](#entity-クラス) に `get` アクセサー関数を定義します。計算属性は、データクラス属性およびエンティティ属性として自動的に利用可能になります。 -その他の計算属性の関数 (`set`、`query`、`orderBy`) も、Entityクラスに定義することができます。 これらの関数の定義は任意です。 +その他の計算属性の関数 (`set`、`query`、`orderBy`) も、Entityクラスに定義することができます。これらの関数の定義は任意です。 -計算属性の関数内において、[`This`](Concepts/classes.md#this) はエンティティを指します。 計算属性は、他のデータクラス属性と同様に使用することができます。つまり、[Entity クラス](API/EntityClass.md) や [EntitySelection クラス](API/EntitySelectionClass.md) の関数によっても同様に処理されます。 +計算属性の関数内において、[`This`](Concepts/classes.md#this) はエンティティを指します。計算属性は、他のデータクラス属性と同様に使用することができます。つまり、[Entity クラス](API/EntityClass.md) や [EntitySelection クラス](API/EntitySelectionClass.md) の関数によっても同様に処理されます。 -> ORDA の計算属性は、デフォルトでは [**公開**](#公開vs非公開関数) されません。 計算属性を公開するには、**get 関数** の定義に `exposed` キーワードを追加します。 +> ORDA の計算属性は、デフォルトでは [**公開**](#公開vs非公開関数) されません。計算属性を公開するには、**get 関数** の定義に `exposed` キーワードを追加します。 > **get および set関数**は、クライアント/サーバー処理を最適化するために、[`local`](../Concepts/classes.md#local) プロパティを持つこともできます。 @@ -485,9 +485,9 @@ Note over Qodly page: product.creationDate は "25/06/17"
    そして product. *ゲッター* 関数は、*attributeName* 計算属性を宣言するために必須です。 *attributeName* がアクセスされるたびに、4D は `Function get` のコードを評価し、*$result* 値を返します。 -> 計算属性は、他の計算属性の値を使用することができます。 再帰的な呼び出しはエラーになります。 +> 計算属性は、他の計算属性の値を使用することができます。再帰的な呼び出しはエラーになります。 -*ゲッター* 関数は、*$result* パラメーターに基づいて、計算属性のデータ型を定義します。 以下の結果の型が可能です: +*ゲッター* 関数は、*$result* パラメーターに基づいて、計算属性のデータ型を定義します。以下の結果の型が可能です: - スカラー (テキスト、ブール、日付、時間、数値) - オブジェクト @@ -498,12 +498,12 @@ Note over Qodly page: product.creationDate は "25/06/17"
    そして product. *$event* パラメーターは、以下のプロパティが含みます: -| プロパティ | 型 | 説明 | -| ------------- | ------- | ------------------------------------------------- | -| attributeName | Text | 計算属性の名称 | -| dataClassName | Text | データクラスの名称 | -| kind | Text | "get" | -| 戻り値 | Variant | 任意。 スカラー属性が Null を返すようにするには、このプロパティを Null値で追加します。 | +| プロパティ | 型 | 説明 | +| ------------- | ------- | ------------------------------------------------ | +| attributeName | Text | 計算属性の名称 | +| dataClassName | Text | データクラスの名称 | +| kind | Text | "get" | +| 戻り値 | Variant | 任意。スカラー属性が Null を返すようにするには、このプロパティを Null値で追加します。 | :::note @@ -559,7 +559,7 @@ Function get coWorkers($event : Object)-> $result: cs.EmployeeSelection // コード ``` -*セッター* 関数は、属性に値が割り当てられたときに実行されます。 この関数は通常、入力値を処理し、その結果を 1つ以上の他の属性に転送します。 +*セッター* 関数は、属性に値が割り当てられたときに実行されます。この関数は通常、入力値を処理し、その結果を 1つ以上の他の属性に転送します。 *$value* パラメーターは、属性に割り当てられた値を受け取ります。 @@ -613,7 +613,7 @@ Function query ($event : Object) -> $result : Object | $result.query | Text | プレースホルダー (:1, :2, など) を使った有効なクエリ文字列 | | $result.parameters | Collection | プレースホルダーに渡す値 | -`query` 関数は、計算属性を使用するクエリが開始されるたびに実行されます。 インデックス付きの属性を利用することで、クエリをカスタマイズしたり最適化したりすることができます。 計算属性に対して `query` 関数が実装されていない場合、検索は常にシーケンシャルにおこなわれます (`get ` 関数によるすべての値の評価に基づきます)。 +`query` 関数は、計算属性を使用するクエリが開始されるたびに実行されます。インデックス付きの属性を利用することで、クエリをカスタマイズしたり最適化したりすることができます。計算属性に対して `query` 関数が実装されていない場合、検索は常にシーケンシャルにおこなわれます (`get ` 関数によるすべての値の評価に基づきます)。 > 以下の機能はサポートされていません: > @@ -622,14 +622,14 @@ Function query ($event : Object) -> $result : Object *$event* パラメーターは、以下のプロパティが含みます: -| プロパティ | 型 | 説明 | -| ------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| attributeName | Text | 計算属性の名称 | -| dataClassName | Text | データクラスの名称 | -| kind | Text | "query" | -| value | Variant | 計算属性によって処理されるべき値 | -| operator | Text | クエリ演算子 ([`query` クラス関数も参照ください](API/DataClassClass.md#query))。 とりうる値:
  • == (と等しい; @ はワイルドカード)
  • === (と等しい; @ はワイルドカードでない)
  • != (と等しくない; @ はワイルドカード)
  • !== (と等しくない; @ はワイルドカードでない)
  • < (小さい)
  • <= (less than or equal to)
  • > (大きい)
  • >= (以上)
  • IN (含まれる)
  • % (キーワードを含む)
  • | -| 戻り値 | Variant | 計算属性によって処理されるべき値。 4D がデフォルトクエリ (計算属性では常にシーケンシャル) を実行するようにしたい場合は、このプロパティに `Null` を渡します。 | +| プロパティ | 型 | 説明 | +| ------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| attributeName | Text | 計算属性の名称 | +| dataClassName | Text | データクラスの名称 | +| kind | Text | "query" | +| value | Variant | 計算属性によって処理されるべき値 | +| operator | Text | クエリ演算子 ([`query` クラス関数も参照ください](API/DataClassClass.md#query))。とりうる値:
  • == (と等しい; @ はワイルドカード)
  • === (と等しい; @ はワイルドカードでない)
  • != (と等しくない; @ はワイルドカード)
  • !== (と等しくない; @ はワイルドカードでない)
  • < (小さい)
  • <= (less than or equal to)
  • > (大きい)
  • >= (以上)
  • IN (含まれる)
  • % (キーワードを含む)
  • | +| 戻り値 | Variant | 計算属性によって処理されるべき値。 4D がデフォルトクエリ (計算属性では常にシーケンシャル) を実行するようにしたい場合は、このプロパティに `Null` を渡します。 | > 関数が *$result* に値を返し、`$event.result` プロパティにも別の値が割り当てられている場合、`$event.result` が優先されます。 @@ -748,8 +748,7 @@ Function orderBy ($event : Object)-> $result : Text // コード ``` -`orderBy` 関数は、計算属性で並べ替えされるたびに実行されます。 これにより、計算属性で並べ替えることができます。 たとえば、*fullName* を名字、名前の順にソートしたり、逆に名字、名前の順にソートすることができます。 -計算属性に対して `orderBy` 関数が実装されていない場合、並べ替えは常にシーケンシャルにおこなわれます (`get ` 関数によるすべての値の評価に基づきます)。 +`orderBy` 関数は、計算属性で並べ替えされるたびに実行されます。これにより、計算属性で並べ替えることができます。たとえば、*fullName* を名字、名前の順にソートしたり、逆に名字、名前の順にソートすることができます。計算属性に対して `orderBy` 関数が実装されていない場合、並べ替えは常にシーケンシャルにおこなわれます (`get ` 関数によるすべての値の評価に基づきます)。 > Entity クラス、または EntitySelection クラス型の計算属性に対する `orderBy` 関数の呼び出しは **サポートされていません**。 @@ -765,9 +764,9 @@ Function orderBy ($event : Object)-> $result : Text | descending | Boolean | 降順の場合は `true`, 昇順の場合は `false` | | 戻り値 | Variant | 計算属性によって処理されるべき値。 4D にデフォルトソートを実行させるには、`Null` を渡します。 | -> `operator` と `descending` プロパティのどちらを使っても構いません。 これは、基本的にプログラミングのスタイルの問題です (例題参照)。 +> `operator` と `descending` プロパティのどちらを使っても構いません。これは、基本的にプログラミングのスタイルの問題です (例題参照)。 -`orderBy` 文字列は、`$event.result` オブジェクトプロパティまたは関数の戻り値である *$result* のどちらでにも返すことができます。 関数が *$result* に値を返し、`$event.result` プロパティにも別の値が割り当てられている場合、`$event.result` が優先されます。 +`orderBy` 文字列は、`$event.result` オブジェクトプロパティまたは関数の戻り値である *$result* のどちらでにも返すことができます。関数が *$result* に値を返し、`$event.result` プロパティにも別の値が割り当てられている場合、`$event.result` が優先されます。 #### 例題 @@ -808,9 +807,9 @@ Function orderBy age($event : Object)-> $result : Text ### 概要 -**エイリアス** 属性は、**ターゲット** 属性と呼ばれるデータモデルの別の属性を元に定義されます。 ターゲット属性には、リレートデータクラス (リレートレベルは無制限) または同じデータクラスのものを使用できます。 エイリアス属性はデータではなく、ターゲット属性へのパスを格納します。 データクラスには、必要な数だけエイリアス属性を定義することができます。 +**エイリアス** 属性は、**ターゲット** 属性と呼ばれるデータモデルの別の属性を元に定義されます。ターゲット属性には、リレートデータクラス (リレートレベルは無制限) または同じデータクラスのものを使用できます。エイリアス属性はデータではなく、ターゲット属性へのパスを格納します。データクラスには、必要な数だけエイリアス属性を定義することができます。 -エイリアス属性は、N対Nリレーションを扱うのに便利です。 実装の詳細ではなくビジネスの概念を扱ってコードやクエリを作成できるため、これらの可読性が向上します。 +エイリアス属性は、N対Nリレーションを扱うのに便利です。実装の詳細ではなくビジネスの概念を扱ってコードやクエリを作成できるため、これらの可読性が向上します。 ### エイリアス属性の定義 @@ -826,17 +825,17 @@ Function orderBy age($event : Object)-> $result : Text *attributeName* は、[プロパティ名の命名規則](../Concepts/identifiers.md#オブジェクトプロパティ) に準拠している必要があります。 -*targetPath* は、"employee.company.name" のような、1つ以上のレベルを含む属性パスです。 ターゲット属性が同じデータクラスに属している場合、*targetPath* は属性名となります。 +*targetPath* は、"employee.company.name" のような、1つ以上のレベルを含む属性パスです。ターゲット属性が同じデータクラスに属している場合、*targetPath* は属性名となります。 エイリアスは、他のエイリアスのパスに使用することができます。 -[計算属性](#計算属性-1) もエイリアスパスに使用することができますが、パスの最後のレベルとしてのみ使用できます。そうでない場合は、エラーが返されます。 たとえば、"fullName" 計算属性がある場合、"employee.fullName" というエイリアスパスは有効です。 +[計算属性](#計算属性-1) もエイリアスパスに使用することができますが、パスの最後のレベルとしてのみ使用できます。そうでない場合は、エラーが返されます。たとえば、"fullName" 計算属性がある場合、"employee.fullName" というエイリアスパスは有効です。 -> ORDA のエイリアス属性は、デフォルトでは **公開されません**。 リモートリクエストでエイリアスを利用するには、`Alias` キーワードの前に [`exposed`](#公開vs非公開関数) キーワードを追加する必要があります。 +> ORDA のエイリアス属性は、デフォルトでは **公開されません**。リモートリクエストでエイリアスを利用するには、`Alias` キーワードの前に [`exposed`](#公開vs非公開関数) キーワードを追加する必要があります。 ### エイリアス属性の使用 -エイリアス属性は読み取り専用です (同じデータクラスのスカラー属性に基づく場合は例外です; 最後の例題参照)。 エイリアス属性は、次のようなクラス関数において、ターゲット属性パスの代わりに使用することができます: +エイリアス属性は読み取り専用です (同じデータクラスのスカラー属性に基づく場合は例外です; 最後の例題参照)。エイリアス属性は、次のようなクラス関数において、ターゲット属性パスの代わりに使用することができます: | Function | | ---------------------------------------------- | @@ -855,7 +854,7 @@ Function orderBy age($event : Object)-> $result : Text | `entity.diff()` | | `entity.touchedAttributes()` | -> エイリアス属性はサーバー上で計算されることに留意してください。 リモート環境において、エンティティのエイリアス属性を更新するには、エンティティをサーバーから再ロードする必要があります。 +> エイリアス属性はサーバー上で計算されることに留意してください。リモート環境において、エンティティのエイリアス属性を更新するには、エンティティをサーバーから再ロードする必要があります。 ### エイリアスのプロパティ @@ -866,7 +865,7 @@ Function orderBy age($event : Object)-> $result : Text - ターゲット属性の [`kind`](../API/DataClassClass.md#attributename) プロパティが "storage" の場合、エイリアス属性の `type` はターゲット属性と同じになります。 - ターゲット属性の [`kind`](../API/DataClassClass.md#attributename) が "relatedEntity" または "relatedEntities" の場合、エイリアスの `type` は `4D.Entity` または `4D.EntitySelection` ("*classname*Entity" または "*classname*Selection") になります。 -リレーションに基づくエイリアス属性は、そのターゲット属性のパスを格納する専用の [`path`](../API/DataClassClass.md#attributename) プロパティを持ちます。 同じデータクラスの属性に基づくエイリアス属性は、ターゲット属性と同じプロパティを持ちます (`path` プロパティはありません)。 +リレーションに基づくエイリアス属性は、そのターゲット属性のパスを格納する専用の [`path`](../API/DataClassClass.md#attributename) プロパティを持ちます。同じデータクラスの属性に基づくエイリアス属性は、ターゲット属性と同じプロパティを持ちます (`path` プロパティはありません)。 ### 例題 @@ -953,11 +952,11 @@ $arch.save() //courseName と name は "Archaeology II" に変更されます - `Open datastore` によって接続されたリモートの 4Dアプリケーションが送信するリクエスト - REST リクエスト、[Qodly ページ](https://developer.4d.com/qodly/) からのリクエストも含める -> 通常の 4Dクライアント/サーバーリクエストは影響されません。 このアーキテクチャーにおいては、データモデルクラス関数は常に利用可能です。 +> 通常の 4Dクライアント/サーバーリクエストは影響されません。このアーキテクチャーにおいては、データモデルクラス関数は常に利用可能です。 -公開されていない関数はリモートアプリケーションで利用することができず、RESTリクエストによるオブジェクトインスタンスに対して呼び出すこともできません。 リモートアプリケーションが非公開関数をアクセスしようとすると、"-10729 (未知のメンバー機能です)" エラーが返されます。 +公開されていない関数はリモートアプリケーションで利用することができず、RESTリクエストによるオブジェクトインスタンスに対して呼び出すこともできません。リモートアプリケーションが非公開関数をアクセスしようとすると、"-10729 (未知のメンバー機能です)" エラーが返されます。 -関数あるいは属性がリモートリクエストから呼び出されるのを許可するためには、`exposed` キーワードを使って明示的に宣言する必要があります。 シンタックスは次の通りです: +関数あるいは属性がリモートリクエストから呼び出されるのを許可するためには、`exposed` キーワードを使って明示的に宣言する必要があります。シンタックスは次の通りです: ```4d // 公開関数の宣言 @@ -983,7 +982,7 @@ exposed Function :::note -`exposed` キーワードは上記で説明されているオブジェクトでのみ使用できます。 [通常のユーザークラス](Concepts/classes.md) 関数に対して使った場合、キーワードは無視され、コンパイラーはエラーを返します。 +`exposed` キーワードは上記で説明されているオブジェクトでのみ使用できます。[通常のユーザークラス](Concepts/classes.md) 関数に対して使った場合、キーワードは無視され、コンパイラーはエラーを返します。 ::: @@ -1028,7 +1027,7 @@ $id:=$remoteDS.Schools.computeIDNumber() // エラー (未知のメンバー機 ## onHTTPGet キーワード -`onHTTPGet` キーワードを使用することで、`GET` 動詞(メソッド)を使用してHTTP リクエストを通して呼び出し可能な関数を宣言することができます。 このような関数は例えば[`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) クラスを使用することで、あらゆるWeb コンテンツを返すことができます。 +`onHTTPGet` キーワードを使用することで、`GET` 動詞(メソッド)を使用してHTTP リクエストを通して呼び出し可能な関数を宣言することができます。このような関数は例えば[`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) クラスを使用することで、あらゆるWeb コンテンツを返すことができます。 `onHTTPGet` キーワードが使用できる関数は以下の通りです: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/overview.md index 194942f1bb126b..244614961f80c3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/overview.md @@ -3,21 +3,21 @@ id: overview title: 概要 --- -ORDA とは **オブジェクト・リレーショナル・データアクセス (Object Relational Data Access)** の意味です。 これは、オブジェクトを介してデータベースのモデルとデータにアクセスできるようにする革新的なテクノロジーです。 +ORDA とは **オブジェクト・リレーショナル・データアクセス (Object Relational Data Access)** の意味です。これは、オブジェクトを介してデータベースのモデルとデータにアクセスできるようにする革新的なテクノロジーです。 この概念には、[レイジーローディング](glossary.md#レイジーローディング) と合わせてリレーションが暗示的に織り込まれており、デベロッパーはありがちなデータセレクションや転送の煩わしさから解放されます。 -ORDA では、[データストア](dsMapping.md#データストア) と呼ばれる抽象化レイヤーを通してデータにアクセスします。 データストアとは、データベースモデルとデータへの、オブジェクトやクラスを介したインターフェースを提供するオブジェクトです。 たとえば、テーブルは [データクラス](dsMapping.md#データクラス) オブジェクトにマップされ、フィールドはデータクラスの [属性](dsMapping.md#属性)で、レコードは [エンティティ](dsMapping.md#entity) および [エンティティセレクション](dsMapping.md#エンティティセレクション) を介してアクセスされます。 +ORDA では、[データストア](dsMapping.md#データストア) と呼ばれる抽象化レイヤーを通してデータにアクセスします。データストアとは、データベースモデルとデータへの、オブジェクトやクラスを介したインターフェースを提供するオブジェクトです。たとえば、テーブルは [データクラス](dsMapping.md#データクラス) オブジェクトにマップされ、フィールドはデータクラスの [属性](dsMapping.md#属性)で、レコードは [エンティティ](dsMapping.md#entity) および [エンティティセレクション](dsMapping.md#エンティティセレクション) を介してアクセスされます。 ## ORDAを使う理由 テーブル、フィールド、レコードとして情報を表示する代わりに、ORDA では、より正確に現実世界の概念にデータをマップする、別のアプローチを使用します。 -効率に影響することなく、リレーショナルストラクチャーを非正規化する能力を想像してみてください。 リレーショナルなストラクチャーを完全に理解する必要がなく、単純かつ分かりやすくデータを使用できるよう、アプリケーション内のすべてのビジネスオブジェクトを定義することを想像してみてください。 +効率に影響することなく、リレーショナルストラクチャーを非正規化する能力を想像してみてください。リレーショナルなストラクチャーを完全に理解する必要がなく、単純かつ分かりやすくデータを使用できるよう、アプリケーション内のすべてのビジネスオブジェクトを定義することを想像してみてください。 ORDA のデータモデルでは、単一のデータクラスだけで旧来のリレーショナルデータベーステーブルを構成していた要素のすべてを取り込むことができるうえに、リレートされた親エンティティの値や、リレートされたエンティティとエンティティセレクションへの直接参照も含めることができます。 -クエリは、エンティティセレクションと呼ばれるエンティティのリストを返し、これは SQL のクエリの行セットの役割を果たします。 違いは、各エンティティは自身がどこに所属するかを "知っている" うえ、他のすべてのエンティティとのリレーションを "理解している" ということです。 これはつまり、クエリ内において様々な情報の断片をどのようにリレートさせたらいいか、あるいは、変更された値をリレーショナルストラクチャーに書き込む際にどのようにそれを更新したらいいかを、デベロッパーは説明する必要がないということです。 +クエリは、エンティティセレクションと呼ばれるエンティティのリストを返し、これは SQL のクエリの行セットの役割を果たします。違いは、各エンティティは自身がどこに所属するかを "知っている" うえ、他のすべてのエンティティとのリレーションを "理解している" ということです。これはつまり、クエリ内において様々な情報の断片をどのようにリレートさせたらいいか、あるいは、変更された値をリレーショナルストラクチャーに書き込む際にどのようにそれを更新したらいいかを、デベロッパーは説明する必要がないということです。 これに加えて、エンティティセレクションあるいはエンティティなどの ORDA オブジェクトは、リストボックスや変数などのユーザーインターフェース (UI) オブジェクトに簡単に割り当てることができます。 `This` や `Form` コマンドといった強力な機能と組み合わせることで、オブジェクトやコレクションに基づいた、モダンでモジュラーなインターフェースをビルドすることができるようになります。 @@ -27,7 +27,7 @@ ORDA のデータモデルでは、単一のデータクラスだけで旧来の ORDA のオブジェクトは 4D の標準オブジェクトと同様に扱えますが、どれだけでなく特定のプロパティおよびメソッドの恩恵を自動的に享受することができます。 -ORDA オブジェクトは 4D メソッドによって必要なときに作成・インスタンス化されます (別途作成する必要はありません)。 また、ORDA データモデルオブジェクトは、[カスタム関数が追加可能なクラス](ordaClasses.md) とも関連づけられます。 +ORDA オブジェクトは 4D メソッドによって必要なときに作成・インスタンス化されます (別途作成する必要はありません)。また、ORDA データモデルオブジェクトは、[カスタム関数が追加可能なクラス](ordaClasses.md) とも関連づけられます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/privileges.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/privileges.md index 6d640d5d14d785..c788482be94562 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/privileges.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/privileges.md @@ -9,7 +9,7 @@ title: ロールと権限 ORDA のセキュリティアーキテクチャーは、権限、許諾アクション (read、create など)、およびリソースの概念に基づいています。 -Webユーザーまたは RESTユーザーがログインすると、そのセッションには自動的に関連する権限がロードされます。 権限は、[`session.setPrivileges()`](../API/SessionClass.md#setprivileges) 関数によって、セッションに割り当てられます。 +Webユーザーまたは RESTユーザーがログインすると、そのセッションには自動的に関連する権限がロードされます。権限は、[`session.setPrivileges()`](../API/SessionClass.md#setprivileges) 関数によって、セッションに割り当てられます。 セッション内で送信されるユーザーリクエストは、プロジェクトの `roles.json` ファイルで定義された権限に対して評価されます。 @@ -37,7 +37,7 @@ Webユーザーまたは RESTユーザーがログインすると、そのセッ ## パーミッション -パーミッションとは、リソースに対してアクションを実行できる能力のことです。 例えば、 *ds.myTable.myFunction() を実行できる* というのは、**パーミッション** を表します。 権限は、プロジェクトに対して [`roles.json`](#rolesjson-file) ファイル内にて定義されます。 各パーミッションには一つまたは複数の [権限](#privileges-and-roles) を与えることができます。 +パーミッションとは、リソースに対してアクションを実行できる能力のことです。例えば、 *ds.myTable.myFunction() を実行できる* というのは、**パーミッション** を表します。権限は、プロジェクトに対して [`roles.json`](#rolesjson-file) ファイル内にて定義されます。各パーミッションには一つまたは複数の [権限](#privileges-and-roles) を与えることができます。 リソースに対して **特定のパーミッションが定義されていない** 場合には、リソースに対してのアクセスは、[プロジェクトで定義されているデフォルトのモード](#制限モード)によって自動的に **無制限** か **制限付き** に設定されます。 @@ -45,14 +45,14 @@ Webユーザーまたは RESTユーザーがログインすると、そのセッ 利用可能なアクションは対象となるリソースによります。 -| アクション | データストア | dataclass | 属性 | データモデル関数またはシングルトン関数 | -| ----------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | -| **create** | 任意のデータクラスにおいてエンティティを作成 | 当該データクラスにおいてエンティティを作成 | 当該属性に許可されたデフォルト値とは異なる値を持つエンティティを作成 (エイリアス属性の場合は無視されます) | n/a | -| **read** | 任意のデータクラスにおいて属性を読み取り | 当該データクラスにおいて属性を読み取り | 当該属性を読み取り | n/a | -| **update** | 任意のデータクラスにおいて属性を更新 | 当該データクラスにおいて属性を更新 | 当該属性を更新 (エイリアス属性の場合は無視されます) | n/a | -| **drop** | 任意のデータクラスにおいてデータを削除 | 当該データクラスにおいてデータを削除 | 当該属性の null でない値を削除 (エイリアス属性と計算属性を除く) | n/a | -| **execute** | プロジェクトの任意の関数を実行 (データストア、データクラス、エンティティセレクション、エンティティ、シングルトン) | データクラスの任意の関数を実行。 データクラス関数、エンティティ関数、エンティティセレクション関数は、データクラスの関数として扱われます。 | n/a | 当該関数を実行 | -| **promote** | n/a | n/a | n/a | 関数の実行に指定の権限を関連付けます。 権限は一時的に追加され、関数の実行終了時に削除されます。 セキュリティ上、セッション全体ではなく、当該関数を実行するプロセスのみに権限が追加されます。 | +| アクション | データストア | dataclass | 属性 | データモデル関数またはシングルトン関数 | +| ----------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| **create** | 任意のデータクラスにおいてエンティティを作成 | 当該データクラスにおいてエンティティを作成 | 当該属性に許可されたデフォルト値とは異なる値を持つエンティティを作成 (エイリアス属性の場合は無視されます) | n/a | +| **read** | 任意のデータクラスにおいて属性を読み取り | 当該データクラスにおいて属性を読み取り | 当該属性を読み取り | n/a | +| **update** | 任意のデータクラスにおいて属性を更新 | 当該データクラスにおいて属性を更新 | 当該属性を更新 (エイリアス属性の場合は無視されます) | n/a | +| **drop** | 任意のデータクラスにおいてデータを削除 | 当該データクラスにおいてデータを削除 | 当該属性の null でない値を削除 (エイリアス属性と計算属性を除く) | n/a | +| **execute** | プロジェクトの任意の関数を実行 (データストア、データクラス、エンティティセレクション、エンティティ、シングルトン) | データクラスの任意の関数を実行。データクラス関数、エンティティ関数、エンティティセレクション関数は、データクラスの関数として扱われます。 | n/a | 当該関数を実行 | +| **promote** | n/a | n/a | n/a | 関数の実行に指定の権限を関連付けます。権限は一時的に追加され、関数の実行終了時に削除されます。セキュリティ上、セッション全体ではなく、当該関数を実行するプロセスのみに権限が追加されます。 | :::note 注記 @@ -71,13 +71,13 @@ Webユーザーまたは RESTユーザーがログインすると、そのセッ あるレベルにおいて定義されたパーミッションは基本的に下位レベルに継承されますが、パーミッションは複数のレベルで設定することもできます: -- データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義された*execute* 権限アクションは、[シングルトン](../REST/$singleton.md) 関数を含めてプロジェクトの全ての関数に対して適用されます。 -- データクラスレベルで定義されたパーミッションは、データストアの設定をオーバーライドします (あれば)。 デフォルトでは、データクラスのすべての属性が、データクラスのパーミッションを継承します。 -- データクラスとは異なり、属性レベルで定義されたパーミッションは、親のデータクラスの設定をオーバーライドするのではなく、それに追加されます。 たとえば、同じ許諾アクションに対し、データクラスのレベルでは "general" という権限名を、データクラスの属性のレベルでは "detail" という権限名を割り当てた場合、その属性にアクセスするには、セッションに "general" と "detail" の両方の権限が設定されている必要があります。 +- データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義された*execute* 権限アクションは、[シングルトン](../REST/$singleton.md) 関数を含めてプロジェクトの全ての関数に対して適用されます。 +- データクラスレベルで定義されたパーミッションは、データストアの設定をオーバーライドします (あれば)。デフォルトでは、データクラスのすべての属性が、データクラスのパーミッションを継承します。 +- データクラスとは異なり、属性レベルで定義されたパーミッションは、親のデータクラスの設定をオーバーライドするのではなく、それに追加されます。たとえば、同じ許諾アクションに対し、データクラスのレベルでは "general" という権限名を、データクラスの属性のレベルでは "detail" という権限名を割り当てた場合、その属性にアクセスするには、セッションに "general" と "detail" の両方の権限が設定されている必要があります。 :::info -パーミッションは、データストアオブジェクトや関数へのアクセスを制御します。 特定の条件に基づいて読み取りデータをフィルタリングしたい場合は、[制限付エンティティセレクション](entities.md#制限付エンティティセレクション) の利用がより適切かもしれません。 +パーミッションは、データストアオブジェクトや関数へのアクセスを制御します。特定の条件に基づいて読み取りデータをフィルタリングしたい場合は、[制限付エンティティセレクション](entities.md#制限付エンティティセレクション) の利用がより適切かもしれません。 ::: @@ -104,7 +104,7 @@ Class extends Entity "applyTo":"City.getPopulation" ``` -これはつまり、関数に対して権限を割り当てたい場合には、異なるORDA クラス(エンティティ、エンティティセレクション、データクラス)間で同じ関数名を使用することができないということです。 この場合には、異なる関数名を使用する必要があります。 たとえば、`cs.CityEntity` および `cs.CitySelection` クラスの両方に "drop" 関数を作成するのであれば、`dropEntity()`、`dropSelection()` といった具合に別々の関数名を設定する必要があります。 その後で、 "roles.json" ファイルに以下のように記述することができます: +これはつまり、関数に対して権限を割り当てたい場合には、異なるORDA クラス(エンティティ、エンティティセレクション、データクラス)間で同じ関数名を使用することができないということです。この場合には、異なる関数名を使用する必要があります。たとえば、`cs.CityEntity` および `cs.CitySelection` クラスの両方に "drop" 関数を作成するのであれば、`dropEntity()`、`dropSelection()` といった具合に別々の関数名を設定する必要があります。その後で、 "roles.json" ファイルに以下のように記述することができます: ```json "permissions": { @@ -128,11 +128,11 @@ Class extends Entity ## 権限とロール -**権限** とは、**リソース** に対して **アクション** を実行する技術的な能力であり、**ロール** は、管理者が使用するために公開された権限のことです。 基本的にロールとは、ビジネスユーザーのプロフィールを定義するためにいくつかの権限を集めたものです。 たとえば、"manageInvoices" (請求書管理) は権限の例で、"secretary" (秘書) は ("manageInvoices" および他の権限を持つ) ロールの例です。 +**権限** とは、**リソース** に対して **アクション** を実行する技術的な能力であり、**ロール** は、管理者が使用するために公開された権限のことです。基本的にロールとは、ビジネスユーザーのプロフィールを定義するためにいくつかの権限を集めたものです。たとえば、"manageInvoices" (請求書管理) は権限の例で、"secretary" (秘書) は ("manageInvoices" および他の権限を持つ) ロールの例です。 -権限は、複数の "リソース+アクション" の組み合わせと関連付けることができます。 また、一つのアクションに複数の権限を関連付けることができます。 権限は、他の権限を含むことができます。 +権限は、複数の "リソース+アクション" の組み合わせと関連付けることができます。また、一つのアクションに複数の権限を関連付けることができます。権限は、他の権限を含むことができます。 -- 権限やロールの **作成** は `roles.json` ファイル内にておこないます (後述参照)。 アクセス権の範囲を **設定** するには、リソースに適用される許諾アクションに権限名を割り当てます。 +- 権限やロールの **作成** は `roles.json` ファイル内にておこないます (後述参照)。アクセス権の範囲を **設定** するには、リソースに適用される許諾アクションに権限名を割り当てます。 - 各ユーザーセッションに権限やロールを **許可** するには、`Session` クラスの [`.setPrivileges()`](../API/SessionClass.md#setprivileges) 関数を使用します。 @@ -190,7 +190,7 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T :::caution 注記 -- "WebAdmin" 権限名は、アプリケーションによって予約されています。 この名前をカスタムの権限名に使用することは推奨されません。 +- "WebAdmin" 権限名は、アプリケーションによって予約されています。この名前をカスタムの権限名に使用することは推奨されません。 - `privileges` および `roles` の名称においては文字の大小が区別されます。 ::: @@ -235,7 +235,7 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T :::note 互換性 -以前のリリースでは、`roles.json` ファイルはデフォルトで作成されませんでした。 4D 20 R6 以降、`roles.json`ファイルを含まない、または `"forceLogin": true` の設定が含まれていない既存のプロジェクトを開く場合、[設定ダイアログボックスの **Web機能** ページ](../settings/web.md#アクセス権) で **ds.authentify() 関数を通しての REST認証を有効化** ボタンが利用可能になります。 このボタンはセキュリティ設定を自動的にアップグレードします (コードを修正する必要があるかもしれません。[このブログ記事を参照ください](https://blog.4d.com/ja/force-login-becomes-default-for-all-rest-auth))。 +以前のリリースでは、`roles.json` ファイルはデフォルトで作成されませんでした。 4D 20 R6 以降、`roles.json`ファイルを含まない、または `"forceLogin": true` の設定が含まれていない既存のプロジェクトを開く場合、[設定ダイアログボックスの **Web機能** ページ](../settings/web.md#アクセス権) で **ds.authentify() 関数を通しての REST認証を有効化** ボタンが利用可能になります。このボタンはセキュリティ設定を自動的にアップグレードします (コードを修正する必要があるかもしれません。[このブログ記事を参照ください](https://blog.4d.com/ja/force-login-becomes-default-for-all-rest-auth))。 ::: @@ -249,12 +249,12 @@ Qodly Studio for 4D においては、ログインモードはRoles and Privileg `restrictedByDefault` プロパティは、[リソース](#resources) に対して[特定のパーミッションが定義されていない時](#パーミッション) にどのようにしてそれにアクセスできるかを設定します: -- **無制限モード** (`restrictedByDefault`: **false**): リソースに対して定義されたパーミッションがなくても、全てのリクエストがそれにアクセス可能です。 このモードは例えば、アクセスを徐々に制限していけばいいような開発環境に適しています。 -- **制限モード** (`restrictedByDefault`: **true**): 定義されたパーミッションがないリソースは、デフォルトでブロックされます。 このモードは例えば、アクセス権が明示的に与えられなければならないような、プロダクション環境に対して推奨されます。 +- **無制限モード** (`restrictedByDefault`: **false**): リソースに対して定義されたパーミッションがなくても、全てのリクエストがそれにアクセス可能です。このモードは例えば、アクセスを徐々に制限していけばいいような開発環境に適しています。 +- **制限モード** (`restrictedByDefault`: **true**): 定義されたパーミッションがないリソースは、デフォルトでブロックされます。このモードは例えば、アクセス権が明示的に与えられなければならないような、プロダクション環境に対して推奨されます。 :::note 互換性 -- **新規プロジェクト作成時**、この `restrictedByDefault` プロパティは*roles.json* ファイルの中で**false** に設定されています(以下参照)。 この設定は、すぐに、かつスムーズに開発を始められるようにすることが目的であることに注意して下さい。 プロダクション環境においては、[`restrictedByDefault` および `forceLogin` プロパティを **true** に設定することが推奨されます](#recommended-configuration)。 +- **新規プロジェクト作成時**、この `restrictedByDefault` プロパティは*roles.json* ファイルの中で**false** に設定されています(以下参照)。この設定は、すぐに、かつスムーズに開発を始められるようにすることが目的であることに注意して下さい。プロダクション環境においては、[`restrictedByDefault` および `forceLogin` プロパティを **true** に設定することが推奨されます](#recommended-configuration)。 - **以前のリリースから変換されたプロジェクトの場合**、 Qodly Studio へのアクセスを[ワンクリック設定ダイアログ](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration) を使用して有効化した場合、 `restrictedByDefault` プロパティは、 *roles.json* ファイル内に値が **true** の状態で追加されます。 ::: @@ -263,16 +263,16 @@ Qodly Studio for 4D においては、ログインモードはRoles and Privileg 環境によって、推奨される設定は以下のようになります: -- **プロダクション環境**: `restrictedByDefault` および [`forceLogin`](../REST/authUsers.md#force-login-mode) を両方とも **true** に設定する。 この設定によりリソースへのアクセスにはユーザー認証と明示的に定義されたパーミッションが必要になり、最大限のセキュリティを保証します。 -- **開発環境**: `restrictedByDefault` および [`forceLogin`](../REST/authUsers.md#force-login-mode) を両方とも **false** に設定する。 この設定により、開発およびデバッグ中は簡単にアクセスすることができ、それでいて後から徐々に制限を厳しくしていくという方法が可能になります。 +- **プロダクション環境**: `restrictedByDefault` および [`forceLogin`](../REST/authUsers.md#force-login-mode) を両方とも **true** に設定する。この設定によりリソースへのアクセスにはユーザー認証と明示的に定義されたパーミッションが必要になり、最大限のセキュリティを保証します。 +- **開発環境**: `restrictedByDefault` および [`forceLogin`](../REST/authUsers.md#force-login-mode) を両方とも **false** に設定する。この設定により、開発およびデバッグ中は簡単にアクセスすることができ、それでいて後から徐々に制限を厳しくしていくという方法が可能になります。 ### `Roles_Errors.json` ファイル -`roles.json` ファイルは、4D 起動時に解析されます。 このファイルへの変更を反映させるには、アプリケーションを再起動する必要があります。 +`roles.json` ファイルは、4D 起動時に解析されます。このファイルへの変更を反映させるには、アプリケーションを再起動する必要があります。 -`roles.json` ファイルを解析する際にエラーが発生した場合、4D はプロジェクトを読み込みますが、グローバルアクセス保護は無効になります。これにより、開発者はエラー修正のためファイルにアクセスすることができます。 また、`Roles_Errors.json` という名前のエラーファイルが [プロジェクトの `Logs` フォルダー](../Project/architecture.md#logs) に生成され、エラー行が記述されています。 このファイルは、`roles.json` ファイルのエラーがすべて修正されると、自動的に削除されます。 +`roles.json` ファイルを解析する際にエラーが発生した場合、4D はプロジェクトを読み込みますが、グローバルアクセス保護は無効になります。これにより、開発者はエラー修正のためファイルにアクセスすることができます。また、`Roles_Errors.json` という名前のエラーファイルが [プロジェクトの `Logs` フォルダー](../Project/architecture.md#logs) に生成され、エラー行が記述されています。このファイルは、`roles.json` ファイルのエラーがすべて修正されると、自動的に削除されます。 -`Roles_Errors.json` ファイルが [Logs フォルダー](../Project/architecture.md#logs) に存在するかどうか、起動時に確認することをお勧めします。存在する場合、解析エラーが発生し、アクセスが制限されないことを意味します。 たとえば、次のように書くことができます: +`Roles_Errors.json` ファイルが [Logs フォルダー](../Project/architecture.md#logs) に存在するかどうか、起動時に確認することをお勧めします。存在する場合、解析エラーが発生し、アクセスが制限されないことを意味します。たとえば、次のように書くことができます: ```4d title="/Sources/DatabaseMethods/onStartup.4dm" If (Not(File("/LOGS/"+"Roles_Errors.json").exists)) 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 a069db6b75d5cc..c249bc9ee2d312 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/remoteDatastores.md @@ -7,13 +7,13 @@ 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` を呼び出したアプリケーションからのリクエストを処理します。リクエストは内部的には [REST API](../REST/gettingStarted.md) を使用し、これには [**認証** および **利用可能なライセンス**](../REST/authUsers.md) が必要となります。 ## Webセッションの使用 [`Open datastore`](../commands/open-datastore) コマンドによって参照されるリモートデータストアの場合、リクエスト元プロセスとの接続はリモートマシン上では [Webセッション](../WebServer/sessions.md) により管理されます。 -リモートデータストア上で作成される Webセッションは内部的にセッションID によって識別され、4Dアプリケーション上では `localID` と紐づいています。 データ、エンティティセレクション、エンティティへのアクセスはこのセッションによって自動的に管理されます。 +リモートデータストア上で作成される Webセッションは内部的にセッションID によって識別され、4Dアプリケーション上では `localID` と紐づいています。データ、エンティティセレクション、エンティティへのアクセスはこのセッションによって自動的に管理されます。 `localID` はリモートデータストアに接続しているマシンにおけるローカルな識別IDです: @@ -31,18 +31,17 @@ title: リモートデータストア ## セッションの終了 -[セッションの有効期限](../WebServer/sessions.md#セッションの有効期限) の段落で説明されているように、アクティビティなしにタイムアウト時間が経過すると、4D は自動的にセッションを終了します。 デフォルトのタイムアウト時間は60分です。ですが、[`Open datastore`](../commands/open-datastore) コマンドの*connectionInfo* 引数を使用することでこの値を変更することができます。 +[セッションの有効期限](../WebServer/sessions.md#セッションの有効期限) の段落で説明されているように、アクティビティなしにタイムアウト時間が経過すると、4D は自動的にセッションを終了します。デフォルトのタイムアウト時間は60分です。ですが、[`Open datastore`](../commands/open-datastore) コマンドの*connectionInfo* 引数を使用することでこの値を変更することができます。 -セッション終了後にリクエストがリモートデータストアに送信された場合、セッションは可能な限り (ライセンスがあり、サーバーが停止していない、など) 再開されます。 ただしセッションが再開しても、ロックやトランザクションに関わるコンテキストは失われていることに留意が必要です (後述参照)。 +セッション終了後にリクエストがリモートデータストアに送信された場合、セッションは可能な限り (ライセンスがあり、サーバーが停止していない、など) 再開されます。ただしセッションが再開しても、ロックやトランザクションに関わるコンテキストは失われていることに留意が必要です (後述参照)。 ## ロッキングとトランザクション エンティティロッキングやトランザクションに関連した ORDA 機能は、ORDA のクライアント / サーバーモードと同様に、リモートデータストアにおいてもプロセスレベルで管理されます: -- あるプロセスがリモートデータストアのエンティティをロックした場合、セッションの共有如何に関わらず、他のすべてのプロセスに対してそのエンティティはロックされた状態です ([エンティティロッキング](entities.md#エンティティロッキング) 参照)。 同一のレコードに対応する複数のエンティティが 1つのプロセスによってロックされている場合、同プロセス内でそれらがすべてアンロックされないと、ロックは解除されません。 なお、ロックされたエンティティに対する参照がメモリ上に存在しなくなった場合にも、ロックは解除されます。 -- トランザクションは、 [`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` から返される)メインのデータストアに対してのみ適用されます。 - リモートデータストアのエンティティがあるプロセスのトランザクションで使われている場合、セッションの共有如何に関わらず、他のすべてのプロセスはそのエンティティを更新できません。 +- あるプロセスがリモートデータストアのエンティティをロックした場合、セッションの共有如何に関わらず、他のすべてのプロセスに対してそのエンティティはロックされた状態です ([エンティティロッキング](entities.md#エンティティロッキング) 参照)。同一のレコードに対応する複数のエンティティが 1つのプロセスによってロックされている場合、同プロセス内でそれらがすべてアンロックされないと、ロックは解除されません。なお、ロックされたエンティティに対する参照がメモリ上に存在しなくなった場合にも、ロックは解除されます。 +- トランザクションは、 [`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/Preferences/forms.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/forms.md index 39491c00152c35..c80d32baa2c5f2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/forms.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/forms.md @@ -17,18 +17,18 @@ title: フォームページ このオプションは、フォームエディターにおいてウィンドウの境界外にオブジェクトをマウスで移動した際の動作を設定します。 -- **自動スクロール**: このオプションが選択されていると、オブジェクトの移動に合わせてウィンドウ内でスクロールがおこなわれます。 この動作は大きなフォーム内でオブジェクトを移動する際に便利です。 -- **ドラッグ&ドロップを開始**: このオプションが選択されていると、エディター外へのオブジェクト移動はドラッグ&ドロップとして解釈されます。 フォームウィンドウは変更されず、移動されたオブジェクトは (たとえば他のフォームなど) 他のウィンドウにドロップできます (アクションに互換性がある場合)。 この動作は、複数フォームでのオブジェクトのリサイクルやオブジェクトライブラリの利用時に便利です ([カスタムオブジェクトライブラリの作成と使用](FormEditor/objectLibrary.md#カスタムオブジェクトライブラリの作成と使用) 参照)。 +- **自動スクロール**: このオプションが選択されていると、オブジェクトの移動に合わせてウィンドウ内でスクロールがおこなわれます。この動作は大きなフォーム内でオブジェクトを移動する際に便利です。 +- **ドラッグ&ドロップを開始**: このオプションが選択されていると、エディター外へのオブジェクト移動はドラッグ&ドロップとして解釈されます。フォームウィンドウは変更されず、移動されたオブジェクトは (たとえば他のフォームなど) 他のウィンドウにドロップできます (アクションに互換性がある場合)。この動作は、複数フォームでのオブジェクトのリサイクルやオブジェクトライブラリの利用時に便利です ([カスタムオブジェクトライブラリの作成と使用](FormEditor/objectLibrary.md#カスタムオブジェクトライブラリの作成と使用) 参照)。 作業慣習や開発ニーズに応じてこのオプションを設定できます。 ### デフォルトで自動揃えを有効にする -このオプションはフォームエディターでの自動揃えを有効にします。 このオプションはフォームウィンドウ内でも変更できます ([マグネティックグリッドを使用する](FormEditor/formEditor.md#マグネティックグリッドを使用する) 参照)。 +このオプションはフォームエディターでの自動揃えを有効にします。このオプションはフォームウィンドウ内でも変更できます ([マグネティックグリッドを使用する](FormEditor/formEditor.md#マグネティックグリッドを使用する) 参照)。 ## 新フォームのデフォルト表示 -- **境界**, **ルーラー**, ...: フォームエディターの各新規ウィンドウにデフォルトで表示する項目をチェックします。 フォームエディターの **表示** 階層メニューを使って、各ウィンドウの表示を個別に変更することができます。 -- **マーカーラインのカラー**: このオプションは、フォームエディター中で (ヘッダー、ブレーク、詳細、フッター) エリアを定義するマーカーラインの色を設定します。 マーカーに関する詳細は [出力コントロールラインを使用する](https://doc.4d.com/4Dv20/4D/20.2/Using-output-control-lines.300-6750228.ja.html) を参照してください。 -- **デフォルトで表示するバッジ**: このオプションは、フォームエディターの新しいウィンドウを開く際、どのバッジをデフォルトで表示するかを設定します。 バッジに関する詳細は [バッジを使用する](FormEditor/formEditor.md#バッジを使用する) を参照ください。 +- **境界**, **ルーラー**, ...: フォームエディターの各新規ウィンドウにデフォルトで表示する項目をチェックします。フォームエディターの **表示** 階層メニューを使って、各ウィンドウの表示を個別に変更することができます。 +- **マーカーラインのカラー**: このオプションは、フォームエディター中で (ヘッダー、ブレーク、詳細、フッター) エリアを定義するマーカーラインの色を設定します。マーカーに関する詳細は [出力コントロールラインを使用する](https://doc.4d.com/4Dv20/4D/20.2/Using-output-control-lines.300-6750228.ja.html) を参照してください。 +- **デフォルトで表示するバッジ**: このオプションは、フォームエディターの新しいウィンドウを開く際、どのバッジをデフォルトで表示するかを設定します。バッジに関する詳細は [バッジを使用する](FormEditor/formEditor.md#バッジを使用する) を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md index f393532c525389..b285e989be7104 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/general.md @@ -18,15 +18,15 @@ title: 一般ページ - **リモートプロジェクトを開くダイアログ**: 4D は 4D Server にログオンする標準のダイアログボックスを表示し、ネットワークに公開されたプロジェクトを指定することができます。 - **Welcomeウィザードを開くダイアログ** (初期設定): 4D は Welcomeウィザードダイアログボックスを表示します。 -> **4D Server**: 4D Server アプリケーションは、このオプションを無視します。 この環境においては、**何もしない** モードが常に選択されます。 +> **4D Server**: 4D Server アプリケーションは、このオプションを無視します。この環境においては、**何もしない** モードが常に選択されます。 ### 自動フォーム作成 -> このオプションは、バイナリデータベースでのみ使用され、プロジェクトアーキテクチャーでは無視されます。 doc.4d.com を参照ください。 +> このオプションは、バイナリーデータベースでのみ使用され、プロジェクトアーキテクチャーでは無視されます。 doc.4d.com を参照ください。 ### ウィンドウのタブ (macOSのみ) -macOS Sierra 以降、Mac のアプリケーションは、複数のウィンドウを整理しやすくする自動ウィンドウタブ機能を利用することができます。 単一の親ウィンドウ内でドキュメントウィンドウを積み重ね、タブを通してブラウズすることができます。 この機能は小さなスクリーンや、トラックパッドを使用している場合などに有用です。 +macOS Sierra 以降、Mac のアプリケーションは、複数のウィンドウを整理しやすくする自動ウィンドウタブ機能を利用することができます。 単一の親ウィンドウ内でドキュメントウィンドウを積み重ね、タブを通してブラウズすることができます。この機能は小さなスクリーンや、トラックパッドを使用している場合などに有用です。 この機能は、以下の環境において利用することができます (4D 64-bit版のみ): @@ -53,7 +53,7 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド ### アピアランス (macOSのみ) -このメニューで、**4D開発**環境で使用するカラースキームを選択します。 指定されたカラースキームは、デザインモードのすべてのエディターとウィンドウに適用されます。 +このメニューで、**4D開発**環境で使用するカラースキームを選択します。指定されたカラースキームは、デザインモードのすべてのエディターとウィンドウに適用されます。 > **デスクトップアプリケーション** で使用するカラースキームは、ストラクチャー設定ダイアログボックスの "インターフェース" ページで設定することができます。 @@ -67,7 +67,7 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド ### アプリケーションモードに移動する時に、デザインモードを終了する -このオプションが選択されていると、**アプリケーションモード** コマンドを使用してユーザーがアプリケーションモードに移動する際に、デザインモードのすべてのウィンドウが閉じられます。 このオプションがチェックされていないと (初期設定)、デザインモードのウィンドウはアプリケーションモードの後ろに表示されたままとなります。 +このオプションが選択されていると、**アプリケーションモード** コマンドを使用してユーザーがアプリケーションモードに移動する際に、デザインモードのすべてのウィンドウが閉じられます。このオプションがチェックされていないと (初期設定)、デザインモードのウィンドウはアプリケーションモードの後ろに表示されたままとなります。 ### バイナリー形式のデータベース作成を有効化する @@ -78,13 +78,13 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド ![](../assets/en/Preferences/general5.png) -この項目を使用するとバイナリーデータベースを作成することができるようになります([新しいデータベースを作成する](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-new-database.300-6750129.ja.html) の章を参照)。 これらの項目はデフォルトでは表示されません。今後 4D は、新規の開発にはプロジェクトベースのアーキテクチャーを使用することを推奨するからです。 +この項目を使用するとバイナリーデータベースを作成することができるようになります([新しいデータベースを作成する](https://doc.4d.com/4Dv20/4D/20.2/Creating-a-new-database.300-6750129.ja.html) の章を参照)。これらの項目はデフォルトでは表示されません。今後 4D は、新規の開発にはプロジェクトベースのアーキテクチャーを使用することを推奨するからです。 ## 新規プロジェクト作成時 ### ログファイルを使用 -このオプションをチェックすると、新規データベース作成時にログファイルが自動的に開始され、使用されます。 詳細な情報については [ログファイル (.journal)](Backup/log.md) を参照ください。 +このオプションをチェックすると、新規データベース作成時にログファイルが自動的に開始され、使用されます。詳細な情報については [ログファイル (.journal)](Backup/log.md) を参照ください。 ### パッケージを作成する @@ -94,11 +94,11 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド ### Project ソースファイルにトークンを含める -このオプションを有効にすると、新規の 4Dプロジェクトで保存された [メソッドのソースファイル](../Project/architecture.md#sources) には、[クラシックランゲージおよびデータベースオブジェクト (定数、コマンド、テーブル、フィールド) 用の **トークン**](../Concepts/methods.md#language-tokens) が含まれます。 トークンとは、ソースコードファイルに挿入される `:C10` や `:5` などの追加文字で、テーブルやフィールドの名前を変更したり、4Dバージョンに関係なく要素を識別したりすることを可能にします。 +このオプションを有効にすると、新規の 4Dプロジェクトで保存された [メソッドのソースファイル](../Project/architecture.md#sources) には、[クラシックランゲージおよびデータベースオブジェクト (定数、コマンド、テーブル、フィールド) 用の **トークン**](../Concepts/methods.md#language-tokens) が含まれます。トークンとは、ソースコードファイルに挿入される `:C10` や `:5` などの追加文字で、テーブルやフィールドの名前を変更したり、4Dバージョンに関係なく要素を識別したりすることを可能にします。 バージョン管理システムや外部のコードエディターを新規プロジェクトで使用したい場合、これらのツールでのコードの可読性のために、このオプションのチェックを外すことができます。 -> このオプションは、プロジェクトにのみ適用できます (バイナリデータベースでは常にトークンが含まれます)。 +> このオプションは、プロジェクトにのみ適用できます (バイナリーデータベースでは常にトークンが含まれます)。 > *option* パラメーターに 1 を指定して [`METHOD GET CODE`](../commands/method-get-code) を呼び出すと、 トークンを含むコードをいつでも取得することができます。 @@ -110,7 +110,7 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド "tokenizedText": false ``` -> この設定は、メソッドが保存されるときにのみ考慮されます。 つまり、再保存しない限り、プロジェクト内の既存メソッドはそのまま残されます。 +> この設定は、メソッドが保存されるときにのみ考慮されます。つまり、再保存しない限り、プロジェクト内の既存メソッドはそのまま残されます。 ### `.gitignore` ファイルを作成する @@ -120,17 +120,17 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド このボックスがチェックされている場合、4D でプロジェクトを作成すると、4D は `.gitignore` ファイルを `Project` フォルダーと同階層に作成します ([プロジェクトのアーキテクチャー](Project/architecture.md#.gitignore-ファイル-任意) 参照)。 -鉛筆アイコンをクリックすると、`.gitignore` ファイルのデフォルトの内容を定義することができます。 これにより、.gitignore 設定ファイルがテキストエディターで開かれます。 このファイルの内容は、新規プロジェクトで `.gitignore` ファイルを生成する際に使用されます。 +鉛筆アイコンをクリックすると、`.gitignore` ファイルのデフォルトの内容を定義することができます。これにより、.gitignore 設定ファイルがテキストエディターで開かれます。このファイルの内容は、新規プロジェクトで `.gitignore` ファイルを生成する際に使用されます。 `.gitignore` ファイルの仕組みを理解するには、[git の公式ドキュメント](https://git-scm.com/docs/gitignore) が参考になります。 ### テキスト比較の言語 -このパラメーターは新規データベースにおいて、文字列の処理と比較で使用されるデフォルトの言語を設定します。 言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。 ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。 初期設定では、4D はシステムに設定されているカレントのユーザー言語を使用します。 +このパラメーターは新規データベースにおいて、文字列の処理と比較で使用されるデフォルトの言語を設定します。言語の選択は、テキストの並べ替えや検索、文字の大小などの比較ルール等に直接影響を与えます。 ただし、テキストの翻訳や日付・時刻・通貨のフォーマットはシステムの言語設定が使用され、この設定には影響されません。初期設定では、4D はシステムに設定されているカレントのユーザー言語を使用します。 -つまり、4Dデータベースはシステム言語とは異なる言語で動作することができます。 データベースが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。 データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 +つまり、4Dデータベースはシステム言語とは異なる言語で動作することができます。データベースが開かれるとき、4Dエンジンはデータファイルに使用されている言語を検知し、(インタープリターやコンパイルモードの) ランゲージに提供します。データベースエンジン、あるいはランゲージのいずれがテキスト比較をおこなうかに関わらず、同じ言語が使用されます。 -新規にデータファイルを作成する際、4D はこのメニューで設定されている言語を使用します。 ストラクチャーの言語と異なる言語のデータファイルを開くと、データファイルの言語が使用され、ストラクチャーに言語コードがコピーされます。 +新規にデータファイルを作成する際、4D はこのメニューで設定されている言語を使用します。ストラクチャーの言語と異なる言語のデータファイルを開くと、データファイルの言語が使用され、ストラクチャーに言語コードがコピーされます。 > データベース設定を使用して、開かれているデータベースの言語を変更することができます ([テキスト比較](../settings/database.md#テキスト比較) 参照)。 @@ -143,7 +143,7 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド ### ドキュメント言語 -表示する HTMLドキュメントの言語。 アプリケーションの言語とは別のドキュメント言語を選択することができます。 +表示する HTMLドキュメントの言語。アプリケーションの言語とは別のドキュメント言語を選択することができます。 ### 最初にローカルフォルダーを見る @@ -151,14 +151,14 @@ macOS Sierra 以降、Mac のアプリケーションは、複数のウィンド 4Dがドキュメントのページを探す場所を設定します。 -- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。 ページが見つかれば、4D はそのページをカレントブラウザーで表示します。 見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。 この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 -- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。 ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 +- チェックされている場合 (デフォルト)、4D はまずローカルフォルダーでページを探します (後述参照)。ページが見つかれば、4D はそのページをカレントブラウザーで表示します。見つからない場合、4D は自動でオンラインドキュメントの Webサイトを参照します。この場合インターネットに接続されていない環境でも、ローカルのドキュメントが参照できます。 +- チェックされていない場合、4D はオンラインドキュメントの Webサイトに直接アクセスし、カレントブラウザーでページを表示します。ページが見つからない場合、4D はブラウザーにエラーメッセージを表示します。 ### ローカルフォルダー > このオプションは、コマンドドキュメントへのアクセスに関してのみ考慮されます (クラス関数を除く)。 -スタティックな HTMLドキュメントの場所を指定します。 デフォルトでこれは \Help\Command\language サブフォルダーに設定されています。 このエリアに割り当てられているメニューをクリックすると、場所を見ることができます。 このサブフォルダーが存在しない場合、場所は赤で表示されます。 +スタティックな HTMLドキュメントの場所を指定します。デフォルトでこれは \Help\Command\language サブフォルダーに設定されています。このエリアに割り当てられているメニューをクリックすると、場所を見ることができます。このサブフォルダーが存在しない場合、場所は赤で表示されます。 -この場所は必要に応じて変更することができます。 たとえば、アプリケーションの言語とは異なる言語でドキュメントを表示したい場合などです。 HTMLドキュメントは、異なるボリュームや Webサーバー上などに置くことも可能です。 他の場所を指定するには、メニューの隣の **[...]** ボタンをクリックし、ドキュメントのルートフォルダー (`fr`, `en`, `es`, `de` または `ja` などの言語に対応するフォルダー) を選択します。 +この場所は必要に応じて変更することができます。 たとえば、アプリケーションの言語とは異なる言語でドキュメントを表示したい場合などです。 HTMLドキュメントは、異なるボリュームや Webサーバー上などに置くことも可能です。他の場所を指定するには、メニューの隣の **[...]** ボタンをクリックし、ドキュメントのルートフォルダー (`fr`, `en`, `es`, `de` または `ja` などの言語に対応するフォルダー) を選択します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md index e0387ea91f7bfc..d994df9792a98d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/methods.md @@ -3,17 +3,17 @@ id: methods title: メソッドページ --- -このページでは、コードエディターのインターフェースやデフォルトの表示、および動作に関するオプションを設定します。 ページはテーマとオプションという 2つのタブに分けられています。 +このページでは、コードエディターのインターフェースやデフォルトの表示、および動作に関するオプションを設定します。ページはテーマとオプションという 2つのタブに分けられています。 ## テーマ -このページでは、コードエディターのテーマを選択・作成・設定することができます。 テーマは、コードエディターに表示される項目のフォント、フォントサイズ、カラー、スタイルを定義します。 +このページでは、コードエディターのテーマを選択・作成・設定することができます。テーマは、コードエディターに表示される項目のフォント、フォントサイズ、カラー、スタイルを定義します。 ![](../assets/en/Preferences/themes.png) ### テーマリスト -このリストでは、コードエディターに適用するテーマを選択します。 利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: +このリストでは、コードエディターに適用するテーマを選択します。利用可能なテーマがすべて表示され、カスタムテーマがある場合はそれも表示されます。 4D はデフォルトで 2つのテーマを用意しています: - **デフォルトのLightテーマ** - **デフォルトのDarkテーマ** @@ -24,7 +24,7 @@ title: メソッドページ ### カスタムテーマの作成 -完全にカスタマイズ可能なテーマを作成することができます。 テーマを作成するには、既存のテーマを選択して、テーマリストの下部にある **+** をクリックします。 また、`4D Editor Themes` フォルダー内のテーマファイルをコピーして、カスタマイズしたテーマを追加することもできます (後述参照)。 +完全にカスタマイズ可能なテーマを作成することができます。テーマを作成するには、既存のテーマを選択して、テーマリストの下部にある **+** をクリックします。また、`4D Editor Themes` フォルダー内のテーマファイルをコピーして、カスタマイズしたテーマを追加することもできます (後述参照)。 ### カスタムテーマファイル @@ -49,7 +49,7 @@ title: メソッドページ ### 4D ランゲージと SQL ランゲージ -ランゲージ要素の種類ごとに、異なるフォントスタイルやカラー (フォントカラーや背景色) を設定できます。 カスタマイズする要素は、カテゴリーリストで選択できます。 +ランゲージ要素の種類ごとに、異なるフォントスタイルやカラー (フォントカラーや背景色) を設定できます。カスタマイズする要素は、カテゴリーリストで選択できます。 ### その他のスタイル @@ -90,21 +90,21 @@ title: メソッドページ #### インデント -コードエディターで、4Dコードが使用するインデントの値を設定します。 値はポイントで設定します (デフォルトは 10)。 +コードエディターで、4Dコードが使用するインデントの値を設定します。値はポイントで設定します (デフォルトは 10)。 4D は構造を明確にするために自動でコードをインデントします: ![](../assets/en/Preferences/optionsIndent.png) -アルゴリズムが複雑になり、階層レベル数が増えた場合に、この値を変更すると便利な場合があります。 具体的には、この値を減らすことで水平スクロールを減らすことができます。 +アルゴリズムが複雑になり、階層レベル数が増えた場合に、この値を変更すると便利な場合があります。具体的には、この値を減らすことで水平スクロールを減らすことができます。 #### 行番号を表示 -コードエディターで、行番号をデフォルト表示するかどうかを設定します。 コードエディターにて、直接の行番号を表示/非表示設定することもできます。 +コードエディターで、行番号をデフォルト表示するかどうかを設定します。コードエディターにて、直接の行番号を表示/非表示設定することもできます。 #### リスト表示 -コードエディターウィンドウを開いたときに、オブジェクト (コマンド、テーブル、フィールド等) のリストをデフォルトで表示するかどうかを設定します。 コードエディターで直接このリストを表示/非表示にすることもできます。 +コードエディターウィンドウを開いたときに、オブジェクト (コマンド、テーブル、フィールド等)のリストをデフォルトで表示するかどうかを設定します。コードエディターで直接このリストを表示/非表示にすることもできます。 #### クリップボード表示 @@ -124,31 +124,30 @@ title: メソッドページ #### ブロック行を常に表示 -垂直のブロック線を常に非表示にできます。 ブロック線はノードを視覚的に繋ぐためのものです。 デフォルトでは、これらは常に表示されています (ただし展開/折りたたみアイコンが非表示の場合は除きます。 以下参照)。 +垂直のブロック線を常に非表示にできます。ブロック線はノードを視覚的に繋ぐためのものです。デフォルトでは、これらは常に表示されています (ただし展開/折りたたみアイコンが非表示の場合は除きます。 以下参照)。 ![](../assets/en/Preferences/optionsBlockLines.png) #### 折りたたみ/展開アイコンを隠す -コードを表示する際に、展開/折りたたみアイコンをデフォルトで非表示にすることができます。 このオプションがチェックされているとき、ノードアイコン (とブロック線。 前述参照)は、マウスがノードの上に置かれた際にのみ一時的に表示されます: +コードを表示する際に、展開/折りたたみアイコンをデフォルトで非表示にすることができます。このオプションがチェックされているとき、ノードアイコン (とブロック線。 前述参照)は、マウスがノードの上に置かれた際にのみ一時的に表示されます: ![](../assets/en/Preferences/optionsHideIcons.png) #### () と対応する閉じる } ) ] " を自動で挿入 -コード入力中に () と、閉じるカッコを自動的に挿入するようにします。 このオプションでは 2つの自動機能を管理します: +コード入力中に () と、閉じるカッコを自動的に挿入するようにします。このオプションでは 2つの自動機能を管理します: -- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。 たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 +- **()カッコのペア**: 4Dコマンド、キーワード、プロジェクトメソッドが提案リストあるいは補完リストから挿入される時、その挿入要素が一つ以上の引数を必須としている場合に追加されます。たとえば、"C_OB" と入力して Tabキーを押すと、4D は自動的に "C_OBJECT()" と表示し、カーソルを () の内部に設定します。 -- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。 この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。 たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: +- **閉じる }, ), ], "**: {, (, [, あるいは " などの開くカッコを入力した時に、対応する閉じるカッコが追加されます。この機能により、カーソル位置に、あるいは選択されたテキストを囲むように、対応するカッコ記号を挿入できるようになります。たとえば、文字列をハイライトして単一の " を入力すると、選択された文字列全体が "" で囲まれます: ![](../assets/en/Preferences/optionsClosing.png) ![](../assets/en/Preferences/optionsClosing2.png) #### 括弧のマッチング -コード中での対応する括弧を強調する方法を設定します。 この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。 -次のオプションから選択することができます: +コード中での対応する括弧を強調する方法を設定します。この強調は、括弧 (大カッコ[]、中カッコ{}、小カッコ()) が選択されたときに表示されます。次のオプションから選択することができます: - **なし**: 強調なし - **四角** (デフォルト): 括弧が黒い四角で囲まれます。![](../assets/en/Preferences/optionsRectangle.png) @@ -179,8 +178,8 @@ title: メソッドページ このエリアでは、コードエディターの自動補完メカニズムを設定して、作業習慣に合わせることができます。 -| | 説明 | -| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ウィンドウを自動で開く | 次の要素に関する提案ウィンドウを自動で開くかを指定します:
    • 定数
    • 変数(ローカルまたはインタープロセス)あるいはオブジェクト属性
    • テーブル
    • プロトタイプ (例: クラス関数)

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

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

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

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

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

    対応するオプションのチェックを外すことで、要素ごとにこの機能を無効にできます。 | +| 提案の決定 | コードエディターで、自動補完ウィンドウに表示されたカレントの提案を受け入れるための、入力コンテキストを設定します。
    • **タブと区切り文字**
      このオプションが選択されていると、タブキーまたは現在のコンテキストに関連する区切り文字で、現在選択されている提案を決定することができます。たとえば "ALE" と入力して "(" を入力すると、4Dは自動で "ALERT(" とエディターに書き込みます。区切り文字は以下の通りです:
      ( ; : = < [ {
    • **タブのみ**
      このオプションが選択されていると、現在の提案はタブキーを押したときにのみ受け入れられます。これは特に ${1} のように、要素名に区切り文字を入力することを容易にします。**注記**: ウィンドウ内をダブルクリックするか、改行キーを押すことで提案を受け入れることもできます。
    | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/overview.md index 6b3244bb196008..aa2160093e6bad 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/overview.md @@ -3,11 +3,11 @@ id: overview title: 環境設定 --- -環境設定は、作業環境に影響する様々なオプションを指定します (例: デフォルトオプション、表示テーマ、コードエディター機能、ショートカット)。 これらの設定は、4D や 4D Server アプリケーションで開くすべてのプロジェクトに適用されます。 +環境設定は、作業環境に影響する様々なオプションを指定します (例: デフォルトオプション、表示テーマ、コードエディター機能、ショートカット)。これらの設定は、4D や 4D Server アプリケーションで開くすべてのプロジェクトに適用されます。 -**4D Server**: 複数のユーザーが同時に環境設定を更新しようとすると、オブジェクトのロックが発生します。 一度に一人のユーザーのみが環境設定ダイアログボックスを使用できます。 +**4D Server**: 複数のユーザーが同時に環境設定を更新しようとすると、オブジェクトのロックが発生します。一度に一人のユーザーのみが環境設定ダイアログボックスを使用できます。 -> 4D は開かれているプロジェクト固有の設定をおこなうための **ストラクチャー設定** ダイアログも提供しています (**デザイン** メニューから利用可能です)。 詳細はデータベース設定の章を参照ください。 +> 4D は開かれているプロジェクト固有の設定をおこなうための **ストラクチャー設定** ダイアログも提供しています (**デザイン** メニューから利用可能です)。詳細はデータベース設定の章を参照ください。 ## アクセス @@ -34,12 +34,12 @@ title: 環境設定 環境設定においては、ダイアログボックスで直接変更されたか、変換されたデータベースの場合以前のバージョンで変更された設定が、カスタマイズ箇所として扱われます。 -パラメーターは手作業でデフォルト値に置き換えられたときにも太字で表示されます。 このように、カスタマイズされたパラメーターはすべて目視で識別することができます。 +パラメーターは手作業でデフォルト値に置き換えられたときにも太字で表示されます。このように、カスタマイズされたパラメーターはすべて目視で識別することができます。 パラメーターをデフォルト値に戻し、カスタマイズされたことを示す太字スタイルを取り除くためには、**初期設定にリセット** ボタンをクリックします: ![](../assets/en/Preferences/overviewSettings.png) -このボタンをクリックすると、現在表示されているページの全パラメーターがリセットされます。 現在のページで最低でも一つのパラメーターが変更されると、このボタンはアクティブになります。 +このボタンをクリックすると、現在表示されているページの全パラメーターがリセットされます。現在のページで最低でも一つのパラメーターが変更されると、このボタンはアクティブになります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/shortcuts.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/shortcuts.md index 7b896a60b28838..f56c107421dab8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/shortcuts.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/shortcuts.md @@ -7,8 +7,8 @@ title: ショートカットページ ![](../assets/en/Preferences/shortcuts.png) -ショートカットを変更するには、設定する項目のモディファイアキー (Shift および Alt) および文字をリスト中で変更します。 またダブルクリックすると専用のダイアログボックスでショートカットの編集をおこなうことができます: +ショートカットを変更するには、設定する項目のモディファイアキー (Shift および Alt) および文字をリスト中で変更します。またダブルクリックすると専用のダイアログボックスでショートカットの編集をおこなうことができます: それぞれのショートカットには暗黙に **Ctrl** (Windows) または **Command** (macOS) キーが含まれることに留意してください。 -このリストを編集すると、カスタムのショートカット設定は [ユーザー Preferences ファイル](overview.md#ストレージ) と同じ階層にある *4D Shortcuts vXX.xml* ファイルに保存されます。 そのため、4Dがアップデートされても、ショートカット環境設定は残されます。 \ No newline at end of file +このリストを編集すると、カスタムのショートカット設定は [ユーザー Preferences ファイル](overview.md#ストレージ) と同じ階層にある *4D Shortcuts vXX.xml* ファイルに保存されます。そのため、4Dがアップデートされても、ショートカット環境設定は残されます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/structure.md b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/structure.md index 4b74e1f227c118..dd52a87f59d225 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/structure.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Preferences/structure.md @@ -10,7 +10,7 @@ title: ストラクチャーページ 次のオプションから選択することができます: - **Name** (デフォルトでは "ID"): プライマリーキーのフィールドのデフォルト名を設定します。 [4D の命名規則](Concepts/identifiers.md#テーブルとフィールド) に従う範囲内であればどんな名前も使用できます。 -- **デフォルトタイプ** (デフォルトでは [倍長整数](Concepts/dt_number.md)): プライマリーキーフィールドのデフォルトの型を設定します。 UUID を選択することもできます。 この場合、デフォルトで作成されたプライマリーキーフィールドは [文字型](Concepts/dt_string.md) となり、**UUIDフォーマット** と **自動UUID** プロパティにチェックが入っています。 +- **デフォルトタイプ** (デフォルトでは [倍長整数](Concepts/dt_number.md)): プライマリーキーフィールドのデフォルトの型を設定します。 UUID を選択することもできます。この場合、デフォルトで作成されたプライマリーキーフィールドは [文字型](Concepts/dt_string.md) となり、**UUIDフォーマット** と **自動UUID** プロパティにチェックが入っています。 ## ストラクチャーエディター @@ -18,9 +18,9 @@ title: ストラクチャーページ ### ストラクチャーの描画クォリティ -このオプションで、ストラクチャーエディターの描画レベルを変更できます。 デフォルトで品質は **高** に設定されています。 標準品質を選択して、表示速度を優先させることができます。 この設定の効果は主にズーム機能を使用する際に実感することができます ([ストラクチャーエディター](https://doc.4d.com/4Dv20/4D/20.2/Structure-editor.300-6750284.ja.html#105667) のズーム参照)。 +このオプションで、ストラクチャーエディターの描画レベルを変更できます。デフォルトで品質は **高** に設定されています。標準品質を選択して、表示速度を優先させることができます。この設定の効果は主にズーム機能を使用する際に実感することができます ([ストラクチャーエディター](https://doc.4d.com/4Dv20/4D/20.2/Structure-editor.300-6750284.ja.html#105667) のズーム参照)。 ### フォルダーが表示対象外のとき -このオプションは、ストラクチャーエディターでフォルダーによって選択する際の、テーブルが表示対象外のときのアピアランスを設定できます ([フォルダーごとにテーブルをハイライト/薄暗くする](https://doc.4d.com/4Dv20/4D/20.2/Structure-editor.300-6750284.ja.html#4592928) 参照)。 薄暗く表示 (テーブルイメージの代わりに影が表示される) または非表示 (テーブルは完全に見えなくなる) が選択できます。 +このオプションは、ストラクチャーエディターでフォルダーによって選択する際の、テーブルが表示対象外のときのアピアランスを設定できます ([フォルダーごとにテーブルをハイライト/薄暗くする](https://doc.4d.com/4Dv20/4D/20.2/Structure-editor.300-6750284.ja.html#4592928) 参照)。薄暗く表示 (テーブルイメージの代わりに影が表示される) または非表示 (テーブルは完全に見えなくなる) が選択できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md index 1504557f23f91f..7ac1e30a30cffe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -3,7 +3,7 @@ id: architecture title: アーキテクチャー --- -4D プロジェクトは、一つのプロジェクトルートフォルダー (パッケージフォルダー) に格納された、複数のファイルやフォルダーから構成されています。 例: +4D プロジェクトは、一つのプロジェクトルートフォルダー (パッケージフォルダー) に格納された、複数のファイルやフォルダーから構成されています。例: - MyPackage (*プロジェクトルートフォルダー*) - `Components` @@ -40,7 +40,7 @@ title: アーキテクチャー ### `.4DProject` ファイル -プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。 このファイルを開くには次のいずれかが必要です: +プロジェクトを定義し、起動するためのプロジェクト開発ファイルです。このファイルを開くには次のいずれかが必要です: - 4D - 4D Server (読み取り専用;[リモートプロジェクトを開く](Desktop/clientServer.md#リモートプロジェクトを開く) 参照) @@ -51,24 +51,24 @@ title: アーキテクチャー ### `Sources` -| 内容 | 説明 | 形式 | -| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | -| catalog.4DCatalog | テーブルおよびフィールド定義 | XML | -| catalog_editor.json | ストラクチャーエディターでのテーブル、フィールド、およびリンクのカスタム位置と色。 変換されたプロジェクトでは [互換性設定](../settings/compatibility.md) に依存します。 | JSON | -| folders.json | エクスプローラーフォルダー定義 | JSON | -| menus.json | メニュー定義 | JSON | -| roles.json | プロジェクトの [権限、パーミッション](../ORDA/privileges.md#rolesjson-ファイル)およびその他のセキュリティ設定 | JSON | -| settings.4DSettings | *ストラクチャー*データベース設定。 *[ユーザー設定](#settings-ユーザー)* または *[データファイル用のユーザー設定](#settings-ユーザーデータ)* が定義されている場合は、そちらの設定が優先されます ([設定の優先順位](../settings/overview.md#設定の優先順位) も参照ください)。 **警告**: コンパイル済みアプリケーションの場合、ストラクチャー設定は読み取り専用の .4dz ファイルに格納されます。 運用時にカスタム設定を定義するには、[ユーザー設定を有効化](../settings/overview.md#ユーザー設定の有効化) し、*ユーザー設定* または *データファイル用のユーザー設定* を使う必要があります。 | XML | -| AIProviders.json | *ストラクチャー* [AI プロバイダー設定ファイル](../settings/ai.md#aiprovidersjson)。 *[ユーザー設定](#settings-user)* または *[データファイル用のユーザー設定](#settings-user-data)* に追加された AIProviders.json ファイルによって上書き可能です([設定の優先順位](../settings/overview.md#設定の優先順位)も参照してください)。 | JSON | -| tips.json | 定義されたヘルプTips | JSON | -| lists.json | 定義されたリスト | JSON | -| filters.json | 定義されたフィルター | JSON | -| dependencies.json | プロジェクトに [ロードするコンポーネント](components.md) の名前 | JSON | -| HTTPHandlers.json | Web サーバー用に定義されたカスタムの [HTTP リクエストハンドラー](../WebServer/http-request-handler.md)。 | JSON | -| HTTPRules.json | Web サーバー用に定義されたカスタムの [HTTP ルール](../WebServer/http-rules.md) | JSON | -| styleSheets.css | CSS スタイルシート | CSS | -| styleSheets_mac.css | Mac用 CSS スタイルシート (変換されたバイナリーデータベースより) | CSS | -| styleSheets_windows.css | Windows用 CSS スタイルシート (変換されたバイナリーデータベースより) | CSS | +| 内容 | 説明 | 形式 | +| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | +| catalog.4DCatalog | テーブルおよびフィールド定義 | XML | +| catalog_editor.json | ストラクチャーエディターでのテーブル、フィールド、およびリンクのカスタム位置と色。変換されたプロジェクトでは [互換性設定](../settings/compatibility.md) に依存します。 | JSON | +| folders.json | エクスプローラーフォルダー定義 | JSON | +| menus.json | メニュー定義 | JSON | +| roles.json | プロジェクトの [権限、パーミッション](../ORDA/privileges.md#rolesjson-ファイル)およびその他のセキュリティ設定 | JSON | +| settings.4DSettings | *ストラクチャー*データベース設定。*[ユーザー設定](#settings-ユーザー)* または *[データファイル用のユーザー設定](#settings-ユーザーデータ)* が定義されている場合は、そちらの設定が優先されます ([設定の優先順位](../settings/overview.md#設定の優先順位) も参照ください)。**警告**: コンパイル済みアプリケーションの場合、ストラクチャー設定は読み取り専用の .4dz ファイルに格納されます。運用時にカスタム設定を定義するには、[ユーザー設定を有効化](../settings/overview.md#ユーザー設定の有効化) し、*ユーザー設定* または *データファイル用のユーザー設定* を使う必要があります。 | XML | +| AIProviders.json | *ストラクチャー* [AI プロバイダー設定ファイル](../settings/ai.md#aiprovidersjson)。*[ユーザー設定](#settings-user)* または *[データファイル用のユーザー設定](#settings-user-data)* に追加された AIProviders.json ファイルによって上書き可能です([設定の優先順位](../settings/overview.md#設定の優先順位)も参照してください)。 | JSON | +| tips.json | 定義されたヘルプTips | JSON | +| lists.json | 定義されたリスト | JSON | +| filters.json | 定義されたフィルター | JSON | +| dependencies.json | プロジェクトに [ロードするコンポーネント](components.md) の名前 | JSON | +| HTTPHandlers.json | Web サーバー用に定義されたカスタムの [HTTP リクエストハンドラー](../WebServer/http-request-handler.md)。 | JSON | +| HTTPRules.json | Web サーバー用に定義されたカスタムの [HTTP ルール](../WebServer/http-rules.md) | JSON | +| styleSheets.css | CSS スタイルシート | CSS | +| styleSheets_mac.css | Mac用 CSS スタイルシート (変換されたバイナリーデータベースより) | CSS | +| styleSheets_windows.css | Windows用 CSS スタイルシート (変換されたバイナリーデータベースより) | CSS | #### `Classes` @@ -125,7 +125,7 @@ title: アーキテクチャー | table_*n*.4dm | プロジェクト内で定義されているトリガーメソッド ( 1つのテーブルにつき1ファイル;n: テーブル番号) | text | **注:** -拡張子 .4dm のファイルは、4Dメソッドのコードをテキスト形式で格納しており、 ソース管理ツールに対応しています。 +拡張子 .4dm のファイルは、4Dメソッドのコードをテキスト形式で格納しており、ソース管理ツールに対応しています。 #### `WebForms` @@ -136,17 +136,17 @@ title: アーキテクチャー ### `Trash` -プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: +プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。たとえば、つぎのフォルダーが格納されている場合があります: - `Methods` - `Forms` - `TableForms` -削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。 フォルダーの構成は [Sources](#sources) フォルダーと同じです。 +削除された要素はファイル名に括弧が付いた形でフォルダー内に置かれます (例: "(myMethod).4dm")。フォルダーの構成は [Sources](#sources) フォルダーと同じです。 ### `DerivedData` -DerivedData フォルダーには、処理を最適化するため 4D が内部的に使用するキャッシュデーターが格納されます。 これらは必要に応じて自動的に生成・再生成されます。 このフォルダーは無視してかまいません。 +DerivedData フォルダーには、処理を最適化するため 4D が内部的に使用するキャッシュデーターが格納されます。これらは必要に応じて自動的に生成・再生成されます。このフォルダーは無視してかまいません。 ## `Libraries` @@ -156,12 +156,12 @@ Libraries フォルダーには、macOS 上で [Apple Silicon用にコンパイ ## `Resources` -Resources フォルダーには、追加のカスタムプロジェクトリソースファイルやフォルダーが格納されます。 アプリケーションインターフェースの翻訳やカスタマイズに必要なファイルはすべてここに格納します (ピクチャー、テキスト、XLIFF ファイルなど)。 4D は自動のメカニズムによってフォルダー内のファイル (とくに XLIFF ファイルおよびスタティックピクチャー) を扱います。 リモートモードにおいては、サーバーとすべてのクライアントマシン間でファイルを共有することが Resources フォルダーによって可能です。 (*4D Server リファレンスマニュアル* の [リソースフォルダーの管理](https://doc.4d.com/4Dv18/4D/18/Managing-the-Resources-folder.300-4672420.ja.html) を参照ください)。 +Resources フォルダーには、追加のカスタムプロジェクトリソースファイルやフォルダーが格納されます。アプリケーションインターフェースの翻訳やカスタマイズに必要なファイルはすべてここに格納します (ピクチャー、テキスト、XLIFF ファイルなど)。 4D は自動のメカニズムによってフォルダー内のファイル (とくに XLIFF ファイルおよびスタティックピクチャー) を扱います。リモートモードにおいては、サーバーとすべてのクライアントマシン間でファイルを共有することが Resources フォルダーによって可能です。 (*4D Server リファレンスマニュアル* の [リソースフォルダーの管理](https://doc.4d.com/4Dv18/4D/18/Managing-the-Resources-folder.300-4672420.ja.html) を参照ください)。 -| 内容 | 説明 | 形式 | -| --------------------- | --------------------------------------------------------------------------------------------- | ------- | -| *項目* | プロジェクトリソースファイルとフォルダー | 様々 | -| Images/Library/*item* | ピクチャーライブラリの個別ピクチャーファイル(\*)。 各アイテムの名称がファイル名となります。 名称が重複する場合には、名称に番号が追加されます。 | picture | +| 内容 | 説明 | 形式 | +| --------------------- | ------------------------------------------------------------------------------------------- | ------- | +| *項目* | プロジェクトリソースファイルとフォルダー | 様々 | +| Images/Library/*item* | ピクチャーライブラリの個別ピクチャーファイル(\*)。各アイテムの名称がファイル名となります。名称が重複する場合には、名称に番号が追加されます。 | picture | (\*) .4db バイナリーデータベースから変換されたプロジェクトの場合のみ @@ -169,30 +169,30 @@ Resources フォルダーには、追加のカスタムプロジェクトリソ Data フォルダーには、データファイルのほか、データに関わるするファイルやフォルダーがすべて格納されています。 -| 内容 | 説明 | 形式 | -| ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -| data.4dd(\*) | レコードとして入力されたデータと、レコードに属するデータが格納されたデータファイルです。 4D プロジェクトを開くと、アプリケーションはカレントデータファイルをデフォルトで開きます。 このファイルの場所や名称を変更した場合は、*データファイルを開く* ダイアログボックスが表示され、使用するデータファイルを選択するか、新しいデータファイルを作成できます。 | binary | -| data.journal | データベースがログファイルを使用する場合のみ作成されます。 ログファイルは2つのバックアップ間のデータ保護を確実なものにするために使用されます。 データに対して実行されたすべての処理が、このファイルに順番に記録されます。 つまりデータに対して操作がおこなわれるたびに、データ上の処理 (操作の実行) とログファイル上の処理 (操作の記録) という 2つの処理が同時に発生します。 ログファイルはユーザーの処理を妨げたり遅くしたりすることなく、独立して構築されます。 データベースは 1つのログファイルしか同時に使用できません。 ログファイルにはレコードの追加・更新・削除やトランザクションなどの処理が記録されます。 ログファイルはデータベースが作成される際にデフォルトで生成されます。 | binary | -| data.match | (内部用) テーブル番号に対応する UUID | XML | +| 内容 | 説明 | 形式 | +| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | +| data.4dd(\*) | レコードとして入力されたデータと、レコードに属するデータが格納されたデータファイルです。 4D プロジェクトを開くと、アプリケーションはカレントデータファイルをデフォルトで開きます。このファイルの場所や名称を変更した場合は、*データファイルを開く* ダイアログボックスが表示され、使用するデータファイルを選択するか、新しいデータファイルを作成できます。 | binary | +| data.journal | データベースがログファイルを使用する場合のみ作成されます。ログファイルは2つのバックアップ間のデータ保護を確実なものにするために使用されます。データに対して実行されたすべての処理が、このファイルに順番に記録されます。つまりデータに対して操作がおこなわれるたびに、データ上の処理 (操作の実行) とログファイル上の処理 (操作の記録) という 2つの処理が同時に発生します。ログファイルはユーザーの処理を妨げたり遅くしたりすることなく、独立して構築されます。データベースは 1つのログファイルしか同時に使用できません。ログファイルにはレコードの追加・更新・削除やトランザクションなどの処理が記録されます。ログファイルはデータベースが作成される際にデフォルトで生成されます。 | binary | +| data.match | (内部用) テーブル番号に対応する UUID | XML | -(\*) .4db バイナリーデータベースからプロジェクトに変換した場合、データファイルは変換による影響を受けません。 このデータファイルの名称を変更して移動させることができます。 +(\*) .4db バイナリーデータベースからプロジェクトに変換した場合、データファイルは変換による影響を受けません。このデータファイルの名称を変更して移動させることができます。 ### `Settings` (ユーザーデータ) このフォルダーには、アプリケーションの管理に使用される [**データのユーザー設定**](../settings/overview.md#データファイル用のユーザー設定) が格納されます。 -> この設定は [ユーザー設定](#settings-ユーザー) や [ストラクチャー設定](#sources) より優先されます。 [設定の優先順位](../settings/overview.md#設定の優先順位) も参照ください。 +> この設定は [ユーザー設定](#settings-ユーザー) や [ストラクチャー設定](#sources) より優先されます。[設定の優先順位](../settings/overview.md#設定の優先順位) も参照ください。 -| 内容 | 説明 | 形式 | -| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | -| directory.json | このデータファイルを使ってアプリケーションが実行されている場合に使用する 4D グループとユーザー、およびアクセス権の定義 | JSON | -| Backup.4DSettings | このデータファイルを使ってデータベースが実行されている場合に使用する [バックアップオプション](Backup/settings.md) を定義したデータベースバックアップ設定です。 バックアップ設定に使われるキーについての説明は [バックアップ設定ファイル](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-Backup.100-4673706.ja.html) マニュアルを参照ください。 | XML | -| settings.4DSettings | データファイル用のカスタムデータベース設定。 | XML | -| AIProviders.json | このデータファイル用の[AI プロバイダー設定ファイル](../settings/ai.md#aiprovidersjson) | JSON | +| 内容 | 説明 | 形式 | +| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | +| directory.json | このデータファイルを使ってアプリケーションが実行されている場合に使用する 4D グループとユーザー、およびアクセス権の定義 | JSON | +| Backup.4DSettings | このデータファイルを使ってデータベースが実行されている場合に使用する [バックアップオプション](Backup/settings.md) を定義したデータベースバックアップ設定です。バックアップ設定に使われるキーについての説明は [バックアップ設定ファイル](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-Backup.100-4673706.ja.html) マニュアルを参照ください。 | XML | +| settings.4DSettings | データファイル用のカスタムデータベース設定。 | XML | +| AIProviders.json | このデータファイル用の[AI プロバイダー設定ファイル](../settings/ai.md#aiprovidersjson) | JSON | ### `Logs` -Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。 以下のログファイルが格納されます: +Logs フォルダーには、プロジェクトが使用するすべてのログファイルが格納されます。以下のログファイルが格納されます: - データベース変換 - Webサーバーリクエスト @@ -206,20 +206,20 @@ Logs フォルダーには、プロジェクトが使用するすべてのログ このフォルダーには、アプリケーションの管理に使用される [**ユーザー設定**](../settings/overview.md#ユーザー設定) が格納されます。 -> この設定は [ストラクチャー設定](#sources) より優先されます。 しかしながら、[データファイル用のユーザー設定](#settings-ユーザーデータ) が存在する場合は、そちらが優先されます。 [設定の優先順位](../settings/overview.md#設定の優先順位) も参照ください。 +> この設定は [ストラクチャー設定](#sources) より優先されます。しかしながら、[データファイル用のユーザー設定](#settings-ユーザーデータ) が存在する場合は、そちらが優先されます。[設定の優先順位](../settings/overview.md#設定の優先順位) も参照ください。 -| 内容 | 説明 | 形式 | -| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | -| directory.json | 4D グループとユーザー、およびアクセス権の定義 | JSON | -| Backup.4DSettings | バックアップ開始時に [バックアップオプション](Backup/settings.md) を指定するためのデータベースバックアップ設定です。 このファイルは、*バックアップジャーナル* に保存する情報量などの追加オプションの確認や設定にも使用することができます。 バックアップ設定に使われるキーについての説明は [バックアップ設定ファイル](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-Backup.100-4673706.ja.html) マニュアルを参照ください。 | XML | -| BuildApp.4DSettings | アプリケーションビルダーのダイアログボックス、または `BUILD APPLICATION` コマンドを使ったときに自動的に作成されるビルド設定ファイル | XML | -| settings.4DSettings | プロジェクト用のカスタム設定 (すべてのデータファイル) | XML | -| logConfig.json | カスタムの [ログ設定ファイル](../Debugging/debugLogFiles.md#ログ設定ファイルを使用する) | json | -| AIProviders.json | このプロジェクト用の[AI プロバイダー設定ファイル](../settings/ai.md#aiprovidersjson)(全データファイル) | JSON | +| 内容 | 説明 | 形式 | +| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | +| directory.json | 4D グループとユーザー、およびアクセス権の定義 | JSON | +| Backup.4DSettings | バックアップ開始時に [バックアップオプション](Backup/settings.md) を指定するためのデータベースバックアップ設定です。このファイルは、*バックアップジャーナル* に保存する情報量などの追加オプションの確認や設定にも使用することができます。バックアップ設定に使われるキーについての説明は [バックアップ設定ファイル](https://doc.4d.com/4Dv18/4D/18/4D-XML-Keys-Backup.100-4673706.ja.html) マニュアルを参照ください。 | XML | +| BuildApp.4DSettings | アプリケーションビルダーのダイアログボックス、または `BUILD APPLICATION` コマンドを使ったときに自動的に作成されるビルド設定ファイル | XML | +| settings.4DSettings | プロジェクト用のカスタム設定 (すべてのデータファイル) | XML | +| logConfig.json | カスタムの [ログ設定ファイル](../Debugging/debugLogFiles.md#ログ設定ファイルを使用する) | json | +| AIProviders.json | このプロジェクト用の[AI プロバイダー設定ファイル](../settings/ai.md#aiprovidersjson)(全データファイル) | JSON | ## `userPreferences.` -ブレークポイントやウィンドウの位置など、ユーザーの環境設定を定義するファイルを格納するフォルダーです。 このフォルダーは無視してかまいません。 格納されるファイルの例です: +ブレークポイントやウィンドウの位置など、ユーザーの環境設定を定義するファイルを格納するフォルダーです。このフォルダーは無視してかまいません。格納されるファイルの例です: | 内容 | 説明 | 形式 | | ------------------------------------------ | ----------------------------------- | ------ | @@ -234,7 +234,7 @@ Logs フォルダーには、プロジェクトが使用するすべてのログ ## `Components` -プロジェクトに埋め込まれたコンポーネントを格納するフォルダー (Projectフォルダーと同じ階層に保存する必要があります)。 これらのコンポーネントは、他のどの場所よりも優先されます。 +プロジェクトに埋め込まれたコンポーネントを格納するフォルダー (Projectフォルダーと同じ階層に保存する必要があります)。これらのコンポーネントは、他のどの場所よりも優先されます。 :::info @@ -244,11 +244,11 @@ Logs フォルダーには、プロジェクトが使用するすべてのログ ## `Plugins` -アプリケーションプロジェクトが利用するプラグインを格納するフォルダーです。 このフォルダーは、Project フォルダーと同じ階層に置きます。 +アプリケーションプロジェクトが利用するプラグインを格納するフォルダーです。このフォルダーは、Project フォルダーと同じ階層に置きます。 ## `Documentation` -このフォルダーには、クラス・メソッド・フォームなどのプロジェクト要素について作成されたドキュメンテーションファイル (.md) がすべて格納されます。 ドキュメンテーションファイルは、4D エクスプローラーにて表示・管理されます。 +このフォルダーには、クラス・メソッド・フォームなどのプロジェクト要素について作成されたドキュメンテーションファイル (.md) がすべて格納されます。ドキュメンテーションファイルは、4D エクスプローラーにて表示・管理されます。 詳細については [プロジェクトのドキュメンテーション](Project/documentation.md) を参照ください。 @@ -258,5 +258,5 @@ Logs フォルダーには、プロジェクトが使用するすべてのログ ## `.gitignore` ファイル (任意) -git が無視するファイルを指定します。 プロジェクトに gitignore ファイルを含めるには、環境設定 > **一般** ページの **.gitignore ファイルを作成する** オプションを使用します。 このファイルの内容を設定するには、[.gitignore ファイルを作成する](Preferences/general.md#gitignore-ファイルを作成する) を参照ください。 +git が無視するファイルを指定します。プロジェクトに gitignore ファイルを含めるには、環境設定 > **一般** ページの **.gitignore ファイルを作成する** オプションを使用します。このファイルの内容を設定するには、[.gitignore ファイルを作成する](Preferences/general.md#gitignore-ファイルを作成する) を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/code-overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/code-overview.md index 599ef558815b65..35e6af34a1687d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/code-overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/code-overview.md @@ -5,7 +5,7 @@ title: メソッドとクラスの管理 プロジェクトで使用される 4D コードは、 [メソッド](../Concepts/methods.md) および [クラス](../Concepts/classes.md) に記述されます。 -4D IDE には、コードを作成・編集・エクスポート・削除するためのさまざまな機能があります。 通常は、4D付属 の [コードエディター](../code-editor/write-class-method.md) を使用して、コードを管理します。 他にも**VS Code** などのエディターを使用することもでき、VS Code に対しては[4D-Analyzer 拡張機能](https://github.com/4d/4D-Analyzer-VSCode) がご利用いただけます。 +4D IDE には、コードを作成・編集・エクスポート・削除するためのさまざまな機能があります。通常は、4D付属 の [コードエディター](../code-editor/write-class-method.md) を使用して、コードを管理します。他にも**VS Code** などのエディターを使用することもでき、VS Code に対しては[4D-Analyzer 拡張機能](https://github.com/4d/4D-Analyzer-VSCode) がご利用いただけます。 ## メソッドの作成 @@ -22,7 +22,7 @@ title: メソッドとクラスの管理 ### ユーザークラス -4D においてユーザークラスとは、[`/Project/Sources/Classes/`](../Project/architecture.md#sources) フォルダーに保存された専用のメソッドファイル (**.4dm**) によって定義されます。 ファイル名がクラス名になります。 例えば、"Polygon" という名前のクラスは、以下のようなファイル内に保存されます: +4D においてユーザークラスとは、[`/Project/Sources/Classes/`](../Project/architecture.md#sources) フォルダーに保存された専用のメソッドファイル (**.4dm**) によって定義されます。ファイル名がクラス名になります。例えば、"Polygon" という名前のクラスは、以下のようなファイル内に保存されます: ``` Project フォルダー @@ -53,19 +53,19 @@ Project フォルダー [ORDA データモデルユーザークラス](../ORDA/ordaClasses.md) は、データモデル上に作成される高レベルのクラス関数です。 -ORDA データモデルユーザークラスは、クラスと同じ名称の .4dm ファイルを通常のクラスファイルと同じ場所 (*つまり*、Project フォルダー内の `/Sources/Classes` フォルダー) に追加することで定義されます。 たとえば、`Utilities` データクラスのエンティティクラスは、`UtilitiesEntity.4dm` ファイルによって定義されます。 +ORDA データモデルユーザークラスは、クラスと同じ名称の .4dm ファイルを通常のクラスファイルと同じ場所 (*つまり*、Project フォルダー内の `/Sources/Classes` フォルダー) に追加することで定義されます。たとえば、`Utilities` データクラスのエンティティクラスは、`UtilitiesEntity.4dm` ファイルによって定義されます。 各データモデルオブジェクトに関わるクラスは、4D によってあらかじめ自動的にメモリ内に作成されます。 ![](../assets/en/ORDA/ORDA_Classes-3.png) -空の ORDA クラスは、デフォルトではエクスプローラーに表示されません。 表示するにはエクスプローラーのオプションメニューより **データクラスを全て表示** を選択します: ![](../assets/en/ORDA/showClass.png) +空の ORDA クラスは、デフォルトではエクスプローラーに表示されません。表示するにはエクスプローラーのオプションメニューより **データクラスを全て表示** を選択します: ![](../assets/en/ORDA/showClass.png) -ORDA ユーザークラスは通常のクラスとは異なるアイコンで表されます。 空のクラスは薄く表示されます: +ORDA ユーザークラスは通常のクラスとは異なるアイコンで表されます。空のクラスは薄く表示されます: ![](../assets/en/ORDA/classORDA2.png) -ORDA クラスファイルを作成するには、エクスプローラーで任意のクラスをダブルクリックします。 4D はクラスファイルを作成し、[`extends`](../Concepts/classes.md#class-extends-classname) コードを追加します。 たとえば、Entity クラスを継承するクラスの場合は: +ORDA クラスファイルを作成するには、エクスプローラーで任意のクラスをダブルクリックします。 4D はクラスファイルを作成し、[`extends`](../Concepts/classes.md#class-extends-classname) コードを追加します。たとえば、Entity クラスを継承するクラスの場合は: ``` Class extends Entity @@ -107,19 +107,19 @@ Class extends Entity ## デザインオブジェクトアクセスコマンド -[**"デザインオブジェクトアクセス" コマンドテーマ**](../commands/theme/Design_Object_Access.md) を使用することで、アプリケーション内のすべてのメソッドのコンテンツとそのパスにプログラミングでアクセスすることができます。 このソースツールキットを使用することでコード管理ツール、具体的にはバージョン管理システム(VCS)を統合することが容易になります。 またこれを使用することで[コードドキュメンテーション](../Project/documentation.md) のための高度なシステムを実装することが可能になり、これによってカスタムのエクスプローラーや、ディスクファイルとして保存されたコードのスケジュールバックアップの構築ができるようになります。 +[**"デザインオブジェクトアクセス" コマンドテーマ**](../commands/theme/Design_Object_Access.md) を使用することで、アプリケーション内のすべてのメソッドのコンテンツとそのパスにプログラミングでアクセスすることができます。このソースツールキットを使用することでコード管理ツール、具体的にはバージョン管理システム(VCS)を統合することが容易になります。またこれを使用することで[コードドキュメンテーション](../Project/documentation.md) のための高度なシステムを実装することが可能になり、これによってカスタムのエクスプローラーや、ディスクファイルとして保存されたコードのスケジュールバックアップの構築ができるようになります。 以下のような原則が実装されています: -- 4D アプリケーション内のメソッドとフォームは、それぞれアドレスをパス名という形で持っています。 例えば、table_1 のトリガーメソッドは "[trigger]/table_1" にあります。 それぞれのオブジェクトパス名はアプリケーション内で固有です。 +- 4D アプリケーション内のメソッドとフォームは、それぞれアドレスをパス名という形で持っています。例えば、table_1 のトリガーメソッドは "[trigger]/table_1" にあります。それぞれのオブジェクトパス名はアプリケーション内で固有です。 - **デザインオブジェクトアクセス"** コマンドテーマのコマンド、例えば[`METHOD GET NAMES`](../commands/method-get-names) あるいは [`METHOD GET PATHS`](../commands/method-get-paths) などを使用することによって、4D アプリケーション内のオブジェクトにアクセスすることができます。 -- このテーマ内のほとんどのコマンドは、[インタープリターモードとコンパイルモード](../Concepts/interpreted.md) の両方で動作します。 ただし、プロパティを変更するコマンド、またはメソッドから実行可能なコンテンツにアクセスするコマンドはインタープリターモードでのみ使用可能です(以下の表参照)。 -- このテーマのコマンドはすべてローカルモードまたはリモートモードの4D で使用することができます。 しかしながら、コンパイルモードでは一部のコマンドを使用することはできないという点に注意してください: このテーマの目的はカスタム開発支援ツールを作成することです。 これらのコマンドを、実行中のデータベースの機能を動的に変更するために使用してはいけません。 例えば、カレントユーザーのステータスに応じてメソッドの属性を変更するために[`METHOD SET ATTRIBUTE`](../commands/method-set-attribute) を使用することはできません。 -- このテーマのコマンドが[コンポーネント](../Project/components.md) から呼び出された場合、デフォルトではそのコマンドはコンポーネントのオブジェクトにアクセスします。 このような場合、ホストのオブジェクトにアクセスするためには、最後の引数として `*` を渡します。 +- このテーマ内のほとんどのコマンドは、[インタープリターモードとコンパイルモード](../Concepts/interpreted.md) の両方で動作します。ただし、プロパティを変更するコマンド、またはメソッドから実行可能なコンテンツにアクセスするコマンドはインタープリターモードでのみ使用可能です(以下の表参照)。 +- このテーマのコマンドはすべてローカルモードまたはリモートモードの4D で使用することができます。しかしながら、コンパイルモードでは一部のコマンドを使用することはできないという点に注意してください: このテーマの目的はカスタム開発支援ツールを作成することです。これらのコマンドを、実行中のデータベースの機能を動的に変更するために使用してはいけません。例えば、カレントユーザーのステータスに応じてメソッドの属性を変更するために[`METHOD SET ATTRIBUTE`](../commands/method-set-attribute) を使用することはできません。 +- このテーマのコマンドが[コンポーネント](../Project/components.md) から呼び出された場合、デフォルトではそのコマンドはコンポーネントのオブジェクトにアクセスします。このような場合、ホストのオブジェクトにアクセスするためには、最後の引数として `*` を渡します。 ### コンパイルモードでの使用 -コンパイルプロセスの原則に関連した理由から、コンパイルモードにおいてはこのテーマ内の一部のコマンドのみ使用することができます。 以下の表は、コンパイルモードでのコマンドの利用可能状況を表したものです: +コンパイルプロセスの原則に関連した理由から、コンパイルモードにおいてはこのテーマ内の一部のコマンドのみ使用することができます。以下の表は、コンパイルモードでのコマンドの利用可能状況を表したものです: | コマンド | コンパイルモードで使用可能 | | ------------------------------------------------------------------------ | ------------- | 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 4a5f1bd7ffe9ed..3fd6a9058e065c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -3,13 +3,13 @@ id: compiler title: コンパイル --- -プロジェクトはコンパイルすることができます。 コンパイルとは、すべてのメソッドをマシン言語に翻訳することです。 プロジェクトをコンパイルすると、コードの整合性を調べたり、実行速度を向上させることができます。 4D でプロジェクト開発をおこない、それをスタンドアロンアプリケーションとして配布するまでの間の手順として、コンパイルは不可欠です。 +プロジェクトはコンパイルすることができます。 コンパイルとは、すべてのメソッドをマシン言語に翻訳することです。プロジェクトをコンパイルすると、コードの整合性を調べたり、実行速度を向上させることができます。 4D でプロジェクト開発をおこない、それをスタンドアロンアプリケーションとして配布するまでの間の手順として、コンパイルは不可欠です。 ## コンパイル コンパイル処理はすべて 4Dアプリケーションにより自動的でおこなわれます。 -> macOS上でコンパイルするには、`Xcode` をインストールする必要があります。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 +> macOS上でコンパイルするには、`Xcode` をインストールする必要があります。 このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。このことについての詳細は [Apple Silicon用コンパイラー](#apple-silicon用コンパイラー) を参照ください。 1. コンパイラーウィンドウを表示するには、**デザイン** メニューの **コンパイラー...** を選択するか、またはツールバーにある **コンパイラー** ボタンをクリックします。 @@ -27,19 +27,19 @@ title: コンパイル コンパイルが終了次第、[アプリケーションをコンパイル済みモードで実行](#コンパイル済み実行)し、実行速度がどれだけ向上したのか確認することができます。 -エラーが検出されると処理が中止され、"コンパイルに失敗しました" というメッセージが表示されます。 ウィンドウの情報エリアに、問題となるメソッド名と行番号が階層リスト形式で表示されます: +エラーが検出されると処理が中止され、"コンパイルに失敗しました" というメッセージが表示されます。ウィンドウの情報エリアに、問題となるメソッド名と行番号が階層リスト形式で表示されます: ![](../assets/en/Project/compilerWin2.png) -関係するメソッドを直接 4D のコードエディターで開くには、検出された各エラーをダブルクリックします。 エラーを含む行がハイライト表示され、エラーの種類がウィンドウのシンタックスエリアに表示されます。 +関係するメソッドを直接 4D のコードエディターで開くには、検出された各エラーをダブルクリックします。エラーを含む行がハイライト表示され、エラーの種類がウィンドウのシンタックスエリアに表示されます。 **メソッド** メニューから **前のエラー** / **次のエラー** を選択すると、エラーが含まれる各行を移動することができます。 -初めてのコンパイルで検出されるエラーの数に辟易するかもしれませんが、気にすることはありません。 ほどなく、これらのエラーが同じ原因によるものであることに気づくでしょう。たとえば、特定のプロジェクト規約に対する違反などです。 コンパイラーは、エラーの訂正に役立つよう [正確なエラー診断](#エラーファイル) を提供します。 +初めてのコンパイルで検出されるエラーの数に辟易するかもしれませんが、気にすることはありません。ほどなく、これらのエラーが同じ原因によるものであることに気づくでしょう。たとえば、特定のプロジェクト規約に対する違反などです。コンパイラーは、エラーの訂正に役立つよう [正確なエラー診断](#エラーファイル) を提供します。 :::note -Compilation requires an [appropriate license](../Admin/licenses.md). ライセンスがない場合、コンパイルを実行することはできません (ボタンが無効になります)。 その場合でも、シンタックスチェックと変数定義メソッドの生成はおこなうことができます。 +コンパイルには[適切なライセンス](../Admin/licenses.md) が必要となります。ライセンスがない場合、コンパイルを実行することはできません (ボタンが無効になります)。その場合でも、シンタックスチェックと変数定義メソッドの生成はおこなうことができます。 ::: @@ -53,57 +53,57 @@ Compilation requires an [appropriate license](../Admin/licenses.md). ライセ -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. +- コンポーネントは[プロジェクトアーキテクチャー](../Project/architecture.md) を使用している +- コンポーネントの[インタープリタコード](../Concepts/interpreted.md) が利用可能であり、コンポーネントが[コンパイルモードで実行中](#run-compiled) ではない +- コンポーネントが[直接型指定](#直接型指定の有効化) 宣言を使用している。 :::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). +コンポーネントが選択されている場合、[コンパイラー設定](../settings/) を編集することはできません(ボタンはグレーアウトされています)。 -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). +コンパイルに関してはそれぞれのコンポーネントの[コンパイラー設定](../settings/) が適用されますが、[エラーファイルとSymbol ファイルの生成オプション](#コンパイラー設定) は例外です: これに関してはホストプロジェクトの設定がコンポーネントのオプションを上書きします。これらのオプションが有効化されている場合、それぞれのコンポーネントの[error and warning file](#エラーファイルを生成) および[Symbol ファイル](#symbolファイルを生成) は[ホストプロジェクトの**Logs** フォルダ](../Project/architecture.md#logs) 内の専用のフォルダに保存されます(コンポーネント名がフォルダ名になります)。 -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) ## コンパイル済み実行 -プロジェクトがコンパイルされると、[インタープリターモードとコンパイル済みモード](Concepts/interpreted.md) を切り替えて実行できるようになります。この際、4Dアプリケーションを終了する必要はありません (インタープリターコードを削除している場合は除きます)。 切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。 [プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 +プロジェクトがコンパイルされると、[インタープリターモードとコンパイル済みモード](Concepts/interpreted.md) を切り替えて実行できるようになります。この際、4Dアプリケーションを終了する必要はありません (インタープリターコードを削除している場合は除きます)。切り替えには、**実行** メニューの **インタープリター再起動** や **コンパイル済み再起動** コマンドを使用します。[プロジェクトを開くダイアログボックス](GettingStarted/creating.md#オプション) でも、起動時にインタープリターモードとコンパイル済みモードから選択することができます。 -モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。 つまり、アプリケーションが閉じられ、再び開かれます。 モードを切り替えるたびに、4D は 2つのデータベースメソッド (定義されていれば) を次の順番に実行します: `On Exit` -> `On Startup`。 +モードを変更すると、4D は現在のモードを閉じ、新しいモードを開きます。つまり、アプリケーションが閉じられ、再び開かれます。モードを切り替えるたびに、4D は 2つのデータベースメソッド (定義されていれば) を次の順番に実行します: `On Exit` -> `On Startup`。 インタープリターモードでプロジェクトを編集したら、それをコンパイルコードに反映させるには再コンパイルしなければなりません。 @@ -113,21 +113,21 @@ When you start a compilation or a syntax check, every processed project is liste ### シンタックスチェック -**シンタックスチェック** ボタンは、シンタックスチェックフェーズの実行を開始します。 チェックが終了すると、検出されたエラーがすべて情報エリアに表示されます。 エラー行をダブルクリックすることで、対応するメソッドやフォームオブジェクトを表示させることができます。 +**シンタックスチェック** ボタンは、シンタックスチェックフェーズの実行を開始します。チェックが終了すると、検出されたエラーがすべて情報エリアに表示されます。エラー行をダブルクリックすることで、対応するメソッドやフォームオブジェクトを表示させることができます。 -シンタックスチェックは、ツールバーの **コンパイラー** ボタンに割り当てられた **シンタックスチェック** コマンドから実行することもできます。 アプリケーションをコンパイルするための適切なライセンスを持たない場合は、このオプションしか使用できません。 +シンタックスチェックは、ツールバーの **コンパイラー** ボタンに割り当てられた **シンタックスチェック** コマンドから実行することもできます。アプリケーションをコンパイルするための適切なライセンスを持たない場合は、このオプションしか使用できません。 ### 型宣言を生成する :::info 互換性 -このボタンは、変換されたプロジェクトで、[コンパイルパスオプション](#直接型指定の有効化) に **自動変数定義は行わない (直接型指定)** が選択されていない場合にのみ表示されます。 このボタンに関する情報については、[以前の 4Dリリースのドキュメント](../Project/compiler.md#型宣言を生成する) を参照ください。 +このボタンは、変換されたプロジェクトで、[コンパイルパスオプション](#直接型指定の有効化) に **自動変数定義は行わない (直接型指定)** が選択されていない場合にのみ表示されます。このボタンに関する情報については、[以前の 4Dリリースのドキュメント](../Project/compiler.md#型宣言を生成する) を参照ください。 ::: ### コンパイルコードを削除 -**コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。 ボタンをクリックすると、[コンパイル時に生成されたコード](#クラシックコンパイラー) がすべて削除されます。**実行** メニューの **コンパイル済み再起動** コマンドが無効になり、開始時の "開く: コンパイルモード済みデータベース" オプションはグレー表示されます。 +**コンパイルコードを削除** ボタンを使用すると、プロジェクトのコンパイル済みコードが削除されます。ボタンをクリックすると、[コンパイル時に生成されたコード](#クラシックコンパイラー) がすべて削除されます。**実行** メニューの **コンパイル済み再起動** コマンドが無効になり、開始時の "開く: コンパイルモード済みデータベース" オプションはグレー表示されます。 ### 警告を表示/隠す @@ -135,7 +135,7 @@ When you start a compilation or a syntax check, every processed project is liste ![](../assets/en/Project/compilerWin4.png) -このオプションを有効にすると、ウィンドウには他のエラータイプの後に警告 (あれば) が表示されます。 実際の表示は次のとおりです: +このオプションを有効にすると、ウィンドウには他のエラータイプの後に警告 (あれば) が表示されます。実際の表示は次のとおりです: ![](../assets/en/Project/compilerWin5.png) @@ -143,7 +143,7 @@ When you start a compilation or a syntax check, every processed project is liste ## コンパイラー設定 -ストラクチャー設定ダイアログボックスの "コンパイラー" タブでは、プロジェクトのコンパイルに関連するパラメーターを設定できます。 [コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 +ストラクチャー設定ダイアログボックスの "コンパイラー" タブでは、プロジェクトのコンパイルに関連するパラメーターを設定できます。[コンパイラーウィンドウ](#コンパイラーウィンドウ) の **コンパイラー設定** ボタンをクリックすると、コンパイラーページを直接開くことができます。 ![](../assets/en/Project/compilerWin6.png) @@ -157,7 +157,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy #### エラーファイルを生成 -シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。 エラーファイルは、プロジェクトの [Logs フォルダー](../Project/architecture.md#logs) 内に `ProjectName_error.xml` という名前で作成されます。 +シンタックスチェック時にエラーファイルを生成するのに使用します ([エラーファイル](#エラーファイル) 参照)。エラーファイルは、プロジェクトの [Logs フォルダー](../Project/architecture.md#logs) 内に `ProjectName_error.xml` という名前で作成されます。 #### コンパイル対象CPU @@ -174,14 +174,14 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy - **Intel/AMD** プロセッサー (すべてのマシン) - **Apple Silicon** プロセッサー -対象CPUの選択肢は 2つ提示されます。 結果は、4D を実行しているマシンのプロセッサーに依存します。 +対象CPUの選択肢は 2つ提示されます。結果は、4D を実行しているマシンのプロセッサーに依存します。 | *オプション* | *Windows Intel/AMD* | *macOS Intel* | *macOS Silicon* | | -------------------------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------- | -------------------------------------------------------- | | **全てのプロセッサー (Intel/AMD および Apple Silicon)** | Intel/AMD 用コードのみ
    *Windows上で Apple Silicon 用のコードは生成できません* | Apple Silicon + Intel/AMD 用コード
    *2種類のコンパイルコードが生成されます* | Apple Silicon + Intel/AMD 用コード
    *2種類のコンパイルコードが生成されます* | | **自分のプロセッサー (プロセッサー名)** | Intel/AMD 用コード | Intel/AMD 用コード | Apple Silicon 用コード | -> Apple Silicon 用にコンパイルするには、マシンに **Clang** アプリケーションをインストールする必要があります。 Clang は最新バージョンの Xcode に含まれています。 詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 +> Apple Silicon 用にコンパイルするには、マシンに **Clang** アプリケーションをインストールする必要があります。 Clang は最新バージョンの Xcode に含まれています。詳細については [Apple Silicon用コンパイルの要件](#要件) を参照ください。 ### 追加のオプション (互換性) @@ -191,7 +191,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy - **デフォルトの型指定** - **コンパイラーメソッド...** -これらのオプションは、従来のコードとの互換性のためにのみ維持されています。 詳細については、[以前の 4Dリリースのドキュメント](../Project/compiler.md#コンパイラー設定) を参照ください。 +これらのオプションは、従来のコードとの互換性のためにのみ維持されています。詳細については、[以前の 4Dリリースのドキュメント](../Project/compiler.md#コンパイラー設定) を参照ください。 変換されたプロジェクトでは、[直接型指定を有効化](#直接型指定の有効化) し、それに準拠した宣言コードを書くことが推奨されます: @@ -206,21 +206,21 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy ::: -直接型指定モードを有効化するには、**コンパイルパス** メニューで **自動変数定義は行わない (直接型指定)** オプションを選択します。 このオプションが選択されると、他の互換性オプションは使用できなくなり、表示されなくなります。 +直接型指定モードを有効化するには、**コンパイルパス** メニューで **自動変数定義は行わない (直接型指定)** オプションを選択します。このオプションが選択されると、他の互換性オプションは使用できなくなり、表示されなくなります。 -柔軟性と効率性を提供するため、このオプションを使用することが推奨されます。 直接型指定の概念は、すべての要素がコード内の定義されている場所で直接宣言されることを前提としています。 すべての変数が [`var` シンタックス](../Concepts/variables.md#変数の宣言) で宣言されていることと、メソッドや関数のパラメーターが [プロトタイプで](../Concepts/parameters.md) 宣言されていることを確認する必要があります (不足している、または無効な宣言を検出するのに [シンタックスチェック](#シンタックスチェック) 機能が役立ちます)。 +柔軟性と効率性を提供するため、このオプションを使用することが推奨されます。直接型指定の概念は、すべての要素がコード内の定義されている場所で直接宣言されることを前提としています。すべての変数が [`var` シンタックス](../Concepts/variables.md#変数の宣言) で宣言されていることと、メソッドや関数のパラメーターが [プロトタイプで](../Concepts/parameters.md) 宣言されていることを確認する必要があります (不足している、または無効な宣言を検出するのに [シンタックスチェック](#シンタックスチェック) 機能が役立ちます)。 ## 警告 -警告は、コンパイラーがシンタックスチェックをおこなう際に生成するとメッセージです。 これらのメッセージの目的は、実行時エラーを引き起こす可能性のあるステートメントに注意を向けることです。 警告によりコンパイルが中断されることはありません。 +警告は、コンパイラーがシンタックスチェックをおこなう際に生成するとメッセージです。これらのメッセージの目的は、実行時エラーを引き起こす可能性のあるステートメントに注意を向けることです。警告によりコンパイルが中断されることはありません。 -状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。 コンパイラーダイアログおよびコードエディター (4Dコードエディターまたは VS Code) にて、警告を有効/無効にすることができます。[警告タブ](#警告タブ) を使えばグローバルに、または [`//%W`](#ローカルに警告を無効化-有効化する) を使用することでローカルに設定できます。 +状況や使用されるプログラミングスタイルによって、警告の重要性は変化します。コンパイラーダイアログおよびコードエディター (4Dコードエディターまたは VS Code) にて、警告を有効/無効にすることができます。[警告タブ](#警告タブ) を使えばグローバルに、または [`//%W`](#ローカルに警告を無効化-有効化する) を使用することでローカルに設定できます。 ### 警告タブ ![](../assets/en/Project/warnings-tab.png) -このタブでは、どの警告をグローバルに表示するかを定義できます。 警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 +このタブでは、どの警告をグローバルに表示するかを定義できます。警告のリストはコード順で並べられ、ローカライズされたラベルを確認することができます。 リストを絞り込むには、**コードとラベルを検索** テキストボックスを使用して、警告ラベルやコードを検索します。 @@ -254,8 +254,7 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy //%W-<警告番号> ``` -無効化/有効化できるのは、番号の付いた警告に限られます。 警告番号は、コンパイルエラーリストの各メッセージの最後、または警告タブのリストに示されています。 -たとえば、次の警告を無効にしたいものとします: +無効化/有効化できるのは、番号の付いた警告に限られます。警告番号は、コンパイルエラーリストの各メッセージの最後、または警告タブのリストに示されています。たとえば、次の警告を無効にしたいものとします: *1: 変数 $a の再定義 (550.10)* @@ -281,25 +280,24 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy ### Symbolファイル -コンパイラー設定の [**Symbolファイルを生成**](#symbolファイルを生成) オプションを選択してコンパイルすると、プロジェクトの [Logs フォルダー](../Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名称の Symbolファイルが作成されます。 このドキュメントはいくつかの部分に分かれています: +コンパイラー設定の [**Symbolファイルを生成**](#symbolファイルを生成) オプションを選択してコンパイルすると、プロジェクトの [Logs フォルダー](../Project/architecture.md#logs) 内に `ProjectName_symbols.txt` という名称の Symbolファイルが作成されます。このドキュメントはいくつかの部分に分かれています: #### プロセスおよびインタープロセス変数のリスト これら 2つのリストは、4つのカラムに分かれています: -- プロジェクト内で使用されているプロセス変数、インタープロセス変数、および配列の名前。 変数は ABC順に表示されます。 -- 変数の型。 変数の型は、コンパイラー命令コマンドにより設定されるか、変数の使われ方に基づいてコンパイラーが判断します。 変数の型が特定できない場合、このカラムは空欄になります。 +- プロジェクト内で使用されているプロセス変数、インタープロセス変数、および配列の名前。変数は ABC順に表示されます。 +- 変数の型。変数の型は、コンパイラー命令コマンドにより設定されるか、変数の使われ方に基づいてコンパイラーが判断します。変数の型が特定できない場合、このカラムは空欄になります。 - 変数が配列の場合に、その次元数が表示されます。 -- コンパイラーが変数の型を決定したコンテキストへの参照。 変数が複数のコンテキストで使用されている場合は、コンパイラーが変数の型を決定する際に使用したコンテキストが表示されます。 +- コンパイラーが変数の型を決定したコンテキストへの参照。変数が複数のコンテキストで使用されている場合は、コンパイラーが変数の型を決定する際に使用したコンテキストが表示されます。 - 変数がデータベースメソッド内で検出された場合、(M)\* に続けて 4D で定義されたデータベースメソッド名が表示されます。 - 変数がプロジェクトメソッド内で検出された場合、(M) に続けて 4D で定義されたメソッド名が表示されます。 - 変数がトリガー (テーブルメソッド) 内で検出された場合、(TM) に続けてテーブル名が表示されます。 - 変数がフォームメソッド内で検出された場合、テーブル名と (FM) に続けてフォーム名が表示されます。 - 変数がオブジェクトメソッド内で検出された場合、フォーム名、テーブル名、(OM) に続けてオブジェクトメソッド名が表示されます。 - - 変数がフォーム上のオブジェクトであり、プロジェクトメソッド、フォームメソッド、オブジェクトメソッド、トリガーのいずれでも使用されていない場合は、(F) に続けてそのオブジェクトが使用されるフォーム名が表示されます。 - 各リストの最後には、プロセス変数とインタープロセス変数のサイズがバイト単位で表示されます。 + - 変数がフォーム上のオブジェクトであり、プロジェクトメソッド、フォームメソッド、オブジェクトメソッド、トリガーのいずれでも使用されていない場合は、(F) に続けてそのオブジェクトが使用されるフォーム名が表示されます。各リストの最後には、プロセス変数とインタープロセス変数のサイズがバイト単位で表示されます。 -> コンパイル時に、コンパイラーは特定のプロセス変数が使用されているプロセスを判別できません。 プロセス変数には、プロセスごとに異なる値が格納されている可能性があります。 そのため、新規プロセスが開始されるたびに、すべてのプロセス変数が意図的に複製されます。 したがって、メモリ上でこれらのプロセス変数が占める容量に注意することが推奨されます。 また、プロセス変数に使われる容量は、プロセスのスタックサイズとは関連しないことに留意が必要です。 +> コンパイル時に、コンパイラーは特定のプロセス変数が使用されているプロセスを判別できません。プロセス変数には、プロセスごとに異なる値が格納されている可能性があります。そのため、新規プロセスが開始されるたびに、すべてのプロセス変数が意図的に複製されます。 したがって、メモリ上でこれらのプロセス変数が占める容量に注意することが推奨されます。また、プロセス変数に使われる容量は、プロセスのスタックサイズとは関連しないことに留意が必要です。 #### ローカル変数のリスト @@ -328,16 +326,16 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy ### エラーファイル -コンパイラー設定の [**エラーファイルを生成**](#エラーファイルを生成) オプションを使用して、コンパイル時にエラーファイルを生成するかどうかを選択することができます。 エラーファイルは、プロジェクトの [Logsフォルダー](../Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 +コンパイラー設定の [**エラーファイルを生成**](#エラーファイルを生成) オプションを使用して、コンパイル時にエラーファイルを生成するかどうかを選択することができます。エラーファイルは、プロジェクトの [Logsフォルダー](../Project/architecture.md#logs)内に `ProjectName_errors.txt` という名前で作成されます。 -[コンパイラーウインドウ](#コンパイラーウインドウ) からエラーに直接アクセスすることができますが、マシンからマシンへ送信できるエラーファイルがあると便利な場合があります。 エラーファイルは、その内容を自動的に解析しやすいように XMLフォーマットで生成されます。 これを利用して、エラー表示用に独自のインターフェースを作成することもできます。 +[コンパイラーウインドウ](#コンパイラーウインドウ) からエラーに直接アクセスすることができますが、マシンからマシンへ送信できるエラーファイルがあると便利な場合があります。エラーファイルは、その内容を自動的に解析しやすいように XMLフォーマットで生成されます。これを利用して、エラー表示用に独自のインターフェースを作成することもできます。 エラーファイルの長さは、コンパイラーにより生成されるエラーと警告の数により変わります。 エラーファイルの構造は次のとおりです: - ファイルの一番上にはエラーと警告のリストがあり、メソッドごと、そして 4D で作成された順序で並べられます。 -- ***全般的なエラー*** セクションには、タイプ定義がおこなえないものと識別が不明確なものがすべて集められます。 これらのエラーと警告は、次の形式で表示されます: +- ***全般的なエラー*** セクションには、タイプ定義がおこなえないものと識別が不明確なものがすべて集められます。これらのエラーと警告は、次の形式で表示されます: - メソッドにおける行番号 (0 は全般的なエラー) - warning属性は、検出された異常が警告であるのか (warning="true")、あるいはエラーであるのか (warning="false") を表わします - エラーを解説する診断の表示 @@ -346,21 +344,21 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy エラーファイルには、次の 3つのタイプのメッセージが含まれます: -- **特定の行に関連するエラー**: これらのエラーは、コンテキスト (エラーが見つかった行) 内に説明とともに表示されます。 コンパイラーは、データ型やシンタックスに関する矛盾を含む式で見つけると、このタイプのエラーをレポートします。 コンパイラーウィンドウでは、検出された各エラーをダブルクリックすると、該当するメソッドが直接 4Dのコードエディターで開かれ、エラーを含む行が反転表示されます。 +- **特定の行に関連するエラー**: これらのエラーは、コンテキスト (エラーが見つかった行) 内に説明とともに表示されます。コンパイラーは、データ型やシンタックスに関する矛盾を含む式で見つけると、このタイプのエラーをレポートします。コンパイラーウィンドウでは、検出された各エラーをダブルクリックすると、該当するメソッドが直接 4Dのコードエディターで開かれ、エラーを含む行が反転表示されます。 -- **全般的なエラー**: これらのエラーは、プロジェクトのコンパイルを不可能にします。 コンパイラーが全般的なエラーを生成するケースは、次の 2つです: +- **全般的なエラー**: これらのエラーは、プロジェクトのコンパイルを不可能にします。コンパイラーが全般的なエラーを生成するケースは、次の 2つです: - プロセス変数のデータ型が決定できなかった。 - 異なる 2つのオブジェクトが同じ名称である。 -全般的なエラーは特定のメソッドに関連していないため、このような名前が付けられています。 最初のケースは、コンパイラーがプロジェクトのいずれの箇所でも、指定された型定義を実行できなかった場合です。 2番目のケースでは、いずれのオブジェクトに特定の名前を割り当てるべきかを決定できません。 +全般的なエラーは特定のメソッドに関連していないため、このような名前が付けられています。最初のケースは、コンパイラーがプロジェクトのいずれの箇所でも、指定された型定義を実行できなかった場合です。 2番目のケースでは、いずれのオブジェクトに特定の名前を割り当てるべきかを決定できません。 -- **警告**: 警告はエラーではありません。 警告により、プロジェクトがコンパイルできなくなることはありません。 これは、エラーになる可能性のあるコードを示すだけです。 コンパイラーウィンドウにおいて、警告はイタリック体で表示されます。 それぞれの警告をダブルクリックすると、該当するメソッドが直接 4Dのコードエディターで開かれ、その警告に関係する行が反転表示されます。 +- **警告**: 警告はエラーではありません。警告により、プロジェクトがコンパイルできなくなることはありません。 これは、エラーになる可能性のあるコードを示すだけです。コンパイラーウィンドウにおいて、警告はイタリック体で表示されます。それぞれの警告をダブルクリックすると、該当するメソッドが直接 4Dのコードエディターで開かれ、その警告に関係する行が反転表示されます。 ### 範囲チェック -4Dコンパイラーによって生成されたコードでは、配列要素へのアクセスや文字参照が実際に配列や文字列の範囲内でおこなわれているかが自動的に確認されます。 範囲外へのアクセスは、ランタイム実行エラーを誘発します。 +4Dコンパイラーによって生成されたコードでは、配列要素へのアクセスや文字参照が実際に配列や文字列の範囲内でおこなわれているかが自動的に確認されます。範囲外へのアクセスは、ランタイム実行エラーを誘発します。 -コード内で間違いがないと思われる箇所に対して範囲チェックを適用したくないときもあります。 具体的には、かなりの回数繰り返されるループに関し、旧式のマシン上でコンパイル済みデータベースを実行すると、範囲チェックにより処理速度が著しく低下するおそれがあります。 関連するコードに誤りがなく、システムエラーを引き起こさないことが確実であれば、範囲チェックをローカル上で無効にすることができます。 +コード内で間違いがないと思われる箇所に対して範囲チェックを適用したくないときもあります。具体的には、かなりの回数繰り返されるループに関し、旧式のマシン上でコンパイル済みデータベースを実行すると、範囲チェックにより処理速度が著しく低下するおそれがあります。関連するコードに誤りがなく、システムエラーを引き起こさないことが確実であれば、範囲チェックをローカル上で無効にすることができます。 これをおこなうには、範囲チェックから外すコードを特殊なコメントである `//%R-` と `//%R+` で囲みます。 `//%R-` コメントは範囲チェックを無効にし、`//%R+` はそれを再び有効にします: @@ -388,11 +386,11 @@ Symbolファイルを生成するのに使用します ([Symbolファイル](#sy | Intel Mac | O | O | O | | Silicon Mac | O | O | O | -どちらのコンパイラーも 4D に統合されています。 [コンパイル対象CPU](#コンパイル対象CPU) オプションの設定に応じて、適切なコンパイラーが自動的に選択されます。 +どちらのコンパイラーも 4D に統合されています。[コンパイル対象CPU](#コンパイル対象CPU) オプションの設定に応じて、適切なコンパイラーが自動的に選択されます。 ### クラシックコンパイラー -マシンの OS に関わらず、クラシックコンパイラーは Intel/AMDプロセッサー向けのネイティブコンパイルコードを生成します。 特別な設定は必要ありません。 +マシンの OS に関わらず、クラシックコンパイラーは Intel/AMDプロセッサー向けのネイティブコンパイルコードを生成します。特別な設定は必要ありません。 結果のコンパイルコードはプロジェクトの [DerivedData](architecture.md#deriveddata) フォルダーに保存されます。 @@ -410,7 +408,7 @@ Apple Silicon用コンパイラーは *Apple M1* などの Apple Silicon プロ - Xcode や Developer Tools をマシン上でインストールされた状態で **すでに持っている場合**、それらのバージョンが 4D の要件と合っていることを確認します。 - マシンにインストールされた状態でこれらのツールを **持っていない場合**、Apple Developer の Webサイトからいずれかをダウンロードする必要があります。 -> インストール手順が簡単なため **Xcode** のインストールを推奨しています。 よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 +> インストール手順が簡単なため **Xcode** のインストールを推奨しています。よりコンパクトな **Developer Tools** をインストールしても問題ありませんが、こちらはインストール手順がやや複雑です。 いずれにせよ、要件が満たされていない場合には、4D の Apple Silicon用コンパイラーが警告を発します。 @@ -418,5 +416,5 @@ Apple Silicon用コンパイラーは *Apple M1* などの Apple Silicon プロ Apple Silicon用コンパイラーはインクリメンタルコンパイラーです: -- 初めてのコンパイルにおいては、**すべての 4Dメソッド** がコンパイルされます。 これには時間がかかる可能性がありますが、 一度きりです。 +- 初めてのコンパイルにおいては、**すべての 4Dメソッド** がコンパイルされます。これには時間がかかる可能性がありますが、一度きりです。 - 以降のコンパイルにおいては、**新規または編集されたメソッド** のみが処理され、コンパイル時間を大幅に短縮します。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/date-time-formats.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/date-time-formats.md index 17a6cb69e5c796..a3841a12be0ee2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/date-time-formats.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/date-time-formats.md @@ -5,7 +5,7 @@ title: 日付と時間のフォーマット アプリケーション、プラットフォーム、またはインターフェースの要件に従って、4Dプロジェクトにおける日付や時間の表示形式を管理しなくてはならない場合があります。 -4Dには、デフォルトの形式に加えて、カスタマイズされた日付と時間のフォーマットを作成および適用するために使用できる包括的なパターンのリストが含まれています。 カスタマイズされたフォーマットパターンは、以下の機能でサポートされています: +4Dには、デフォルトの形式に加えて、カスタマイズされた日付と時間のフォーマットを作成および適用するために使用できる包括的なパターンのリストが含まれています。カスタマイズされたフォーマットパターンは、以下の機能でサポートされています: - [`String`](../commands/string) コマンド - [`OBJECT SET FORMAT`](../commands/object-set-format) および [`OBJECT Get format`](../commands/object-get-format) コマンド @@ -108,11 +108,11 @@ title: 日付と時間のフォーマット ### `y` vs `Y` -`y` は暦年、`Y` は週番号に基づく年です。 たとえば、2010年の1月の最初の日が週番号1ではない場合、y = 2010 かつ Y = 2009 となりえます (2010年の最初の週が始まる日まで)。(週番号の数え方にはいくつかの方式があります) +`y` は暦年、`Y` は週番号に基づく年です。たとえば、2010年の1月の最初の日が週番号1ではない場合、y = 2010 かつ Y = 2009 となりえます (2010年の最初の週が始まる日まで)。(週番号の数え方にはいくつかの方式があります) ### `L` (単独) vs `M` -ロシア語、スロバキア語など一部の言語では、単独で使用される月名と日付内の月名が異なります。 たとえば、"2010年1月10日" と "1月の約束" の "1月" が同じ綴りで表現されません。 +ロシア語、スロバキア語など一部の言語では、単独で使用される月名と日付内の月名が異なります。たとえば、"2010年1月10日" と "1月の約束" の "1月" が同じ綴りで表現されません。 ### `e` vs `c` @@ -124,7 +124,7 @@ title: 日付と時間のフォーマット ### 先頭のゼロ -一般的に、フォーマット文字列の文字数が数値の桁数よりも多い場合、先頭にゼロが追加されます。 例: "yyyyyy" は "001996" と表示されます。 +一般的に、フォーマット文字列の文字数が数値の桁数よりも多い場合、先頭にゼロが追加されます。例: "yyyyyy" は "001996" と表示されます。 ### ローカライズされた出力 @@ -142,7 +142,7 @@ title: 日付と時間のフォーマット ### 先頭と末尾のスペース -パターンの先頭と末尾のスペースは、出力の際に自動でトリミングされます。 結果の文字列の先頭や末尾にスペースを入れるには、一重引用符で囲む必要があります。 +パターンの先頭と末尾のスペースは、出力の際に自動でトリミングされます。結果の文字列の先頭や末尾にスペースを入れるには、一重引用符で囲む必要があります。 例: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md index 3f42fef4d609ae..224d2bd34f219c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -3,7 +3,7 @@ id: documentation title: ドキュメンテーション --- -アプリケーションプロジェクトにおいては、メソッドやクラス、フォーム、テーブル、フィールドに関するドキュメンテーションを作成することができます。 複数のプログラマーによってプロジェクトを開発している場合などに、ドキュメンテーションの作成はとくに適しています。 ドキュメンテーションには、要素の説明だけでなく、アプリケーションにおけるその要素の機能を理解するために必要なあらゆる情報を含めることができます。 +アプリケーションプロジェクトにおいては、メソッドやクラス、フォーム、テーブル、フィールドに関するドキュメンテーションを作成することができます。複数のプログラマーによってプロジェクトを開発している場合などに、ドキュメンテーションの作成はとくに適しています。ドキュメンテーションには、要素の説明だけでなく、アプリケーションにおけるその要素の機能を理解するために必要なあらゆる情報を含めることができます。 ドキュメントすることができるプロジェクト要素は次のとおりです: @@ -12,7 +12,7 @@ title: ドキュメンテーション - フォーム - テーブルとフィールド -ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。 これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 +ドキュメンテーションファイルは Markdown記法 (.md ファイル) で記述します。 これには、Markdown をサポートしている任意のエディターを使うことができます。これらはそれぞれ独立したファイルとしてプロジェクトフォルダー内に格納されます。 ドキュメントされた内容は、エクスプローラーの右側にあるプレビューエリアに表示されます: @@ -24,7 +24,7 @@ title: ドキュメンテーション ### ドキュメンテーションファイル名 -ドキュメンテーションファイルには、ドキュメントの対象である要素と同じファイル名が付き、拡張子は ".md" です。 たとえば、`myMethod.4dm` プロジェクトメソッドに付随するドキュメンテーションファイルの名前は `myMethod.md` です。 +ドキュメンテーションファイルには、ドキュメントの対象である要素と同じファイル名が付き、拡張子は ".md" です。たとえば、`myMethod.4dm` プロジェクトメソッドに付随するドキュメンテーションファイルの名前は `myMethod.md` です。 エクスプローラー上では、選択した要素と同じファイル名のドキュメンテーションが自動的に表示されます (後述参照)。 @@ -75,7 +75,7 @@ title: ドキュメンテーション - 選択要素のドキュメンテーションファイルが見つからなかった場合には、**作成する** ボタンが表示されます。 -- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。 なお、エリアに表示されている内容は直接編集することはできません。 +- 選択要素のドキュメンテーションファイルが存在すれば、その内容がエリア内に表示されます。なお、エリアに表示されている内容は直接編集することはできません。 ### ドキュメンテーションファイルの編集 @@ -113,7 +113,7 @@ title: ドキュメンテーション ## ドキュメンテーションファイルの定義 -4D はテンプレートを用いて新規のドキュメンテーションファイルを作成します。 このテンプレートは、[コードエディターでドキュメンテーションを表示する](#コードエディターでドキュメンテーションを表示する) のに利用できる項目が提供しています。 +4D はテンプレートを用いて新規のドキュメンテーションファイルを作成します。このテンプレートは、[コードエディターでドキュメンテーションを表示する](#コードエディターでドキュメンテーションを表示する) のに利用できる項目が提供しています。 それ以外の [サポートされている Markdown](#サポートされている-markdown) タグも利用することができます。 @@ -123,7 +123,7 @@ title: ドキュメンテーション | 線 | 説明 | | ----------------------------------- | --------------------------------------------------------------------------------------- | -| `` | HTML コメントタグ。 メソッドの説明として優先的に [コードエディターTip](#コードエディターでドキュメンテーションを表示する) に表示されます。 | +| `` | HTML コメントタグ。メソッドの説明として優先的に [コードエディターTip](#コードエディターでドキュメンテーションを表示する) に表示されます。 | | ## Description | Markdown のレベル2 見出しタグ。 HTML コメントタグが使用されていない場合、このタグ後の最初の文章がメソッドの説明としてコードエディターTip に表示されます。 | | ## Example | レベル2 見出しタグ。 サンプルコードの記述に使用できます。 | | ` ```4d Type here your example``` ` | 4D サンプルコードのフォーマットに使います (highlight.js ライブラリを使用)。 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/overview.md index 042fd865f3a047..5da3ad02edc742 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/overview.md @@ -12,7 +12,7 @@ Web やデスクトップ、モバイルの運用形態に関わらず、デー また、人間にも解読可能なテキストファイル (JSON、XML等) 形式で提供されているため、プロジェクトの読み書きは任意のコードエディターでおこなうことも可能です。 -4D プロジェクトファイルによって、汎用的なコーディング、アプリケーションテンプレートの作成や、コードシェアリングが容易になります。 プロジェクトは内部的に [フォルダーとファイル](../Project/architecture.md) で構成されています。 +4D プロジェクトファイルによって、汎用的なコーディング、アプリケーションテンプレートの作成や、コードシェアリングが容易になります。プロジェクトは内部的に [フォルダーとファイル](../Project/architecture.md) で構成されています。 ## 開発 @@ -24,7 +24,7 @@ Web やデスクトップ、モバイルの運用形態に関わらず、デー ### 4D Serverにおける開発モード -小規模な開発チームで、ソース管理ツールを使用したくない場合、4D Server の [**開発モード**](../Desktop/clientServer.md#開発モード) を使用することができます。これを使用すると、開発者は4D リモートから同じプロジェクトに対してオンラインで作業することができます。 ただしこの選択肢は特別なケースにおいてのみ使用されるべきであるという点に注意してください。一般的にはソース管理ツール(上記参照)に基づいた管理を行うことが推奨されます。 +小規模な開発チームで、ソース管理ツールを使用したくない場合、4D Server の [**開発モード**](../Desktop/clientServer.md#開発モード) を使用することができます。これを使用すると、開発者は4D リモートから同じプロジェクトに対してオンラインで作業することができます。ただしこの選択肢は特別なケースにおいてのみ使用されるべきであるという点に注意してください。一般的にはソース管理ツール(上記参照)に基づいた管理を行うことが推奨されます。 ## 運用 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/project-method-properties.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/project-method-properties.md index 1553995fb59e0e..d6aedc666d3efa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/project-method-properties.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/project-method-properties.md @@ -17,9 +17,9 @@ title: プロジェクトメソッド ### サブルーチン -サブルーチンは、処理の下請け的なプロジェクトメソッドです。 他のメソッドから呼ばれて、要求された処理を実行します。 関数は、呼び出し元のメソッドに値を返すサブルーチンのことです。 +サブルーチンは、処理の下請け的なプロジェクトメソッドです。他のメソッドから呼ばれて、要求された処理を実行します。関数は、呼び出し元のメソッドに値を返すサブルーチンのことです。 -プロジェクトメソッドを作成すると、それは同データベースのランゲージの一部となります。 プロジェクトメソッドは、4Dのビルトインコマンドと同様に、ほかのメソッド (プロジェクトメソッドやオブジェクトメソッド) から呼び出すことができます。 このように使用されるプロジェクトメソッドをサブルーチンと呼びます。 +プロジェクトメソッドを作成すると、それは同データベースのランゲージの一部となります。プロジェクトメソッドは、4Dのビルトインコマンドと同様に、ほかのメソッド (プロジェクトメソッドやオブジェクトメソッド)から呼び出すことができます。このように使用されるプロジェクトメソッドをサブルーチンと呼びます。 サブルーチンは、以下のような目的で使います: @@ -28,7 +28,7 @@ title: プロジェクトメソッド - メソッド改変の容易化 - コードのモジュール化 -たとえば、顧客データベースがあるとします。 プロジェクトをカスタマイズしていくうちに、顧客を検索してレコードを修正するという一連の作業を繰り返しおこなっていることに気づいたとします。 そのコーディングは以下のようになっています: +たとえば、顧客データベースがあるとします。プロジェクトをカスタマイズしていくうちに、顧客を検索してレコードを修正するという一連の作業を繰り返しおこなっていることに気づいたとします。そのコーディングは以下のようになっています: ```4d // 顧客を検索します @@ -39,20 +39,20 @@ title: プロジェクトメソッド MODIFY RECORD([Customers]) ``` -サブルーチンを使用しなければ、顧客レコード修正のたびにコードを作成しなければなりません。 プロジェクトの 10箇所で同じ処理が必要であれば、同じコーディングを 10回も書かねばなりません。 サブルーチンを使用すれば 1回コーディングするだけですみます。 これがコーディングの重複を減らすというサブルーチンの第一の利点です。 +サブルーチンを使用しなければ、顧客レコード修正のたびにコードを作成しなければなりません。プロジェクトの 10箇所で同じ処理が必要であれば、同じコーディングを 10回も書かねばなりません。サブルーチンを使用すれば 1回コーディングするだけですみます。これがコーディングの重複を減らすというサブルーチンの第一の利点です。 -先ほど説明したコードが `MODIFY_CUSTOMER` と呼ばれるメソッドであるとすれば、他のメソッド内でそのメソッド名を使うことで実行できます。 たとえば、顧客のレコードを修正し、それからレコードをプリントするために、以下のようなメソッドを書くことができます: +先ほど説明したコードが `MODIFY_CUSTOMER` と呼ばれるメソッドであるとすれば、他のメソッド内でそのメソッド名を使うことで実行できます。たとえば、顧客のレコードを修正し、それからレコードをプリントするために、以下のようなメソッドを書くことができます: ```4d MODIFY_CUSTOMER PRINT SELECTION([Customers]) ``` -この機能はメソッドを劇的に簡素化します。 さきほどの例で言えば、`MODIFY_CUSTOMER` メソッドがどのように動作するかは知る必要がなく、何をおこなうかだけ知っていればよいのです。 これはメソッドをサブルーチン化することの2番目の理由、役割の明確化です。 このように、作成されたメソッドは 4Dランゲージを拡張します。 +この機能はメソッドを劇的に簡素化します。さきほどの例で言えば、`MODIFY_CUSTOMER` メソッドがどのように動作するかは知る必要がなく、何をおこなうかだけ知っていればよいのです。これはメソッドをサブルーチン化することの2番目の理由、役割の明確化です。このように、作成されたメソッドは 4Dランゲージを拡張します。 -このプロジェクトの例で顧客の検索方法を変える場合、10箇所ではなく、たった1つのメソッドを変更するだけですみます。 これがサブルーチンを使うもう一つの理由、改変の容易化です。 +このプロジェクトの例で顧客の検索方法を変える場合、10箇所ではなく、たった1つのメソッドを変更するだけですみます。これがサブルーチンを使うもう一つの理由、改変の容易化です。 -また、サブルーチンの利用はコードをモジュール化します。 これはコードをモジュール (サブルーチン) に分割することを意味し、それぞれは論理的な処理を実行します。 小切手振り出し口座のプロジェクトから、以下のコードを見てみましょう: +また、サブルーチンの利用はコードをモジュール化します。これはコードをモジュール (サブルーチン) に分割することを意味し、それぞれは論理的な処理を実行します。小切手振り出し口座のプロジェクトから、以下のコードを見てみましょう: ```4d FIND_CLEARED_CHECKS // 決済された小切手の検索 @@ -60,15 +60,15 @@ title: プロジェクトメソッド PRINT_CHECK_BOOK_REPORT // レポートの印刷 ``` -プロジェクトの詳細を知らない人でも、このプログラムが何をしているかはわかります。 各サブルーチンの処理手順を知る必要はありません。 各サブルーチンは長く、複雑な処理で構成されていることもありますが、それらが何を実行するのかだけを知っていれば十分なのです。 プログラムを論理的な処理単位やモジュールにできるだけ分割することをお勧めします。 +プロジェクトの詳細を知らない人でも、このプログラムが何をしているかはわかります。各サブルーチンの処理手順を知る必要はありません。各サブルーチンは長く、複雑な処理で構成されていることもありますが、それらが何を実行するのかだけを知っていれば十分なのです。プログラムを論理的な処理単位やモジュールにできるだけ分割することをお勧めします。 ### オブジェクトフォーミュラ プロジェクトメソッドは、**フォーミュラ** オブジェクトにカプセル化して、オブジェクトから呼び出すことができます。 -[`Formula`](../commands/formula) または [`Formula from string`](../commands/formula-from-string) コマンドを使用すると、オブジェクトプロパティにカプセル化可能な[ネイティブなフォーミュラオブジェクト](../API/FormulaClass.md) を作成することができます。 つまり、カスタムなオブジェクトメソッドを実装することが可能です。 +[`Formula`](../commands/formula) または [`Formula from string`](../commands/formula-from-string) コマンドを使用すると、オブジェクトプロパティにカプセル化可能な[ネイティブなフォーミュラオブジェクト](../API/FormulaClass.md) を作成することができます。つまり、カスタムなオブジェクトメソッドを実装することが可能です。 -オブジェクトプロパティに保存されているメソッドを実行するには、プロパティ名のあとに **()** をつけます。 例: +オブジェクトプロパティに保存されているメソッドを実行するには、プロパティ名のあとに **()** をつけます。例: ```4d // myAlert プロジェクトメソッド @@ -93,25 +93,25 @@ $o["custom_Alert"]() // "Hello world!" と表示します ### メニューメソッド -メニューメソッドは、カスタムメニューから呼び出されるプロジェクトメソッドです。 メニューエディターまたは["メニュー" テーマのコマンド](../commands/theme/Menus.md) を使用して、メニューにメソッドを割り当てます。 メニューが選択されると、それに対応するメニューメソッドが実行されます。 特定の処理を実行するメニューメソッドを割り当てたカスタムメニューを作成することで、デスクトップアプリケーションのユーザーインターフェースをカスタマイズすることができます。 +メニューメソッドは、カスタムメニューから呼び出されるプロジェクトメソッドです。メニューエディターまたは["メニュー" テーマのコマンド](../commands/theme/Menus.md) を使用して、メニューにメソッドを割り当てます。メニューが選択されると、それに対応するメニューメソッドが実行されます。特定の処理を実行するメニューメソッドを割り当てたカスタムメニューを作成することで、デスクトップアプリケーションのユーザーインターフェースをカスタマイズすることができます。 -メニューメソッドにより、単一または複数の処理を実行することができます。 たとえば、データ入力のメニューに、以下の二つの処理を実行するメソッドを割り当てられます。まず適切な入力フォームを表示し、次にユーザーがキャンセルするまでの間[`ADD RECORD`](../commands/add-record) コマンドによるデータ入力を繰り返します。 +メニューメソッドにより、単一または複数の処理を実行することができます。たとえば、データ入力のメニューに、以下の二つの処理を実行するメソッドを割り当てられます。まず適切な入力フォームを表示し、次にユーザーがキャンセルするまでの間[`ADD RECORD`](../commands/add-record) コマンドによるデータ入力を繰り返します。 -連続した処理の自動化は、4D プログラミング言語の強力な機能の一つです。 カスタムメニューを使用することで処理を自動化することができ、アプリケーションのユーザーにより多くのガイダンスを提供することができます。 +連続した処理の自動化は、4D プログラミング言語の強力な機能の一つです。カスタムメニューを使用することで処理を自動化することができ、アプリケーションのユーザーにより多くのガイダンスを提供することができます。 ### プロセスメソッド -**プロセスメソッド** とは、プロセスの開始時に呼び出されるプロジェクトメソッドのことです。 [ワーカープロセス](../Develop/processes.md#worker-processes) の場合を除いて、プロセスはプロセスメソッドが実行されている間だけ存続します。 メニューに属するメニューメソッドのプロパティとして [*新規プロセス開始*](../Menus/properties.md#start-a-new-process) をチェックしている場合、そのメニューメソッドは新規プロセスのプロセスメソッドでもあります。 +**プロセスメソッド** とは、プロセスの開始時に呼び出されるプロジェクトメソッドのことです。[ワーカープロセス](../Develop/processes.md#worker-processes) の場合を除いて、プロセスはプロセスメソッドが実行されている間だけ存続します。メニューに属するメニューメソッドのプロパティとして [*新規プロセス開始*](../Menus/properties.md#start-a-new-process) をチェックしている場合、そのメニューメソッドは新規プロセスのプロセスメソッドでもあります。 ### イベント・エラー処理メソッド -**イベント処理メソッド** は、イベントを処理するプロセスメソッドとして、分離されたプロセス内で実行されます。 通常、開発者はイベント管理の大部分を 4Dに任せます。 たとえば、データ入力中にキーストロークやクリックを検出した 4Dは、正しいオブジェクトとフォームメソッドを呼び出します。 このため開発者は、これらのメソッド内でイベントに対し適切に応答できるのです。 詳細については[`ON EVENT CALL`](../commands/on-event-call) コマンドの説明を参照してください。 +**イベント処理メソッド** は、イベントを処理するプロセスメソッドとして、分離されたプロセス内で実行されます。通常、開発者はイベント管理の大部分を 4Dに任せます。たとえば、データ入力中にキーストロークやクリックを検出した 4Dは、正しいオブジェクトとフォームメソッドを呼び出します。 このため開発者は、これらのメソッド内でイベントに対し適切に応答できるのです。詳細については[`ON EVENT CALL`](../commands/on-event-call) コマンドの説明を参照してください。 -**エラー処理メソッド** は、割り込みを実行するプロジェクトメソッドです。 エラーや例外が発生するたびに呼び出されます。 詳細については、[エラー処理](error-handling.md) を参照ください。 エラーや例外が発生するたびに呼び出されます。 詳細については、[エラー処理](../Concepts/error-handling.md) を参照ください。 +**エラー処理メソッド** は、割り込みを実行するプロジェクトメソッドです。 エラーや例外が発生するたびに呼び出されます。 詳細については、[エラー処理](error-handling.md) を参照ください。エラーや例外が発生するたびに呼び出されます。詳細については、[エラー処理](../Concepts/error-handling.md) を参照ください。 ### APIメソッド -プロジェクトメソッドは、他のアプリケーション、Web アプリ、処理されたファイル、などの外部コンテキストから呼び出し可能です。その場合、これらはAPI としてみなすことができます。 このような呼び出しには以下のようなものが含まれます: +プロジェクトメソッドは、他のアプリケーション、Web アプリ、処理されたファイル、などの外部コンテキストから呼び出し可能です。その場合、これらはAPI としてみなすことができます。このような呼び出しには以下のようなものが含まれます: - [http リクエストハンドラー](../WebServer/http-request-handler.md) または [`4DACTION` URL](../WebServer/httpRequests.md#4daction) を通したWeb サーバーへの呼び出し。 - [タグ処理](../Tags/transformation-tags.md) @@ -121,9 +121,9 @@ $o["custom_Alert"]() // "Hello world!" と表示します ### 手動での実行 -アプリケーションに定義されたプロジェクトメソッドは通常、アプリケーションの使用中にボタンやメニュー、他のメソッドなどから自動的に呼び出されます。 データベースメソッドについては、アプリケーションで発生する特定のイベントに反応して実行されます。 +アプリケーションに定義されたプロジェクトメソッドは通常、アプリケーションの使用中にボタンやメニュー、他のメソッドなどから自動的に呼び出されます。データベースメソッドについては、アプリケーションで発生する特定のイベントに反応して実行されます。 -しかし、テストやデバッグの目的で、プロジェクトメソッドや特定のデータベースメソッドをデザインモードで実行することができます。 この場合、メソッドを新規プロセスで実行するか、または直接デバッグモードで一行ごと実行できます。 +しかし、テストやデバッグの目的で、プロジェクトメソッドや特定のデータベースメソッドをデザインモードで実行することができます。この場合、メソッドを新規プロセスで実行するか、または直接デバッグモードで一行ごと実行できます。 メソッド実行は 2つの方法でおこなえます: @@ -132,7 +132,7 @@ $o["custom_Alert"]() // "Hello world!" と表示します #### コードエディターからメソッド実行 -[**コードエディター**](../code-editor/write-class-method.md) ウィンドウには、そのエディターで開かれているメソッドを実行するためのボタンがあります。 このボタンに関連付けられているメニューから実行オプションを選択できます。 +[**コードエディター**](../code-editor/write-class-method.md) ウィンドウには、そのエディターで開かれているメソッドを実行するためのボタンがあります。このボタンに関連付けられているメニューから実行オプションを選択できます。 このボタンは、プロジェクトメソッドと以下のデータベースメソッドでのみ利用できます: @@ -147,34 +147,34 @@ $o["custom_Alert"]() // "Hello world!" と表示します **実行** メニューから **メソッド...** コマンドを選択すると、**メソッド実行** ダイアログボックスが表示されます。 -このダイアログボックスには、データベースのプロジェクトメソッド (コンポーネントの共有メソッドを含む) が表示されます。 一方、非表示属性が設定されたプロジェクトメソッドは表示されません。 +このダイアログボックスには、データベースのプロジェクトメソッド (コンポーネントの共有メソッドを含む) が表示されます。一方、非表示属性が設定されたプロジェクトメソッドは表示されません。 -プロジェクトメソッドを実行するには、リストからメソッドを選択し、**実行** をクリックします。 デバッグモードでメソッドを実行するには **デバッグ** をクリックします。 デバッガーに関する詳細は、[デバッガー](../Debugging/basics.md) の章を参照ください。 +プロジェクトメソッドを実行するには、リストからメソッドを選択し、**実行** をクリックします。デバッグモードでメソッドを実行するには **デバッグ** をクリックします。デバッガーに関する詳細は、[デバッガー](../Debugging/basics.md) の章を参照ください。 -**新規プロセス** チェックボックスを選択すると、選択したメソッドは新規に作成されたプロセス内で実行されます。 大量の印刷など時間のかかる処理をメソッドがおこなう場合でもこのオプションを使用すれば、レコードの追加、グラフの作成などの処理をアプリケーションプロセスで継続できます。 プロセスに関するより詳細な情報については、[プロセス](../Develop/processes.md) を参照してください。 +**新規プロセス** チェックボックスを選択すると、選択したメソッドは新規に作成されたプロセス内で実行されます。大量の印刷など時間のかかる処理をメソッドがおこなう場合でもこのオプションを使用すれば、レコードの追加、グラフの作成などの処理をアプリケーションプロセスで継続できます。プロセスに関するより詳細な情報については、[プロセス](../Develop/processes.md) を参照してください。 **4D Serverに関する注記**: -- クライアントではなくサーバー上でメソッドを実行したい場合、実行モードメニューで **4D Server** を選択します。 この場合 *ストアドプロシージャー* と呼ばれるプロセスが新規にサーバー上で作成され、メソッドが実行されます。 このオプションを使用して、ネットワークトラフィックを減らしたり、4D Serverの動作を最適化したりできます (特にディスクに格納されたデータにアクセスする場合など)。 すべてのタイプのメソッドをサーバー上や他のクライアント上で実行できますが、ユーザーインターフェースを変更するものは例外です。 この場合、ストアドプロシージャーは効果がありません。 -- 他のクライアントマシン上でメソッドを実行するよう選択することもできます。 他のクライアントマシンは、事前に登録されていなければメニューに表示されません (詳細な情報については [REGISTER CLIENT](../commands/register-client) の説明を参照ください)。 +- クライアントではなくサーバー上でメソッドを実行したい場合、実行モードメニューで **4D Server** を選択します。この場合 *ストアドプロシージャー* と呼ばれるプロセスが新規にサーバー上で作成され、メソッドが実行されます。このオプションを使用して、ネットワークトラフィックを減らしたり、4D Serverの動作を最適化したりできます (特にディスクに格納されたデータにアクセスする場合など)。すべてのタイプのメソッドをサーバー上や他のクライアント上で実行できますが、ユーザーインターフェースを変更するものは例外です。この場合、ストアドプロシージャーは効果がありません。 +- 他のクライアントマシン上でメソッドを実行するよう選択することもできます。他のクライアントマシンは、事前に登録されていなければメニューに表示されません (詳細な情報については [REGISTER CLIENT](../commands/register-client) の説明を参照ください)。 デフォルトでは、**ローカル** オプションが選択されています。 4D シングルユーザーの場合、このオプションしか選択できません。 ### プロジェクトメソッドの再帰呼び出し -プロジェクトメソッドは、自分自身を呼び出すことができます。 例: +プロジェクトメソッドは、自分自身を呼び出すことができます。例: - メソッドAがメソッドBを呼び出し、メソッドBはメソッドAを呼び出します。 - メソッドAは自身を呼び出すことができます。 これは再帰呼び出しと呼ばれています。 4D ランゲージは再帰呼び出しを完全にサポートしています。 -次に例を示します。 次に例を示します。 以下のフィールドから成る `[Friends and Relatives]` テーブルがあります: +次に例を示します。次に例を示します。 以下のフィールドから成る `[Friends and Relatives]` テーブルがあります: - `[Friends and Relatives]Name` - `[Friends and Relatives]ChildrensName` -この例題では、フィールドの値は重複しない、つまり同じ名前の人間はいないとします。 名前を指定することで、以下のような文を作成します: “A friend of mine, John who is the child of Paul who is the child of Jane who is the child of Robert who is the child of Eleanor, does this for a living!”: +この例題では、フィールドの値は重複しない、つまり同じ名前の人間はいないとします。名前を指定することで、以下のような文を作成します: “A friend of mine, John who is the child of Paul who is the child of Jane who is the child of Robert who is the child of Eleanor, does this for a living!”: 1. この文を以下のように作成できます: @@ -230,24 +230,24 @@ $o["custom_Alert"]() // "Hello world!" と表示します 最初に挙げた方法は **反復性のアルゴリズム** です。 2番目に挙げた方法は **再帰呼び出しのアルゴリズム** です。 -前述の例題のようなコードを実装する場合、反復性や再帰呼び出しを使用してメソッドを書くことができるということに留意してください。 再帰呼び出しは一般的に、より明瞭で読みやすく、維持しやすいコードを提供します。 ただし、この使用は必須ではありません。 +前述の例題のようなコードを実装する場合、反復性や再帰呼び出しを使用してメソッドを書くことができるということに留意してください。再帰呼び出しは一般的に、より明瞭で読みやすく、維持しやすいコードを提供します。 ただし、この使用は必須ではありません。 4D内での再帰呼び出しの代表的な使用方法は以下のとおりです: - 例題と同じく、互いに関連するテーブル内でのレコードの取り扱い。 -- [`FOLDER LIST`](../commands/folder-list) および [`DOCUMENT LIST`](document-list) などのコマンドを使用して、ディスク上のドキュメントやフォルダーをブラウズする。 フォルダーにはフォルダーとドキュメントが含まれており、サブフォルダーはまたフォルダーとドキュメントを含むことができます。 +- [`FOLDER LIST`](../commands/folder-list) および [`DOCUMENT LIST`](document-list) などのコマンドを使用して、ディスク上のドキュメントやフォルダーをブラウズする。フォルダーにはフォルダーとドキュメントが含まれており、サブフォルダーはまたフォルダーとドキュメントを含むことができます。 :::warning -再帰呼び出しは、必ずある時点で終了する必要があります。 たとえば、`Genealogy of` メソッドが自身の呼び出しを止めるのは、クエリがレコードを返さないときです。 この条件のテストをしないと、メソッドは際限なく自身を呼び出します。 (メソッド内で使用される引数やローカル変数の蓄積を含む) 再帰呼び出しによって容量が一杯になると、最終的に 4Dは “スタックがいっぱいです” エラーを返します 。 +再帰呼び出しは、必ずある時点で終了する必要があります。たとえば、`Genealogy of` メソッドが自身の呼び出しを止めるのは、クエリがレコードを返さないときです。この条件のテストをしないと、メソッドは際限なく自身を呼び出します。 (メソッド内で使用される引数やローカル変数の蓄積を含む) 再帰呼び出しによって容量が一杯になると、最終的に 4Dは “スタックがいっぱいです” エラーを返します 。 ::: ## プロパティ -プロジェクトメソッドを作成した後、その名称やプロパティを変更することができます。 プロジェクトメソッドのプロパティは主に、実行アクセスやセキュリティ条件 (ユーザー、統合されたサーバーやサービスからのアクセスの可否) に加えて、実行モードに関する設定が含まれます。 +プロジェクトメソッドを作成した後、その名称やプロパティを変更することができます。プロジェクトメソッドのプロパティは主に、実行アクセスやセキュリティ条件 (ユーザー、統合されたサーバーやサービスからのアクセスの可否) に加えて、実行モードに関する設定が含まれます。 -他のタイプのメソッドには専用のプロパティがありません。 これらのメソッドのプロパティは、それらが関連付けられているオブジェクトに基づいて決定されます。 +他のタイプのメソッドには専用のプロパティがありません。これらのメソッドのプロパティは、それらが関連付けられているオブジェクトに基づいて決定されます。 プロジェクトメソッドの **メソッドプロパティ** ダイアログボックスを表示するには、次の方法があります: @@ -260,47 +260,47 @@ $o["custom_Alert"]() // "Hello world!" と表示します **メソッドプロパティ** ウィンドウの **名称** エリア、またはエクスプローラーでプロジェクトメソッド名を変更できます。 -新しい名称は 4D の命名規則に沿っていなければなりません ([識別子](../Concepts/identifiers.md) 参照)。 同じ名称のメソッドが既に存在する場合、4D はその旨を知らせるメッセージを表示します。 名称変更後、4D メソッドリストをソートします。 +新しい名称は 4D の命名規則に沿っていなければなりません ([識別子](../Concepts/identifiers.md) 参照)。同じ名称のメソッドが既に存在する場合、4D はその旨を知らせるメッセージを表示します。名称変更後、4D メソッドリストをソートします。 :::caution -プロジェクトメソッドの名前を変更すると、そのメソッドを旧名称で呼び出している他のメソッドやフォーミュラなど、アプリケーションの機能が無効になるリスクがあります。 この場合、 [プロジェクトメソッドの改名機能](../Project/search-replace.md#renaming-project-methods-and-variables) を使用することが強く推奨されます。 この機能を使用すれば、デザイン環境における当該メソッドの呼び出し箇所がすべて自動的に更新されます (ただし EXECUTE METHOD など、文字列としてメソッド名が参照されている個所を除きます)。 +プロジェクトメソッドの名前を変更すると、そのメソッドを旧名称で呼び出している他のメソッドやフォーミュラなど、アプリケーションの機能が無効になるリスクがあります。この場合、 [プロジェクトメソッドの改名機能](../Project/search-replace.md#renaming-project-methods-and-variables) を使用することが強く推奨されます。この機能を使用すれば、デザイン環境における当該メソッドの呼び出し箇所がすべて自動的に更新されます (ただし EXECUTE METHOD など、文字列としてメソッド名が参照されている個所を除きます)。 -4D Server の場合、名称変更は変更終了後にサーバーに反映されます。 複数のユーザーが同時に名称を変更しようとすると、最後におこなわれた名称変更が適用されます。 メソッドのオーナーを指定すれば特定のユーザー以外はメソッド名を変更できないようにできます。 +4D Server の場合、名称変更は変更終了後にサーバーに反映されます。複数のユーザーが同時に名称を変更しようとすると、最後におこなわれた名称変更が適用されます。メソッドのオーナーを指定すれば特定のユーザー以外はメソッド名を変更できないようにできます。 ::: :::info -データベースメソッドの名称を変更することはできません。 オブジェクトに紐付いたトリガー、フォームメソッド、オブジェクトメソッドも同様です。 これらは関連先のオブジェクトにより名称を決定されます。 +データベースメソッドの名称を変更することはできません。オブジェクトに紐付いたトリガー、フォームメソッド、オブジェクトメソッドも同様です。 これらは関連先のオブジェクトにより名称を決定されます。 ::: ### 属性 -属性を使用して、プロジェクトメソッドがどのコンテキストにおいて利用可能かを指定できます。 エクスプローラーを使用して複数のプロジェクトメソッドに対し、属性を一括して設定することもできます (後述参照)。 +属性を使用して、プロジェクトメソッドがどのコンテキストにおいて利用可能かを指定できます。エクスプローラーを使用して複数のプロジェクトメソッドに対し、属性を一括して設定することもできます (後述参照)。 #### 非表示 -ユーザーに対し、**実行** メニューの **メソッド...** から特定のメソッドを実行させたくない場合、このオプションを選択すればそのメソッドを非表示にできます。 非表示のメソッドは、メソッド実行ダイアログボックスに表示されません。 +ユーザーに対し、**実行** メニューの **メソッド...** から特定のメソッドを実行させたくない場合、このオプションを選択すればそのメソッドを非表示にできます。非表示のメソッドは、メソッド実行ダイアログボックスに表示されません。 -プロジェクトメソッドを非表示にしても、データベースプログラマーはそれを使用することができます。 これらは、エクスプローラーやコードエディターのメソッドリストには引き続き表示されます。 +プロジェクトメソッドを非表示にしても、データベースプログラマーはそれを使用することができます。これらは、エクスプローラーやコードエディターのメソッドリストには引き続き表示されます。 #### コンポーネントとホストプロジェクト間で共有 -この属性は、コンポーネントのフレームワークで使用されます。 このオプションが選択されていると、アプリケーションがホストデータベースとして実行されている場合、そのメソッドがコンポーネントから実行可能になります。 また、アプリケーションがコンポーネントとして実行されている場合、そのメソッドはホストデータベースから実行可能となります。 +この属性は、コンポーネントのフレームワークで使用されます。このオプションが選択されていると、アプリケーションがホストデータベースとして実行されている場合、そのメソッドがコンポーネントから実行可能になります。また、アプリケーションがコンポーネントとして実行されている場合、そのメソッドはホストデータベースから実行可能となります。 コンポーネントについては [4Dコンポーネントの開発とインストール](../Extensions/develop-components.md) を参照ください。 #### サーバー上で実行 -この属性は、クライアント/サーバーモードの 4Dアプリケーションでのみ考慮されます。 このオプションが選択されていると、そのプロジェクトメソッドは呼び出し方に関わらず常にサーバー上で実行されます。 +この属性は、クライアント/サーバーモードの 4Dアプリケーションでのみ考慮されます。このオプションが選択されていると、そのプロジェクトメソッドは呼び出し方に関わらず常にサーバー上で実行されます。 このオプションの詳細な情報については、を[サーバー上で実行 属性](../Desktop/clientServer.md#サーバー上で実行属性) 参照してください。 ### 実行モード -このオプションを使用すると、メソッドのプリエンプティブ実行が可能であることを宣言できます。 これについては、[プリエンプティブプロセス](../Develop/preemptive.md) の章で説明されています。 +このオプションを使用すると、メソッドのプリエンプティブ実行が可能であることを宣言できます。これについては、[プリエンプティブプロセス](../Develop/preemptive.md) の章で説明されています。 ### 公開オプション @@ -308,15 +308,15 @@ $o["custom_Alert"]() // "Hello world!" と表示します #### Webサービス -この属性を使用して、SOAPリクエストでアクセス可能な Webサービスとして当該メソッドを公開することができます。 詳細は [Web サービスの公開と使用](https://doc.4d.com/4Dv20/4D/20.2/Publication-and-use-of-Web-Services.200-6750103.ja.html) を参照ください。 このオプションを選択すると、**WSDL を公開** オプションを選択できるようになります。 +この属性を使用して、SOAPリクエストでアクセス可能な Webサービスとして当該メソッドを公開することができます。詳細は [Web サービスの公開と使用](https://doc.4d.com/4Dv20/4D/20.2/Publication-and-use-of-Web-Services.200-6750103.ja.html) を参照ください。このオプションを選択すると、**WSDL を公開** オプションを選択できるようになります。 エクスプローラーでは、Web サービスとして提供されるプロジェクトメソッドには専用のアイコンが表示されます。 -**注:** メソッド名が XML の命名規則に準拠しない文字 (たとえばスペース) を含む場合、そのメソッドは Webサービスとして公開できません。 この場合、設定は保存できません。 +**注:** メソッド名が XML の命名規則に準拠しない文字 (たとえばスペース) を含む場合、そのメソッドは Webサービスとして公開できません。この場合、設定は保存できません。 #### WSDL を公開 -この属性は "Webサービス" 属性が設定されている場合にのみ利用可能です。 この属性を設定すると、当該メソッドが 4Dアプリケーションの WSDLに 含まれます。 詳細については [WSDL ファイルを生成する](https://doc.4d.com/4Dv20/4D/20.2/Publishing-a-Web-Service-with-4D.300-6750334.ja.html#502689) を参照ください。 +この属性は "Webサービス" 属性が設定されている場合にのみ利用可能です。この属性を設定すると、当該メソッドが 4Dアプリケーションの WSDLに 含まれます。詳細については [WSDL ファイルを生成する](https://doc.4d.com/4Dv20/4D/20.2/Publishing-a-Web-Service-with-4D.300-6750334.ja.html#502689) を参照ください。 エクスプローラーでは、Webサービスとして提供され、WSDLで公開されたプロジェクトメソッドには専用のアイコンが表示されます。 @@ -330,7 +330,7 @@ $o["custom_Alert"]() // "Hello world!" と表示します #### SQL -この属性が選択されていると、当該プロジェクトメソッドは 4D の SQLエンジンから実行可能となります。 デフォルトでは選択されておらず、明示的に許可されない限り 4Dメソッドは保護されており、4D SQLエンジンから呼び出すことはできません。 +この属性が選択されていると、当該プロジェクトメソッドは 4D の SQLエンジンから実行可能となります。デフォルトでは選択されておらず、明示的に許可されない限り 4Dメソッドは保護されており、4D SQLエンジンから呼び出すことはできません。 このプロパティは、全ての内部あるいは外部SQL クエリに対して適用されます。この外部SQL クエリにはODBC ドライバ、 [Begin SQL](../commands/begin-sql)/[End SQL](../commands/end-sql) タグ内に挿入されたSQL コード、あるいは [QUERY BY SQL](../commands/query-by-sql) コマンドから実行されたものを含みます。 @@ -347,20 +347,19 @@ $o["custom_Alert"]() // "Hello world!" と表示します ### 属性の一括設定 -"メソッド属性" ダイアログボックスを使用して、一回の操作で複数のプロジェクトメソッドに対して属性 (非表示、Webサービスで公開、等) を設定することができます。 この機能は、多数のプロジェクトメソッドの属性を一括して変更する場合に便利です。 また、開発の段階で、類似のメソッド群に共通の属性を素早く適用するのに使用することもできます。 +"メソッド属性" ダイアログボックスを使用して、一回の操作で複数のプロジェクトメソッドに対して属性 (非表示、Webサービスで公開、等)を設定することができます。この機能は、多数のプロジェクトメソッドの属性を一括して変更する場合に便利です。また、開発の段階で、類似のメソッド群に共通の属性を素早く適用するのに使用することもできます。 メソッド属性の一括設定をおこなうには: -1. エクスプローラーの [メソッドページ](https://doc.4d.com/4Dv20/4D/20.2/Methods-Page.300-6750119.ja.html) からオプションメニューを展開し、**属性の一括設定...** コマンドを選択します。 "メソッド属性" ダイアログボックスが表示されます: +1. エクスプローラーの [メソッドページ](https://doc.4d.com/4Dv20/4D/20.2/Methods-Page.300-6750119.ja.html) からオプションメニューを展開し、**属性の一括設定...** コマンドを選択します。"メソッド属性" ダイアログボックスが表示されます: -2. "一致するメソッド名" エリアに属性を一括設定するメソッドを指定するための名前条件を入力します。 - 入力した文字列を使用してメソッド名が検索されます。 +2. "一致するメソッド名" エリアに属性を一括設定するメソッドを指定するための名前条件を入力します。入力した文字列を使用してメソッド名が検索されます。 "@" をワイルドカード文字として使用し、メソッドグループを選択できます: -- 前方一致で検索するには、文字列の最後に "@" を加えます。 例: `web@` -- 含む検索をするには、文字列の中に "@" を加えます。 例: `web@write` -- 後方一致で検索するには、文字列の先頭に "@" を加えます。 例: `web@write` +- 前方一致で検索するには、文字列の最後に "@" を加えます。例: `web@` +- 含む検索をするには、文字列の中に "@" を加えます。例: `web@write` +- 後方一致で検索するには、文字列の先頭に "@" を加えます。例: `web@write` - すべてのメソッドを選択するには "@" のみを入力します。 **注:** @@ -372,6 +371,6 @@ $o["custom_Alert"]() // "Hello world!" と表示します **注:** "WSDL で公開する" 属性を True に設定した場合、"Webサービスとして公開" 属性が True に設定されたメソッドにのみ適用されます。 -4. **適用** をクリックします。 検索条件に合致するプロジェクトメソッドに対し、属性の変更は即座に反映されます。 +4. **適用** をクリックします。検索条件に合致するプロジェクトメソッドに対し、属性の変更は即座に反映されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/search-replace.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/search-replace.md index 62b6f85b0b902d..6c57a7841119a3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/search-replace.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/search-replace.md @@ -5,14 +5,14 @@ title: 検索と置換 4D はデザイン環境の全ての要素に対して複数の検索と置換機能を提供しています。 -- 文字列またはオブジェクトのタイプ(変数、コメント、式、など)に対して検索を行うことができます。 またカスタム条件("前方一致"、"含む"など)に基づいてプロジェクトの一部または全体に対して検索を行えます。 例えば、"MyVar" という文字列を格納している変数を、名前が"HR_" で始まるメソッド内2位おいてのみ検索する、といったことを行うことができます。 -- 検索した結果は結果ウィンドウ内に表示表示され、ここからコンテンツの置換を行うことができます。 この結果をテキストファイルとして書き出して、それをスプレッドシートなどに読み込ませることもできます。 +- 文字列またはオブジェクトのタイプ(変数、コメント、式、など)に対して検索を行うことができます。またカスタム条件("前方一致"、"含む"など)に基づいてプロジェクトの一部または全体に対して検索を行えます。例えば、"MyVar" という文字列を格納している変数を、名前が"HR_" で始まるメソッド内2位おいてのみ検索する、といったことを行うことができます。 +- 検索した結果は結果ウィンドウ内に表示表示され、ここからコンテンツの置換を行うことができます。この結果をテキストファイルとして書き出して、それをスプレッドシートなどに読み込ませることもできます。 - コード内で使用されていない変数やメソッドを検知し、それらを削除することでメモリを解放することもできます。 - 一回の操作で、デザイン環境内のプロジェクトメソッドや変数を名称変更することができます。 :::note -またエクスプローラーのメソッドページのコンテキストメニューには、プロジェクトのメソッド内を検索するための機能もあります: **呼び出し元を検索** ([メソッドエディター](../code-editor/write-class-method.md#search-callers) からも利用可能です) および **依存関係を検索** です。 どちらの機能も、[結果ウィンドウ](#結果ウィンドウ) 内に見つかった項目を表示します。 +またエクスプローラーのメソッドページのコンテキストメニューには、プロジェクトのメソッド内を検索するための機能もあります: **呼び出し元を検索** ([メソッドエディター](../code-editor/write-class-method.md#search-callers) からも利用可能です) および **依存関係を検索** です。どちらの機能も、[結果ウィンドウ](#結果ウィンドウ) 内に見つかった項目を表示します。 ::: @@ -40,24 +40,22 @@ title: 検索と置換 "デザインモードを検索"ウィンドウ内で検索条件を指定します: -1. 4D ツールバー内の検索ボタン (![](../assets/en/Project/search-icon.png)) をクリックします。 - または +1. 4D ツールバー内の検索ボタン (![](../assets/en/Project/search-icon.png)) をクリックします。または **編集** メニュー内から **デザインモードを検索...** コマンドを選択します。 "デザインモードを検索" ウィンドウが表示されます: ![](../assets/en/Project/find-in-design.png) -メニューの選択に応じて、"デザインモードを検索"のエリアは動的に変化します。 ウィンドウを展開することで、全てのオプションを表示することもできます: +メニューの選択に応じて、"デザインモードを検索"のエリアは動的に変化します。ウィンドウを展開することで、全てのオプションを表示することもできます: ![](../assets/en/Project/find-in-design-expanded.png) -2. 異なるメニューやダイアログボックスの入力エリアを使用して検索をビルドすることができ、また必要であれば検索したい文字列を入力します。 これらの項目については、以下のセクションで説明されています。 +2. 異なるメニューやダイアログボックスの入力エリアを使用して検索をビルドすることができ、また必要であれば検索したい文字列を入力します。これらの項目については、以下のセクションで説明されています。 3. [検索オプション](#検索オプション) を設定します(必要であれば)。 -4. **OK** をクリックするか、または**Enter** キーを押してください。 - 検索が完了すると、 [結果ウィンドウ](#結果ウィンドウ) が表示され、そこに検索で見つかった要素が一覧表示されます。 +4. **OK** をクリックするか、または**Enter** キーを押してください。検索が完了すると、 [結果ウィンドウ](#結果ウィンドウ) が表示され、そこに検索で見つかった要素が一覧表示されます。 :::note @@ -65,14 +63,14 @@ title: 検索と置換 ::: -検索を一度実行したら、検索エリアに入力された値はメモリに保存されます。 この値と、同じセッション中に入力された他の値は、コンボボックスから選択することができます。 +検索を一度実行したら、検索エリアに入力された値はメモリに保存されます。この値と、同じセッション中に入力された他の値は、コンボボックスから選択することができます。 ### 検索 -**検索**メニューを使用して検索したい要素のタイプを指定します。 以下の選択肢から選択することが可能です: +**検索**メニューを使用して検索したい要素のタイプを指定します。以下の選択肢から選択することが可能です: -- **テキスト**: この場合、4D はデザイン環境内においてその文字列を検索します。 この検索はプレーンテキストモードで行われ、コンテキストは考慮されません。 例えば、"ALERT("Error number:"+" or "button27" というテキストを検索したとします。 このモードでは、ワイルドカード文字として "@" を使用することはできません。この場合は標準の文字として認識されるからです。 -- **コメント**: この検索は基本的に前のものと同じですが、コード(// で始まる行)内の中身とエクスプローラーウィンドウ内のみを検索します。 例えば、 "To be verified" という文字列を格納する任意のコメントを検索することができます。 +- **テキスト**: この場合、4D はデザイン環境内においてその文字列を検索します。この検索はプレーンテキストモードで行われ、コンテキストは考慮されません。例えば、"ALERT("Error number:"+" or "button27" というテキストを検索したとします。このモードでは、ワイルドカード文字として "@" を使用することはできません。この場合は標準の文字として認識されるからです。 +- **コメント**: この検索は基本的に前のものと同じですが、コード(// で始まる行)内の中身とエクスプローラーウィンドウ内のみを検索します。例えば、 "To be verified" という文字列を格納する任意のコメントを検索することができます。 :::note @@ -80,36 +78,35 @@ title: 検索と置換 ::: -- **ランゲージ式**: これを使用すると任意の有効な4D 式を検索します。この検索は"含む"モードで実行されます。 この場合式の有効性が重要になります。4D はその式を検索するためにはそれが検証可能でなければならないからです。 例えば、 "[clients" (無効な式) を検索しても何も見つかりませんが、 "[clients]" であれば正しく検索されます。 このオプションは特に値の代入や比較の検索において特に有用です。 例: +- **ランゲージ式**: これを使用すると任意の有効な4D 式を検索します。この検索は"含む"モードで実行されます。この場合式の有効性が重要になります。4D はその式を検索するためにはそれが検証可能でなければならないからです。例えば、 "[clients" (無効な式) を検索しても何も見つかりませんが、 "[clients]" であれば正しく検索されます。このオプションは特に値の代入や比較の検索において特に有用です。例: - "myvar:=" (代入) を検索する - "myvar=" (比較) を検索する - **ランゲージ要素**: 特定のランゲージ要素をその名前で検索するのに使用されます。 4D は以下のような要素を識別することができます: - **すべてのランゲージ要素**: 以下のリスト内の全ての要素。 - **プロジェクトメソッドまたはクラス**: プロジェクトメソッド名またはクラス名、例えば "M_Add" あるいは "EmployeeEntity" など。 - - **フォーム:** フォーム名。例 "Input"。 このコマンドはプロジェクトフォームおよびテーブルフォームを検索します。 + - **フォーム:** フォーム名。例 "Input"。このコマンドはプロジェクトフォームおよびテーブルフォームを検索します。 - **フィールまたはテーブル**: テーブル名またはフィールド名。例 "Customers"。 - **変数**: 任意の変数名。例 "$myvar"。 - **4D 定数**: 任意の定数。例 "Is Picture"。 - **引用符内の文字列**: リテラルなテキストのコンテンツ。例: コードエディター内、またはフォームエディターのテキストエリアに挿入された引用符内の任意の値。 例えば、 "Martin" を検索すると、コード内に以下のような行があった場合には検索結果を返します: + **4D 定数**: 任意の定数。例 "Is Picture"。**引用符内の文字列**: リテラルなテキストのコンテンツ。例: コードエディター内、またはフォームエディターのテキストエリアに挿入された引用符内の任意の値。例えば、 "Martin" を検索すると、コード内に以下のような行があった場合には検索結果を返します: `ds.Customer.query("name = :1"; "Martin")` - **4D コマンド**: 任意の4D コマンド。例 "Alert"。 - **プラグインコマンド**: アプリケーションにインストールされたプラグインコマンド。 - - **プロパティ**: オブジェクトのプロパティ名(ORDA 属性名も含みます)。 例えば "lastname" を検索した場合、"$o.lastname" および "ds.Employee.lastname" が返されます。 -- **あらゆるオブジェクト**: このオプションを使用するとデザイン環境内にあるあらゆる要素内を検索します。 ここでは更新日フィルターしか使用できません。 このオプションを使用することで、例えば "今日変更されたもの"というような検索を実行できます。 + - **プロパティ**: オブジェクトのプロパティ名(ORDA 属性名も含みます)。例えば "lastname" を検索した場合、"$o.lastname" および "ds.Employee.lastname" が返されます。 +- **あらゆるオブジェクト**: このオプションを使用するとデザイン環境内にあるあらゆる要素内を検索します。ここでは更新日フィルターしか使用できません。このオプションを使用することで、例えば "今日変更されたもの"というような検索を実行できます。 ### 検索モード -検索モードメニュー(例えば"完全一致"や"名前"など)は入力された値をどのように検索するかを指定します。 このメニューの中身は、 **タイプ** ドロップダウンリスト内で選択された要素のタイプに応じて変化します。 +検索モードメニュー(例えば"完全一致"や"名前"など)は入力された値をどのように検索するかを指定します。このメニューの中身は、 **タイプ** ドロップダウンリスト内で選択された要素のタイプに応じて変化します。 - テキストまたはコメントの検索オプション: - **含む**: 指定された文字列をデザイン環境内の全てのテキスト内を検索します。 "var" の検索結果としては、 "myvar"、 "variable1" あるいは "aVariable" などが含まれます。 - - **語全体を含む**: 文字列を完全な単語としてデザイン環境内の全てのテキスト内を検索します。 "var" を検索した場合には、それと完全に一致した場合のみが結果として返されます。 この結果には "myvar" は含まれませんが、例えば "var:=10" や "ID+var" などは検索結果に含まれます。 何故なら `:` や `+` などの記号は単語の区切り文字だからです。 - - **前方一致 / 後方一致**: 文字列を単語の最初か最後に一致するか(テキスト検索)、あるいはコメント行の最初か最後に一致するか(コメント検索)を検索します。 "後方一致" モードにおいては、 "var" を検索した場合 "myvar" が検索結果に含まれます。 -- ランゲージ要素に対しての検索オプション: メニューは標準のオプション(等しい、含む、前方一致、後方一致)を提供します。 "等しい"検索オプションにおいては検索ワイルドカード (@) を使用できることに注意してください(指定されたタイプの全てのオブジェクトを返します)。 + - **語全体を含む**: 文字列を完全な単語としてデザイン環境内の全てのテキスト内を検索します。 "var" を検索した場合には、それと完全に一致した場合のみが結果として返されます。この結果には "myvar" は含まれませんが、例えば "var:=10" や "ID+var" などは検索結果に含まれます。 何故なら `:` や `+` などの記号は単語の区切り文字だからです。 + - **前方一致 / 後方一致**: 文字列を単語の最初か最後に一致するか(テキスト検索)、あるいはコメント行の最初か最後に一致するか(コメント検索)を検索します。"後方一致" モードにおいては、 "var" を検索した場合 "myvar" が検索結果に含まれます。 +- ランゲージ要素に対しての検索オプション: メニューは標準のオプション(等しい、含む、前方一致、後方一致)を提供します。"等しい"検索オプションにおいては検索ワイルドカード (@) を使用できることに注意してください(指定されたタイプの全てのオブジェクトを返します)。 ### コンポーネント内を検索 -カレントのプロジェクトが [編集可能なコンポーネント](../Extensions/develop-components.md#editing-components) を参照している場合、コンポーネントの一つまたは全てを検索対象として含めることができます。 デフォルトでは、ホストに対してのみ検索が実行されます。 検索対象を変更するためには、**プロジェクト内** メニューを展開します: デフォルトでは、ホストに対してのみ検索が実行されます。 検索対象を変更するためには、**プロジェクト内** メニューを展開します: +カレントのプロジェクトが [編集可能なコンポーネント](../Extensions/develop-components.md#editing-components) を参照している場合、コンポーネントの一つまたは全てを検索対象として含めることができます。 デフォルトでは、ホストに対してのみ検索が実行されます。 検索対象を変更するためには、**プロジェクト内** メニューを展開します: デフォルトでは、ホストに対してのみ検索が実行されます。検索対象を変更するためには、**プロジェクト内** メニューを展開します: ![](../assets/en/Project/find-components.png) @@ -125,11 +122,11 @@ title: 検索と置換 ::: -**フォルダー** メニュー(以下参照) はプロジェクト選択した時に更新されます。どのフォルダーが利用できるかは選択された検索対象によって変わるからです。 このメニューは "ホストプロジェクトとその全てのコンポーネント" オプションを選択している時には非表示になっています。 +**フォルダー** メニュー(以下参照) はプロジェクト選択した時に更新されます。どのフォルダーが利用できるかは選択された検索対象によって変わるからです。このメニューは "ホストプロジェクトとその全てのコンポーネント" オプションを選択している時には非表示になっています。 ### フォルダー -**フォルダー** メニューは検索をプロジェクトの特定のフォルダーへと制限します。 デフォルト("トップレベル"オプション)では、全てのフォルダー内で検索を実行します。 +**フォルダー** メニューは検索をプロジェクトの特定のフォルダーへと制限します。デフォルト("トップレベル"オプション)では、全てのフォルダー内で検索を実行します。 :::note @@ -139,7 +136,7 @@ title: 検索と置換 ### 親オブジェクトの変更日 -このメニューは親の作成日/変更日に従って検索(例えば、文字列を含んでいるメソッドの検索など)を制限します。 標準の日付条件(等しい、より以前、より以降、等しくない)に加えて、このメニューは標準の検索期間をより素早く指定するための複数のオプションを格納しています: +このメニューは親の作成日/変更日に従って検索(例えば、文字列を含んでいるメソッドの検索など)を制限します。標準の日付条件(等しい、より以前、より以降、等しくない)に加えて、このメニューは標準の検索期間をより素早く指定するための複数のオプションを格納しています: - **本日**: 現在の日付の真夜中(00:00 時)から始まる期間。 - **昨日以降**: 現在の日付と昨日の日付を含めた期間。 @@ -164,11 +161,11 @@ title: 検索と置換 - 依存関係を検索 - [プロジェクトメソッドと変数の名称変更](#renaming-project-methods-and-variables) -検索結果は、見つかった要素のタイプごとに並べられた階層リストとして表示されます。 (ウィンドウの左下端にある)オプションメニュー、あるいはコンテキストメニュー内のオプションを使用してリスト内の階層項目を展開または折りたたむことができます。 +検索結果は、見つかった要素のタイプごとに並べられた階層リストとして表示されます。(ウィンドウの左下端にある)オプションメニュー、あるいはコンテキストメニュー内のオプションを使用してリスト内の階層項目を展開または折りたたむことができます。 ![](../assets/en/Project/result-window.png) -このウィンドウの行をダブルクリックすることでその要素を [メソッドエディター(コードエディター)](../code-editor/write-class-method.md) などのエディター内で閲覧することができます。 複数の検索を実行した場合、それぞれの検索の結果ウィンドウが表示され、以前のウィンドウが開いたままで閉じられることはありません。 +このウィンドウの行をダブルクリックすることでその要素を [メソッドエディター(コードエディター)](../code-editor/write-class-method.md) などのエディター内で閲覧することができます。複数の検索を実行した場合、それぞれの検索の結果ウィンドウが表示され、以前のウィンドウが開いたままで閉じられることはありません。 一つ以上の結果が見つかった場合、リストには要素名のとなりに **個数** が表示されます。 @@ -186,22 +183,22 @@ title: 検索と置換 ![](../assets/en/Project/result-window-menu.png) -- **リストから削除**: 選択された要素を結果ウィンドウから削除します。 具体的には、結果のリスト内に置換操作を行いたい要素だけを残すことや、アプリケーション間でドラッグ&ドロップを使用したい要素だけを残すことなどができます。 +- **リストから削除**: 選択された要素を結果ウィンドウから削除します。具体的には、結果のリスト内に置換操作を行いたい要素だけを残すことや、アプリケーション間でドラッグ&ドロップを使用したい要素だけを残すことなどができます。 - **選択された項目以外を全てリストから削除**: 選択された項目を除いて全てを結果ウィンドウをから消去します。 - [**内容を置換**](#replace-in-content): 選択された項目の文字列を置き換えます。 -- **選択 >**: 結果ウィンドウ内の全ての項目から、一つのタイプ(プロジェクトメソッド、オブジェクト名、など)だけを選択します。 階層サブメニューには全ての項目を一度に選択する(すべて)か選択解除する(なし)かを実行するコマンドを提供しています。 +- **選択 >**: 結果ウィンドウ内の全ての項目から、一つのタイプ(プロジェクトメソッド、オブジェクト名、など)だけを選択します。階層サブメニューには全ての項目を一度に選択する(すべて)か選択解除する(なし)かを実行するコマンドを提供しています。 - **全てを折りたたむ/全てを展開する**: 結果の一覧内の全ての階層項目を展開するか折りたたみます。 -- **結果を書き出し**: 検索条件と結果ウィンドウに表示されている要素についての情報を書き出します。 このテキストファイルは例えばExcel などのスプレッドシートに読み込ませることができます。 各項目に対して、以下の情報がタブ区切りの値としてテキストファイル内に書き出されます: +- **結果を書き出し**: 検索条件と結果ウィンドウに表示されている要素についての情報を書き出します。このテキストファイルは例えばExcel などのスプレッドシートに読み込ませることができます。各項目に対して、以下の情報がタブ区切りの値としてテキストファイル内に書き出されます: - ホストプロジェクトまたはコンポーネント名 - タイプ (メソッド、クラス、フォームオブジェクト、トリガー、など) - パス - - プロパティ(正確であれば): 検索条件に合致するオブジェクトのプロパティを提供します。 例えば、文字列は同じフォーム内においても変数名(変数 プロパティ)またはオブジェクト名(オブジェクト名 プロパティ)として見つかることがありえます。 このフィールドは、合致する要素がオブジェクト自身である場合には空です。 + - プロパティ(正確であれば): 検索条件に合致するオブジェクトのプロパティを提供します。例えば、文字列は同じフォーム内においても変数名(変数 プロパティ)またはオブジェクト名(オブジェクト名 プロパティ)として見つかることがありえます。このフィールドは、合致する要素がオブジェクト自身である場合には空です。 - コンテンツ (正確であれば): 検索条件に実際に合致するコンテンツを提供します。例えば、リクエストした文字列に合致するコード行などです。 - 行番号(コードに対して) またはページ番号 (フォームオブジェクト) ## 内容を置換 {#replace-in-content} -内容を置換機能を使用すると、結果ウィンドウにリストされたオブジェクト内の文字列を他の文字列で置き換えることができます。 これはウィンドウの [オプションメニュー](#オプションメニュー) 内にて利用可能です。 +内容を置換機能を使用すると、結果ウィンドウにリストされたオブジェクト内の文字列を他の文字列で置き換えることができます。これはウィンドウの [オプションメニュー](#オプションメニュー) 内にて利用可能です。 :::note @@ -215,14 +212,14 @@ title: 検索と置換 置換オペレーションは以下のルールに基づいて実行されます: -- 置換はリスト内にある全ての項目に対して実行され、選択されている要素だけに止まりません。 しかしながら、 [オプションメニュー](#オプションメニュー) またはコンテキストメニュー内の **リストから削除** あるいは **選択された項目以外を全てリストから削除** を使用してリストの内容を最初に絞り込みすることで、置換オペレーションの対象を狭めることができます。 +- 置換はリスト内にある全ての項目に対して実行され、選択されている要素だけに止まりません。しかしながら、 [オプションメニュー](#オプションメニュー) またはコンテキストメニュー内の **リストから削除** あるいは **選択された項目以外を全てリストから削除** を使用してリストの内容を最初に絞り込みすることで、置換オペレーションの対象を狭めることができます。 - 結果ウィンドウにコンポーネント内の要素が含まれていた場合、置換はコンポーネント内に対しても行われます。 - リストに表示されている発生箇所のみが置換され、かつ置換操作の前に、最初の検索条件に基づいて、最初の検索と置換操作の間にオブジェクトが変更されたケースを確認した後でのみ置換されます。 - 置換はコード、フォームオブジェクトのプロパティ、ヘルプメッセージの内容、入力フィルター、メニュー項目(項目のテキストとメソッド呼び出し)、選択リスト、コメント内で実行されます。 -- それぞれのオブジェクトが編集されると、4D は他のマシンあるいは他のウィンドウにおいてすでにロードされているかどうかをチェックします。 コンフリクトがあった場合、オブジェクトがロックされていることを示す標準のダイアログボックスが表示されます。 オブジェクトを閉じてから再試行するか、置換をキャンセルすることができます。 置換操作はリスト内の他のオブジェクトに対して続行されます。 -- もし"内容を置換"操作の対象となっているメソッドまたはフォームが同じ4D アプリケーション内で現在編集中の場合、対象はその開かれているエディター内で直接編集されます(警告は表示されません)。 この方法で編集されたフォームおよびメソッドは自動的には保存されません: 変更を保存するためには **保存** あるいは **すべてを保存** コマンドを明示的に使用する必要があります。 -- リストの項目に対して置換が行われたあとは、それらは斜字体で表示されます。 ウィンドウの下部には行われた置換の回数がリアルタイムで表示されます。 -- フォームオブジェクトを除き、見つかった要素自体の名前が **内容を置換** 機能で名称変更されることはありません。 そのため、リスト内の特定の一部の項目が置換オペレーションの影響を受けないことが有り得ます。 これは項目の名前のみが最初の検索条件に合致した場合などに起こり得ます。 この場合、リスト内の項目が必ずしも全て斜字体で表示されるわけではなく、また最終的な置換カウントが最初の検索で見つかったオカレンス数より少なくなることも有り得ます。 +- それぞれのオブジェクトが編集されると、4D は他のマシンあるいは他のウィンドウにおいてすでにロードされているかどうかをチェックします。コンフリクトがあった場合、オブジェクトがロックされていることを示す標準のダイアログボックスが表示されます。オブジェクトを閉じてから再試行するか、置換をキャンセルすることができます。置換操作はリスト内の他のオブジェクトに対して続行されます。 +- もし"内容を置換"操作の対象となっているメソッドまたはフォームが同じ4D アプリケーション内で現在編集中の場合、対象はその開かれているエディター内で直接編集されます(警告は表示されません)。この方法で編集されたフォームおよびメソッドは自動的には保存されません: 変更を保存するためには **保存** あるいは **すべてを保存** コマンドを明示的に使用する必要があります。 +- リストの項目に対して置換が行われたあとは、それらは斜字体で表示されます。ウィンドウの下部には行われた置換の回数がリアルタイムで表示されます。 +- フォームオブジェクトを除き、見つかった要素自体の名前が **内容を置換** 機能で名称変更されることはありません。そのため、リスト内の特定の一部の項目が置換オペレーションの影響を受けないことが有り得ます。これは項目の名前のみが最初の検索条件に合致した場合などに起こり得ます。この場合、リスト内の項目が必ずしも全て斜字体で表示されるわけではなく、また最終的な置換カウントが最初の検索で見つかったオカレンス数より少なくなることも有り得ます。 ## プロジェクトメソッドと変数の名称変更 {#renaming-project-methods-and-variables} @@ -236,21 +233,21 @@ title: 検索と置換 ![](../assets/en/Project/rename-dial.png) -新しい名前は [命名規則](../Concepts/identifiers.md)に従っている必要があります。そうでない場合、ダイアログボックスを決定した際に警告が表示されます。 例えば、メソッド名を "Alert" などのコマンド名に変更することはできません。 +新しい名前は [命名規則](../Concepts/identifiers.md)に従っている必要があります。そうでない場合、ダイアログボックスを決定した際に警告が表示されます。例えば、メソッド名を "Alert" などのコマンド名に変更することはできません。 名称変更しようとしているオブジェクトのタイプ(プロジェクトメソッドまたは変数)によっては、名称変更ダイアログボックスに追加のオプションが表示される場合があります: -- プロジェクトメソッド: **すべての参照箇所でメソッド名を変更** オプションを使用すると、それを参照しているプロジェクト内の全てのコードにおいてメソッド名を変更します。 このオプションを選択解除することで、例えばエクスプローラー内においてのみメソッド名を変更することができます。 -- プロセス変数: **すべての参照箇所で変数名を変更** オプションを使用すると、それを参照しているプロジェクト内のすべてのコードにおいて変数名を変更します。 このオプションを選択解除することで、カレントのメソッドの内の変数のみが名称変更されます。 +- プロジェクトメソッド: **すべての参照箇所でメソッド名を変更** オプションを使用すると、それを参照しているプロジェクト内の全てのコードにおいてメソッド名を変更します。このオプションを選択解除することで、例えばエクスプローラー内においてのみメソッド名を変更することができます。 +- プロセス変数: **すべての参照箇所で変数名を変更** オプションを使用すると、それを参照しているプロジェクト内のすべてのコードにおいて変数名を変更します。このオプションを選択解除することで、カレントのメソッドの内の変数のみが名称変更されます。 - ローカル変数: これに対しては追加のオプションはありません。変数はカレントのメソッドまたはクラスにおいてのみ名称変更されます。 ## 未使用の要素の検索 -二つの特定のコマンドを使用することで、ホストプロジェクト内のコードでもう使用されていない変数とメソッドを検知することができます。 これらを削除することで、メモリを解放することができます。 これらのコマンドは、デザイン環境の **編集** メニュー内にあります。 +二つの特定のコマンドを使用することで、ホストプロジェクト内のコードでもう使用されていない変数とメソッドを検知することができます。これらを削除することで、メモリを解放することができます。これらのコマンドは、デザイン環境の **編集** メニュー内にあります。 ### 未使用のメソッドとグローバル変数を検索 -このコマンドは、宣言されているものの使用されていないプロジェクトメソッドと、"グローバル"変数(プロセス変数とインタープロセス変数) を探します。 検索結果は標準の [結果ウィンドウ](#結果ウィンドウ) に表示されます。 +このコマンドは、宣言されているものの使用されていないプロジェクトメソッドと、"グローバル"変数(プロセス変数とインタープロセス変数) を探します。検索結果は標準の [結果ウィンドウ](#結果ウィンドウ) に表示されます。 プロジェクトメソッドは、以下のようの場合に未使用であると判断されます: @@ -265,18 +262,18 @@ title: 検索と置換 - 4D コード内でどこでも使用されていない - どのフォームオブジェクトでも使用されていない -ただしこの機能では特定の用法は検知できないことに注意してください。つまり、未使用と判断された要素が使用されていることが有り得るということです。 これは以下のようなコードの場合に当てはまります: +ただしこの機能では特定の用法は検知できないことに注意してください。つまり、未使用と判断された要素が使用されていることが有り得るということです。これは以下のようなコードの場合に当てはまります: ```4d var v : Text :="method" EXECUTE FORMULA("my"+v+String(42)) ``` -このコードはメソッド名をビルドします。 *mymethod42* プロジェクトメソッドは実際には呼び出されていますが、ここでは未使用であると判断されてしまいます。 そのため、未使用であると宣言された要素が実際に不要であるかどうかを、削除する前に確認することが望ましいといえます。 +このコードはメソッド名をビルドします。 *mymethod42* プロジェクトメソッドは実際には呼び出されていますが、ここでは未使用であると判断されてしまいます。そのため、未使用であると宣言された要素が実際に不要であるかどうかを、削除する前に確認することが望ましいといえます。 ### 未使用のローカル変数を検索 -このコマンドは宣言されているものの使用されていないローカル変数を探します。 検索結果は標準の [結果ウィンドウ](#結果ウィンドウ) に表示されます。 +このコマンドは宣言されているものの使用されていないローカル変数を探します。検索結果は標準の [結果ウィンドウ](#結果ウィンドウ) に表示されます。 ローカル変数は、以下のような場合に未使用であると判断されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$atomic_$atonce.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$atomic_$atonce.md index 5cf25f8083e2ab..8b818f1d5bbfe9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$atomic_$atonce.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$atomic_$atonce.md @@ -3,7 +3,7 @@ id: atomic_$atonce title: $atomic/$atOnce --- -RESTリクエストに含まれる操作をトランザクション内で処理します。 エラーがなかった場合、トランザクションは受け入れられます。 それ以外の場合、トランザクションはキャンセルされます。 +RESTリクエストに含まれる操作をトランザクション内で処理します。エラーがなかった場合、トランザクションは受け入れられます。それ以外の場合、トランザクションはキャンセルされます。 ## 説明 @@ -64,4 +64,4 @@ RESTリクエストに含まれる操作をトランザクション内で処理 } ``` -> 1つ目のエンティティの名前は "John" ですが、この値はサーバー上に保存されず、タイムスタンプも変更されません。 したがって、エンティティをリロードすると、もとの値に戻ります。 +> 1つ目のエンティティの名前は "John" ですが、この値はサーバー上に保存されず、*タイムスタンプ (__STAMP)* も変更されません。したがって、エンティティをリロードすると、もとの値に戻ります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md index e5bb0880449529..cc3d528af089c8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$attributes.md @@ -11,7 +11,7 @@ title: $attributes `$attributes` はエンティティ (*例:* People(1)) またはエンティティセレクション (*例:* People/$entityset/0AF4679A5C394746BFEB68D2162A19FF) に対して適用できます。 -- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。 **リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。 **リレートエンティティズ** 属性は抽出されません。 +- クエリに `$attributes` が指定されていない場合、または "\*" が渡された場合、すべての取得可能な属性が取得されます。**リレートエンティティ** 属性は、`__KEY` (プライマリーキー) と `URI` プロパティを持つオブジェクトという簡単な形で抽出されます。**リレートエンティティズ** 属性は抽出されません。 - **リレートエンティティ** 属性を対象に `$attributes` が指定された場合: - `$attributes=relatedEntity`: リレートエンティティは簡単な形で返されます (`__KEY` (プライマリーキー) と `URI` プロパティを持つ deferred オブジェクト) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$catalog.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$catalog.md index 69835c45d33fc5..021ebedce453d3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$catalog.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$catalog.md @@ -22,7 +22,7 @@ title: $catalog `$catalog` を呼び出すと、プロジェクトのデータストア内のデータクラスのリストを、データクラス毎に 2つの URI とともに返します。 -プロジェクトのデータストア内の、公開されているデータクラスのみがリストされます。 詳細については、[**テーブルやフィールドの公開**](configuration.md#テーブルやフィールドの公開) を参照してください。 +プロジェクトのデータストア内の、公開されているデータクラスのみがリストされます。詳細については、[**テーブルやフィールドの公開**](configuration.md#テーブルやフィールドの公開) を参照してください。 データクラス毎に返されるプロパティの説明です: @@ -180,7 +180,7 @@ title: $catalog ### 説明 -`$catalog/\{dataClass\}` を呼び出すと、指定したデータクラスとその属性について詳細な情報が返されます。 プロジェクトのデータストア内のすべてのデータクラスに関して同様の情報を得るには [`$catalog/$all`](#catalogall) を使います。 +`$catalog/\{dataClass\}` を呼び出すと、指定したデータクラスとその属性について詳細な情報が返されます。プロジェクトのデータストア内のすべてのデータクラスに関して同様の情報を得るには [`$catalog/$all`](#catalogall) を使います。 返される情報は次の通りです: @@ -211,9 +211,9 @@ title: $catalog | kind | Text | 属性タイプ (ストレージ (storage) またはリレートエンティティ (relatedEntity)) | | fieldPos | Number | データベーステーブルのフィールド番号 | | scope | Text | 属性のスコープ (公開 (public) に設定されている属性のみ返されます) | -| indexed | Text | 属性に **インデックス** が設定されていれば、このプロパティは true を返します。 それ以外の場合には、このプロパティは表示されません。 | +| indexed | Text | 属性に **インデックス** が設定されていれば、このプロパティは true を返します。それ以外の場合には、このプロパティは表示されません。 | | type | Text | 属性タイプ (bool, blob, byte, date, duration, image, long, long64, number, string, uuid, word)、または、N->1 リレーション属性の場合はリレーション先のデータクラス | -| identifying | Boolean | 属性がプライマリーキーの場合、プロパティは true を返します。 それ以外の場合には、このプロパティは表示されません。 | +| identifying | Boolean | 属性がプライマリーキーの場合、プロパティは true を返します。それ以外の場合には、このプロパティは表示されません。 | | path | Text | relatedEntity 属性の場合はデータクラス名、relatedEntities 属性の場合はリレーション名 | | foreignKey | Text | relatedEntity 属性の場合、リレート先の属性名 | | inverseName | Text | relatedEntity または relatedEntities 属性の逆方向リレーション名 | @@ -328,7 +328,7 @@ key オブジェクトには、データクラスの **プライマリーキー* ## シングルトン -1つ以上の [公開関数](../ORDA/ordaClasses.md#公開vs非公開関数) を含む [共有シングルトン](../Concepts/classes.md#シングルトンクラス) を定義している場合、`/$catalog` と `/$catalog/$all` の両方の構文で、返される json に `singletons` セクションが追加されます。 コレクションの形でまとめられたシングルトンクラスは、それぞれ **name** (クラス名) と **method** (公開関数名) を持つオブジェクト要素として格納されます。 +1つ以上の [公開関数](../ORDA/ordaClasses.md#公開vs非公開関数) を含む [共有シングルトン](../Concepts/classes.md#シングルトンクラス) を定義している場合、`/$catalog` と `/$catalog/$all` の両方の構文で、返される json に `singletons` セクションが追加されます。コレクションの形でまとめられたシングルトンクラスは、それぞれ **name** (クラス名) と **method** (公開関数名) を持つオブジェクト要素として格納されます。 シングルトン関数は、[`$singleton` コマンド]($singleton.md) を使用した RESTリクエストで呼び出すことができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$clean.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$clean.md index eb12617a66fe67..b9a6820c8ba314 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$clean.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$clean.md @@ -9,7 +9,7 @@ title: $clean `$clean`は、`entitySetID` と同じエンティティを含む新しいエンティティセットを作成しますが、その際に削除されたエンティティへの参照があれば取り除きます。 -デフォルトでは、あるエンティティが [削除]($method.md#methoddelete) された場合、既存のエンティティセレクション内のこのエンティティへの参照は *undefined* になりますが、参照そのものは削除されません。 また、エンティティセットの "count" プロパティにも含まれたままです。 返されるエンティティセットには、まだ 3つのエンティティが含まれています。 削除されたエンティティに対応する、未定義のエンティティが 1つあります (__STAMP = 0): +デフォルトでは、あるエンティティが [削除]($method.md#methoddelete) された場合、既存のエンティティセレクション内のこのエンティティへの参照は *undefined* になりますが、参照そのものは削除されません。また、エンティティセットの "count" プロパティにも含まれたままです。返されるエンティティセットには、まだ 3つのエンティティが含まれています。 削除されたエンティティに対応する、未定義のエンティティが 1つあります (__STAMP = 0): `$clean` の後に、[`$method=entityset`]($method.md#methodentityset) を追加すると、サーバー上に新しいエンティティセットを作成できます。 @@ -77,7 +77,7 @@ title: $clean `GET /rest/Speciality/$entityset/DF6903FB5879404A9A818884CFC6F62A` -返されるエンティティセットには、まだ 3つのエンティティが含まれています。 削除されたエンティティに対応する、未定義のエンティティが 1つあります (__STAMP = 0): +返されるエンティティセットには、まだ 3つのエンティティが含まれています。削除されたエンティティに対応する、未定義のエンティティが 1つあります (__STAMP = 0): ```json { diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$compute.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$compute.md index 38f38638f3479b..81e1b559b4ceae 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$compute.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$compute.md @@ -13,7 +13,7 @@ title: $compute `GET /rest/Employee/salary/?$compute=$all` -オブジェクト属性の場合は、プロパティを指定します。 例: +オブジェクト属性の場合は、プロパティを指定します。例: `GET /rest/Employee/objectAtt.property1/?$compute=$all` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$directory.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$directory.md index dc3f2e9509d7ad..26197d62534745 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$directory.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$directory.md @@ -11,7 +11,7 @@ title: $directory ### 説明 -RESTを介して 4Dアプリケーション上でセッションを開き、ユーザーをログインするには、`$directory/login` を使います。 デフォルトの 4Dセッションタイムアウトを変更することもできます。 +RESTを介して 4Dアプリケーション上でセッションを開き、ユーザーをログインするには、`$directory/login` を使います。デフォルトの 4Dセッションタイムアウトを変更することもできます。 パラメーターはすべて、POST の **ヘッダー** に渡す必要があります: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$distinct.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$distinct.md index 962b20e1c34eca..4a8520f542a78e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$distinct.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$distinct.md @@ -7,7 +7,7 @@ title: $distinct ## 説明 -`$distinct` を使って、指定した属性における重複しない値を格納したコレクションを取得することができます。 その際、データクラスの属性を一つのみを指定することができます。 通常は文字列型の属性を対象に使用しますが、複数の値を持つ属性であれば、その型に制限はありません。 +`$distinct` を使って、指定した属性における重複しない値を格納したコレクションを取得することができます。その際、データクラスの属性を一つのみを指定することができます。通常は文字列型の属性を対象に使用しますが、複数の値を持つ属性であれば、その型に制限はありません。 対象となる要素を制限するのに `$skip` および `$top/$limit` も組み合わせて使用することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$entityset.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$entityset.md index 027e26400297cb..191d18512b9287 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$entityset.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$entityset.md @@ -27,7 +27,7 @@ title: $entityset ### 例題 -エンティティセットを作成すると、データとともにエンティティセットIDが返されます。 このIDは次のように使います: +エンティティセットを作成すると、データとともにエンティティセットIDが返されます。このIDは次のように使います: `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7` @@ -57,7 +57,7 @@ title: $entityset > 論理演算子の文字の大小は区別されないため、"AND" とも "and" とも書けます。 -2つのエンティティセットを対象に論理演算子を使用した場合のベン図は下のとおりです。 赤く塗られた部分が返されるものです。 +2つのエンティティセットを対象に論理演算子を使用した場合のベン図は下のとおりです。赤く塗られた部分が返されるものです。 **AND** @@ -85,7 +85,7 @@ title: $entityset `GET /rest/Employee/$entityset/9718A30BF61343C796345F3BE5B01CE7?$logicOperator=intersect&$otherCollection=C05A0D887C664D4DA1B38366DD21629B` -共通のエンティティが存在する場合、このクエリは true を返します。 それ以外の場合は false を返します。 +共通のエンティティが存在する場合、このクエリは true を返します。それ以外の場合は false を返します。 次の例では、2つのエンティティセットのいずれかあるいは両方に含まれているエンティティすべてを格納した新しいエンティティセットを作成します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$expand.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$expand.md index 0a436e41408303..f9fdeb80a42717 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$expand.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$expand.md @@ -7,7 +7,7 @@ title: $expand または
    保存するために BLOB属性を展開します。 -> **互換性に関する注記**: 互換性のため、$expand はリレーション属性を展開するのに使用できます (*例*: `Company(1)?$expand=staff` または `Employee/?$filter="firstName BEGIN a"&$expand=employer`)。 しかしながら、これらの場合には [`$attributes`]($attributes.md) を使用するのが推奨されます。 +> **互換性に関する注記**: 互換性のため、$expand はリレーション属性を展開するのに使用できます (*例*: `Company(1)?$expand=staff` または `Employee/?$filter="firstName BEGIN a"&$expand=employer`)。しかしながら、これらの場合には [`$attributes`]($attributes.md) を使用するのが推奨されます。 ## 画像属性の表示 @@ -15,7 +15,7 @@ title: $expand `GET /rest/Employee(1)/photo?$imageformat=best&$version=1&$expand=photo` -画像形式についての詳細は [`$imageformat`]($imageformat.md) を参照ください。 パラメーターについての詳細は [`$version`]($version.md) を参照ください。 +画像形式についての詳細は [`$imageformat`]($imageformat.md) を参照ください。パラメーターについての詳細は [`$version`]($version.md) を参照ください。 ## BLOB属性のディスク保存 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$filter.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$filter.md index f042882b65a63c..7d99e47d4123e3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$filter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$filter.md @@ -58,9 +58,9 @@ title: $filter ## 属性 -同じデータクラスに属している属性はそのまま受け渡せます (*例*: `firstName`)。 別のデータクラスをクエリする場合は、リレーション名と属性、つまりパスを渡さなくてはなりません (*例*: employer.name)。 属性名の文字の大小は区別されます (`firstName` と `FirstName` は異なります)。 +同じデータクラスに属している属性はそのまま受け渡せます (*例*: `firstName`)。別のデータクラスをクエリする場合は、リレーション名と属性、つまりパスを渡さなくてはなりません (*例*: employer.name)。属性名の文字の大小は区別されます (`firstName` と `FirstName` は異なります)。 -オブジェクト型属性もドット記法によってクエリできます。 たとえば、"objAttribute" という名称のオブジェクト属性が次の構造を持っていた場合: +オブジェクト型属性もドット記法によってクエリできます。たとえば、"objAttribute" という名称のオブジェクト属性が次の構造を持っていた場合: ``` { @@ -100,13 +100,13 @@ title: $filter *vectorComparison* パラメーターは、以下のような要素を格納したコレクションです: -| プロパティ | 型 | 説明 | -| -------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [].vector | 数値のコレクション | 必須設定です。 必須設定です。 比較するベクトルを表すコレクションです | -| [].metric | Text | 任意。 クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。 サポートされる値:
  • "cosine" (省略時のデフォルト): ベクトル間のコサイン類似度を計算します。
  • "dot": ベクトル間のドット類似度を計算します。
  • "euclidean": ベクトル間のユークリッド距離を計算します。 | -| [].threshold | Real | 任意(デフォルト: 0.5)。 選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。 最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | +| プロパティ | 型 | 説明 | +| -------------------------------------------------------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | 数値のコレクション | 必須設定です。必須設定です。 比較するベクトルを表すコレクションです | +| [].metric | Text | 任意。クエリに使用する[ベクトル計算](../API/VectorClass.md#ことなるベクトル計算を理解する)。サポートされる値:
  • "cosine" (省略時のデフォルト): ベクトル間のコサイン類似度を計算します。
  • "dot": ベクトル間のドット類似度を計算します。
  • "euclidean": ベクトル間のユークリッド距離を計算します。 | +| [].threshold | Real | 任意(デフォルト: 0.5)。選択された"metric"に従って、コサイン、ドット、またはユークリッド類似度に基づいたベクトル比較をフィルタリングするために使用されるしきい値。最適な結果を得るためには、特定の用途に最適な類似度のしきい値をきちんと選択することが強く推奨されます。 | -ベクトル比較では **comparator** 記号の一部のみがサポートされます。 これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: +ベクトル比較では **comparator** 記号の一部のみがサポートされます。これらの比較記号は、結果としきい値を比較するのに使用されるという点に注意してください: | 比較演算子 | 記号 | 説明 | | ----- | --------------------------- | --------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$imageformat.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$imageformat.md index fb5f36fae1700c..3964d10af12817 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$imageformat.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$imageformat.md @@ -7,7 +7,7 @@ title: $imageformat ## 説明 -画像の表示に使う形式を指定します。 次の形式が指定できます (拡張子、MIMEタイプ、OSType Mac がサポートされています): +画像の表示に使う形式を指定します。次の形式が指定できます (拡張子、MIMEタイプ、OSType Mac がサポートされています): | 型 | 説明 | | ---------------------------------------- | -------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$info.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$info.md index ac77ce85d41832..e5d191069eddb9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$info.md @@ -9,28 +9,28 @@ title: $info プロジェクトに対してこのリクエストを送信すると、次のプロパティに情報を取得します: -| プロパティ | 型 | 説明 | -| -------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- | -| cacheSize | Number | 4D Server のキャッシュサイズ | -| usedCache | Number | 4D Server のキャッシュ使用量 | -| entitySetCount | Number | エンティティセットの数 | -| entitySet | Collection | 各エンティティセットの情報が格納されているオブジェクトのコレクション | -| ProgressInfo | Collection | 進捗インジケーターの情報が格納されているコレクション | -| sessionInfo | Collection | 各ユーザーセッションの情報が格納されているオブジェクトのコレクション | -| privileges | Object | "privileges" プロパティ (オブジェクトのコレクション) を持つオブジェクト。 コレクションの各オブジェクト要素は、ユーザーセッションの権限名を値とする "privilege" プロパティを持ちます。 | +| プロパティ | 型 | 説明 | +| -------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------- | +| cacheSize | Number | 4D Server のキャッシュサイズ | +| usedCache | Number | 4D Server のキャッシュ使用量 | +| entitySetCount | Number | エンティティセットの数 | +| entitySet | Collection | 各エンティティセットの情報が格納されているオブジェクトのコレクション | +| ProgressInfo | Collection | 進捗インジケーターの情報が格納されているコレクション | +| sessionInfo | Collection | 各ユーザーセッションの情報が格納されているオブジェクトのコレクション | +| privileges | Object | "privileges" プロパティ (オブジェクトのコレクション) を持つオブジェクト。コレクションの各オブジェクト要素は、ユーザーセッションの権限名を値とする "privilege" プロパティを持ちます。 | ### entitySet 4D Server のキャッシュに保存されている各エンティティセットについて、次の情報が返されます: -| プロパティ | 型 | 説明 | -| ------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| id | Text | エンティティセットを参照する UUID | -| dataClass | Text | データクラスの名称。 | -| selectionSize | Number | エンティティセットに含まれるエンティティの数 | -| sorted | Boolean | エンティティセットが (`$orderby` の使用により) 順列ありの場合には true、順列なしの場合は false。 | -| refreshed | Date | エンティティセットが最後に使用された日付または作成日。 | -| expires | Date | エンティティセットの有効期限 (エンティティセットが更新されるたびに、この日付/時間は変更されます)。 expires と refreshed の差がエンティティセットのタイムアウトです。 デフォルトのタイムアウトは2時間ですが、`$timeout` を使って指定することもできます。 また、[`Session.quotas`](../API/SessionClass.md#quotas) プロパティを使用してセッションに対して変更することもできます。 | +| プロパティ | 型 | 説明 | +| ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| id | Text | エンティティセットを参照する UUID | +| dataClass | Text | データクラスの名称。 | +| selectionSize | Number | エンティティセットに含まれるエンティティの数 | +| sorted | Boolean | エンティティセットが (`$orderby` の使用により) 順列ありの場合には true、順列なしの場合は false。 | +| refreshed | Date | エンティティセットが最後に使用された日付または作成日。 | +| expires | Date | エンティティセットの有効期限 (エンティティセットが更新されるたびに、この日付/時間は変更されます)。 expires と refreshed の差がエンティティセットのタイムアウトです。デフォルトのタイムアウトは2時間ですが、`$timeout` を使って指定することもできます。また、[`Session.quotas`](../API/SessionClass.md#quotas) プロパティを使用してセッションに対して変更することもできます。 | エンティティセットを作成する方法についての詳細は [`$method=entityset`](./$method.md#methodentityset) を参照ください。 4D Server のキャッシュからエンティティセットを削除したい場合には [`$entityset/$release`](./$entityset.md#entitysetrelease) を使います。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md index 9c578443e486b7..c65f105892babf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$lock.md @@ -50,7 +50,7 @@ REST API によってロックされたエンティティは、次の場合に | statusText | | text | エラーの詳細、以下参照 | | lockKind | | number | ロックコード | | lockKindText | | text | "Locked by session" RESTセッションによるロック、"Locked by record" 4Dプロセスによるロック | -| lockInfo | | object | ロック元についての情報。 返されるプロパティはロック元 (4Dプロセスまたは RESTセッション) によって異なります。 | +| lockInfo | | object | ロック元についての情報。返されるプロパティはロック元 (4Dプロセスまたは RESTセッション) によって異なります。 | | | | | ***4Dプロセスによるロックの場合:*** | | | task_id | number | プロセスID | | | user_name | text | マシン上でのセッションユーザー名 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md index 3609f25ab83071..ef04f18825f9cd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$method.md @@ -20,7 +20,7 @@ title: $method ### 説明 -`$method=delete` を使ってエンティティ、またはエンティティセレクションを削除します。 たとえば、[`$filter`]($filter.md) を使って定義したエンティティセレクションや、[`\{dataClass\}(\{key\})`](dataClassD.md#dataclasskey) (*例*: /Employee(22)) のように直接特定したエンティティが対象です。 +`$method=delete` を使ってエンティティ、またはエンティティセレクションを削除します。たとえば、[`$filter`]($filter.md) を使って定義したエンティティセレクションや、[`\{dataClass\}(\{key\})`](dataClassD.md#dataclasskey) (*例*: /Employee(22)) のように直接特定したエンティティが対象です。 [`$entityset/\{entitySetID\}`]($entityset.md#entitysetentitysetid) のようにエンティティセットを呼び出して、そこに含まれるエンティティを削除することもできます。 @@ -52,13 +52,13 @@ RESTリクエストで定義されたエンティティのコレクションに ### 説明 -RESTでエンティティのコレクションを作成した場合、これをエンティティセットとして 4D Server のキャッシュに保存することができます。 エンティティセットには参照番号が付与されます。これを `$entityset/\{entitySetID\}` に渡すと、当該エンティティセットにアクセスできます。 デフォルトで、エンティティセットは 2時間有効です。[`$timeout`](./$timeout.md) に値 (秒単位) を渡すことで、有効時間を変更できます。 また、[`Session.quotas`](../API/SessionClass.md#quotas) プロパティを使用してセッションに対して変更することもできます。 +RESTでエンティティのコレクションを作成した場合、これをエンティティセットとして 4D Server のキャッシュに保存することができます。エンティティセットには参照番号が付与されます。これを `$entityset/\{entitySetID\}` に渡すと、当該エンティティセットにアクセスできます。デフォルトで、エンティティセットは 2時間有効です。[`$timeout`](./$timeout.md) に値 (秒単位) を渡すことで、有効時間を変更できます。また、[`Session.quotas`](../API/SessionClass.md#quotas) プロパティを使用してセッションに対して変更することもできます。 エンティティセットを作成する際に、`$filter` や `$orderby` と同時に`$savedfilter` や `$savedorderby` も使用していた場合には、4D Server のキャッシュからエンティティセットが削除されていても、同じ参照IDで再作成できます。 :::note -デフォルトでは、エンティティセットを必要なだけ作成できます。 ただし、4D Server キャッシュに保持されるエンティティの数は、特定のセッションに対し、[`Session.quotas`](../API/SessionClass.md#quotas)プロパティを使用して制限することができます。 +デフォルトでは、エンティティセットを必要なだけ作成できます。ただし、4D Server キャッシュに保持されるエンティティの数は、特定のセッションに対し、[`Session.quotas`](../API/SessionClass.md#quotas)プロパティを使用して制限することができます。 ::: @@ -90,7 +90,7 @@ RESTリクエストで定義されたリレートエンティティのコレク `$method=subentityset` を使うことで、RESTリクエストが定義されたリレーション属性によって返されるデータを並べ替えることができます。 -データを並べ替えるには `$subOrderby` を使います。 並べ替えの基準とする各属性について、並べ替え順を指定します。 ASC ( asc) が昇順、DESC (desc) が降順です。 デフォルトでは、データは昇順に並べ替えられます。 +データを並べ替えるには `$subOrderby` を使います。並べ替えの基準とする各属性について、並べ替え順を指定します。 ASC ( asc) が昇順、DESC (desc) が降順です。デフォルトでは、データは昇順に並べ替えられます。 複数の属性を指定するには、カンマ区切りにします (`例`: $subOrderby="lastName desc, firstName asc")。 @@ -150,21 +150,21 @@ RESTリクエストで定義されたリレートエンティティのコレク ### 説明 -`$method=update` を使うと、一つの **POST** で一つ以上のエンティティを更新または作成することができます。 エンティティの更新・作成をおこなうには、オブジェクトのプロパティ/値としてエンティティの属性/値を指定します (*例*: `{ lastName: "Smith" }`)。 複数のエンティティを更新・作成するには、各エンティティに対応するオブジェクトをコレクションにまとめます。 +`$method=update` を使うと、一つの **POST** で一つ以上のエンティティを更新または作成することができます。エンティティの更新・作成をおこなうには、オブジェクトのプロパティ/値としてエンティティの属性/値を指定します (*例*: `{ lastName: "Smith" }`)。複数のエンティティを更新・作成するには、各エンティティに対応するオブジェクトをコレクションにまとめます。 いずれの場合も、リクエストのボディ (**body**) に **POST** データを格納します。 -エンティティを更新するには、更新する属性だけでなく、`__KEY` および `__STAMP` パラメーターをオブジェクト内に指定しなくてはなりません。 これらのパラメーターがない場合、**POST** のボディに格納したオブジェクトの値をもとに新規エンティティが追加されます。 +エンティティを更新するには、更新する属性だけでなく、`__KEY` および `__STAMP` パラメーターをオブジェクト内に指定しなくてはなりません。これらのパラメーターがない場合、**POST** のボディに格納したオブジェクトの値をもとに新規エンティティが追加されます。 -エンティティをサーバーに保存すると同時にトリガーが実行されます。 レスポンスにはすべてのデータが、サーバー上に存在するとおりに格納されます。 +エンティティをサーバーに保存すると同時にトリガーが実行されます。レスポンスにはすべてのデータが、サーバー上に存在するとおりに格納されます。 -`$atomic/$atOnce` を使うと、エンティティを作成・更新するリクエストをトランザクション内で実行できます。 データの検証でエラーが発生した場合に、一部のエンティティだけが処理されてしまうのを防げます。 また、`$method=validate` を使うと、作成・更新の前にエンティティを検証することができます。 +`$atomic/$atOnce` を使うと、エンティティを作成・更新するリクエストをトランザクション内で実行できます。データの検証でエラーが発生した場合に、一部のエンティティだけが処理されてしまうのを防げます。また、`$method=validate` を使うと、作成・更新の前にエンティティを検証することができます。 エンティティを追加または更新する際に問題が発生すると、その情報を格納したエラーが返されます。 :::note -- **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。 日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。 この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 +- **日付** は JavaScript 形式で表す必要があります: YYYY-MM-DDTHH:MM:SSZ (例: "2010-10-05T23:00:00Z")。日付属性のためだけに日付プロパティを指定した場合、タイムゾーンおよび時刻 (時間・分・秒) の情報は削除されます。この場合、レスポンスの形式 dd!mm!yyyy (例: 05!10!2013) を使って日付を送信することも可能です。 - **ブール** は true または false です。 - `$upload` を使ってアップロードしたファイルは、`{ "ID": "D507BC03E613487E9B4C2F6A0512FE50"}` のような形式で返されるオブジェクトを渡すことで、ピクチャー型やBLOB型の属性に適用できます。 @@ -221,7 +221,7 @@ RESTリクエストで定義されたリレートエンティティのコレク **レスポンス:** -エンティティを追加・更新した場合、そのエンティティは変更後の内容で返されます。 たとえば、新規の Employee エンティティを作成した場合、次のようなレスポンスが返されます: +エンティティを追加・更新した場合、そのエンティティは変更後の内容で返されます。たとえば、新規の Employee エンティティを作成した場合、次のようなレスポンスが返されます: ```json { diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$orderby.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$orderby.md index 094d43003a4300..c3986641f841a5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$orderby.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$orderby.md @@ -7,7 +7,7 @@ title: $orderby ## 説明 -`$orderby` は RESTリクエストによって返されるエンティティを並べ替えます。 並べ替えの基準とする各属性について、並べ替え順を指定します。`ASC` ( `asc`) が昇順、`DESC` (`desc`) が降順です。 デフォルトでは、データは昇順に並べ替えられます。 属性を複数指定するには、カンマ区切りにします。*例*: `$orderby="lastName desc, firstName asc"`。 +`$orderby` は RESTリクエストによって返されるエンティティを並べ替えます。並べ替えの基準とする各属性について、並べ替え順を指定します。`ASC` ( `asc`) が昇順、`DESC` (`desc`) が降順です。デフォルトでは、データは昇順に並べ替えられます。属性を複数指定するには、カンマ区切りにします。*例*: `$orderby="lastName desc, firstName asc"`。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$querypath.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$querypath.md index c185e808af1c41..d35c8b8c0663ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$querypath.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$querypath.md @@ -7,7 +7,7 @@ title: $querypath ## 説明 -`$querypath` は、4D Server によって実際に実行されたクエリを返します。 たとえば、クエリの一部がエンティティを返さなかった場合、残りのクエリは実行されません。 `$querypath` で確認されるとおり、クエリリクエストは最適化されます。 +`$querypath` は、4D Server によって実際に実行されたクエリを返します。たとえば、クエリの一部がエンティティを返さなかった場合、残りのクエリは実行されません。 `$querypath` で確認されるとおり、クエリリクエストは最適化されます。 クエリパスについての詳細は [queryPlan と queryPath](genInfo.md#querypath-と-queryplan) を参照ください。 @@ -64,7 +64,7 @@ __queryPath: { } ``` -最初のクエリが一つ以上のエンティティを返した場合には、二つめのクエリが実行されます。 以下のクエリを実行した場合: +最初のクエリが一つ以上のエンティティを返した場合には、二つめのクエリが実行されます。以下のクエリを実行した場合: `GET /rest/Employee/$filter="employer.name=a* AND lastName!=smith"&$querypath=true` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$savedfilter.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$savedfilter.md index 2012597f622f76..fa7f25c57afb0a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$savedfilter.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$savedfilter.md @@ -11,7 +11,7 @@ title: $savedfilter `$savedfilter` を使用してエンティティセット作成時に使ったフィルターを保存したあとは、エンティティセットを取得する度に `$savedfilter` も受け渡します。 -4D Server のキャッシュからエンティティセットが消えていた場合、10分のデフォルトタイムアウトで再作成されます。 エンティティセットが消えていた場合、再作成されるエンティティセットの内容は更新されたものです (新しくエンティティが追加されていたり、存在していたエンティティが削除されていたりする場合がありえます)。 +4D Server のキャッシュからエンティティセットが消えていた場合、10分のデフォルトタイムアウトで再作成されます。エンティティセットが消えていた場合、再作成されるエンティティセットの内容は更新されたものです (新しくエンティティが追加されていたり、存在していたエンティティが削除されていたりする場合がありえます)。 エンティティセットの作成時に `$savedfilter` と [`$savedorderby`]($savedorderby.md) の両方を使用したにも関わらず、次の呼び出しでは片方を省略すると、返されるエンティティセットは同じ参照番号を持ちながら、この変更を反映します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$savedorderby.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$savedorderby.md index 3564ce22ae4020..b7334d3fdffc18 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$savedorderby.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$savedorderby.md @@ -11,7 +11,7 @@ title: $savedorderby `$savedorderby` を使用してエンティティセット作成時に使った並べ替え情報を保存したあとは、エンティティセットを取得する度に `$savedorderby` も受け渡します。 -4D Server のキャッシュからエンティティセットが消えていた場合、10分のデフォルトタイムアウトで再作成されます。 エンティティセットの作成時に [`$savedfilter`]($savedfilter.md) と `$savedorderby` の両方を使用したにも関わらず、次の呼び出しでは片方を省略すると、返されるエンティティセットは同じ参照番号を持ちながら、この変更を反映します。 +4D Server のキャッシュからエンティティセットが消えていた場合、10分のデフォルトタイムアウトで再作成されます。エンティティセットの作成時に [`$savedfilter`]($savedfilter.md) と `$savedorderby` の両方を使用したにも関わらず、次の呼び出しでは片方を省略すると、返されるエンティティセットは同じ参照番号を持ちながら、この変更を反映します。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$singleton.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$singleton.md index 11d6285153df40..b335ce2e8006f1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$singleton.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$singleton.md @@ -5,7 +5,7 @@ title: $singleton [共有シングルトンの公開関数](../Concepts/classes.md#シングルトンクラス) は、REST で直接呼び出すことができます。 -シングルトン関数は、`$singleton` コマンド (`()`は不要です) を使用して POSTリクエストまたはGET リクエストで呼び出されます。 たとえば、`VehicleFactory` 共有シングルトンクラスに `buildVehicle()` 関数を定義した場合、次のリクエストで呼び出すことができます: +シングルトン関数は、`$singleton` コマンド (`()`は不要です) を使用して POSTリクエストまたはGET リクエストで呼び出されます。たとえば、`VehicleFactory` 共有シングルトンクラスに `buildVehicle()` 関数を定義した場合、次のリクエストで呼び出すことができます: ```json /rest/$singleton/VehicleFactory/buildVehicle @@ -57,9 +57,9 @@ POST リクエストのボディに関数に渡す引数を含めます: `["mypa ## 引数 -シングルトン関数に引数を渡すことができます。 サーバーサイドでこれらの引数は、シングルトンクラス関数の [宣言されたパラメーター](../Concepts/parameters.md#パラメーターの宣言) に受け渡されます。 +シングルトン関数に引数を渡すことができます。サーバーサイドでこれらの引数は、シングルトンクラス関数の [宣言されたパラメーター](../Concepts/parameters.md#パラメーターの宣言) に受け渡されます。 -シングルトン関数に引数を渡す方法は、ORDAクラスの関数に引数を渡すのとまったく同じです。 詳細については、["クラス関数の呼び出し" ページの **引数** の段落](ClassFunctions.md#引数) を参照ください。 +シングルトン関数に引数を渡す方法は、ORDAクラスの関数に引数を渡すのとまったく同じです。詳細については、["クラス関数の呼び出し" ページの **引数** の段落](ClassFunctions.md#引数) を参照ください。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$skip.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$skip.md index 62ba128bb3912e..8bf3cafabf26b8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$skip.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$skip.md @@ -7,7 +7,7 @@ title: $skip ## 説明 -`$skip` はセレクション内のどのエンティティから処理を開始するかを指定します。 デフォルトでは、先頭エンティティから開始します。 10番目のエンティティから開始するには、10を渡します。 +`$skip` はセレクション内のどのエンティティから処理を開始するかを指定します。デフォルトでは、先頭エンティティから開始します。 10番目のエンティティから開始するには、10を渡します。 `$skip` は通常、[`$top/$limit`]($top_$limit.md) との組み合わせで使用され、エンティティセレクション内をナビゲートするのに使います。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$timeout.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$timeout.md index c37d28595b6faa..2779beb87cfdd9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$timeout.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$timeout.md @@ -7,7 +7,7 @@ title: $timeout ## 説明 -[`$method=entityset`]($method.md#methodentityset) を使って作成するエンティティセットについてタイムアウトを指定するには任意の秒数を `$timeout` に渡します。 たとえば、20分のタイムアウトを設定するには、1200を渡します。 デフォルトのタイムアウトは 2時間です。 +[`$method=entityset`]($method.md#methodentityset) を使って作成するエンティティセットについてタイムアウトを指定するには任意の秒数を `$timeout` に渡します。たとえば、20分のタイムアウトを設定するには、1200を渡します。デフォルトのタイムアウトは 2時間です。 一旦タイムアウトが定義されると、(`$method=entityset` によって) エンティティセットが呼び出される度に現時刻とタイムアウトに基づいて有効期限が再計算されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$top_$limit.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$top_$limit.md index 08e4f6462a0295..8d93a9d7303bc7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$top_$limit.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$top_$limit.md @@ -7,7 +7,7 @@ title: $top/$limit ## 説明 -`$top/$limit` は返されるエンティティの数を制限します。 この数字はデフォルトで 100件です。 `$top` および `$limit` のどちらでも利用できます。 +`$top/$limit` は返されるエンティティの数を制限します。この数字はデフォルトで 100件です。 `$top` および `$limit` のどちらでも利用できます。 [`$skip`]($skip.md) と組み合わせて使用すると、RESTリクエストによって返されるエンティティセレクション内を移動することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$upload.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$upload.md index d8a6b8ceba4eb1..38aac878f81679 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$upload.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$upload.md @@ -7,7 +7,7 @@ title: $upload ## 説明 -サーバーにアップロードしたいファイルがある場合にこのリクエストを POST します。 画像の場合には `$rawPict=true` を渡します。 その他のファイルの場合は `$binary=true` を渡します。 +サーバーにアップロードしたいファイルがある場合にこのリクエストを POST します。画像の場合には `$rawPict=true` を渡します。その他のファイルの場合は `$binary=true` を渡します。 デフォルトのタイムアウトは 120秒ですが、`$timeout` パラメーターに任意の数値を渡してタイムアウトを変更できます。 @@ -15,7 +15,7 @@ title: $upload エンティティのピクチャー属性を更新するために、画像をアップロードしたい場合を考えます。 -画像 (または任意のバイナリーファイル) をアップロードするには、まずクライアントアプリケーションにてファイルを選択する必要があります。 ファイル自体はリクエストの **ボディ** に渡す必要があります。 +画像 (または任意のバイナリーファイル) をアップロードするには、まずクライアントアプリケーションにてファイルを選択する必要があります。ファイル自体はリクエストの **ボディ** に渡す必要があります。 次に、下のようなリクエストを使用して、選択した画像を 4D Server にアップロードします: @@ -27,7 +27,7 @@ title: $upload `{ "ID": "D507BC03E613487E9B4C2F6A0512FE50" }` -この画像をエンティティに追加するには、返された ID を使い [`$method=update`]($method.md#methodupdate) で画像属性に保存します。 リクエストは次のようになります: +この画像をエンティティに追加するには、返された ID を使い [`$method=update`]($method.md#methodupdate) で画像属性に保存します。リクエストは次のようになります: `POST /rest/Employee/?$method=update` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$version.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$version.md index 397b6bb38704fc..6242fc0d722fb1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/$version.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/$version.md @@ -7,7 +7,7 @@ title: $version ## 説明 -`$version` はサーバーにより返される画像のバージョン番号です。 サーバーより受け取るバージョン番号は、ブラウザーのキャッシュを回避し、正しい画像を取得できるようにします。 +`$version` はサーバーにより返される画像のバージョン番号です。サーバーより受け取るバージョン番号は、ブラウザーのキャッシュを回避し、正しい画像を取得できるようにします。 画像の version パラメーターの値はサーバーによって変更されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md index 360f5d44764155..6a84eede161efe 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/ClassFunctions.md @@ -10,7 +10,7 @@ REST リクエストを使って、ORDA データモデルに定義されてい - **POST リクエスト** を使用する。この場合、データ引数はリクエストの本文内で渡します。 - **GET リクエスト** を使用する。この場合、引数はURL 内に直接渡します。 -POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。 一方で、GET リクエストは、URL をブラウザーに入れるだけで関数を呼び出すことができるため、 +POST リクエストは、リンクをクリックするだけのようなシンプルなアクションでセンシティブなコードを実行するのを避けられるため、より優れたセキュリティレベルを提供します。一方で、GET リクエストは、URL をブラウザーに入れるだけで関数を呼び出すことができるため、 よりユーザーエクスペリエンスに沿っていると言えます(注意: 開発者は、このような機能でセンシティブなアクションが実行されないようにしなければなりません)。 ## 関数の呼び出し @@ -30,11 +30,11 @@ POST リクエストは、リンクをクリックするだけのようなシン :::note -`/rest/{dataClass}/Function` は DataClassクラスまたは EntitySelectionクラスの関数を呼び出すのに使えます (`/rest/{dataClass}` はデータクラスの全エンティティをエンティティセレクションに返します)。 EntitySelection クラスの関数が先に探されます。 見つからない場合に、DataClassクラスを探します。 つまり、同じ名称の関数が DataClassクラスと EntitySelectionクラスの両方に定義されている場合、DataClassクラスの関数が実行されることはありません。 +`/rest/{dataClass}/Function` は DataClassクラスまたは EntitySelectionクラスの関数を呼び出すのに使えます (`/rest/{dataClass}` はデータクラスの全エンティティをエンティティセレクションに返します)。 EntitySelection クラスの関数が先に探されます。見つからない場合に、DataClassクラスを探します。つまり、同じ名称の関数が DataClassクラスと EntitySelectionクラスの両方に定義されている場合、DataClassクラスの関数が実行されることはありません。 ::: -関数は、適切なORDA インターフェース上、もしくはシングルトンクラス上において単に () 抜きで呼び出されます。 [引数](#引数)は POST リクエストの本文内(`POST` 呼び出しの場合)か、URL の `params` コレクション内(`GET` 呼び出しの場合)に渡します。 +関数は、適切なORDA インターフェース上、もしくはシングルトンクラス上において単に () 抜きで呼び出されます。[引数](#引数)は POST リクエストの本文内(`POST` 呼び出しの場合)か、URL の `params` コレクション内(`GET` 呼び出しの場合)に渡します。 たとえば、City DataClassクラスに `getCity()` 関数を定義した場合、次のリクエストで呼び出すことができます: @@ -64,7 +64,7 @@ $city:=ds.City.getCity("Aguada") ### `exposed` -HTTP REST リクエスト(`POST` または `GET`) から直接呼び出し可能にしたい関数は、全て `exposed` キーワードを使用して宣言されている必要があります。 例: +HTTP REST リクエスト(`POST` または `GET`) から直接呼び出し可能にしたい関数は、全て `exposed` キーワードを使用して宣言されている必要があります。例: ```4d exposed Function getSomeInfo() : 4D.OutgoingMessage @@ -74,7 +74,7 @@ exposed Function getSomeInfo() : 4D.OutgoingMessage ### `onHTTPGet` -HTTP `GET` リクエストから呼び出すことのできる関数は、[`onHTTPGet` キーワード](../ORDA/ordaClasses.md#onHttpGet-キーワード) も使用して明確に宣言されていなければなりません。 例: +HTTP `GET` リクエストから呼び出すことのできる関数は、[`onHTTPGet` キーワード](../ORDA/ordaClasses.md#onHttpGet-キーワード) も使用して明確に宣言されていなければなりません。例: ```4d // GET リクエストを許可する @@ -93,7 +93,7 @@ exposed onHTTPGet Function getSomeInfo() : 4D.OutgoingMessage ## 引数 -ORDA ユーザークラスやシングルトン内で定義されている関数には、引数を渡すことができます。 サーバーサイドでこれらの引数は、クラス関数の [宣言されたパラメーター](../Concepts/parameters.md#パラメーターの宣言) に受け渡されます。 +ORDA ユーザークラスやシングルトン内で定義されている関数には、引数を渡すことができます。サーバーサイドでこれらの引数は、クラス関数の [宣言されたパラメーター](../Concepts/parameters.md#パラメーターの宣言) に受け渡されます。 次のルールが適用されます: @@ -101,13 +101,13 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 - GET リクエストを通して呼び出された関数内では、引数は **URL 内に"?$params=" シンタックスで** 渡さなければなりません。 - 引数はコレクション (JSON形式) の中に格納する必要があります。 - JSON コレクションがサポートしているスカラーなデータ型はすべて引数として渡せます。 -- エンティティやエンティティセレクションも引数として受け渡せます。 この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 +- エンティティやエンティティセレクションも引数として受け渡せます。この際、対応する ORDA オブジェクトにデータを割り当てるために REST サーバーが使用する専用の属性 (`__DATACLASS`, `__ENTITY`, `__ENTITIES`, `__DATASET`) を 引数のリストに含めなくてはなりません。 [エンティティを引数として受け取る例題](#エンティティを引数として受け取る) と [エンティティセレクションを引数として受け取る例題](#エンティティセレクションを引数として受け取る) を参照ください。 ### スカラー値の引数 -スカラー値の引数はコレクション内に単純に格納されていなければなりません。 引数としてサポートされるのは、JSONポインターを含むすべての JSON のデータ型です。 日付は ISO 8601形式の文字列として渡せます (例: "2020-08-22T22:00:000Z")。 +スカラー値の引数はコレクション内に単純に格納されていなければなりません。引数としてサポートされるのは、JSONポインターを含むすべての JSON のデータ型です。日付は ISO 8601形式の文字列として渡せます (例: "2020-08-22T22:00:000Z")。 たとえば、dataclass クラス関数 `getCities()` がテキスト引数を受け取る場合: @@ -123,10 +123,9 @@ ORDA ユーザークラスやシングルトン内で定義されている関数 ### エンティティ引数 -引数として渡されたエンティティは、キー (__KEY プロパティ) によってサーバー上で参照されます。 リクエストにおいてキーが省略されていれば、サーバー上のメモリに新規エンティティが読み込まれます。 -エンティティが持つ属性について、値を受け渡すことも可能です。 サーバー上でこれらの値は自動的に当該エンティティ用に使用されます。 +引数として渡されたエンティティは、キー (__KEY プロパティ) によってサーバー上で参照されます。リクエストにおいてキーが省略されていれば、サーバー上のメモリに新規エンティティが読み込まれます。エンティティが持つ属性について、値を受け渡すことも可能です。サーバー上でこれらの値は自動的に当該エンティティ用に使用されます。 -> サーバー上の既存エンティティについて変更された属性値をリクエストが送信した場合、呼び出した ORDAデータモデル関数は自動的に変更後の値で実行されます。 この機能によって、たとえばエンティティに対する処理の、すべてのビジネスルールを適用した後の結果をクライアントアプリケーションから確認することが可能です。 その結果をもとにエンティティをサーバー上で保存するかどうかを判断できます。 +> サーバー上の既存エンティティについて変更された属性値をリクエストが送信した場合、呼び出した ORDAデータモデル関数は自動的に変更後の値で実行されます。この機能によって、たとえばエンティティに対する処理の、すべてのビジネスルールを適用した後の結果をクライアントアプリケーションから確認することが可能です。その結果をもとにエンティティをサーバー上で保存するかどうかを判断できます。 | プロパティ | 型 | 説明 | | ----------------------------------------------------- | ------------------------------------ | ------------------------------------ | @@ -143,7 +142,7 @@ GET リクエストとエンティティを使用してコンテンツをダウ #### リレートエンティティ引数 -[エンティティ引数](#エンティティ引数) と同じプロパティを持ちます。 異なる点は、リレートエンティティは存在していなければならないため、プライマリーキーを格納する __KEY を省略できません。 +[エンティティ引数](#エンティティ引数) と同じプロパティを持ちます。異なる点は、リレートエンティティは存在していなければならないため、プライマリーキーを格納する __KEY を省略できません。 リレートエンティティを持つエンティティを [作成](#リレートエンティティを持つエンティティを作成する) または [更新](#リレートエンティティを持つエンティティを更新する) する例題を参照ください。 @@ -356,7 +355,7 @@ exposed Function getLastSummary : Text ### サーバー上に作成されるエンティティを使用する -`Students` DataClassクラスは、データを含むエンティティをクライアントから受け取る `pushData()` 関数を持ちます。 `checkData()` メソッドはいくつかの検証を実行します。 問題がなければ、エンティティは保存されて返されます。 +`Students` DataClassクラスは、データを含むエンティティをクライアントから受け取る `pushData()` 関数を持ちます。 `checkData()` メソッドはいくつかの検証を実行します。問題がなければ、エンティティは保存されて返されます。 ``` // Students クラス @@ -534,7 +533,7 @@ Studentsエンティティを対象に次のリクエストを実行します:** ### エンティティセレクションを引数として受け取る -`Students` DataClassクラスは、受け取ったエンティティセレクション ($1) を更新する `setFinalExam()` 関数を持ちます。 実際には、エンティティセレクション内の各エンティティの *finalExam* 属性値を、2つ目に渡した引数 ($2) に更新します。 最後に、更新されたエンティティのプライマリーキーを返します。 +`Students` DataClassクラスは、受け取ったエンティティセレクション ($1) を更新する `setFinalExam()` 関数を持ちます。実際には、エンティティセレクション内の各エンティティの *finalExam* 属性値を、2つ目に渡した引数 ($2) に更新します。最後に、更新されたエンティティのプライマリーキーを返します。 ``` // Students クラス @@ -621,7 +620,7 @@ $ageAverage:=$students.getAgeAverage() ### ドキュメントを返す -選択した製品に対して、複数のフォーマットが利用可能なユーザーマニュアルをダウンロードするリンクを提示したい場合を考えます。 この場合、Products データクラスに対して `getUserManual()` 関数を書きます。 この関数は [`OutgoingMessage` クラス](../API/OutgoingMessageClass.md) 型のオブジェクトを返します。 +選択した製品に対して、複数のフォーマットが利用可能なユーザーマニュアルをダウンロードするリンクを提示したい場合を考えます。この場合、Products データクラスに対して `getUserManual()` 関数を書きます。この関数は [`OutgoingMessage` クラス](../API/OutgoingMessageClass.md) 型のオブジェクトを返します。 ```4d // Product データクラス diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/REST_requests.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/REST_requests.md index 6217f4dcaa6dbe..98933241d1d110 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/REST_requests.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/REST_requests.md @@ -14,11 +14,11 @@ RESTリクエストでは次の構文がサポートされています: RESTリクエストには、URI とリソースが必ず含まれていなければなりませんが、返されるデータをフィルダーする出力パラメーターの使用は任意です。 -すべての URI と同様に、先頭パラメーターは "?" に続けて指定し、それ以降のパラメーターは "&" で区切ります。 例: +すべての URI と同様に、先頭パラメーターは "?" に続けて指定し、それ以降のパラメーターは "&" で区切ります。例: `GET /rest/Person/?$filter="lastName!=Jones"&$method=entityset&$timeout=600` -> 曖昧さ回避のため、値は引用符内に書くことができます。 たとえば、上の例では名字 (lastName) の値を単一引用符内に書けます: "lastName!='Jones'"。 +> 曖昧さ回避のため、値は引用符内に書くことができます。たとえば、上の例では名字 (lastName) の値を単一引用符内に書けます: "lastName!='Jones'"。 パラメーターを利用することで、4Dプロジェクトのデータクラスのデータを操作できます。 `GET` HTTPメソッドを使ってデータを取得する以外にも、`POST` HTTPメソッドを使ってデータクラスのエンティティを追加・更新・削除することが可能です。 @@ -30,7 +30,7 @@ JSON の代わりに配列形式でデータを取得するには [`$asArray`]($ ### リクエストステータス -RESTリクエストをおこなうと、レスポンスとともにステータスが返されます。 主なステータスをいくつか紹介します: +RESTリクエストをおこなうと、レスポンスとともにステータスが返されます。主なステータスをいくつか紹介します: | ステータス | 説明 | | ------------------------- | -------------------------------------------------- | 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 d47962a98c721c..f7631326992497 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/authUsers.md @@ -7,7 +7,7 @@ title: ユーザーとセッション [スケーラブルセッションが有効](WebServer/sessions.md#セッションの有効化) になっている場合 (推奨)、RESTリクエストは [Webユーザーセッション](WebServer/sessions.md#enabling-web-sessions) を作成・使用することができます。これにより、複数リクエストの処理や、Webクライアントプロセス間のデータ共有、ユーザー権限の制御などの追加機能を利用することができます。 -開かれた Webユーザーセッションは、`Session`オブジェクトと [Session API](API/SessionClass.md) を介して操作することができます。 後続の RESTリクエストは同じセッションcookie を再使用します。 +開かれた Webユーザーセッションは、`Session`オブジェクトと [Session API](API/SessionClass.md) を介して操作することができます。後続の RESTリクエストは同じセッションcookie を再使用します。 セッションは、ユーザーが正常にログインした後に開かれます (後述参照)。 @@ -18,29 +18,28 @@ title: ユーザーとセッション :::note 互換性 -4D 20 R6 以降、`On REST Authentication` データベースメソッドに基づく従来のログインモードは **非推奨** となりました。 現在は、[**強制ログインモード**](../ORDA/privileges.md#rolesjson-ファイル) の使用 (新規プロジェクトでは自動的に有効) および [`ds.authentify()`関数](#function-authentify) の実装が推奨されています。 変換されたプロジェクトでは、[設定ダイアログボックスのボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) を使用して、構成をアップグレードすることができます。 Qodly Studio for 4D では、権限パネルの [**強制ログイン**オプション](https://developer.4d.com/qodly/4DQodlyPro/force-login) を使用してログインモードを設定することができます。 +4D 20 R6 以降、`On REST Authentication` データベースメソッドに基づく従来のログインモードは **非推奨** となりました。現在は、[**強制ログインモード**](../ORDA/privileges.md#rolesjson-ファイル) の使用 (新規プロジェクトでは自動的に有効) および [`ds.authentify()`関数](#function-authentify) の実装が推奨されています。変換されたプロジェクトでは、[設定ダイアログボックスのボタン](../settings/web.md#dsauthentify-関数によって-rest認証を有効化する) を使用して、構成をアップグレードすることができます。 Qodly Studio for 4D では、権限パネルの [**強制ログイン**オプション](https://developer.4d.com/qodly/4DQodlyPro/force-login) を使用してログインモードを設定することができます。 ::: ユーザーログインシーケンスは次のとおりです: -1. 最初の RESTコール (たとえば Qodlyページコール) では、"ゲスト" Webユーザーセッションが作成されます。 [記述的RESTリクエスト](#記述的restリクエスト) 以外のリクエストを実行する権限も、ライセンスの消費もありません。 - 記述的RESTリクエスト は、ライセンスを消費する Webユーザーセッションが開かれていなくても、常にサーバーで処理されます。 この場合、それらは "ゲスト" セッションを介して処理されます。 +1. 最初の RESTコール (たとえば Qodlyページコール) では、"ゲスト" Webユーザーセッションが作成されます。[記述的RESTリクエスト](#記述的restリクエスト) 以外のリクエストを実行する権限も、ライセンスの消費もありません。 + 記述的RESTリクエスト は、ライセンスを消費する Webユーザーセッションが開かれていなくても、常にサーバーで処理されます。この場合、それらは "ゲスト" セッションを介して処理されます。 -2. 事前に用意した [`authentify()` 関数](#function-authentify) を呼び出し、ユーザーの資格情報をチェックして、適切な権限で[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出します。 `authentify()` は公開された [データストアクラス関数](../ORDA/ordaClasses.md#datastore-クラス) でなければなりません。 - この関数は、4D コードから直接([`Open datastore`](../commands/open-datastore) の例題参照)、あるいはユーザー認証情報とともに`/rest/$catalog/authentify` リクエストを通して呼び出すことが可能です。 このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。これには例えば`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](https://developer.4d.com/qodly/) を利用できます。 +2. 事前に用意した [`authentify()` 関数](#function-authentify) を呼び出し、ユーザーの資格情報をチェックして、適切な権限で[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出します。 `authentify()` は公開された [データストアクラス関数](../ORDA/ordaClasses.md#datastore-クラス) でなければなりません。この関数は、4D コードから直接([`Open datastore`](../commands/open-datastore) の例題参照)、あるいはユーザー認証情報とともに`/rest/$catalog/authentify` リクエストを通して呼び出すことが可能です。このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。これには例えば`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](https://developer.4d.com/qodly/) を利用できます。 3. ユーザーが正常に認証できた場合、サーバー上では4D ライセンスが1つ消費され、また[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) 関数が呼ばれれば、全てのREST リクエストが受け入れられるようになります。 ![alt-text](../assets/en/REST/force-login-2.jpeg) -ユーザーログインの段階では、ライセンスの消費は Webユーザーセッションから切り離されます。 ライセンスは、[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) が実行された時にのみ必要なため、使用されるライセンスの数を制御することができます。 +ユーザーログインの段階では、ライセンスの消費は Webユーザーセッションから切り離されます。ライセンスは、[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) が実行された時にのみ必要なため、使用されるライセンスの数を制御することができます。 -他のすべての RESTリクエスト (データ処理や関数の実行) は、適切な権限を持つ Webセッション内で実行された場合にのみ処理されます。それ以外の場合はエラーを返します Webセッションに権限を割り当てるには、セッションに対して [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) 関数を実行する必要があります。 この関数を実行すると、4Dライセンスの消費が発生します。 +他のすべての RESTリクエスト (データ処理や関数の実行) は、適切な権限を持つ Webセッション内で実行された場合にのみ処理されます。それ以外の場合はエラーを返します Webセッションに権限を割り当てるには、セッションに対して [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) 関数を実行する必要があります。この関数を実行すると、4Dライセンスの消費が発生します。 ### 記述的RESTリクエスト -記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。 記述的RESTリクエストとは以下のものを指します: +記述的RESTリクエストは、ライセンスを必要としない Webユーザーセッション ("ゲスト" セッション) で処理することができます。記述的RESTリクエストとは以下のものを指します: - [`/rest/$catalog`]($catalog.md) リクエスト (例: `/rest/$catalog/$all`) - 利用可能なデータクラスへのアクセス - `/rest/$catalog/authentify` - ユーザーログインに使用されるデータストア関数 @@ -68,7 +67,7 @@ exposed Function authentify({params : type}) {-> result : type} ::: -この関数は、任意の認証またはコンテキスト情報を [引数](ClassFunctions.md#引数) として受け取り、任意の値を返すことができます。 この関数は RESTリクエストからのみ呼び出すことができるため、引数は POSTリクエストの本文で渡されなければなりません。 +この関数は、任意の認証またはコンテキスト情報を [引数](ClassFunctions.md#引数) として受け取り、任意の値を返すことができます。この関数は RESTリクエストからのみ呼び出すことができるため、引数は POSTリクエストの本文で渡されなければなりません。 この関数は 2部構成で書かれる必要があります: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/configuration.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/configuration.md index 0958fd05939d70..217fb87ab63909 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/configuration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/configuration.md @@ -27,13 +27,13 @@ REST機能を使い始めるまえに、まずは 4D REST サーバーの設定 :::note 互換性 -設定ダイアログボックス内の**アクセス** エリアは、互換性のために、変換されたプロジェクト内でのみ利用可能です。 詳細な情報については[アクセス](../settings/web.md#アクセス) を参照してください。 +設定ダイアログボックス内の**アクセス** エリアは、互換性のために、変換されたプロジェクト内でのみ利用可能です。詳細な情報については[アクセス](../settings/web.md#アクセス) を参照してください。 ::: ## テーブルやフィールドの公開 -4Dアプリケーションの RESTサービスが有効化されると、[データストアインターフェース](ORDA/dsMapping.md#データストア) を通して 4Dデータベースのすべてのテーブルとフィールドおよび格納データが RESTセッションによってデフォルトでアクセス可能です。 つまり、すべてのデータにアクセス可能ということです。 たとえば、データベースに [Employee] テーブルが含まれている場合、次のように書くことができます: +4Dアプリケーションの RESTサービスが有効化されると、[データストアインターフェース](ORDA/dsMapping.md#データストア) を通して 4Dデータベースのすべてのテーブルとフィールドおよび格納データが RESTセッションによってデフォルトでアクセス可能です。つまり、すべてのデータにアクセス可能ということです。たとえば、データベースに [Employee] テーブルが含まれている場合、次のように書くことができます: ``` http://127.0.0.1:8044/rest/Employee/?$filter="salary>10000" @@ -44,13 +44,13 @@ http://127.0.0.1:8044/rest/Employee/?$filter="salary>10000" > "非表示" 属性を選択されたテーブルやフィールドも、デフォルトで REST に公開されています。 -REST 経由でアクセス可能なデータストアオブジェクトを制限するには、アクセス不可にするテーブルやフィールドについて "RESTリソースとして公開" オプションを選択解除する必要があります。 許可されていないリソースへの RESTリクエストがあった場合、4Dはエラーを返します。 +REST 経由でアクセス可能なデータストアオブジェクトを制限するには、アクセス不可にするテーブルやフィールドについて "RESTリソースとして公開" オプションを選択解除する必要があります。許可されていないリソースへの RESTリクエストがあった場合、4Dはエラーを返します。 ### テーブルの公開 デフォルトでは、すべてのテーブルが REST に公開されています。 -セキュリティ上の理由から、データベースの一部のテーブルのみを公開したい状況もあるでしょう。 たとえば、[Users] テーブルを作成し、その中にユーザー名とパスワードが保存されている場合、そのテーブルは公開しない方が賢明でしょう。 +セキュリティ上の理由から、データベースの一部のテーブルのみを公開したい状況もあるでしょう。たとえば、[Users] テーブルを作成し、その中にユーザー名とパスワードが保存されている場合、そのテーブルは公開しない方が賢明でしょう。 テーブルを公開したくない場合は: @@ -64,7 +64,7 @@ REST 経由でアクセス可能なデータストアオブジェクトを制限 デフォルトでは、すべての 4Dデータベースフィールドが REST に公開されています。 -テーブルの一部のフィールドのみを非公開にしたい状況もあるでしょう。 たとえば、[Employees]Salary のようなフィールドは非公開の方がよいでしょう。 +テーブルの一部のフィールドのみを非公開にしたい状況もあるでしょう。たとえば、[Employees]Salary のようなフィールドは非公開の方がよいでしょう。 フィールドを非公開にするには: @@ -74,12 +74,12 @@ REST 経由でアクセス可能なデータストアオブジェクトを制限 ![alt-text](../assets/en/REST/field.png)
    公開設定を変更する各フィールドに対して、この手順を繰り返します。 -> あるフィールドが REST を通してアクセス可能であるためには、その親テーブルも公開されている必要があります。 親テーブルが公開されていない場合、各フィールドの公開設定に関わらず、すべてのフィールドがアクセス不可になります。 +> あるフィールドが REST を通してアクセス可能であるためには、その親テーブルも公開されている必要があります。親テーブルが公開されていない場合、各フィールドの公開設定に関わらず、すべてのフィールドがアクセス不可になります。 ## プリエンプティブモード -4D Server上では、**インタプリタモードであっても**、RESTリクエストは自動的にプリエンプティブプロセスで処理されます。 そのため、コードは [プリエンプティブ実行に準拠](../WebServer/preemptiveWeb.md#スレッドセーフなWebサーバーコードの書き方) している必要があります。 +4D Server上では、**インタプリタモードであっても**、RESTリクエストは自動的にプリエンプティブプロセスで処理されます。そのため、コードは [プリエンプティブ実行に準拠](../WebServer/preemptiveWeb.md#スレッドセーフなWebサーバーコードの書き方) している必要があります。 -> インタープリター版の Webコードをサーバーマシン側でデバッグするためには、デバッガーが[サーバー側で有効化されている](../Debugging/debugging-remote.md) かあるいは [リモートマシン側で有効化されている](../Debugging/debugging-remote.md) ことを確認してください。 これにより、Webプロセスがコオペラティブモードに切り替わり、Webサーバーコードのデバッグが可能になります。 +> インタープリター版の Webコードをサーバーマシン側でデバッグするためには、デバッガーが[サーバー側で有効化されている](../Debugging/debugging-remote.md) かあるいは [リモートマシン側で有効化されている](../Debugging/debugging-remote.md) ことを確認してください。これにより、Webプロセスがコオペラティブモードに切り替わり、Webサーバーコードのデバッグが可能になります。 シングルユーザーの 4D では、インタープリターコードは常にコオペラティブモードで実行されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/dataClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/dataClass.md index 3076c09376830e..7804d7105d4423 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/dataClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/dataClass.md @@ -28,13 +28,13 @@ RESTリクエストにこのパラメーターのみを渡すと、([`$top/$limi 返されるデータの説明です: -| プロパティ | 型 | 説明 | -| ------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------ | -| __entityModel | Text | データクラスの名称。 | -| __COUNT | Number | データクラスに含まれる全エンティティ数 | -| __SENT | Number | RESTリクエストが返すエンティティの数。 総エンティティ数が `$top/$limit` で指定された数より少なければ、総エンティティの数になります。 | -| __FIRST | Number | セレクションの先頭エンティティの番号。 デフォルトでは 0; または `$skip` で指定された値。 | -| __ENTITIES | Collection | エンティティ毎にその属性をすべて格納したオブジェクトのコレクションです。 リレーション属性は、リレーション先の情報を取得するための URI を格納したオブジェクトとして返されます。 | +| プロパティ | 型 | 説明 | +| ------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------- | +| __entityModel | Text | データクラスの名称。 | +| __COUNT | Number | データクラスに含まれる全エンティティ数 | +| __SENT | Number | RESTリクエストが返すエンティティの数。総エンティティ数が `$top/$limit` で指定された数より少なければ、総エンティティの数になります。 | +| __FIRST | Number | セレクションの先頭エンティティの番号。デフォルトでは 0; または `$skip` で指定された値。 | +| __ENTITIES | Collection | エンティティ毎にその属性をすべて格納したオブジェクトのコレクションです。リレーション属性は、リレーション先の情報を取得するための URI を格納したオブジェクトとして返されます。 | 各エンティティには次のプロパティが含まれます: @@ -44,7 +44,7 @@ RESTリクエストにこのパラメーターのみを渡すと、([`$top/$limi | __TIMESTAMP | Date | エンティティが最後に編集された日時を記録するタイムスタンプ | | __STAMP | Number | `$method=update` を使ってエンティティの属性値を更新するときに必要となる内部スタンプ | -取得する属性を指定するには、次のシンタックスを使っておこないます: [{attribute1, attribute2, ...}](manData.md#取得する属性の選択)。 例: +取得する属性を指定するには、次のシンタックスを使っておこないます: [{attribute1, attribute2, ...}](manData.md#取得する属性の選択)。例: `GET /rest/Company/name,address` @@ -139,11 +139,11 @@ RESTリクエストにこのパラメーターのみを渡すと、([`$top/$limi ### 説明 -データクラスとキーを渡すことで、公開されているエンティティの情報を取得することができます。 キー (key) は、データクラスに定義されているプライマリーキーの値です。 プライマリーキーの定義についての詳細は、デザインリファレンスマニュアルの **[主キーを設定、削除する](https://doc.4d.com/4Dv18/4D/18/Table-properties.300-4575566.ja.html#1282230)** を参照ください。 +データクラスとキーを渡すことで、公開されているエンティティの情報を取得することができます。キー (key) は、データクラスに定義されているプライマリーキーの値です。プライマリーキーの定義についての詳細は、デザインリファレンスマニュアルの **[主キーを設定、削除する](https://doc.4d.com/4Dv18/4D/18/Table-properties.300-4575566.ja.html#1282230)** を参照ください。 返されるデータについての詳細は [\{DataClass\}](#dataclass) を参照ください。 -取得する属性を指定するには、次のシンタックスを使っておこないます: [{attribute1, attribute2, ...}](manData.md#取得する属性の選択)。 例: +取得する属性を指定するには、次のシンタックスを使っておこないます: [{attribute1, attribute2, ...}](manData.md#取得する属性の選択)。例: `GET /rest/Company[1]/name,address` @@ -186,11 +186,11 @@ RESTリクエストにこのパラメーターのみを渡すと、([`$top/$limi ### 説明 -*dataClass* に加えて *attribute (属性)* および \*value (値)\*を渡すことで、当該エンティティの公開データをすべて取得できます。 指定する値は、その属性において一意のものですが、主キーではありません。 +*dataClass* に加えて *attribute (属性)* および \*value (値)\*を渡すことで、当該エンティティの公開データをすべて取得できます。指定する値は、その属性において一意のものですが、主キーではありません。 `GET /rest/Company:companyCode(Acme001)` -取得する属性を指定するには、次のシンタックスを使っておこないます: [{attribute1, attribute2, ...}](manData.md#取得する属性の選択)。 例: +取得する属性を指定するには、次のシンタックスを使っておこないます: [{attribute1, attribute2, ...}](manData.md#取得する属性の選択)。例: `GET /rest/Company:companyCode(Acme001)/name,address` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/genInfo.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/genInfo.md index 1f2e70ccced6d8..bf7dbb134e1cde 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/genInfo.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/genInfo.md @@ -22,7 +22,7 @@ RESTサーバーの次の情報を取得することができます: ## queryPath と queryPlan -クエリによって生成されたエンティティセレクションは、`queryPlan` と `queryPath` という 2つのプロパティを持ちえます。 これらのプロパティを算出・取得するには、RESTリクエストに [`$queryPlan`]($queryplan.md) および [`$queryPath`]($querypath.md) を追加します。 +クエリによって生成されたエンティティセレクションは、`queryPlan` と `queryPath` という 2つのプロパティを持ちえます。これらのプロパティを算出・取得するには、RESTリクエストに [`$queryPlan`]($queryplan.md) および [`$queryPath`]($querypath.md) を追加します。 例: @@ -33,4 +33,4 @@ RESTサーバーの次の情報を取得することができます: - **queryPlan**: 実行前のクエリについての詳細な情報 (クエリプラン) を格納するオブジェクト。 - **queryPath**: 実際に実行されたクエリ処理の詳細な情報 (クエリパス) を格納するオブジェクト。 -情報には、クエリの種類 (インデックスあるいはシーケンシャル)、必要なサブクエリおよびその連結演算子が含まれます。 クエリパスには、見つかったエンティティの数と各検索条件を実行するにかかった時間も含まれます。 クエリパスには、見つかったエンティティの数と各検索条件を実行するにかかった時間も含まれます。 一般的には、クエリプランとクエリパスの詳細は同一になるはずですが、4D はパフォーマンス向上のために動的な最適化をクエリ実行時に実装することがあり、異なることもあります。 たとえば、その方が早いと判断した場合には、4Dエンジンはインデックス付きクエリをシーケンシャルなものへと動的に変換することがあります。 これは検索されているエンティティの数が少ないときに起こりえます。 \ No newline at end of file +情報には、クエリの種類 (インデックスあるいはシーケンシャル)、必要なサブクエリおよびその連結演算子が含まれます。クエリパスには、見つかったエンティティの数と各検索条件を実行するのにかかった時間も含まれます。この情報は、アプリケーション開発中に解析することで有効に活用できます。一般的には、クエリプランとクエリパスの詳細は同一になるはずですが、4D はパフォーマンス向上のために動的な最適化をクエリ実行時に実装することがあり、異なることもあります。たとえば、その方が早いと判断した場合には、4Dエンジンはインデックス付きクエリをシーケンシャルなものへと動的に変換することがあります。これは検索されているエンティティの数が少ないときに起こりえます。 \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md index 4904959918a4af..9d7fdb05ebda45 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/gettingStarted.md @@ -7,16 +7,16 @@ title: はじめに RESTサーバーは 4D および 4D Server に含まれており、[設定完了後は](configuration.md) 4Dアプリケーションにて自動的に利用可能となります。 -この章では、簡単な例題を使用して REST機能を紹介します。 これから、実際に次のことをしてみましょう: +この章では、簡単な例題を使用して REST機能を紹介します。これから、実際に次のことをしてみましょう: - 簡単な 4Dアプリケーションプロジェクトを作成し、設定します。 - 標準のブラウザーを開き、REST を介して 4Dプロジェクトのデータにアクセスします。 -例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。 もちろん、リモートアーキテクチャーを使うことも可能です。 +例題が複雑にならないよう、ここでは 4D とブラウザーを同じマシン上で使用します。もちろん、リモートアーキテクチャーを使うことも可能です。 ## 4Dプロジェクトの作成と設定 -1. 4D または 4D Server アプリケーションを起動し、新規プロジェクトを作成します。 名前は仮に "Emp4D" とします。 +1. 4D または 4D Server アプリケーションを起動し、新規プロジェクトを作成します。名前は仮に "Emp4D" とします。 2. ストラクチャーエディターを開き、[Employees] テーブルを作成して、次のフィールドを追加します: - Lastname (文字列) @@ -41,7 +41,7 @@ RESTサーバーは 4D および 4D Server に含まれており、[設定完了 これで、RESTリクエストを使った 4D のデータの読み込み・編集が可能になりました。 -4D の REST URL リクエストは必ず、`address:port` エリアの後に入る `/rest` から始まります。 たとえば、4Dデータストアの内容を確認するには、次のように書けます: +4D の REST URL リクエストは必ず、`address:port` エリアの後に入る `/rest` から始まります。たとえば、4Dデータストアの内容を確認するには、次のように書けます: ``` http://127.0.0.1/rest/$catalog @@ -62,7 +62,7 @@ RESTサーバーの応答です: } ``` -これは、データストアに Employees データクラスが格納されていることを意味します。 データクラス属性を確認するには、次のように書きます: +これは、データストアに Employees データクラスが格納されていることを意味します。データクラス属性を確認するには、次のように書きます: ``` /rest/$catalog/Employees @@ -115,7 +115,7 @@ RESTサーバーの応答です: } ``` -取得するデータを様々な条件でフィルターすることも可能です。 たとえば、2番目のエンティティの "Lastname" 属性値のみを取得するには、次のように書きます: +取得するデータを様々な条件でフィルターすることも可能です。たとえば、2番目のエンティティの "Lastname" 属性値のみを取得するには、次のように書きます: ``` /rest/Employees(2)/Lastname diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/manData.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/manData.md index 83edeb0f6d8e0b..8635eb29dcdc2c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/manData.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/manData.md @@ -3,11 +3,11 @@ id: manData title: データ操作 --- -REST によって、すべての [公開されているデータクラス、属性](configuration.md#テーブルやフィールドの公開)、そして [関数](ClassFunctions.md) にアクセスすることができます。 データクラス、属性、および関数名については、文字の大小が区別されます。 +REST によって、すべての [公開されているデータクラス、属性](configuration.md#テーブルやフィールドの公開)、そして [関数](ClassFunctions.md) にアクセスすることができます。データクラス、属性、および関数名については、文字の大小が区別されます。 ## データのクエリ -データを直接クエリするには [`$filter`]($filter.md) 関数を使います。 たとえば、"Smith" という名前の人を検索するには: +データを直接クエリするには [`$filter`]($filter.md) 関数を使います。たとえば、"Smith" という名前の人を検索するには: `http://127.0.0.1:8081/rest/Person/?$filter="lastName=Smith"` @@ -27,25 +27,25 @@ REST API を使って、4D内と同等のデータ操作をおこなうことが ## エンティティセットの作成と管理 -エンティティセットとは、RESTリクエストによって取得され、4D Server のキャッシュに保存されるエンティティのコレクションのことです。 エンティティセットを利用することで、同じ結果を得るためにアプリケーションを繰り返しクエリすることが避けられます。 エンティティセットへのアクセスはクエリするよりも速いため、アプリケーション速度の向上にもつながります。 +エンティティセットとは、RESTリクエストによって取得され、4D Server のキャッシュに保存されるエンティティのコレクションのことです。エンティティセットを利用することで、同じ結果を得るためにアプリケーションを繰り返しクエリすることが避けられます。エンティティセットへのアクセスはクエリするよりも速いため、アプリケーション速度の向上にもつながります。 -エンティティセットを作成するには、RESTリクエスト内で [`$method=entityset`]($method.md#methodentityset) を呼び出します。 エンティティセットがタイムアウトした場合やサーバーから削除されてしまった場合への安全対策として、[`$filter`]($filter.md) や [`$orderby`]($orderby.md) を呼び出す際に [`$savedfilter`]($savedfilter.md) および [`$savedorderby`]($savedorderby.md) を使用することで、以前と同じ ID で再取得することができます。 +エンティティセットを作成するには、RESTリクエスト内で [`$method=entityset`]($method.md#methodentityset) を呼び出します。エンティティセットがタイムアウトした場合やサーバーから削除されてしまった場合への安全対策として、[`$filter`]($filter.md) や [`$orderby`]($orderby.md) を呼び出す際に [`$savedfilter`]($savedfilter.md) および [`$savedorderby`]($savedorderby.md) を使用することで、以前と同じ ID で再取得することができます。 エンティティセットにアクセスするには、`$entityset/\{entitySetID\}` を使います。例: `/rest/People/$entityset/0AF4679A5C394746BFEB68D2162A19FF` -デフォルトで、エンティティセットは 2時間保存されます。[`$timeout`]($timeout.md) に新しい値を渡すことで、タイムアウトを変更できます。 エンティティセットを使用するたびに、タイムアウトはデフォルト値または指定値にリセットされます。 +デフォルトで、エンティティセットは 2時間保存されます。[`$timeout`]($timeout.md) に新しい値を渡すことで、タイムアウトを変更できます。エンティティセットを使用するたびに、タイムアウトはデフォルト値または指定値にリセットされます。 4D Server のキャッシュからエンティティセットを削除したい場合には [`$entityset/$release`](./$entityset.md#entitysetrelease) を使います。 -エンティティセット内のエンティティの属性値を編集すると、それらの値が更新されます。 ただし、エンティティセットの生成に使用したクエリ条件に合致する値から合致しない値に変更したとしても、そのエンティティはエンティティセットから削除されません。 +エンティティセット内のエンティティの属性値を編集すると、それらの値が更新されます。ただし、エンティティセットの生成に使用したクエリ条件に合致する値から合致しない値に変更したとしても、そのエンティティはエンティティセットから削除されません。 -エンティティを削除した場合には、エンティティセットからも削除されます。 しかし、デフォルトでは、参照は *undefined* の値でエンティティセットに残り、エンティティセットの要素数として引き続き含まれます。 エンティティセットに対して[`$clean`]($clean.md) を呼び出すと、*undefined* なエンティティ参照が含まれない、最新のエンティティセットを新規に作成できます。 +エンティティを削除した場合には、エンティティセットからも削除されます。しかし、デフォルトでは、参照は *undefined* の値でエンティティセットに残り、エンティティセットの要素数として引き続き含まれます。エンティティセットに対して[`$clean`]($clean.md) を呼び出すと、*undefined* なエンティティ参照が含まれない、最新のエンティティセットを新規に作成できます。 -4D Server のキャッシュからエンティティセットが消えていた場合、10分のデフォルトタイムアウトで再作成されます。 エンティティセットが消えていた場合、再作成されるエンティティセットの内容は更新されたものです (新しくエンティティが追加されていたり、存在していたエンティティが削除されていたりする場合がありえます)。 +4D Server のキャッシュからエンティティセットが消えていた場合、10分のデフォルトタイムアウトで再作成されます。エンティティセットが消えていた場合、再作成されるエンティティセットの内容は更新されたものです (新しくエンティティが追加されていたり、存在していたエンティティが削除されていたりする場合がありえます)。 -[`$entityset/\{entitySetID\}?$logicOperator... &$otherCollection`]($entityset.md#entitysetentitysetidlogicoperatorothercollection) を使って、事前に作成した 2つのセンティティセットを統合できます。 両セットの内容を統合する (集合の和) ほか、共通のエンティティのみを返したり (集合の積) 、共通でないエンティティのみを返したり (集合の対称差) することができます。 +[`$entityset/\{entitySetID\}?$logicOperator... &$otherCollection`]($entityset.md#entitysetentitysetidlogicoperatorothercollection) を使って、事前に作成した 2つのセンティティセットを統合できます。両セットの内容を統合する (集合の和) ほか、共通のエンティティのみを返したり (集合の積) 、共通でないエンティティのみを返したり (集合の対称差) することができます。 この場合m新規のエンティティセレクションが返されます。RESTリクエストの最後に [`$method=entityset`]($method.md#methodentityset) を追加することで新規のエンティティセットを作成することもできます。 @@ -63,7 +63,7 @@ REST API を使って、4D内と同等のデータ操作をおこなうことが ## データモデルクラス関数の呼び出し -POSTリクエストを使って、ORDAデータモデルの [ユーザークラス関数](ClassFunctions.md) を呼び出すことで、ターゲットアプリケーションの公開API を活用できます。 たとえば、City DataClassクラスに `getCity()` 関数を定義した場合、次のリクエストで呼び出すことができます: +POSTリクエストを使って、ORDAデータモデルの [ユーザークラス関数](ClassFunctions.md) を呼び出すことで、ターゲットアプリケーションの公開API を活用できます。たとえば、City DataClassクラスに `getCity()` 関数を定義した場合、次のリクエストで呼び出すことができます: `/rest/City/getCity` @@ -83,7 +83,7 @@ RESTレスポンスにどの属性を含めて返してもらうかを指定す | | \{dataClass\}:\{attribute\}(value)/{att1,att2...}/ | /People:firstName(Larry)/firstName,lastName/ | | エンティティセレクション | \{dataClass\}/{att1,att2...}/$entityset/\{entitySetID\} | /People/firstName/$entityset/528BF90F10894915A4290158B4281E61 | -属性名はコンマ区切りで渡します (*例*: `/Employee/firstName,lastName,salary`)。 ストレージ属性およびリレーション属性を渡すことができます。 +属性名はコンマ区切りで渡します (*例*: `/Employee/firstName,lastName,salary`)。ストレージ属性およびリレーション属性を渡すことができます。 ### 例題 @@ -215,7 +215,7 @@ RESTレスポンスにどの属性を含めて返してもらうかを指定す `GET /rest/Employee(1)/photo?$imageformat=best&$version=1&$expand=photo` -画像形式についての詳細は [`$imageformat`]($imageformat.md) を参照ください。 パラメーターについての詳細は [`$version`]($version.md) を参照ください。 +画像形式についての詳細は [`$imageformat`]($imageformat.md) を参照ください。パラメーターについての詳細は [`$version`]($version.md) を参照ください。 ## BLOB属性のディスク保存 @@ -225,6 +225,6 @@ RESTレスポンスにどの属性を含めて返してもらうかを指定す ## 1件のエンティティの取得 -エンティティを 1件のみ取得したい場合には [`\{dataClass\}:\{attribute\}(value)`](%7BdataClass%7D.html#dataclassattributevalue) シンタックスを利用できます。 これは、データクラスの主キーに基づかないリレーション検索をしたい場合に便利です。 たとえば: +エンティティを 1件のみ取得したい場合には [`\{dataClass\}:\{attribute\}(value)`](%7BdataClass%7D.html#dataclassattributevalue) シンタックスを利用できます。これは、データクラスの主キーに基づかないリレーション検索をしたい場合に便利です。たとえば: `GET /rest/Company:companyCode("Acme001")` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/application-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/application-server.md index 9568bf3e98d834..d65d93f6d5cada 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/application-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/application-server.md @@ -10,7 +10,7 @@ title: アプリケーションサーバーページ ページの上部には、4D Server アプリケーションサーバーの現在の状況が表示されます。 - **状況**: 開始または停止 -- **開始時刻**: アプリケーションサーバーの起動日と時刻。 これは、4D Server によってプロジェクトが開かれた日付です。 +- **開始時刻**: アプリケーションサーバーの起動日と時刻。これは、4D Server によってプロジェクトが開かれた日付です。 - **動作時間**: プロジェクトがサーバーによって最後に開かれてからの経過時間。 ## 新規接続を許可/拒否 @@ -26,7 +26,7 @@ title: アプリケーションサーバーページ **新規接続を拒否** ボタンをクリックすると: - ボタンのラベルは "新規接続を許可" に変わります。 -- 新規クライアントは接続不可になります。 接続しようとしたクライアントには以下のメッセージが表示されます: +- 新規クライアントは接続不可になります。接続しようとしたクライアントには以下のメッセージが表示されます: ![](../assets/en/Admin/server-error.png) @@ -37,13 +37,13 @@ title: アプリケーションサーバーページ - **新規接続を許可** ボタンをクリックすると、アプリケーションサーバーはデフォルトに戻ります。 -この機能はたとえば、サーバー開始直後に管理者が様々なメンテナンス操作 (検証や圧縮など) をおこなうことを可能にします。 管理者がクライアント接続を使用する場合、この機能により一つのクライアントだけがデータを更新できることを確実にできます。 また、クライアントマシンが接続されていない状態でおこなわなければならないメンテナンス操作の準備のために、この機能を使用することができます。 +この機能はたとえば、サーバー開始直後に管理者が様々なメンテナンス操作 (検証や圧縮など)をおこなうことを可能にします。管理者がクライアント接続を使用する場合、この機能により一つのクライアントだけがデータを更新できることを確実にできます。また、クライアントマシンが接続されていない状態でおこなわなければならないメンテナンス操作の準備のために、この機能を使用することができます。 ## 情報 ### 設定 -このエリアには、サーバーが公開する 4Dプロジェクトについての情報 (データやストラクチャーファイルの名称と場所、データベースログファイルの名称) が表示されます。 ストラクチャーやデータファイル名をクリックすると、完全なパス名を表示させることができます。 +このエリアには、サーバーが公開する 4Dプロジェクトについての情報 (データやストラクチャーファイルの名称と場所、データベースログファイルの名称) が表示されます。ストラクチャーやデータファイル名をクリックすると、完全なパス名を表示させることができます。 **モード** 欄はアプリケーションの現在の実行モード 、コンパイル済みかインタープリターかが表示されます。 @@ -55,7 +55,7 @@ title: アプリケーションサーバーページ ### アプリケーションサーバー接続数 -- **最高**: アプリケーションサーバーに許可された最大のクライアント同時接続数を表します。 この値は、サーバーマシンにインストールされているライセンスによります。 +- **最高**: アプリケーションサーバーに許可された最大のクライアント同時接続数を表します。この値は、サーバーマシンにインストールされているライセンスによります。 - **使用中**: 現在使用中の実際の接続数を表します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/http-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/http-server.md index 87b44649577b32..69cb28e296f499 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/http-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/http-server.md @@ -3,7 +3,7 @@ id: http-server title: HTTPサーバーページ --- -**HTTPサーバー** ページには、4D Server の Webサーバーや SOAPサーバーに関する情報が集められています。 Webサーバーは、HTMLページやピクチャーなどの Webコンテンツの公開を可能にします。 SOAPサーバーは Webサービスの公開を管理します。 これら 2つのサーバーは、4D Server の内部的な HTTPサーバーに依存しています。 +**HTTPサーバー** ページには、4D Server の Webサーバーや SOAPサーバーに関する情報が集められています。 Webサーバーは、HTMLページやピクチャーなどの Webコンテンツの公開を可能にします。 SOAPサーバーは Webサービスの公開を管理します。これら 2つのサーバーは、4D Server の内部的な HTTPサーバーに依存しています。 ![](../assets/en/Admin/server-admin-web-page-1.png) @@ -18,8 +18,8 @@ title: HTTPサーバーページ このボタンは切り替え表示され、4D Server HTTPサーバーをコントロールするために使用します。 -- HTTPサーバーの状態が "開始" の場合、ボタンのタイトルは **HTTPサーバー停止** になります。 このボタンをクリックすると、4D Server HTTPサーバーは即座に停止し、Webサーバー、RESTサーバー、および SOAPサーバーはリクエストを受け付けなくなります。 -- HTTPサーバーの状態が "停止" の場合、ボタンのタイトルは **HTTPサーバー開始** になります。 このボタンをクリックすると、4D Server HTTPサーバーは即座に開始し、Web、REST、および SOAPリクエストを受け付けます。 +- HTTPサーバーの状態が "開始" の場合、ボタンのタイトルは **HTTPサーバー停止** になります。このボタンをクリックすると、4D Server HTTPサーバーは即座に停止し、Webサーバー、RESTサーバー、および SOAPサーバーはリクエストを受け付けなくなります。 +- HTTPサーバーの状態が "停止" の場合、ボタンのタイトルは **HTTPサーバー開始** になります。このボタンをクリックすると、4D Server HTTPサーバーは即座に開始し、Web、REST、および SOAPリクエストを受け付けます。 > HTTPサーバーを開始するには適切なライセンスが必要です。 > @@ -29,16 +29,16 @@ title: HTTPサーバーページ このエリアには、4D Server の Webサーバーに関する情報が表示されます。 -- **Web リクエスト**: 受け入れ、または拒否。 この情報は Webサーバーが有効かどうかを示します。 Webサーバーは直接 HTTPサーバーにリンクしているため、HTTPサーバーが開始されていれば Webリクエストは受信され、停止されていれば拒否されます。 -- **最大接続数**: 許可される Web接続の最大数。 この値は、サーバーマシンにインストールされているライセンスによります。 +- **Web リクエスト**: 受け入れ、または拒否。この情報は Webサーバーが有効かどうかを示します。 Webサーバーは直接 HTTPサーバーにリンクしているため、HTTPサーバーが開始されていれば Webリクエストは受信され、停止されていれば拒否されます。 +- **最大接続数**: 許可される Web接続の最大数。この値は、サーバーマシンにインストールされているライセンスによります。 ## SOAP情報 このエリアには、4D Server の SOAPサーバーに関する情報が表示され、コントロールボタンも一つ含まれます。 -- **SOAP リクエスト**: 受け入れ、または拒否。 この情報は SOAPサーバーが有効かどうかを示します。 SOAPリクエストを受け入れるためには、HTTPサーバーが開始され、かつ SOAPサーバーが明示的にリクエストを受け入れなければなりません (ボタンの説明参照)。 -- **最大接続数**: 許可される SOAP接続の最大数。 この値は、サーバーマシンにインストールされているライセンスによります。 -- **SOAPリクエストを受け入れる/受け入れない** ボタン: このボタンは切り替え表示され、4D Server SOAPサーバーのコントロールに使用します。 このボタンをクリックすると、ストラクチャー設定の "Webサービス" ページの **Webサービスリクエストを許可する** オプションが変更されます。 また、[`SOAP REJECT NEW REQUESTS`](../commands/soap-reject-new-requests) コマンドを使って新規の SOAPリクエストを拒否することもできますが、このコマンドは **Webサービスリクエストを許可する** オプションの値を変更しません。 +- **SOAP リクエスト**: 受け入れ、または拒否。この情報は SOAPサーバーが有効かどうかを示します。 SOAPリクエストを受け入れるためには、HTTPサーバーが開始され、かつ SOAPサーバーが明示的にリクエストを受け入れなければなりません (ボタンの説明参照)。 +- **最大接続数**: 許可される SOAP接続の最大数。この値は、サーバーマシンにインストールされているライセンスによります。 +- **SOAPリクエストを受け入れる/受け入れない** ボタン: このボタンは切り替え表示され、4D Server SOAPサーバーのコントロールに使用します。このボタンをクリックすると、ストラクチャー設定の "Webサービス" ページの **Webサービスリクエストを許可する** オプションが変更されます。また、[`SOAP REJECT NEW REQUESTS`](../commands/soap-reject-new-requests) コマンドを使って新規の SOAPリクエストを拒否することもできますが、このコマンドは **Webサービスリクエストを許可する** オプションの値を変更しません。 HTTPサーバー停止中に **SOAPリクエスト受け入れる** ボタンをクリックすると、4D は自動で HTTPサーバーを開始します。 @@ -48,7 +48,7 @@ HTTPサーバー停止中に **SOAPリクエスト受け入れる** ボタンを - **開始時に自動起動**: ストラクチャー設定で設定されたパラメーター。 - **HTTP サーバープロセス (使用/総計)**: サーバー上で作成されたHTTPプロセス数 (現在のプロセス数 / 作成されたプロセスの総数)。 -- **キャッシュメモリ**: HTTPサーバーキャッシュメモリのサイズ ( キャッシュが実際に使用しているサイズ / ストラクチャー設定で理論的にキャッシュに割り当てられた最大サイズ)。 **キャッシュクリア** ボタンをクリックすると、現在のキャッシュを空にすることができます。 +- **キャッシュメモリ**: HTTPサーバーキャッシュメモリのサイズ ( キャッシュが実際に使用しているサイズ / ストラクチャー設定で理論的にキャッシュに割り当てられた最大サイズ)。**キャッシュクリア** ボタンをクリックすると、現在のキャッシュを空にすることができます。 - **待受IP**、**HTTPポート** (デフォルトは 80)、HTTP接続用の **TLS有効** (4D と SQL接続は別設定)、および **HTTPSポート**: これらは、ストラクチャー設定またはプログラミングにより設定された、HTTPサーバーの現在の [設定パラメーター](WebServer/webServerConfig.md) を表示します。 - **ログファイル情報**: 名称、フォーマット、および HTTPサーバーの次回の自動ログバックアップの日付 (logweb.txt ファイル)。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/maintenance.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/maintenance.md index 4b9feeb9335846..408d3caada9185 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/maintenance.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/maintenance.md @@ -3,7 +3,7 @@ id: maintenance title: メンテナンスページ --- -**メンテナンス** ページには、アプリケーションの現在の動作状況に関する情報が表示されます。 また、基本的なメンテナンス機能にアクセスすることもできます: +**メンテナンス** ページには、アプリケーションの現在の動作状況に関する情報が表示されます。また、基本的なメンテナンス機能にアクセスすることもできます: ![](../assets/en/Admin/server-maintenance-1.png) @@ -13,46 +13,46 @@ title: メンテナンスページ ### レコードとインデックスを検査 -このボタンを使用して、サーバーを止めることなく検査処理を直接起動できます。 検証の間、サーバーの動作が遅くなるかもしれないことに留意してください。 +このボタンを使用して、サーバーを止めることなく検査処理を直接起動できます。検証の間、サーバーの動作が遅くなるかもしれないことに留意してください。 -データベースのすべてのレコードとすべてのインデックスが検証されます。 検査対象を絞り込んだり、追加のオプションを指定したい場合は、[Maintenance & Security Center](MSC/overview.md) (MSC) を使用します。 +データベースのすべてのレコードとすべてのインデックスが検証されます。検査対象を絞り込んだり、追加のオプションを指定したい場合は、[Maintenance & Security Center](MSC/overview.md) (MSC) を使用します。 -検査後、サーバー上の [maintenance Logs](../Project/architecture.md#logs) フォルダーに、XML形式でレポートファイルが作成されます。 **レポートを表示** (クライアントマシンから処理が実行された場合は **レポートをダウンロード**) ボタンをクリックすると、ブラウザーにレポートを表示できます。 +検査後、サーバー上の [maintenance Logs](../Project/architecture.md#logs) フォルダーに、XML形式でレポートファイルが作成されます。**レポートを表示** (クライアントマシンから処理が実行された場合は **レポートをダウンロード**) ボタンをクリックすると、ブラウザーにレポートを表示できます。 ### データ圧縮 -このボタンを使用して、データ圧縮処理を直接起動できます。 この処理をおこなうにはサーバーを停止させる必要があります。 ボタンをクリックすると、4D Server の終了ダイアログが表示され、終了方法を選択することができます: +このボタンを使用して、データ圧縮処理を直接起動できます。この処理をおこなうにはサーバーを停止させる必要があります。 ボタンをクリックすると、4D Server の終了ダイアログが表示され、終了方法を選択することができます: ![](../assets/en/Admin/server-shut.png) -アプリケーションが実際に停止された後、4D Server はデータベースのデータに対する標準の圧縮処理をおこないます。 追加のオプションを指定したい場合は、[Maintenance & Security Center](MSC/overview.md) (MSC) を使用します。 +アプリケーションが実際に停止された後、4D Server はデータベースのデータに対する標準の圧縮処理をおこないます。追加のオプションを指定したい場合は、[Maintenance & Security Center](MSC/overview.md) (MSC) を使用します。 -圧縮が終了すると、4D Server は自動でデータベースを再開します。 その後、4Dユーザーの再接続が可能になります。 +圧縮が終了すると、4D Server は自動でデータベースを再開します。その後、4Dユーザーの再接続が可能になります。 > 圧縮リクエストがリモートの 4Dマシンからなされた場合、このマシンは 4D Server により自動で再接続されます。 -検査後、サーバー上の [maintenance Logs](../Project/architecture.md#logs) フォルダーに、XML形式でレポートファイルが作成されます。 **レポートを表示** (クライアントマシンから処理が実行された場合は **レポートをダウンロード**) ボタンをクリックすると、ブラウザーにレポートを表示できます。 +検査後、サーバー上の [maintenance Logs](../Project/architecture.md#logs) フォルダーに、XML形式でレポートファイルが作成されます。**レポートを表示** (クライアントマシンから処理が実行された場合は **レポートをダウンロード**) ボタンをクリックすると、ブラウザーにレポートを表示できます。 ## 動作時間 このエリアには、サーバーが開始されてからの稼働時間 (日、時、分) が表示されます。 -### サーバを再起動... +### サーバーを再起動... -このボタンをクリックするとサーバーを即座に再起動できます。 ボタンをクリックすると、4D Server の終了ダイアログが表示され、終了方法を選択することができます。 再起動後、4D Server は自動でプロジェクトを再度開きます。 その後、4Dユーザーの再接続が可能になります。 +このボタンをクリックするとサーバーを即座に再起動できます。ボタンをクリックすると、4D Server の終了ダイアログが表示され、終了方法を選択することができます。再起動後、4D Server は自動でプロジェクトを再度開きます。その後、4Dユーザーの再接続が可能になります。 > 再起動リクエストがリモートの 4Dマシンからなされた場合、このマシンは 4D Server により自動で再接続されます。 ## 前回のバックアップ -このエリアには、データベースの [前回のバックアップ](MSC/backup.md) の日付・時刻と、予定された次のバックアップがあれば、それに関する情報が表示されます。 自動バックアップは、ストラクチャー設定の **スケジューラー** ページで設定します +このエリアには、データベースの [前回のバックアップ](MSC/backup.md) の日付・時刻と、予定された次のバックアップがあれば、それに関する情報が表示されます。自動バックアップは、ストラクチャー設定の **スケジューラー** ページで設定します - **前回のバックアップ**: 前回のバックアップ日時。 - **次回のバックアップ**: 予定された次のバックアップ日時。 -- **必要なスペース**: バックアップに必要な計算された空き容量。 バックアップファイルの実際のサイズは (圧縮などの) 設定や、データファイルの変化により変わります。 +- **必要なスペース**: バックアップに必要な計算された空き容量。バックアップファイルの実際のサイズは (圧縮などの)設定や、データファイルの変化により変わります。 - **空きスペース**: バックアップボリュームの空き容量。 -**バックアップ開始** ボタンを使用して、現在のバックアップパラメーター ( バックアップするファイル、アーカイブの場所、オプションなど) を使用したバックアップを即座に開始できます。 **環境設定...** ボタンをクリックして、これらのパラメーターを確認できます。 サーバー上でのバックアップがおこなわれる間、クライアントマシンはブロックされ (ただし接続解除はされません)、新規のクライアント接続はできなくなります。 +**バックアップ開始** ボタンを使用して、現在のバックアップパラメーター ( バックアップするファイル、アーカイブの場所、オプションなど) を使用したバックアップを即座に開始できます。**環境設定...** ボタンをクリックして、これらのパラメーターを確認できます。サーバー上でのバックアップがおこなわれる間、クライアントマシンはブロックされ (ただし接続解除はされません)、新規のクライアント接続はできなくなります。 ## リクエストとデバッグログ @@ -62,11 +62,11 @@ title: メンテナンスページ ### リクエストとデバッグのログを開始/停止 -**リクエストとデバッグのログを開始** ボタンでログファイルが開始されます。 これによりフォーマンスが著しく低下する場合があるため、これはアプリケーションの開発フェーズでのみ使用します。 +**リクエストとデバッグのログを開始** ボタンでログファイルが開始されます。これによりパフォーマンスが著しく低下する場合があるため、これはアプリケーションの開発フェーズでのみ使用します。 > このボタンは、サーバー上で実行されているオペレーションしか記録しません。 -ログが有効になると、ボタンのタイトルが **リクエストとデバッグのログを停止** に変わり、いつでもリクエストの記録を停止できます。 停止後にログを再開すると、以前のファイルは消去されることに留意してください。 +ログが有効になると、ボタンのタイトルが **リクエストとデバッグのログを停止** に変わり、いつでもリクエストの記録を停止できます。停止後にログを再開すると、以前のファイルは消去されることに留意してください。 ### レポートを表示 @@ -74,11 +74,11 @@ title: メンテナンスページ ### ログ設定ファイルを読み込む -このボタンを押すと、特殊な [ログ設定ファイル](Debugging/debugLogFiles.md#ログ設定ファイルを使用する) (`.json` ファイル) をサーバーに読み込むことができます。 この特殊ファイルは、特定のケースを監視・調査するために 4Dテクニカルサービスが提供することがあります。 +このボタンを押すと、特殊な [ログ設定ファイル](Debugging/debugLogFiles.md#ログ設定ファイルを使用する) (`.json` ファイル) をサーバーに読み込むことができます。この特殊ファイルは、特定のケースを監視・調査するために 4Dテクニカルサービスが提供することがあります。 ### ログを停止する -このボタンを押すと、サーバーで開始されたログを記録する処理がすべて中断されます。 この機能は、サーバーの処理を一時的に軽くするのに便利です。 +このボタンを押すと、サーバーで開始されたログを記録する処理がすべて中断されます。この機能は、サーバーの処理を一時的に軽くするのに便利です。 ログが停止されると、ボタンのタイトルが **ログを再開する** に変わり、これを押すことでログの記録を再開することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/monitor.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/monitor.md index 0e7a789dce4d00..f87b7e5981a90d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/monitor.md @@ -7,19 +7,19 @@ title: モニターページ ![](../assets/en/Admin/server-admin-1.png) -> Windows では、このページに表示されるシステム情報の一部は、Windows パフォーマンスアナライザー (WPA) ツールを介して取得されます。 これらのツールは、4D Server を起動したセッションを開いたユーザーが、必要な管理権限を持っている場合にのみアクセスできます。 +> Windows では、このページに表示されるシステム情報の一部は、Windows パフォーマンスアナライザー (WPA) ツールを介して取得されます。これらのツールは、4D Server を起動したセッションを開いたユーザーが、必要な管理権限を持っている場合にのみアクセスできます。 ## グラフィックエリア -グラフィックエリアでは、複数のパラメーター (CPU使用率、ネットワークトラフィック、およびメモリ) の変化がリアルタイムで表示されます。 ウィンドウの中央にあるメニューから表示する内容を選択します: +グラフィックエリアでは、複数のパラメーター (CPU使用率、ネットワークトラフィック、およびメモリ) の変化がリアルタイムで表示されます。ウィンドウの中央にあるメニューから表示する内容を選択します: ![](../assets/en/Admin/server-graphic.png) -- **CPU使用率**: すべてのアプリケーションによるマシンの全体的な CPU使用率。 この使用率のうちの 4D Server による使用分は、"プロセッサー" 情報エリアで提供されます。 -- **ネットワーク**: マシン (サーバーまたはクライアント) が 1秒あたりに受信したバイト数。 送信バイト数は "ネットワーク" 情報エリアで提供されます。 -- **物理メモリ**: 4D Server が使用する、マシンの RAM の量。 メモリの利用に関するより詳細な情報は "メモリ" 情報エリアで提供されます。 -- **仮想メモリ**: 4D Server アプリケーションが使用する仮想メモリの量。 このメモリは、アプリケーションのニーズに応じてシステムにより割り当てられます。 エリアの右下に表示される値は、現在使用されているメモリ量を示します。 左上に表示される値は、利用可能な仮想メモリの最大値を示します。 最大値は、アプリケーションの一般メモリ設定に基づき動的に計算されます。 -- **キャッシュ**: 4D Server アプリケーションが使用するキャッシュメモリの量。 エリアの右下に表示される値は、現在使用されているメモリ量を示します。 左上に表示される値は、ストラクチャー設定に設定されたキャッシュメモリの合計サイズを示します。 +- **CPU使用率**: すべてのアプリケーションによるマシンの全体的な CPU使用率。この使用率のうちの 4D Server による使用分は、"プロセッサー" 情報エリアで提供されます。 +- **ネットワーク**: マシン (サーバーまたはクライアント) が 1秒あたりに受信したバイト数。送信バイト数は "ネットワーク" 情報エリアで提供されます。 +- **物理メモリ**: 4D Server が使用する、マシンの RAM の量。メモリの利用に関するより詳細な情報は "メモリ" 情報エリアで提供されます。 +- **仮想メモリ**: 4D Server アプリケーションが使用する仮想メモリの量。このメモリは、アプリケーションのニーズに応じてシステムにより割り当てられます。エリアの右下に表示される値は、現在使用されているメモリ量を示します。左上に表示される値は、利用可能な仮想メモリの最大値を示します。最大値は、アプリケーションの一般メモリ設定に基づき動的に計算されます。 +- **キャッシュ**: 4D Server アプリケーションが使用するキャッシュメモリの量。エリアの右下に表示される値は、現在使用されているメモリ量を示します。左上に表示される値は、ストラクチャー設定に設定されたキャッシュメモリの合計サイズを示します。 このオプションが選択されている場合、キャッシュの有効な解析をおこなうために長めの観測時間が必要となるため、グラフエリアのスクロールは遅くなります。 @@ -30,7 +30,7 @@ title: モニターページ - **システム情報**: サーバーのマシン、システムおよび IPアドレス - **アプリケーション情報**: 4D Server の内部バージョン番号およびボリュームシャドウコピーステータス - **最大接続数**: サーバータイプ毎に可能な同時接続数 -- **ライセンス**: ライセンスの詳細。 プロダクトライセンス、あるいは付随エクスパンションのいずれかが 10日以内に失効するとき (例: サブスクリプション型ライセンスなど)、4D Server は自動的にそのライセンスを 4Dユーザーアカウントから更新しようとします。 この場合、なんらかの理由 (接続エラー、無効なアカウント状態、契約が延長されていないなど) で自動更新が失敗した場合、サーバー管理者に警告を伝えるアイコンがライセンスの隣に表示されます。 エリア上にマウスをホバーさせると、ライセンス更新状態についての追加の情報が tips として表示されます: +- **ライセンス**: ライセンスの詳細。プロダクトライセンス、あるいは付随エクスパンションのいずれかが 10日以内に失効するとき (例: サブスクリプション型ライセンスなど)、4D Server は自動的にそのライセンスを 4Dユーザーアカウントから更新しようとします。この場合、なんらかの理由 (接続エラー、無効なアカウント状態、契約が延長されていないなど) で自動更新が失敗した場合、サーバー管理者に警告を伝えるアイコンがライセンスの隣に表示されます。エリア上にマウスをホバーさせると、ライセンス更新状態についての追加の情報が tips として表示されます: ![](../assets/en/Admin/server-licence-failed.png) @@ -42,5 +42,5 @@ title: モニターページ - **ハードディスク**: ハードディスク全体、およびデータベースデータ ( データファイルとインデックスファイル) の使用スペース、他のファイルの使用スペース、空きスペースなどを表示します。 - **メモリ**: マシンにインストールされた RAMメモリ、4D Server による使用量、他のアプリケーションによる使用量、および空き容量。 4D Server が使用するメモリはグラフィックエリアにも動的に表示できます。 -- **プロセッサー**: 4D Server と他のアプリケーションによる、プロセッサーの使用率。 この使用率は絶えず再計算されます。 4D Server による使用率はグラフィックエリアにも動的に表示できます。 -- **ネットワーク**: マシン (サーバーまたはクライアント) が受信および送信したその瞬間のバイト数。 この値は絶えず更新されます。 受信したバイト数はグラフィックエリアにも動的に表示できます。 +- **プロセッサー**: 4D Server と他のアプリケーションによる、プロセッサーの使用率。この使用率は絶えず再計算されます。 4D Server による使用率はグラフィックエリアにも動的に表示できます。 +- **ネットワーク**: マシン (サーバーまたはクライアント) が受信および送信したその瞬間のバイト数。この値は絶えず更新されます。受信したバイト数はグラフィックエリアにも動的に表示できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/overview.md index 958417db6fd494..461996fb014dc3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/overview.md @@ -3,6 +3,6 @@ id: overview title: 4D Server ウィンドウ --- -Windows または macOS上で、4D Server をインターフェースありで起動すると、グラフィカルな管理ウィンドウが利用でき、公開された 4Dアプリケーション用に多くの解析・制御ツールを提供します。 開いているプロジェクトの 4D Server 管理ウィンドウを表示するには、**ウィンドウ>管理** メニュー項目を選択するか、**Ctrl+U** を押します。 +Windows または macOS上で、4D Server をインターフェースありで起動すると、グラフィカルな管理ウィンドウが利用でき、公開された 4Dアプリケーション用に多くの解析・制御ツールを提供します。開いているプロジェクトの 4D Server 管理ウィンドウを表示するには、**ウィンドウ>管理** メニュー項目を選択するか、**Ctrl+U** を押します。 -> 管理ウィンドウはリモートの 4D からもアクセス可能です。 この点についての詳細は、 [リモートマシンからの管理](remote-admin.md) を参照ください。 +> 管理ウィンドウはリモートの 4D からもアクセス可能です。この点についての詳細は、 [リモートマシンからの管理](remote-admin.md) を参照ください。 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 64aaa51bb9d190..5aeee437e4c163 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/processes.md @@ -9,19 +9,19 @@ title: プロセスページ "プロセス" ボタンには、サーバーで実行中のプロセス数が括弧内に表示されます (この番号は、ウィンドウに適用される表示フィルターや **グループ毎にプロセスを表示** オプションのステータスを考慮しません)。 -列ヘッダーをドラッグ&ドロップして、列の順番を入れ替えることができます。 また、ヘッダーをクリックすると、リストの値が並べ替えられます。 +列ヘッダーをドラッグ&ドロップして、列の順番を入れ替えることができます。また、ヘッダーをクリックすると、リストの値が並べ替えられます。 -セッションページと同様にこのページにも、検索欄に入力されたテキストに対応する行だけをリストに表示させ、行数を減らすことができる動的な [検索/フィルターエリア](sessions.md#検索とフィルター) があります。 検索/フィルターはセッションとプロセス名の列に対して実行されます。 +セッションページと同様にこのページにも、検索欄に入力されたテキストに対応する行だけをリストに表示させ、行数を減らすことができる動的な [検索/フィルターエリア](sessions.md#検索とフィルター) があります。検索/フィルターはセッションとプロセス名の列に対して実行されます。 ウィンドウに表示されるプロセスを、タイプ毎にフィルターするためのボタンが 3つあります: ![](../assets/en/Admin/server-process-buttons.png) -- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。 このプロセスには人のアイコンが表示されます。 -- **4D プロセス**: 4D Server エンジンが生成したプロセス。 このプロセスには歯車のアイコンが表示されます。 -- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。 このメカニズムは 4D Server の反応性を向上させます。 このプロセスには薄暗い人のアイコンが表示されます。 +- **ユーザープロセス**: ユーザーセッションにより、またユーザーセッションのために作成されたプロセス。このプロセスには人のアイコンが表示されます。 +- **4D プロセス**: 4D Server エンジンが生成したプロセス。このプロセスには歯車のアイコンが表示されます。 +- **予備プロセス**: 使用されていないが一時的に保持され、いつでも再利用が可能なプロセス。このメカニズムは 4D Server の反応性を向上させます。このプロセスには薄暗い人のアイコンが表示されます。 -**グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。 このオプションをチェックすると: +**グループ毎にプロセスを表示** オプションを使用して、4D Server の内部プロセスやクライアントプロセスをグループ化できます。このオプションをチェックすると: - 4Dクライアントのプロセス (メインの 4Dクライアントプロセスや 4Dクライアントの基本プロセス。 [プロセスタイプ](#プロセスタイプ) 参照) は 1つにグループ化されます。 - "タスクマネージャー" グループが作成され、タスクを分割するための内部プロセス (共有バランサー、ネットセッションマネージャー、Exclusive pool worker) がグループ化されます。 @@ -31,7 +31,7 @@ title: プロセスページ > **Shift**キーを押しながら連続した行を、**Ctrl** (Windows) / **Command** (macOS) キーを押しながら非連続の行を選択できます。 -プロセスの稼働状況は、4D Server がこのプロセスのために使用した時間のパーセンテージです。 ウィンドウにはプロセスごとに以下の情報が表示されます: +プロセスの稼働状況は、4D Server がこのプロセスのために使用した時間のパーセンテージです。ウィンドウにはプロセスごとに以下の情報が表示されます: - プロセスタイプ (後述) - セッション/情報: @@ -39,14 +39,14 @@ title: プロセスページ - ユーザープロセス - 4Dユーザー名 - Webプロセス - URLパス - プロセス名 -- プロセスの番号 (例えば [`New process`](../commands/new-process) コマンドなどから返される番号)。 プロセス番号はサーバー上で割り当てられる番号です。 グローバルプロセスの場合、この番号はクライアントマシン上で割り当てられた番号と異なる場合があります。 +- プロセスの番号 (例えば [`New process`](../commands/new-process) コマンドなどから返される番号)。プロセス番号はサーバー上で割り当てられる番号です。グローバルプロセスの場合、この番号はクライアントマシン上で割り当てられた番号と異なる場合があります。 - プロセスの現在の状況 - 作成されてからのプロセスの実行時間 (秒) - 4D Server がこのプロセスに使用した時間のパーセンテージ ## プロセスタイプ -プロセスタイプはアイコンで識別できます。 アイコンの色や形に対応するプロセスタイプは以下のとおりです: +プロセスタイプはアイコンで識別できます。アイコンの色や形に対応するプロセスタイプは以下のとおりです: | アイコン | タイプ | | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- | @@ -57,7 +57,7 @@ title: プロセスページ | ![](../assets/en/Admin/server-icon-5.png) | SOAP サーバー | | ![](../assets/en/Admin/server-icon-6.png) | 保護された 4Dクライアントプロセス (接続された 4D の開発プロセス) | | ![](../assets/en/Admin/server-icon-7.png) | 接続している 4Dクライアントのメインプロセス、または、接続中の4Dクライアント上で `New process` で作成されたプロセス (クライアントマシン上で作成されたプロセスに対応するサーバープロセス) | -| ![](../assets/en/Admin/server-icon-8.png) | 4Dクライアント基本プロセス (4Dクライアントプロセスと並列なプロセス。 メイン4Dクライアントプロセスをコントロールするプリエンプティブプロセス) | +| ![](../assets/en/Admin/server-icon-8.png) | 4Dクライアント基本プロセス (4Dクライアントプロセスと並列なプロセス。メイン4Dクライアントプロセスをコントロールするプリエンプティブプロセス) | | ![](../assets/en/Admin/server-icon-9.png) | 予備プロセス (以前または後の "4Dクライアントデータベースプロセス") | | ![](../assets/en/Admin/server-icon-10.png) | SQL サーバーワーカープロセス | | ![](../assets/en/Admin/server-icon-11.png) | HTTP サーバーワーカープロセス | @@ -85,17 +85,17 @@ title: プロセスページ ## 管理ボタン -このページには、選択されたプロセスに対して動作する 5つのコントロールボタンがあります。 ユーザープロセスに対してのみ使用できる点に注意してください。 +このページには、選択されたプロセスに対して動作する 5つのコントロールボタンがあります。ユーザープロセスに対してのみ使用できる点に注意してください。 ![](../assets/en/Admin/server-process-actions-1.png) -- **プロセスを中断**: 選択したプロセスをアボートします。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 +- **プロセスを中断**: 選択したプロセスをアボートします。このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 > 確認ダイアログなしに選択したプロセスをアボートするには、**Alt**\*キーを押しながらこのボタンをクリックするか、[`ABORT PROCESS BY ID`](../commands/abort-process-by-id) コマンドを使用します。 - **プロセスを一時停止**: 選択したプロセスを一時停止します。 -- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。 対象のプロセスは、(上のボタンかプログラミングによって)先に停止されていなければなりません。そうでない場合、このボタンは何の効力ももちません。 -- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。 このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 +- **プロセスをアクティベート**: 選択したプロセスの実行を再開します。対象のプロセスは、(上のボタンかプログラミングによって)先に停止されていなければなりません。そうでない場合、このボタンは何の効力ももちません。 +- **プロセスをデバッグ**: 選択したプロセスのデバッガーをサーバーマシン上で開きます。このボタンをクリックすると警告ダイアログが表示され、操作を続行またはキャンセルできます。 4Dコードが実際にサーバーマシン上で実行されている場合にのみ、デバッガーウィンドウが表示される点に注意してください (たとえば、トリガーや "サーバー上で実行" 属性を持つメソッドの実行時など)。 > 確認ダイアログなしに選択したプロセスをデバッグするには、**Alt**キーを押しながらこのボタンをクリックします。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md index 13be7830d82511..4a4dc73623b510 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/real-time-monitor.md @@ -3,41 +3,40 @@ id: real-time-monitor title: リアルタイムモニターページ --- -リアルタイムモニターは、アプリケーションによって実行された、"長い" オペレーションの状態をリアルタイムでモニターします。 これらのオペレーションとは、たとえばシーケンシャルクエリやフォーミュラの実行などです: +リアルタイムモニターは、アプリケーションによって実行された、"長い" オペレーションの状態をリアルタイムでモニターします。これらのオペレーションとは、たとえばシーケンシャルクエリやフォーミュラの実行などです: ![](../assets/en/Admin/server-admin-monitor-page-2.png) -> このページは、サーバーマシンの管理ウィンドウにありますが、リモートの 4Dマシンからも見られます。 リモートマシンの場合は、サーバーマシン上で実行されている操作のデータを表示します。 +> このページは、サーバーマシンの管理ウィンドウにありますが、リモートの 4Dマシンからも見られます。リモートマシンの場合は、サーバーマシン上で実行されている操作のデータを表示します。 -データに対して実行されている長い処理は、それぞれに行が割り当てられます。 操作が完了すると、この行は消えます (**オペレーションを最低5秒間表示する** オプションをチェックすることで、短いオペレーションでも 5秒間表示したままにできます。 +データに対して実行されている長い処理は、それぞれに行が割り当てられます。操作が完了すると、この行は消えます (**オペレーションを最低5秒間表示する** オプションをチェックすることで、短いオペレーションでも 5秒間表示したままにできます。 各行について、以下の情報が表示されます: - **開始時刻**: 操作の開始時刻が、"dd/mm/yyyy - hh:mm:ss" というフォーマットで表示されます。 - **経過時間** (ミリ秒): 進行中の操作の経過時間がミリ秒単位で表示されます。 - **情報**: 操作の説明。 -- **詳細**: このエリアには、選択したオペレーションのタイプに応じて、その詳細な情報が表示されます。 具体的には以下の情報が表示されます: +- **詳細**: このエリアには、選択したオペレーションのタイプに応じて、その詳細な情報が表示されます。具体的には以下の情報が表示されます: - **作成された場所**: そのオペレーションがクライアントアクションの結果か (クライアント上で作成)、ストアドプロシージャーまたは "サーバー上で実行" オプションを使用した結果か (サーバー上で作成) を表示します。 - **オペレーション詳細**: オペレーションタイプと、(クエリオペレーションに対しては) クエリプランを表示します。 - **サブオペレーション** (あれば): 選択したオペレーションに従属するオペレーションを表示します (例:親レコードの前にリレートレコードを削除する) - **プロセス詳細**: テーブル、フィールド、プロセスやクライアントに関する追加情報が表示されます。 -> リアルタイムモニタリングのページは内部的には [`ACTIVITY SNAPSHOT`](../commands/activity-snapshot) コマンドを使用しています。 詳細については、コマンドの説明を参照ください。 +> リアルタイムモニタリングのページは内部的には [`ACTIVITY SNAPSHOT`](../commands/activity-snapshot) コマンドを使用しています。詳細については、コマンドの説明を参照ください。 -このページは表示後すぐにアクティブになり、恒久的に更新され続けます。 ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。 以下の方法を用いて更新を一時的に停止させることが可能です: +このページは表示後すぐにアクティブになり、恒久的に更新され続けます。ただし、この処理によって、アプリケーションの実行を極端に遅くさせる可能性があることに注意してください。以下の方法を用いて更新を一時的に停止させることが可能です: - **停止** ボタンをクリックする - リストの中をクリックする - スペースバーを押す -ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。 -モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 +ページを停止させると一時停止のメッセージが表示され、ボタンの表示が **再開** に変わります。モニタリング停止操作と同じ操作をすることでモニタリングを再開させることができます。 ## アドバンスドモード 必要であれば、RTMページはオペレーションごとに追加の情報を表示することができます。 -オペレーションのアドバンスドモードにアクセスするには、**Shift**キーを押しながら、情報を取得したいオペレーションを選択します。 すべての閲覧可能な情報が、フィルタリングなしで "プロセス詳細" エリアに表示されます(`ACTIVITY SNAPSHOT` コマンドで返されるものと同じです)。 表示される情報は、選択したオペレーションによって異なります。 +オペレーションのアドバンスドモードにアクセスするには、**Shift**キーを押しながら、情報を取得したいオペレーションを選択します。すべての閲覧可能な情報が、フィルタリングなしで "プロセス詳細" エリアに表示されます(`ACTIVITY SNAPSHOT` コマンドで返されるものと同じです)。表示される情報は、選択したオペレーションによって異なります。 標準モードで表示される情報の例です: @@ -55,5 +54,5 @@ title: リアルタイムモニターページ ## オペレーションを最低5秒間表示する -**オペレーションを最低5秒間表示する** オプションをチェックすると、表示されたオペレーションはどれも (実行が終了した後も) 最低5秒間は表示されたままになります。 このオプションが適用されたオペレーションは、オペレーションリスト中に灰色で表示されます。 この機能は、とても早く終わってしまうオペレーションの情報を取得したい場合に有効です。 +**オペレーションを最低5秒間表示する** オプションをチェックすると、表示されたオペレーションはどれも (実行が終了した後も) 最低5秒間は表示されたままになります。このオプションが適用されたオペレーションは、オペレーションリスト中に灰色で表示されます。この機能は、とても早く終わってしまうオペレーションの情報を取得したい場合に有効です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/remote-admin.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/remote-admin.md index 53b20ca426bd0c..b04da7a1adf800 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/remote-admin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/remote-admin.md @@ -7,7 +7,7 @@ title: リモートマシンからの管理 ## リモートの 4D マシンで管理画面を開く -クライアントマシンからサーバー管理画面を開くには、デザイナーまたは管理者としてリモートデータベースに接続している必要があります。 そうでない場合、管理画面を開こうとすると、権限エラー (-9991) が発生します。 +クライアントマシンからサーバー管理画面を開くには、デザイナーまたは管理者としてリモートデータベースに接続している必要があります。そうでない場合、管理画面を開こうとすると、権限エラー (-9991) が発生します。 この画面には、次のいずれかの方法でアクセスできます: @@ -18,8 +18,8 @@ title: リモートマシンからの管理 ## リモート 4D マシンからの管理の特徴 -サーバー管理画面を表示しているクライアントマシンは、利用可能な情報すべてにアクセスでき、サーバーの起動/停止やプロセスの操作をおこなえます。 しかしながら、サーバー管理画面がリモートマシンに表示されている場合には、一定の制限と特有の機能に留意が必要です: +サーバー管理画面を表示しているクライアントマシンは、利用可能な情報すべてにアクセスでき、サーバーの起動/停止やプロセスの操作をおこなえます。しかしながら、サーバー管理画面がリモートマシンに表示されている場合には、一定の制限と特有の機能に留意が必要です: - [プロセスページ](processes.md) では、ユーザープロセスをデバッグすることはできません (サーバーマシンにデバッグウィンドウが表示されるため)。 -- [メンテナンスページ](maintenance.md) では、すべてのクライアントを切断し、サーバーを再起動するアクション (データ圧縮およびサーバー再起動) を実行できます。 この場合、操作を実行したクライアントマシンは、再起動時に自動的に再接続されます。 -- [メンテナンスページ](maintenance.md) では、メンテナンス操作の実行後、**レポートの表示** ボタンが **レポートのダウンロード** という名前に変更されます。 これらのファイルは、クライアントマシンのローカルデータベースフォルダーにダウンロードされてから表示されます。 \ No newline at end of file +- [メンテナンスページ](maintenance.md) では、すべてのクライアントを切断し、サーバーを再起動するアクション (データ圧縮およびサーバー再起動) を実行できます。この場合、操作を実行したクライアントマシンは、再起動時に自動的に再接続されます。 +- [メンテナンスページ](maintenance.md) では、メンテナンス操作の実行後、**レポートの表示** ボタンが **レポートのダウンロード** という名前に変更されます。これらのファイルは、クライアントマシンのローカルデータベースフォルダーにダウンロードされてから表示されます。 \ No newline at end of file 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 c4f7824385fbde..5cece706f4722d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sessions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sessions.md @@ -9,9 +9,9 @@ title: セッションページ **ユーザー** ボタンには、アクティブなセッションの合計数が括弧内に表示されます(この数には、ウィンドウにて適用されるフィルターは考慮されません)。 -このページには、動的な検索エリアやフィルタリング制御、管理ボタンなどがあります。 ヘッダーエリアをドラッグ&ドロップして、列の順番を入れ替えることができます。 +このページには、動的な検索エリアやフィルタリング制御、管理ボタンなどがあります。ヘッダーエリアをドラッグ&ドロップして、列の順番を入れ替えることができます。 -また、ヘッダーをクリックすると、リストの値が並べ替えられます。 クリックするごとに昇順/降順が入れ替わります。 +また、ヘッダーをクリックすると、リストの値が並べ替えられます。クリックするごとに昇順/降順が入れ替わります。 ![](../assets/en/Admin/server-sessions-sort-1.png) @@ -21,13 +21,13 @@ title: セッションページ リストには、以下の情報が表示されます: -- セッションの種類を表すアイコン(macOS クライアントセッションにはApple アイコン、Windows クライアントにはWindows アイコン、Web、REST、SOAP セッションには地球アイコン)。 また、セッションが認証されているかどうかを表す追加のインジケーターも表示されます。 +- セッションの種類を表すアイコン(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 セッションは常に**オンライン** ステータスとなります。 +- **ステータス**: セッションのステータス。クライアントセッションの場合、**オンライン**、 **[スリープ中](../Desktop/clientServer.md#スリープしたクライアントセッションの管理)**あるいは **[クライアント接続不可](../Desktop/clientServer.md#到達不能なピアの管理)** のいずれかになります。 Web、REST、およびSOAP セッションは常に**オンライン** ステータスとなります。 セッションが選択されていれば追加の情報が詳細パネル内に表示されます。 @@ -49,26 +49,26 @@ title: セッションページ 詳細パネルは以下のような情報を表示します: -- **ゲストステータス**: セッションがゲストセッションかどうかを表します。 ゲストセッションとは未認証のWeb セッションです。 +- **ゲストステータス**: セッションがゲストセッションかどうかを表します。ゲストセッションとは未認証のWeb セッションです。 - **権限**: セッションに割り当てられた権限の一覧。 - **IP アドレス**: セッションを開いたリモートマシンのIP アドレス。 - **ユーザーエージェント**: クライアントアプリケーション、ブラウザ、あるいはセッションを開始したサービスを識別します。 ### IP検索ボタン -公開IP アドレスが表示されている場合、IP 検索ボタンが有効化されます。 このボタンをクリックすることで、選択されたセッションの位置情報を取得することができます。 +公開IP アドレスが表示されている場合、IP 検索ボタンが有効化されます。このボタンをクリックすることで、選択されたセッションの位置情報を取得することができます。 -もしその情報が利用可能な場合、**City, Country** のフォーマットでIP 検索ボタンの横に位置が表示されます。 そうでない場合**Not found** が表示されます。 +もしその情報が利用可能な場合、**City, Country** のフォーマットでIP 検索ボタンの横に位置が表示されます。そうでない場合**Not found** が表示されます。 ## 検索とフィルタリング ### 検索バー -検索フィールドを使用して、入力されたテキストに対応する行だけをリストに表示させ、行数を減らすことができます。 検索は、**ユーザー名**、**マシン名**、**セッション名**、および **IP アドレス** 列に対して実行されます。 +検索フィールドを使用して、入力されたテキストに対応する行だけをリストに表示させ、行数を減らすことができます。検索は、**ユーザー名**、**マシン名**、**セッション名**、および **IP アドレス** 列に対して実行されます。 テキストが入力されると、リストはリアルタイムで更新されます。 -値をセミコロン(`;`) で区切ることで、複数の値を使用して検索をおこなうことができます。 この場合、値は**OR** 演算子を使用して結合されます。 +値をセミコロン(`;`) で区切ることで、複数の値を使用して検索をおこなうことができます。この場合、値は**OR** 演算子を使用して結合されます。 例えば、以下のように入力した場合: @@ -93,12 +93,12 @@ John;Mary;REST ## 管理ボタン -管理ボタンは三つあります: **メッセージ送信** は一つ以上のクライアントセッションが選択されている場合に利用可能です。 **プロセス監視** はタイプに関わらず単一のセッションが選択されているときに利用可能で、また**セッションをドロップ** はタイプに関わらず一つ以上のセッションが選択されているときに利用可能です。 +管理ボタンは三つあります: **メッセージ送信** は一つ以上のクライアントセッションが選択されている場合に利用可能です。**プロセス監視** はタイプに関わらず単一のセッションが選択されているときに利用可能で、また**セッションをドロップ** はタイプに関わらず一つ以上のセッションが選択されているときに利用可能です。 **Shift** キーを押しながらクリックして連続した行を、あるいは **Ctrl (Windows) / Command (macOS)** キーを押しながらクリックして連続しない行を複数選択できます。 ### メッセージ送信 -このボタンを使用して、選択した**クライアント**セッションにメッセージを送信できます。 クライアントセッションが選択されていないと、ボタンを使用できません。 ボタンをクリックするとダイアログボックスが表示され、メッセージを入力できます。 ダイアログにはメッセージを受信するクライアントセッションの数が表示されます: +このボタンを使用して、選択した**クライアント**セッションにメッセージを送信できます。クライアントセッションが選択されていないと、ボタンを使用できません。ボタンをクリックするとダイアログボックスが表示され、メッセージを入力できます。ダイアログにはメッセージを受信するクライアントセッションの数が表示されます: ![](../assets/en/Admin/server-message.png) @@ -126,7 +126,7 @@ John;Mary;REST 4D Server は、サーバーマシンへの接続がアクティブである間にスリープモードへと切り替わってしまった 4Dリモートアプリケーションを実行しているマシンについて、特別な管理をします。 -この場合、リモートアプリケーションはスリープする前に4D Server へと自動的に知らせます。 対応するクライアントセッションはステータスは**Sleeping** へと変更されます。 +この場合、リモートアプリケーションはスリープする前に4D Server へと自動的に知らせます。対応するクライアントセッションはステータスは**Sleeping** へと変更されます。 ![](../assets/en/Admin/server-sleep.png) @@ -140,7 +140,7 @@ John;Mary;REST ## 到達不能なピアの管理 -[QUIC ネットワークレイヤーが使用されている](../settings/client-server.md#ネットワークレイヤー) 場合、クライアント/サーバーせションでは予期せぬ接続切断の場合に **自動再接続機能** の恩恵を受けることができます。 予期せぬ接続切断とは、例えば以下の様な場合を含みます: +[QUIC ネットワークレイヤーが使用されている](../settings/client-server.md#ネットワークレイヤー) 場合、クライアント/サーバーせションでは予期せぬ接続切断の場合に **自動再接続機能** の恩恵を受けることができます。予期せぬ接続切断とは、例えば以下の様な場合を含みます: - LAN ケーブルの抜き差し - モバイル接続の移行 @@ -157,7 +157,7 @@ John;Mary;REST ### 到達不能イベント -QUIC ネットワークレイヤーは、リモート4D が予期せず対応できない状態になったときには、自動的に"到達不能"イベントを4D Server に送信します。逆に、4D Server が予期せず対応できない状態になったときには、リモート4D に"到達不能"イベントを自動的に送信します。 どちらか側で"到達不能" イベントが受信されると、その情報はインターフェース内とマシンの[`Session`](./sessions.md) オブジェクト内にて即座に反映されます。 +QUIC ネットワークレイヤーは、リモート4D が予期せず対応できない状態になったときには、自動的に"到達不能"イベントを4D Server に送信します。逆に、4D Server が予期せず対応できない状態になったときには、リモート4D に"到達不能"イベントを自動的に送信します。どちらか側で"到達不能" イベントが受信されると、その情報はインターフェース内とマシンの[`Session`](./sessions.md) オブジェクト内にて即座に反映されます。 #### リモート4D側が応答を停止した場合 @@ -173,7 +173,7 @@ QUIC ネットワークレイヤーは、リモート4D が予期せず対応で #### セッションオブジェクトの更新 -どちらかで"Unreachable" イベントが受信された時、イベントを受信したマシン上のセッション内にて[`info.unreachableSince`](../API/SessionClass.md#info) プロパティが作成され(サーバー上ではこれは[`Process activity.sessions`](../commands/process-activity) プロパティを通して読み出し可能です)、また最後の通信からの秒数をカウントし始めます。 このプロパティを使用して独自の接続解除インターフェースを実装することができます。 +どちらかで"Unreachable" イベントが受信された時、イベントを受信したマシン上のセッション内にて[`info.unreachableSince`](../API/SessionClass.md#info) プロパティが作成され(サーバー上ではこれは[`Process activity.sessions`](../commands/process-activity) プロパティを通して読み出し可能です)、また最後の通信からの秒数をカウントし始めます。このプロパティを使用して独自の接続解除インターフェースを実装することができます。 ### 接続の復元または解除 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sql-server.md b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sql-server.md index 9a8d0bd9f658c9..340bfb125210b1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sql-server.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ServerWindow/sql-server.md @@ -3,7 +3,7 @@ id: sql-server title: SQLサーバーページ --- -**SQLサーバー** ページには、4D Server に統合された SQLサーバーについての情報が集められています。 また、SQLサーバーを有効にするためのボタンも含まれています。 +**SQLサーバー** ページには、4D Server に統合された SQLサーバーについての情報が集められています。また、SQLサーバーを有効にするためのボタンも含まれています。 ![](../assets/en/Admin/server-admin-sql-page-1.png) @@ -17,8 +17,8 @@ title: SQLサーバーページ このボタンは切り替え表示され、4D Server SQLサーバーをコントロールするために使用します。 -- SQLサーバーの状態が "開始" の場合、ボタンのタイトルは **SQLサーバー停止** になります。 このボタンをクリックすると、4D Server SQLサーバーは即座に停止し、指定した TCPポートで受信される外部からの SQLクエリには応答しなくなります。 -- SQLサーバーの状態が "停止" の場合、ボタンのタイトルは **SQLサーバー開始** になります。 このボタンをクリックすると、4D Server SQLサーバーは即座に開始し、指定した TCPポートで受信される外部からの SQLクエリに応答します。 4D SQLサーバーを使用するには、適切なライセンスが必要な点に注意してください。 +- SQLサーバーの状態が "開始" の場合、ボタンのタイトルは **SQLサーバー停止** になります。このボタンをクリックすると、4D Server SQLサーバーは即座に停止し、指定した TCPポートで受信される外部からの SQLクエリには応答しなくなります。 +- SQLサーバーの状態が "停止" の場合、ボタンのタイトルは **SQLサーバー開始** になります。このボタンをクリックすると、4D Server SQLサーバーは即座に開始し、指定した TCPポートで受信される外部からの SQLクエリに応答します。 4D SQLサーバーを使用するには、適切なライセンスが必要な点に注意してください。 > ストラクチャー設定で設定してアプリケーション起動と同時に、またはプログラムを使用して必要な時に、SQLサーバーを自動で開始することができます。 @@ -36,4 +36,4 @@ title: SQLサーバーページ ### 最大接続数 -許可される同時SQL接続の最大数。 この値は、サーバーマシンにインストールされているライセンスによります。 +許可される同時SQL接続の最大数。この値は、サーバーマシンにインストールされているライセンスによります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Tags/transformation-tags.md b/i18n/ja/docusaurus-plugin-content-docs/current/Tags/transformation-tags.md index 1c7f626e1aac85..8c0bf1ad527025 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Tags/transformation-tags.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Tags/transformation-tags.md @@ -3,13 +3,13 @@ id: transformation-tags title: 変換タグ --- -4Dでは、参照を 4D変数や式に挿入したり、様々な処理をソーステキスト ("テンプレート") に対して実行したりするための変換タグのセットを用意しています。 これらのタグは、ソーステキストが実行されてアウトプットテキストが生成されたときに解釈されます。 +4Dでは、参照を 4D変数や式に挿入したり、様々な処理をソーステキスト ("テンプレート") に対して実行したりするための変換タグのセットを用意しています。これらのタグは、ソーステキストが実行されてアウトプットテキストが生成されたときに解釈されます。 4D Webサーバーにおいて [Web テンプレートページ](WebServer/templates.md) をビルドするにあたって、この原理が使用されます。 これらのタグは原則として HTMLコメント (``) として挿入します。 しかしながら、[xml に準じた代替シンタックス](#4dtext-4dhtml-4deval-の代替シンタックス) も一部利用可能です。 -複数タイプのタグを混用することも可能です。 たとえば、以下の HTML構造は、問題なく実行可能です: +複数タイプのタグを混用することも可能です。たとえば、以下の HTML構造は、問題なく実行可能です: ```html @@ -41,11 +41,11 @@ title: 変換タグ - [`PROCESS 4D TAGS`](../commands/process-4d-tags) コマンド使用時: このコマンドは *テンプレート* に加えて任意の引数を受け入れ、処理の結果であるテキストを返します。 -- 4D の統合された HTTPサーバー使用時: `WEB SEND FILE` (.htm, .html, .shtm, .shtml)、`WEB SEND BLOB` (text/html型 BLOB)、および `WEB SEND TEXT` コマンドによって [テンプレートページ](WebServer/templates.md) を送信、あるいは URL で呼び出します。 URL で呼び出す場合、".htm" と ".html" で終わるページは最適化のため解析されません。 この場合に HTMLページを解析するには、末尾を ".shtm" または ".shtml" とする必要があります (例: )。 +- 4D の統合された HTTPサーバー使用時: `WEB SEND FILE` (.htm, .html, .shtm, .shtml)、`WEB SEND BLOB` (text/html型 BLOB)、および `WEB SEND TEXT` コマンドによって [テンプレートページ](WebServer/templates.md) を送信、あるいは URL で呼び出します。 URL で呼び出す場合、".htm" と ".html" で終わるページは最適化のため解析されません。この場合に HTMLページを解析するには、末尾を ".shtm" または ".shtml" とする必要があります (例: )。 ### 再起的処理 -4Dタグは繰り返し解釈されます。 4D は常に変換の結果を解釈しようとし、新しい変換が起きた際にはそれに伴う新しい解釈が実行され、取得結果の変換が必要がなくなるまで繰り返されます。 たとえば、以下のようなステートメントがあった場合: +4Dタグは繰り返し解釈されます。 4D は常に変換の結果を解釈しようとし、新しい変換が起きた際にはそれに伴う新しい解釈が実行され、取得結果の変換が必要がなくなるまで繰り返されます。たとえば、以下のようなステートメントがあった場合: ```html @@ -53,15 +53,15 @@ title: 変換タグ もし `[Mail]Letter_type` テキストフィールド自体にもタグ (たとえば ``) が含まれていた場合、このタグは 4DHTMLタグの解釈の後に、それに伴って評価されます。 -この強力な原則は、テキスト変換に関連するほとんどの需要を満たすことができます。 しかしながら、Webコンテキストにおいて、これは場合によって悪意のあるコードの侵入を許す可能性があるという点に注意が必要です。これを防ぐ方法については [悪意あるコードの侵入を防止](WebServer/templates.md#悪意あるコードの侵入を防止) を参照ください。 +この強力な原則は、テキスト変換に関連するほとんどの需要を満たすことができます。しかしながら、Webコンテキストにおいて、これは場合によって悪意のあるコードの侵入を許す可能性があるという点に注意が必要です。これを防ぐ方法については [悪意あるコードの侵入を防止](WebServer/templates.md#悪意あるコードの侵入を防止) を参照ください。 ### トークンを使用した識別子 -4D のバージョンや言語設定に左右されずに、タグ経由の式の評価が正しくおこなわれることを確実にするため、バージョン間で名前が変わりうる要素 (コマンド、テーブル、フィールド、定数) については、トークンシンタックスを使用することが推奨されます。 たとえば、`Current time` コマンドを挿入するには、"`Current time:C178`"と入力します。 +4D のバージョンや言語設定に左右されずに、タグ経由の式の評価が正しくおこなわれることを確実にするため、バージョン間で名前が変わりうる要素 (コマンド、テーブル、フィールド、定数) については、トークンシンタックスを使用することが推奨されます。たとえば、`Current time` コマンドを挿入するには、"`Current time:C178`"と入力します。 ### "." を小数点として使用 -4D は常にピリオド文字 (.) `4DTEXT`、`4DHTML`、および `4DEVAL` の 4Dタグで数値表現を評価します。 リージョン設定は無視されます。 この機能により、4Dの言語設定とバージョンが異なっていてもメンテナンスが容易となり互換性が保たれます。 +4D は常にピリオド文字 (.) `4DTEXT`、`4DHTML`、および `4DEVAL` の 4Dタグで数値表現を評価します。リージョン設定は無視されます。この機能により、4Dの言語設定とバージョンが異なっていてもメンテナンスが容易となり互換性が保たれます。 ## 4DBASE @@ -69,9 +69,9 @@ title: 変換タグ `` タグは `` タグで使用されるワーキングディレクトリを指定します。 -Webページ内で呼び出されると、`` タグは同ページ内であとに続くすべての <`!--#4DINCLUDE-->` 呼び出しのディレクトリを変更します (次の `` があるまで)。 組み込まれたファイル内で `` フォルダーが変更されると、親のファイルから元となる値を取得します。 +Webページ内で呼び出されると、`` タグは同ページ内であとに続くすべての <`!--#4DINCLUDE-->` 呼び出しのディレクトリを変更します (次の `` があるまで)。組み込まれたファイル内で `` フォルダーが変更されると、親のファイルから元となる値を取得します。 -*folderPath* 引数には現在のページに対する相対パスを指定し、パスは "`/`" で終わっていなければなりません。 また、指定フォルダーは Webフォルダー内になければなりません。 +*folderPath* 引数には現在のページに対する相対パスを指定し、パスは "`/`" で終わっていなければなりません。また、指定フォルダーは Webフォルダー内になければなりません。 "WEBFOLDER" キーワードを渡すと、(そのページに対して相対の) デフォルトパスに戻されます。 @@ -131,7 +131,7 @@ Webページ内で呼び出されると、`` タグは同ペー `4DCODE` タグを使用すると、複数行の4Dコードのブロックをテンプレートに挿入できます。 -`` シークエンスまでのコードを解釈します。 コードブロック自体はキャリッジリターンもラインフィードも、あるいはその両方も含むことができ、4D によってシーケンシャルに解釈されます。 +`` シークエンスまでのコードを解釈します。コードブロック自体はキャリッジリターンもラインフィードも、あるいはその両方も含むことができ、4D によってシーケンシャルに解釈されます。 たとえば、以下のようにテンプレートに書くことができます: @@ -160,16 +160,16 @@ End if - [`TRACE`](../commands/trace) コマンドはサポートされており、実行されると [4D デバッガー](../Debugging/debugger.md) が起動するため、テンプレートコードをデバッグすることができます。 - エラーは標準のエラーダイアログを表示します。 これを使って、ユーザーはコードの実行を中止したりデバッグモードに入ったりすることができます。 - `` の間のテキストは改行され、どのような改行コードでも受け取ります (cr、lf、または crlf)。 -- テキストは、[`PROCESS 4D TAGS`](../commands/process-4d-tags) を呼び出したデータベースのコンテキストでトークナイズドされます。 これは、たとえばプロジェクトメソッドの認識等において重要です。 [公開オプション: 4DタグとURL(4DACTION...)](WebServer/allowProject.md) メソッドプロパティは考慮されません。 +- テキストは、[`PROCESS 4D TAGS`](../commands/process-4d-tags) を呼び出したデータベースのコンテキストでトークナイズドされます。これは、たとえばプロジェクトメソッドの認識等において重要です。[公開オプション: 4DタグとURL(4DACTION...)](WebServer/allowProject.md) メソッドプロパティは考慮されません。 - テキストが常に English-US設定であったとしても、4Dのバージョン間においてコマンドや定数名が改名されることによる問題を避けるため、コマンド名や定数名はトークンシンタックスを使用することが推奨されています。 -> 4DCODE タグがあらゆる 4Dランゲージコマンドおよびプロジェクトメソッドを呼び出せるという事実は、とくにデータベースが HTTP経由で使用可能な場合等に、セキュリティ上の問題になり得ます。 しかしながら、タグはサーバー側のコードをテンプレートファイルから実行するため、タグそのものはセキュリティ上の問題になりません。 このようなコンテキストにおいては、あらゆる Webサーバーと同様に、セキュリティは主にサーバーファイルへのリモートアクセスレベルにおいて管理されています。 +> 4DCODE タグがあらゆる 4Dランゲージコマンドおよびプロジェクトメソッドを呼び出せるという事実は、とくにデータベースが HTTP経由で使用可能な場合等に、セキュリティ上の問題になり得ます。しかしながら、タグはサーバー側のコードをテンプレートファイルから実行するため、タグそのものはセキュリティ上の問題になりません。このようなコンテキストにおいては、あらゆる Webサーバーと同様に、セキュリティは主にサーバーファイルへのリモートアクセスレベルにおいて管理されています。 ## 4DEACH と 4DENDEACH #### シンタックス: `` `` -`` コメントは、*expression* に含まれるすべての要素に対して処理を繰り返します。 各要素は *variable* に代入され、その型は *expression* の型に依存します。 +`` コメントは、*expression* に含まれるすべての要素に対して処理を繰り返します。各要素は *variable* に代入され、その型は *expression* の型に依存します。 `` コメントは 3種類の *expression* を対象に反復処理をおこなうことができます: @@ -177,7 +177,7 @@ End if - [エンティティセレクション](#--4deach-entity-in-entityselection--): エンティティセレクションの各エンティティをループします - [オブジェクト](#--4deach-property-in-object--): オブジェクトの各プロパティをループします -ループの数は開始時に評価され、処理中に変化することはありません。 ループ中に項目を追加・削除することは、繰り返しの不足・重複を引き起こすことがあるため、一般的には推奨されません。 +ループの数は開始時に評価され、処理中に変化することはありません。ループ中に項目を追加・削除することは、繰り返しの不足・重複を引き起こすことがあるため、一般的には推奨されません。 ### `` @@ -187,15 +187,15 @@ End if コレクションの **要素はすべて同じ型** でなくてはなりません。そうでない場合には、*item* 変数に別の型の値が代入されたときにエラーが生成されます。 -ループの回数はコレクションの要素数に基づいています。 各繰り返しにおいて、*item* 変数には、コレクションの合致する要素が自動的に代入されます。 このとき、以下の点に注意する必要があります: +ループの回数はコレクションの要素数に基づいています。各繰り返しにおいて、*item* 変数には、コレクションの合致する要素が自動的に代入されます。このとき、以下の点に注意する必要があります: -- *item* 変数がオブジェクト型あるいはコレクション型であった場合 (つまり *expression* がオブジェクトのコレクション、あるいはコレクションのコレクションであった場合)、この変数を変更すると自動的にコレクションの対応する要素も変更されます (オブジェクトとコレクションは同じ参照を共有しているからです)。 変数がスカラー型である場合には、変数のみが変更されます。 -- *item* 変数には、コレクションの先頭要素の型が設定されます。 コレクション要素のどれか一つでも、変数と異なる型のものがあった場合、エラーが生成され、ループは停止します。 +- *item* 変数がオブジェクト型あるいはコレクション型であった場合 (つまり *expression* がオブジェクトのコレクション、あるいはコレクションのコレクションであった場合)、この変数を変更すると自動的にコレクションの対応する要素も変更されます (オブジェクトとコレクションは同じ参照を共有しているからです)。変数がスカラー型である場合には、変数のみが変更されます。 +- *item* 変数には、コレクションの先頭要素の型が設定されます。コレクション要素のどれか一つでも、変数と異なる型のものがあった場合、エラーが生成され、ループは停止します。 - コレクションが Null値の要素を格納していたとき、*item* 変数の型が Null値をサポートしない型 (倍長整数変数など) であった場合にはエラーが生成されます。 #### 例題: スカラー値のコレクション -*getNames* は文字列のコレクションを返すメソッドです。 このメソッドは [公開オプション: 4DタグとURL](WebServer/allowProject.md) が有効になっています。 +*getNames* は文字列のコレクションを返すメソッドです。このメソッドは [公開オプション: 4DタグとURL](WebServer/allowProject.md) が有効になっています。 ```html @@ -237,7 +237,7 @@ End if *entity* は Entityクラスのオブジェクト変数です。 -ループの回数はエンティティセレクション内のエンティティの数に基づきます。 各繰り返しにおいて、*entity* オブジェクト変数には、エンティティセレクションの合致するエンティティが自動的に代入されます。 +ループの回数はエンティティセレクション内のエンティティの数に基づきます。各繰り返しにおいて、*entity* オブジェクト変数には、エンティティセレクションの合致するエンティティが自動的に代入されます。 #### 例題: html のテーブル @@ -276,7 +276,7 @@ TEXT TO DOCUMENT("customers.txt"; $output) *property* は現在処理中のプロパティ名が自動代入されたテキスト変数です。 -オブジェクトのプロパティは作成順に処理されていきます。 ループ中、プロパティをオブジェクトに追加/削除することが可能ですが、その場合でも残りのループ回数は、オブジェクトの元のプロパティ数に基づいているため、変化しません。 +オブジェクトのプロパティは作成順に処理されていきます。ループ中、プロパティをオブジェクトに追加/削除することが可能ですが、その場合でも残りのループ回数は、オブジェクトの元のプロパティ数に基づいているため、変化しません。 #### 例題: オブジェクトのプロパティ @@ -305,7 +305,7 @@ TEXT TO DOCUMENT("customers.txt"; $output) #### 代替シンタックス: `$4DEVAL(expression)` -`4DEVAL` タグを使用すると、4Dの変数や式を評価できます。 [`4DHTML`](#4dhtml) タグのように、`4DEVAL` タグはテキストを返す際にHTML特殊文字をエスケープしません。 しかしながら、[`4DHTML`](#4dhtml) や [`4DTEXT`](#4dtext) と異なり、`4DEVAL` は有効な 4D宣言であればどれでも実行することができます (値を返さない代入や式も含まれます)。 +`4DEVAL` タグを使用すると、4Dの変数や式を評価できます。 [`4DHTML`](#4dhtml) タグのように、`4DEVAL` タグはテキストを返す際にHTML特殊文字をエスケープしません。しかしながら、[`4DHTML`](#4dhtml) や [`4DTEXT`](#4dtext) と異なり、`4DEVAL` は有効な 4D宣言であればどれでも実行することができます (値を返さない代入や式も含まれます)。 たとえば、以下の様なコードを実行することができます: @@ -326,7 +326,7 @@ TEXT TO DOCUMENT("customers.txt"; $output) #### 代替シンタックス: `$4DHTML(expression)` -`4DTEXT` タグ同様、このタグを使用すると、4Dの変数や値を返す式を HTML式として挿入できます。 一方 `4DTEXT` タグとは異なり、このタグはHTML特殊文字 (例: ">") をエスケープしません。 +`4DTEXT` タグ同様、このタグを使用すると、4Dの変数や値を返す式を HTML式として挿入できます。一方 `4DTEXT` タグとは異なり、このタグはHTML特殊文字 (例: ">") をエスケープしません。 たとえば、4Dタグを使用して 4Dのテキスト変数 myvar を処理した結果は以下の様になります: @@ -345,14 +345,13 @@ TEXT TO DOCUMENT("customers.txt"; $output) `` (任意), `` (任意) および `` コメントと共に使用することで、`` コメントはコードの一部に条件分岐を実行させることを可能にします。 -*expression* はブール値を返す有効な 4D式です。 式は括弧の中に記述され、4Dのシンタックスルールに準拠していなければなりません。 +*expression* はブール値を返す有効な 4D式です。式は括弧の中に記述され、4Dのシンタックスルールに準拠していなければなりません。 `` ... `` のブロックは入れ子にすることができます。 4Dと同じく、それぞれの `` には対応する `` がなければなりません。 -解釈エラーの場合、`` と `` の間のコンテンツの代わりに、"``: ブール式が必要です" というテキストが挿入されます。 同様に、`` が同じ数の `` で閉じられていない場合、`` と `` の間のコンテンツの代わりに "``: 4DENDIFが必要です" というテキストが挿入されます。 +解釈エラーの場合、`` と `` の間のコンテンツの代わりに、"``: ブール式が必要です" というテキストが挿入されます。同様に、`` が同じ数の `` で閉じられていない場合、`` と `` の間のコンテンツの代わりに "``: 4DENDIFが必要です" というテキストが挿入されます。 -`` タグを使用すると、数に制限なく条件をテストできます。 最初に `true` と判定されたブロック内にあるコードだけが実行されます。 true ブロックがなく、最後に `` もない場合には、なにも実行されません。 -``タグは、最後の `` の後に記述できます。 それまでの条件がすべて `false` の場合、`` ブロックの文が実行されます。 +`` タグを使用すると、数に制限なく条件をテストできます。最初に `true` と判定されたブロック内にあるコードだけが実行されます。 true ブロックがなく、最後に `` もない場合には、なにも実行されません。``タグは、最後の `` の後に記述できます。それまでの条件がすべて `false` の場合、`` ブロックの文が実行されます。 以下の2つのコードは同等です。 @@ -420,20 +419,19 @@ No name has been found. #### シンタックス: `` -このタグは主に、ある (*path* で指定された) HTMLページを別の HTMLページに含めるためにデザインされました。 デフォルトで、HTMLページのボディ部、つまり `` と `` タグの間の内容だけが統合されます (bodyタグは含まれません)。 これにより、ヘッダーに含まれるメタタグ関連の衝突が回避されます。 +このタグは主に、ある (*path* で指定された) HTMLページを別の HTMLページに含めるためにデザインされました。デフォルトで、HTMLページのボディ部、つまり `` と `` タグの間の内容だけが統合されます (bodyタグは含まれません)。これにより、ヘッダーに含まれるメタタグ関連の衝突が回避されます。 -しかし、指定された HTMLページ中に `` および `` タグがない場合、ページ全体が統合されます。 この場合、メタタグの整合性を管理するのは開発者の役割です。 +しかし、指定された HTMLページ中に `` および `` タグがない場合、ページ全体が統合されます。この場合、メタタグの整合性を管理するのは開発者の役割です。 -`` コメントは、テスト (``) やループ (``) と使用するととても便利です。 条件に基づきあるいはランダムにバナーなどを挿入する便利な方法です。 -このタグを使用してページをインクルードするとき、拡張子にかかわらず、4Dは呼び出されたページを解析してから、内容を `4DINCLUDE` 呼び出し元のページに挿入します。 +`` コメントは、テスト (``) やループ (``) と使用するととても便利です。条件に基づきあるいはランダムにバナーなどを挿入する便利な方法です。このタグを使用してページをインクルードするとき、拡張子にかかわらず、4Dは呼び出されたページを解析してから、内容を `4DINCLUDE` 呼び出し元のページに挿入します。 `` コメントで挿入されたページは、URLで呼ばれたページや `WEB SEND FILE` コマンドで送信されたページと同じように、Webサーバーキャッシュにロードされます。 -*path* には、挿入するドキュメントのパスを記述します。 警告: `4DINCLUDE` を呼び出す場合、パスは解析される親ドキュメントを起点とした相対パスです。 フォルダー区切り文字にはスラッシュ (/) を使用し、レベルをさかのぼるには 2つのドット (..) を使用します (HTMLシンタックス)。 [`PROCESS 4D TAGS`](../commands/process-4d-tags) コマンドで `4DINCLUDE` タグを使用する場合のデフォルトフォルダーはプロジェクトフォルダーです。 +*path* には、挿入するドキュメントのパスを記述します。警告: `4DINCLUDE` を呼び出す場合、パスは解析される親ドキュメントを起点とした相対パスです。フォルダー区切り文字にはスラッシュ (/) を使用し、レベルをさかのぼるには 2つのドット (..) を使用します (HTMLシンタックス)。 [`PROCESS 4D TAGS`](../commands/process-4d-tags) コマンドで `4DINCLUDE` タグを使用する場合のデフォルトフォルダーはプロジェクトフォルダーです。 > `4DINCLUDE` タグで使用されるデフォルトフォルダーは [``](#4dbase) タグを使って変更できます。 -ページ内で使用できる `` の数に制限はありません。 しかし `` の呼び出しは 1レベルのみ有効です。 つまり、たとえば *mydoc1.html* ページに `` によって挿入される *mydoc2.html* がある場合、そのボディ内でさらに `` を使うことはできません。 さらに、4Dはインクルードが再帰的かどうかを確認します。 +ページ内で使用できる `` の数に制限はありません。しかし `` の呼び出しは 1レベルのみ有効です。つまり、たとえば *mydoc1.html* ページに `` によって挿入される *mydoc2.html* がある場合、そのボディ内でさらに `` を使うことはできません。さらに、4Dはインクルードが再帰的かどうかを確認します。 エラーの場合、"`` : ドキュメントを開けません" というテキストが挿入されます。 @@ -449,7 +447,7 @@ No name has been found. #### シンタックス: `` `` -このコメントを使用して、条件を満たす間、コードの一部を繰り返すことができます。 繰り返し部のコードは '' と '' で挟まれます。 +このコメントを使用して、条件を満たす間、コードの一部を繰り返すことができます。繰り返し部のコードは '' と '' で挟まれます。 `` ... `` のブロックは入れ子にすることができます。 4Dと同じく、それぞれの `` には対応する `` がなければなりません。 @@ -457,7 +455,7 @@ No name has been found. ### `` -このシンタックスは、カレントプロセスのカレントセレクションに基づき、指定したテーブルのレコード毎にループします。 カレントセレクションレコード毎に、2つのコメントの間のコードは繰り返されます。 +このシンタックスは、カレントプロセスのカレントセレクションに基づき、指定したテーブルのレコード毎にループします。カレントセレクションレコード毎に、2つのコメントの間のコードは繰り返されます。 > テーブルを条件として `4DLOOP` タグが使用されると、レコードが "読み取り専用" モードでロードされます。 @@ -483,7 +481,7 @@ No name has been found. このシンタックスは、配列項目ごとにループします。 2つのコメントの間のコードが繰り返されるたびに、配列のカレント項目がインクリメントされます。 -> このシンタックスで二次元配列を使用することはできません。 この場合には、代わりにメソッドを条件としたループをネストして使用します。 +> このシンタックスで二次元配列を使用することはできません。この場合には、代わりにメソッドを条件としたループをネストして使用します。 以下のコードは: @@ -504,9 +502,9 @@ No name has been found. ### `` -このシンタックスでは、メソッドが `true` を返す間ループがおこなわれます。 メソッドは、倍長整数タイプの引数を受け取ります。 まずメソッドは引数 0 を渡されます。これは (必要に応じて) 初期化ステージとして使用できます。その後、`true` が返されるまで 1, 2, 3 と渡される引数値がインクリメントされます。 +このシンタックスでは、メソッドが `true` を返す間ループがおこなわれます。メソッドは、倍長整数タイプの引数を受け取ります。まずメソッドは引数 0 を渡されます。これは (必要に応じて) 初期化ステージとして使用できます。その後、`true` が返されるまで 1, 2, 3 と渡される引数値がインクリメントされます。 -セキュリティのため、Webプロセス内では、[`On Web Authentication`](../commands/on-web-authentication-database-method) データベースメソッドが初期化ステージ (引数に0が渡されて実行される) の前に一度呼び出されます。 認証に成功すると、初期化に進みます。 +セキュリティのため、Webプロセス内では、[`On Web Authentication`](../commands/on-web-authentication-database-method) データベースメソッドが初期化ステージ (引数に0が渡されて実行される) の前に一度呼び出されます。認証に成功すると、初期化に進みます。 以下のコードは: @@ -549,7 +547,7 @@ No name has been found. ### `` -このシンタックスでは、`4DLOOP` タグは *expression* に指定した式が `true` を返す間ループがおこなわれます。 式は有効なブール式であればよく、無限ループを防ぐために、ループごとに評価される変数部分を含んでいる必要があります。 +このシンタックスでは、`4DLOOP` タグは *expression* に指定した式が `true` を返す間ループがおこなわれます。式は有効なブール式であればよく、無限ループを防ぐために、ループごとに評価される変数部分を含んでいる必要があります。 たとえば、以下のコードは: @@ -573,7 +571,7 @@ No name has been found. ### `` -この場合、`4DLOOP` タグは配列のときと同じように振るまいます: ポインターによって参照された配列の要素ごとにループを繰り返します。 カレントの配列要素は、コードが繰り返される度に増加していきます。 +この場合、`4DLOOP` タグは配列のときと同じように振るまいます: ポインターによって参照された配列の要素ごとにループを繰り返します。カレントの配列要素は、コードが繰り返される度に増加していきます。 このシンタックスは [`PROCESS 4D TAGS`](../commands/process-4d-tags) コマンドに対して配列ポインターを渡した場合に有用です。 @@ -609,11 +607,11 @@ No name has been found. `4DSCRIPT` タグは、テンプレートを処理する際に 4Dメソッドを実行することを可能にします。 `` タグが HTMLコメントとしてページに現れると、`MyMethod` メソッドが `Param` を文字列として受け取って実行されます。 -> タグが Webプロセスのコンテキストにおいて呼び出された場合、Webページがロードされると、4Dは [`On Web Authentication`](../commands/on-web-authentication-database-method) データベースメソッドを (存在すれば) 呼び出します。 このメソッドが true を返すと、4Dはメソッドを実行します。 +> タグが Webプロセスのコンテキストにおいて呼び出された場合、Webページがロードされると、4Dは [`On Web Authentication`](../commands/on-web-authentication-database-method) データベースメソッドを (存在すれば) 呼び出します。このメソッドが true を返すと、4Dはメソッドを実行します。 -メソッドはテキストを返す必要があります。 メソッドはテキストを返す必要があります。 文字列が文字コード 1 (つまり、`Char(1)` のこと) から始まっていると、それは HTMLソースとして扱われます (`4DHTML` と同じ原則)。 +メソッドはテキストを返す必要があります。メソッドはテキストを返す必要があります。 文字列が文字コード 1 (つまり、`Char(1)` のこと) から始まっていると、それは HTMLソースとして扱われます (`4DHTML` と同じ原則)。 -たとえば、次のコメントをテンプレートWebページに挿入したとしましょう: "今日の日付は``" 。 ページをロードする際、4Dは `On Web Authentication` データベースメソッドを呼び出し、そして `MYMETH` メソッドに文字列 “/MYPARAM” を引数として渡して呼び出します。 メソッドはテキストを返します (たとえば “21/12/31”)。 "`今日の日付は `" というコメントの結果は "今日の日付は 21/12/31" となります。 +たとえば、次のコメントをテンプレートWebページに挿入したとしましょう: "今日の日付は``" 。ページをロードする際、4Dは `On Web Authentication` データベースメソッドを呼び出し、そして `MYMETH` メソッドに文字列 “/MYPARAM” を引数として渡して呼び出します。メソッドはテキストを返します (たとえば “21/12/31”)。 "`今日の日付は `" というコメントの結果は "今日の日付は 21/12/31" となります。 `MYMETH` メソッドは以下のとおりです: @@ -625,7 +623,7 @@ return String(Current date) > `4DSCRIPT` から呼び出されるメソッドは、インターフェース要素 (`DIALOG`, `ALERT` など) を呼び出してはいけません。 -4Dはメソッドを見つけた順に実行するため、ドキュメントの後の方で参照される変数の値を設定するメソッドを呼び出すことも可能です。 テンプレートには必要なだけ `` コメントを記述できます。 +4Dはメソッドを見つけた順に実行するため、ドキュメントの後の方で参照される変数の値を設定するメソッドを呼び出すことも可能です。テンプレートには必要なだけ `` コメントを記述できます。 ## 4DTEXT @@ -633,24 +631,24 @@ return String(Current date) #### 代替シンタックス: `$4DTEXT(expression)` -タグ `` を使用して 4D変数や値を返す式への参照を挿入できます。 たとえば、(HTMLページ内にて) 以下のように記述すると: +タグ `` を使用して 4D変数や値を返す式への参照を挿入できます。たとえば、(HTMLページ内にて) 以下のように記述すると: ```html

    へようこそ!

    ``` -4D変数 `vtSiteName` の値が HTMLページに送信時に挿入されます。 値はテキストとして挿入されます。">"のようなHTMLの特殊文字は、自動的にエスケープされます。 +4D変数 `vtSiteName` の値が HTMLページに送信時に挿入されます。値はテキストとして挿入されます。">"のようなHTMLの特殊文字は、自動的にエスケープされます。 -4DTEXT タグを使用して、4D式も挿入できます。 たとえば、フィールドの値を直接挿入できるほか (``) 、配列要素の値も挿入できますし (``) 、値を返すメソッドも使用できます (``)。 式の変換には、変数の場合と同じルールが適用されます。 さらに、式は 4Dのシンタックスルールに適合していなければなりません。 +4DTEXT タグを使用して、4D式も挿入できます。たとえば、フィールドの値を直接挿入できるほか (``) 、配列要素の値も挿入できますし (``) 、値を返すメソッドも使用できます (``)。式の変換には、変数の場合と同じルールが適用されます。さらに、式は 4Dのシンタックスルールに適合していなければなりません。 > セキュリティ上の理由から、 [悪意あるコードの侵入・挿入](../WebServer/templates.md#悪意あるコードの侵入を防止) を防ぐために、アプリケーション外から導入されたデータを処理するときにはこのタグの使用が推奨されます。 解釈エラーの場合、"` : ## エラー # エラーコード`" というテキストが挿入されます。 - プロセス変数を使用する必要があります。 -- ピクチャーフィールドの内容を表示できます。 しかし、ピクチャー配列の要素を表示することはできません。 -- 4D式を使用して、オブジェクトフィールドの中身を表示させることができます。 たとえば、次の様に記述します: ``。 -- 通常はテキスト変数を使用します。 しかし、BLOB変数を使用することもできます。 この場合、長さ情報なしのテキストBLOBを使用します。 +- ピクチャーフィールドの内容を表示できます。しかし、ピクチャー配列の要素を表示することはできません。 +- 4D式を使用して、オブジェクトフィールドの中身を表示させることができます。たとえば、次の様に記述します: ``。 +- 通常はテキスト変数を使用します。しかし、BLOB変数を使用することもできます。この場合、長さ情報なしのテキストBLOBを使用します。 ## 4DTEXT, 4DHTML, 4DEVAL の代替シンタックス @@ -682,7 +680,7 @@ $4DEVAL(UserName) ``` -このシンタックスの主な利点は、XML準拠のテンプレートが書けることです。 一部の 4Dデベロッパーは、XML準拠のテンプレートを標準の XMLパーサーツールで作成・評価する必要があります。 "<" 文字は XML属性値としては無効なため、ドキュメントのシンタックスを破らずに4Dタグの "``" シンタックスを使用することはできませんでした。 その一方で、"<" 文字をエスケープしてしまうと、4Dがタグを正常に解釈できなくなってしまいます。 +このシンタックスの主な利点は、XML準拠のテンプレートが書けることです。一部の 4Dデベロッパーは、XML準拠のテンプレートを標準の XMLパーサーツールで作成・評価する必要があります。 "<" 文字は XML属性値としては無効なため、ドキュメントのシンタックスを破らずに4Dタグの "``" シンタックスを使用することはできませんでした。その一方で、"<" 文字をエスケープしてしまうと、4Dがタグを正常に解釈できなくなってしまいます。 たとえば、以下のコードは属性値の最初の "<" 文字のために XMLパースエラーを引き起こします: @@ -698,7 +696,7 @@ $シンタックスを使用すると、パーサーによって以下のコー ここで、`$4dtag` と `<--#4dtag-->` は厳密には同じではないという点に注意が必要です。`<--#4dtag-->` とは異なり、`$4dtag` は 4Dタグを [繰り返し解釈](#再起的処理) することはありません。 `$` タグは常に一度だけ解釈され、その結果は標準テキストとして読まれます。 -この違いの理由は、悪意あるコードの侵入を防ぐためにあります。 [悪意あるコードの侵入を防止](../WebServer/templates.md#悪意あるコードの侵入を防止) の章で説明されているように、ユーザーテキストを使用する場合に不要なタグの再解釈を避けるには、`4DHTML` タグではなく `4DTEXT` タグの使用が強く推奨されます。`4DTEXT` を使用した場合、"<" などの特殊記号はエスケープされるため、 `` シンタックスを使用している 4Dタグはすべて元の意味を失います。 しかしながら、`4DTEXT` は `$` 記号をエスケープしないため、悪意あるコードの侵入を防ぐために `$4dtag (expression)` シンタックスにおける再帰的処理はサポートしないことになりました。 +この違いの理由は、悪意あるコードの侵入を防ぐためにあります。[悪意あるコードの侵入を防止](../WebServer/templates.md#悪意あるコードの侵入を防止) の章で説明されているように、ユーザーテキストを使用する場合に不要なタグの再解釈を避けるには、`4DHTML` タグではなく `4DTEXT` タグの使用が強く推奨されます。`4DTEXT` を使用した場合、"<" などの特殊記号はエスケープされるため、 `` シンタックスを使用している 4Dタグはすべて元の意味を失います。しかしながら、`4DTEXT` は `$` 記号をエスケープしないため、悪意あるコードの侵入を防ぐために `$4dtag (expression)` シンタックスにおける再帰的処理はサポートしないことになりました。 以下の例では、使用されるシンタックスとタグによる処理の結果の違いを表しています: @@ -726,7 +724,7 @@ $シンタックスを使用すると、パーサーによって以下のコー // 結果は "My name is: $4DEVAL(QUIT 4D)" ``` -`$4dtag` シンタックスは、引用符や括弧の開閉ペアをサポートしているという点に注意してください。 たとえば、以下の (非現実的な) 文字列を評価しなければならない場合: +`$4dtag` シンタックスは、引用符や括弧の開閉ペアをサポートしているという点に注意してください。たとえば、以下の (非現実的な) 文字列を評価しなければならない場合: ``` String(1) + "\"(hello)\"" 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 978359cbd7e8fe..895e357334d79f 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 @@ -3,11 +3,11 @@ id: editing title: 4Dユーザー&グループの管理 --- -マルチユーザーアプリケーションにおいて、4Dはユーザーに対して標準的なアクセス権と特定の権限を与えます。 ユーザー&グループシステムが起動されると、これらの標準的な権限が有効になります。 +マルチユーザーアプリケーションにおいて、4Dはユーザーに対して標準的なアクセス権と特定の権限を与えます。ユーザー&グループシステムが起動されると、これらの標準的な権限が有効になります。 ## プロジェクトにおけるユーザー&グループ -プロジェクトアプリケーション (.4DProject および .4dz ファイル) では、シングルユーザーおよびマルチユーザー環境の両方でユーザーとグループを設定することができます。 ただし、**アクセスコントロール** は 4D Server でのみ有効です。 次の表は、主なユーザーとグループの機能と、それらが利用かどうかを一覧に示します: +プロジェクトアプリケーション (.4DProject および .4dz ファイル) では、シングルユーザーおよびマルチユーザー環境の両方でユーザーとグループを設定することができます。ただし、**アクセスコントロール** は 4D Server でのみ有効です。次の表は、主なユーザーとグループの機能と、それらが利用かどうかを一覧に示します: | | 4D (シングルユーザー) | 4D Server | | ---------------------------- | --------------------------------------- | --------- | @@ -20,15 +20,12 @@ title: 4Dユーザー&グループの管理 ## デザイナーと管理者 -最も強力なユーザーは **デザイナー (Designer)** です。 デザイナーは、アプリケーションに関するあらゆる操作をおこなうことができます。 -デザイナーは次のことができます: +最も強力なユーザーは **デザイナー (Designer)** です。デザイナーは、アプリケーションに関するあらゆる操作をおこなうことができます。デザイナーは次のことができます: - 制限なく、すべてのアプリケーションサーバーにアクセスする。 - ユーザーやグループを作成する。 - グループにアクセス権を割り当てる。 -- デザインモードを使用する。 - シングルユーザー環境では、常にデザイナーアクセス権が使用されます。 - クライアント/サーバー環境においては、デザイナーにパスワードを割り当てることで、4Dユーザーログインダイアログが表示されるようになります。 この環境では、デザインモードは読み取り専用です。 +- デザインモードを使用する。シングルユーザー環境では、常にデザイナーアクセス権が使用されます。クライアント/サーバー環境においては、デザイナーにパスワードを割り当てることで、4Dユーザーログインダイアログが表示されるようになります。この環境では、デザインモードは読み取り専用です。 デザイナーの次に強力なユーザーは \*\*管理者 (Administrator)\*\*であり、通常はパスワードアクセスシステムや管理機能を扱う役割を与えられています。 @@ -41,14 +38,14 @@ title: 4Dユーザー&グループの管理 管理者は次のことができません: - デザイナーユーザーを編集する。 -- アプリケーションの保護された領域にアクセスする。 とくにデザインモードが制限されている場合には、管理者はアクセスすることができません。 管理者がアプリケーション内でアクセス権を得るには、1つ以上のグループに属さなければなりません。 管理者はすべての新規グループに含まれますが、任意のグループから管理者の名前を取り除くことができます。 +- アプリケーションの保護された領域にアクセスする。とくにデザインモードが制限されている場合には、管理者はアクセスすることができません。管理者がアプリケーション内でアクセス権を得るには、1つ以上のグループに属さなければなりません。管理者はすべての新規グループに含まれますが、任意のグループから管理者の名前を取り除くことができます。 -デザイナーと管理者は、すべてのアプリケーションにおいてデフォルトで利用可能です。 ユーザー管理のダイアログボックスにおいて、デザイナーと管理者のアイコンは、それぞれ赤色と緑色で表示されます: +デザイナーと管理者は、すべてのアプリケーションにおいてデフォルトで利用可能です。ユーザー管理のダイアログボックスにおいて、デザイナーと管理者のアイコンは、それぞれ赤色と緑色で表示されます: - デザイナーアイコン: ![](../assets/en/Users/iconDesigner.png) - 管理者アイコン: ![](../assets/en/Users/iconAdmin.png) -デザイナーと管理者の名前は変更することができます。 ランゲージにおいて、デザイナーと管理者の ID値は、常に 1 と 2 に設定されます。 +デザイナーと管理者の名前は変更することができます。ランゲージにおいて、デザイナーと管理者の ID値は、常に 1 と 2 に設定されます。 デザイナーと管理者は、それぞれ 16,000 のグループと 16,000 のユーザーを作成することができます。 @@ -58,8 +55,7 @@ title: 4Dユーザー&グループの管理 ![](../assets/en/Users/editor.png) -> ユーザーとグループのエディターは、[EDIT ACCESS](../commands/edit-access) コマンドを使用することでランタイムで表示することもできます。 -> ユーザーとグループの設定は、アプリケーション実行中でも `Users and Groups` テーマの 4Dランゲージコマンドを使って編集することができます。 +> ユーザーとグループのエディターは、[EDIT ACCESS](../commands/edit-access) コマンドを使用することでランタイムで表示することもできます。ユーザーとグループの設定は、アプリケーション実行中でも `Users and Groups` テーマの 4Dランゲージコマンドを使って編集することができます。 ### ユーザーの追加と変更 @@ -72,24 +68,20 @@ title: 4Dユーザー&グループの管理 ユーザーリストには、[デザイナーと管理者](#デザイナーと管理者) を含むすべてのユーザーが表示されます: -2. ユーザーリストの下にある追加ボタン ![](../assets/en/Users/PlussNew.png) をクリックします。 - または
    +2. ユーザーリストの下にある追加ボタン ![](../assets/en/Users/PlussNew.png) をクリックします。または
    ユーザーリスト上で右クリックし、コンテキストメニューから **追加** または **複製** を選択する。 > **複製** コマンドを使用すると、同じ特性を持つ複数のユーザーを素早く作成することができます。 4D は新規ユーザーをリストに追加し、デフォルトとして "新規ユーザーX" という名前を設定します。 -3. 新しいユーザー名を入力します。 - この名前は、ユーザーがアプリケーションを開く際に使用されます。 ユーザー名をいつでも変更することができます。変更するにはコンテキストメニューの **名称変更** コマンドを使用するか、Alt+クリック (Windows) または Option+クリック (macOS) ショートカットを使用、または変更したい名前を 2回クリックします。 +3. 新しいユーザー名を入力します。この名前は、ユーザーがアプリケーションを開く際に使用されます。ユーザー名をいつでも変更することができます。変更するにはコンテキストメニューの **名称変更** コマンドを使用するか、Alt+クリック (Windows) または Option+クリック (macOS) ショートカットを使用、または変更したい名前を 2回クリックします。 -4. ユーザーのパスワードを設定するには、プロパティエリアで **編集...** ボタンをクリックして、ダイアログボックスの 2つのパスワード欄に同じパスワードをそれぞれ入力します。 - パスワードには 15桁までの英数字を使用することができます。 パスワードでは文字の大小が区別されます。 +4. ユーザーのパスワードを設定するには、プロパティエリアで **編集...** ボタンをクリックして、ダイアログボックスの 2つのパスワード欄に同じパスワードをそれぞれ入力します。パスワードには 15桁までの英数字を使用することができます。パスワードでは文字の大小が区別されます。 > ストラクチャー設定の "セキュリティ" ページで許可されていれば、ユーザーは自分のパスワードを変更できます。また、パスワードは `CHANGE PASSWORD` コマンドを使って変更することもできます。 -5. グループメンバー表を用いて、そのユーザーが所属するグループを設定します。 - メンバーカラムの該当するオプションをチェックして、選択したユーザーをグループに対して追加・削除することができます。 +5. グループメンバー表を用いて、そのユーザーが所属するグループを設定します。メンバーカラムの該当するオプションをチェックして、選択したユーザーをグループに対して追加・削除することができます。 [グループページ](#グループの設定) を使用して、各グループの所属ユーザーを設定することもできます。 @@ -99,13 +91,13 @@ title: 4Dユーザー&グループの管理 ![](../assets/en/Users/MinussNew.png) ![](../assets/en/Users/MinussNew.png) -削除されたユーザー名は、その後ユーザーエディターには表示されません。 削除されたユーザーの ID番号は、新規アカウント作成の際に再度割り当てられるという点に注意してください。 +削除されたユーザー名は、その後ユーザーエディターには表示されません。削除されたユーザーの ID番号は、新規アカウント作成の際に再度割り当てられるという点に注意してください。 ### ユーザープロパティ - **ユーザーの種類**: "デザイナー"、"管理者"、または (それ以外のすべてのユーザーの場合に) "ユーザー" -- **開始メソッド**: ユーザーがアプリケーションを開いたときに自動実行されるメソッドの名称 (任意) このメソッドを使って、たとえばユーザー設定をロードできます。 +- **開始メソッド**: ユーザーがアプリケーションを開いたときに自動実行されるメソッドの名称 (任意)このメソッドを使って、たとえばユーザー設定をロードできます。 ## グループエディター @@ -115,12 +107,12 @@ title: 4Dユーザー&グループの管理 グループエディターを使用して、各グループ内に納める要素 (ユーザーや他のグループ) を設定したり、プラグインへのアクセス権を割り当てることができます。 -グループは一旦作成されると、削除できないということに留意が必要です。 グループを使用したくない場合は、そのグループの所属ユーザーをすべて取り除きます。 +グループは一旦作成されると、削除できないということに留意が必要です。グループを使用したくない場合は、そのグループの所属ユーザーをすべて取り除きます。 グループを作成するには: 1. **デザイン** メニューから **ツールボックス>ユーザーグループ** を選択、または 4Dツールバーの **ツールボックス** ボタンをクリックし、**グループ** ページを開きます。 - 4D はグループエディターウインドウを表示します: グループリストには、アプリケーションプロジェクトのすべてのグループが表示されます。 グループリストには、アプリケーションプロジェクトのすべてのグループが表示されます。 + 4D はグループエディターウインドウを表示します: グループリストには、アプリケーションプロジェクトのすべてのグループが表示されます。グループリストには、アプリケーションプロジェクトのすべてのグループが表示されます。 2. グループリストの下にある追加ボタン ![](../assets/en/Users/PlussNew.png) をクリックします。 または @@ -130,42 +122,39 @@ title: 4Dユーザー&グループの管理 4D は新規グループをリストに追加し、デフォルトとして "新規グループX" という名前を設定します。 -3. 新しいグループの名前を入力します。 - グループ名には 15桁までの文字を使用できます。 - グループ名をいつでも変更することができます。変更するにはコンテキストメニューの **名称変更** コマンドを使用するか、Alt+クリック (Windows) または Option+クリック (macOS) ショートカットを使用、または変更したい名前を 2回クリックします。 +3. 新しいグループの名前を入力します。グループ名には 15桁までの文字を使用できます。グループ名をいつでも変更することができます。変更するにはコンテキストメニューの **名称変更** コマンドを使用するか、Alt+クリック (Windows) または Option+クリック (macOS) ショートカットを使用、または変更したい名前を 2回クリックします。 ### ユーザーやグループをグループに入れる -任意のユーザーやグループをグループ内に配置することができます。 さらに、そのグループ自体を他のいくつかのグループ内に入れることも可能です。 必ずしもユーザーをグループに入れる必要はありません。 +任意のユーザーやグループをグループ内に配置することができます。 さらに、そのグループ自体を他のいくつかのグループ内に入れることも可能です。必ずしもユーザーをグループに入れる必要はありません。 ユーザーやグループをグループに配置するには、当該グループのユーザー/グループ一覧にてメンバーカラムにチェックを入れます: ![](../assets/en/Users/groups.png) -ユーザー名をチェックすると、そのユーザーがグループに追加されます。 グループ名をチェックした場合は、そのグループの全ユーザーがグループへ追加されます。 -メンバーの一員となったユーザーやグループには、そのグループに割り当てられたものと同じアクセス権が与えられます。 +ユーザー名をチェックすると、そのユーザーがグループに追加されます。グループ名をチェックした場合は、そのグループの全ユーザーがグループへ追加されます。メンバーの一員となったユーザーやグループには、そのグループに割り当てられたものと同じアクセス権が与えられます。 -グループを別のグループ内に入れることにより、ユーザーの階層構造が作成されます。 別のグループの配下に入れられたグループのユーザーは、両グループのアクセス権を保持します。 後述の [アクセス権の階層構造](#アクセス権の階層構造) を参照してください。 +グループを別のグループ内に入れることにより、ユーザーの階層構造が作成されます。別のグループの配下に入れられたグループのユーザーは、両グループのアクセス権を保持します。後述の [アクセス権の階層構造](#アクセス権の階層構造) を参照してください。 ユーザーやグループをグループから取り除くには、ユーザー/グループ一覧でチェックを解除します。 ### グループにライセンスを割り当てる -プロジェクトにインストールされたあらゆる[拡張機能](../Extensions/overview.md) に、グループ権限を割り当てることができます。 これには全ての4D 製/サードパーティ製のプラグインやコンポーネントを含みます。 +プロジェクトにインストールされたあらゆる[拡張機能](../Extensions/overview.md) に、グループ権限を割り当てることができます。これには全ての4D 製/サードパーティ製のプラグインやコンポーネントを含みます。 -アクセス件をこれらの拡張機能に分散させることで、クライアント/サーバー環境においてこれらの拡張機能に対してあなたが所持しているライセンスの使用を管理することができます。 ある拡張機能へのアクセス可能グループに属していないユーザーは、その拡張機能をロードすることができません。 +アクセス件をこれらの拡張機能に分散させることで、クライアント/サーバー環境においてこれらの拡張機能に対してあなたが所持しているライセンスの使用を管理することができます。ある拡張機能へのアクセス可能グループに属していないユーザーは、その拡張機能をロードすることができません。 > 使用されたライセンスは 4Dセッションの間、当該グループに所属する 4Dユーザーアカウントに紐づけられます。 -ツールボックス内のグループページの"プラグイン"エリアには、4D アプリケーションによってロードされた拡張機能のうち[ライセンスを必要とする](../Admin/licenses.md) ものが全て一覧表示されています。 拡張機能へのアクセス権をグループに与えるには、該当するオプションをチェックします。 +ツールボックス内のグループページの"プラグイン"エリアには、4D アプリケーションによってロードされた拡張機能のうち[ライセンスを必要とする](../Admin/licenses.md) ものが全て一覧表示されています。拡張機能へのアクセス権をグループに与えるには、該当するオプションをチェックします。 ![](../assets/en/Users/plugins.png) ### アクセス権の階層構造 -アプリケーションのセキュリティを確保し、ユーザーに異なるアクセスレベルを提供する最も効果的な方法は、アクセス権の階層構造を利用することです。 ユーザーを適切なグループに割り振り、各グループをネストすることで、アクセス権の階層構造を形成できます。 この節では、このような構造の取り扱い方について説明します。 +アプリケーションのセキュリティを確保し、ユーザーに異なるアクセスレベルを提供する最も効果的な方法は、アクセス権の階層構造を利用することです。ユーザーを適切なグループに割り振り、各グループをネストすることで、アクセス権の階層構造を形成できます。この節では、このような構造の取り扱い方について説明します。 -この例題では、ユーザーは担当業務に応じて 3つあるグループの 1つに割り振られます。 データ入力担当のユーザーは、Accounting (会計) グループに割り当てます。 レコードの更新や無効データの削除などデータ管理を担当するユーザーは、Finances (財務) グループに割り当てます。 検索の実行や分析レポートの印刷などデータ分析を担当するユーザーは、General Management (総合管理) グループに割り当てます。 +この例題では、ユーザーは担当業務に応じて 3つあるグループの 1つに割り振られます。データ入力担当のユーザーは、Accounting (会計) グループに割り当てます。レコードの更新や無効データの削除などデータ管理を担当するユーザーは、Finances (財務) グループに割り当てます。検索の実行や分析レポートの印刷などデータ分析を担当するユーザーは、General Management (総合管理) グループに割り当てます。 割り当て完了後は、各グループのユーザーに権限が正しく配分されるようにグループをネストします。 @@ -183,7 +172,7 @@ title: 4Dユーザー&グループの管理 所属ユーザーの責務に基づいて、各グループに割り当てるアクセス権を決定します。 -このような階層システムを使用すると、新規ユーザーに割り当てるべきグループがわかりやすくなります。 各ユーザーを 1つのグループに割り当てるだけで、グループの階層を介してアクセス権を決定できます。 +このような階層システムを使用すると、新規ユーザーに割り当てるべきグループがわかりやすくなります。各ユーザーを 1つのグループに割り当てるだけで、グループの階層を介してアクセス権を決定できます。 ## 権限を割り当てる @@ -194,11 +183,11 @@ title: 4Dユーザー&グループの管理 - RESTサーバー - SQLサーバー -これらのアクセス権はストラクチャー設定で定義します。 次の図は、デザインおよびランタイムエクスプローラーアクセス権を "Devs" グループに割り当てている様子を表しています (データベース設定の "セキュリティ" タブ): +これらのアクセス権はストラクチャー設定で定義します。次の図は、デザインおよびランタイムエクスプローラーアクセス権を "Devs" グループに割り当てている様子を表しています (データベース設定の "セキュリティ" タブ): ![](../assets/en/Users/Access1.png) -また、グループを使って [利用可能なライセンスを割り当てる](#プラグインやサーバーにグループを割り当てる) こともできます。 この割り当ては、グループエディターで定義します。 +また、グループを使って [利用可能なライセンスを割り当てる](#プラグインやサーバーにグループを割り当てる) こともできます。この割り当ては、グループエディターで定義します。 ## Directory.json ファイル @@ -207,7 +196,7 @@ title: 4Dユーザー&グループの管理 必要に応じて、このフォルダーは次の場所に保存することができます: - すべてのデータファイルについて同じディレクトリを使用する場合 (または 1つのデータファイルだけを使用する場合)、ユーザー設定フォルダー (["Project" フォルダーと同じ階層](Project/architecture.md#project-フォルダー) の "Settings" フォルダー) に **directory.json** ファイルをに保存します (デフォルトの場所)。 -- データファイルごとに特定のディレクトリファイルを使用する場合は、**directory.json** ファイルをデータ設定フォルダー、つまり ["Data" フォルダーの "Settings" フォルダー](../Project/architecture.md#settings-user-data) に格納します。 **directory.json** ファイルがこの場所に保存されている場合、ユーザー設定フォルダーのファイルよりも優先されます。 アプリケーションをアップグレードしても、このカスタム/ローカルなユーザー&グループ設定はそのままです。 +- データファイルごとに特定のディレクトリファイルを使用する場合は、**directory.json** ファイルをデータ設定フォルダー、つまり ["Data" フォルダーの "Settings" フォルダー](../Project/architecture.md#settings-user-data) に格納します。 **directory.json** ファイルがこの場所に保存されている場合、ユーザー設定フォルダーのファイルよりも優先されます。アプリケーションをアップグレードしても、このカスタム/ローカルなユーザー&グループ設定はそのままです。 > パスワードやグループメンバーシップを運用環境において安全に変更できるようにするには、ビルド時に [対応するビルドアプリケーションオプション](../Desktop/building.md#ビルドしたサーバーアプリケーションにプロジェクトのユーザーとグループを埋め込む) を使用して、サーバーアプリケーションに **directory.json** ファイルを含めることができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Users/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/Users/overview.md index 3d030d9f7e440b..35585cc3b110d6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Users/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Users/overview.md @@ -3,7 +3,7 @@ id: overview title: アクセスコントロールの概要 --- -クライアントサーバーアーキテクチャーや Webインターフェースなど、複数のユーザーがアプリケーションを使用する場合は、アクセスを制御したり、接続ユーザーに応じて異なる機能を提供したりする必要が生じます。 シングルユーザーアプリケーションにおいても、機密性の高いデータを保護することは重要です。 +クライアントサーバーアーキテクチャーや Webインターフェースなど、複数のユーザーがアプリケーションを使用する場合は、アクセスを制御したり、接続ユーザーに応じて異なる機能を提供したりする必要が生じます。シングルユーザーアプリケーションにおいても、機密性の高いデータを保護することは重要です。 運用環境によって、4D アクセスコントロールの方法は異なります: @@ -19,21 +19,21 @@ title: アクセスコントロールの概要 ## マルチユーザーアプリケーションのアクセスコントロール -マルチユーザーアプリケーションは、4D Server を使って運用します。 マルチユーザーアプリケーションでは、[4D ユーザー&グループ](handling_users_groups.md) によってアクセスコントロールがおこなわれます。 ユーザーを作成してパスワードを割り当て、アプリケーションにおいて異なるレベルの権限を持つアクセスグループを作成します。 +マルチユーザーアプリケーションは、4D Server を使って運用します。マルチユーザーアプリケーションでは、[4D ユーザー&グループ](handling_users_groups.md) によってアクセスコントロールがおこなわれます。ユーザーを作成してパスワードを割り当て、アプリケーションにおいて異なるレベルの権限を持つアクセスグループを作成します。 -4D Server のパスワードアクセスシステムを起動するには、[デザイナー (Designer) ユーザーにパスワードを割り当て](handling_users_groups.md#designer-and-administrator) ます。 [ユーザーとグループを作成](handling_users_groups.md) しても、デザイナーにパスワードが指定されるまでは、すべてのアプリケーションアクセスがデザイナーアクセス権でおこなわれます (アプリケーション開始時に ID を求められません)。 つまり、アプリケーションのあらゆる部分を開くことができます。 +4D Server のパスワードアクセスシステムを起動するには、[デザイナー (Designer) ユーザーにパスワードを割り当て](handling_users_groups.md#designer-and-administrator) ます。[ユーザーとグループを作成](handling_users_groups.md) しても、デザイナーにパスワードが指定されるまでは、すべてのアプリケーションアクセスがデザイナーアクセス権でおこなわれます (アプリケーション開始時に ID を求められません)。つまり、アプリケーションのあらゆる部分を開くことができます。 -デザイナーにパスワードが指定されると、すべてのアクセス権が有効になります。 アプリケーションや [アクセスが制限されたサーバー](handling_users_groups.md#権限を割り当てる) に接続するには、リモートユーザーはログイン/パスワードを入力する必要があります。 +デザイナーにパスワードが指定されると、すべてのアクセス権が有効になります。アプリケーションや [アクセスが制限されたサーバー](handling_users_groups.md#権限を割り当てる) に接続するには、リモートユーザーはログイン/パスワードを入力する必要があります。 パスワードアクセスシステムを無効にするには、デザイナーのパスワードを削除します。 ## シングルユーザーアプリケーションのアクセスコントロール -シングルユーザーアプリケーションとは、4D で運用する、または 4D Volume Desktop が組み込まれたデスクトップアプリケーションのことです。 シングルユーザーアプリケーションでは、アプリケーションを開くユーザーはすべて [デザイナー](handling_users_groups.md#デザイナーと管理者) です。つまり、ユーザー名は "Designer" で、すべての権限を持ちます。 アクセスコントロールは、4D のユーザー&グループではなく、**ユーザーセッション** に基づいておこなわれます。 +シングルユーザーアプリケーションとは、4D で運用する、または 4D Volume Desktop が組み込まれたデスクトップアプリケーションのことです。シングルユーザーアプリケーションでは、アプリケーションを開くユーザーはすべて [デザイナー](handling_users_groups.md#デザイナーと管理者) です。つまり、ユーザー名は "Designer" で、すべての権限を持ちます。アクセスコントロールは、4D のユーザー&グループではなく、**ユーザーセッション** に基づいておこなわれます。 ### ユーザー認証 -4D のシングルユーザーアプリケーションでカレントユーザーを特定するには、そのシステムセッションを開いたユーザーを返す [`Current system user`](../commands/current-system-user) コマンドが利用できます。 つまり、ユーザー認証は OSレベルに委ねられています。 +4D のシングルユーザーアプリケーションでカレントユーザーを特定するには、そのシステムセッションを開いたユーザーを返す [`Current system user`](../commands/current-system-user) コマンドが利用できます。つまり、ユーザー認証は OSレベルに委ねられています。 この場合、次のようなコードを使用して、アプリケーション内でアクセスを許可または拒否することができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/advanced-programming.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/advanced-programming.md index 351680373e3486..b98195fb3d2c78 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/advanced-programming.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/advanced-programming.md @@ -3,13 +3,13 @@ id: advanced-programming title: Javascript による高度なプログラミング --- -4D View Pro エリアは、[埋め込みWebレンダリングエンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用) を使用する [Webエリアフォームオブジェクト](../FormObjects/webArea_overview.md) です。 つまり、他のWebエリアと同様に、[`WA Evaluate Javascript`](../commands/wa-evaluate-javascript) 4Dコマンドを呼び出すことで、Javascript のコードを実行させることができます。 +4D View Pro エリアは、[埋め込みWebレンダリングエンジン](../FormObjects/properties_WebArea.md#埋め込みwebレンダリングエンジンを使用) を使用する [Webエリアフォームオブジェクト](../FormObjects/webArea_overview.md) です。つまり、他のWebエリアと同様に、[`WA Evaluate Javascript`](../commands/wa-evaluate-javascript) 4Dコマンドを呼び出すことで、Javascript のコードを実行させることができます。 4D View Proは [SpreadJS スプレッドシートソリューション](https://developer.mescius.com/spreadjs) に基づいて動作するため、4D View Pro エリア内で SpreadJS の Javascriptメソッドを呼び出すことも可能です。 ## 例題: リボンを非表示にする -4D View Pro は Webエリアであるため、Webページ要素を選択し、Javascript を使ってその動作を変更することができます。 以下の例では、spreadJS の [リボン](./configuring.md#リボン) を非表示にしています: +4D View Pro は Webエリアであるため、Webページ要素を選択し、Javascript を使ってその動作を変更することができます。以下の例では、spreadJS の [リボン](./configuring.md#リボン) を非表示にしています: ```4d // ボタンのオブジェクトメソッド @@ -39,5 +39,5 @@ WA Evaluate JavaScript(*; "ViewProArea"; "Utils.spread.undoManager().undo()") ## 4D View Pro Tips のリポジトリ -[4D-View-Pro-Tips](https://github.com/4d-depot/4D-View-Pro-Tips) は GitHub のリポジトリで、フローティングピクチャーの管理、列や行のソート、カスタムカルチャの作成など、便利な機能を満載したプロジェクトが含まれています。 このリポジトリを自由にクローンして、プロジェクトで実験してください。 +[4D-View-Pro-Tips](https://github.com/4d-depot/4D-View-Pro-Tips) は GitHub のリポジトリで、フローティングピクチャーの管理、列や行のソート、カスタムカルチャの作成など、便利な機能を満載したプロジェクトが含まれています。このリポジトリを自由にクローンして、プロジェクトで実験してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/classes.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/classes.md index 992759859c5c3e..92663b56b9c27f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/classes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/classes.md @@ -13,7 +13,7 @@ title: クラス **.color** : Text -`.color` プロパティは、 境界線の [色](configuring.md#境界線) を指定します。 デフォルト = black +`.color` プロパティは、 境界線の [色](configuring.md#境界線) を指定します。デフォルト = black ### .style @@ -21,7 +21,7 @@ title: クラス **.style** : Integer -`.style` プロパティは、 境界線の [スタイル](configuring.md#境界線) を指定します。 デフォルト = empty。 +`.style` プロパティは、 境界線の [スタイル](configuring.md#境界線) を指定します。デフォルト = empty。 ## TableColumn @@ -57,7 +57,7 @@ title: クラス **.allowAutoExpand** : Boolean -`.allowAutoExpand` プロパティは、 隣接する空のセルに値が追加されたとき、表の列または行を拡張するかどうかを示します。 デフォルト = true +`.allowAutoExpand` プロパティは、 隣接する空のセルに値が追加されたとき、表の列または行を拡張するかどうかを示します。デフォルト = true ### .bandColumns @@ -65,7 +65,7 @@ title: クラス **.bandColumns** : Boolean -`.bandColumns` プロパティは、 列において交互のスタイルを表示するかどうかを示します。 デフォルト = false +`.bandColumns` プロパティは、 列において交互のスタイルを表示するかどうかを示します。デフォルト = false ### .bandRows @@ -73,7 +73,7 @@ title: クラス **.bandRows** : Boolean -`.bandRows` プロパティは、 行において交互のスタイルを表示するかどうかを示します。 デフォルト = true +`.bandRows` プロパティは、 行において交互のスタイルを表示するかどうかを示します。デフォルト = true ### .highlightLastColumn @@ -81,7 +81,7 @@ title: クラス **.highlightLastColumn** : Boolean -`.highlightLastColumn` プロパティは、 最後の列をハイライト表示するかどうかを示します。 デフォルト = false +`.highlightLastColumn` プロパティは、 最後の列をハイライト表示するかどうかを示します。デフォルト = false ### .highlightFirstColumn @@ -89,7 +89,7 @@ title: クラス **.highlightFirstColumn** : Boolean -`.highlightFirstColumn` プロパティは、 先頭の列をハイライト表示するかどうかを示します。 デフォルト = false +`.highlightFirstColumn` プロパティは、 先頭の列をハイライト表示するかどうかを示します。デフォルト = false ### .showFooter @@ -97,7 +97,7 @@ title: クラス **.showFooter** : Boolean -`.showFooter` プロパティは、 フッターを表示するかどうかを示します。 デフォルト = false +`.showFooter` プロパティは、 フッターを表示するかどうかを示します。デフォルト = false ### .showHeader @@ -105,7 +105,7 @@ title: クラス **.showHeader** : Boolean -`.showHeader` プロパティは、 ヘッダーを表示するかどうかを示します。 デフォルト = true +`.showHeader` プロパティは、 ヘッダーを表示するかどうかを示します。デフォルト = true ### .showResizeHandle @@ -113,7 +113,7 @@ title: クラス **.showResizeHandle** : Boolean -`.showResizeHandle` プロパティは、 *source* を持たない表において、リサイズハンドルを表示するかどうかを示します。 デフォルト = false +`.showResizeHandle` プロパティは、 *source* を持たない表において、リサイズハンドルを表示するかどうかを示します。デフォルト = false ### .tableColumns @@ -139,7 +139,7 @@ title: クラス **.useFooterDropDownList** : Boolean -`.useFooterDropDownList` プロパティは、 列の合計値を計算するフッターセルでドロップダウンリストを使用するかを示します。 デフォルト = false +`.useFooterDropDownList` プロパティは、 列の合計値を計算するフッターセルでドロップダウンリストを使用するかを示します。デフォルト = false ## TableStyle @@ -263,8 +263,7 @@ title: クラス **.theme** : [cs.ViewPro.TableThemeOptions](#tablethemeoptions)
    **.theme** : Text -`.theme` プロパティは、 表のテーマを定義します。 -テキスト値の場合は、[ネイティブSpreadJSテーマ](https://developer.mescius.com/spreadjs/api/classes/GC.Spread.Sheets.Tables.TableThemes) の名前を使用します。 +`.theme` プロパティは、 表のテーマを定義します。テキスト値の場合は、[ネイティブSpreadJSテーマ](https://developer.mescius.com/spreadjs/api/classes/GC.Spread.Sheets.Tables.TableThemes) の名前を使用します。 ## TableThemeOptions @@ -274,7 +273,7 @@ title: クラス **.firstColumnStripSize** : Integer -`.firstColumnStripSize` プロパティは、 一つ目の交互の列スタイルを適用する列数を指定します。 デフォルト = 1 +`.firstColumnStripSize` プロパティは、 一つ目の交互の列スタイルを適用する列数を指定します。デフォルト = 1 ### .firstColumnStripStyle @@ -306,7 +305,7 @@ title: クラス **.firstRowStripSize** : Integer -`.firstRowStripSize` プロパティは、 一つ目の交互の行スタイルを適用する行数を指定します。 デフォルト = 1。 +`.firstRowStripSize` プロパティは、 一つ目の交互の行スタイルを適用する行数を指定します。デフォルト = 1。 ### .firstRowStripStyle @@ -378,7 +377,7 @@ title: クラス **.secondColumnStripSize** : Integer -`.secondColumnStripSize` プロパティは、 二つ目の交互の列スタイルを適用する列数を指定します。 デフォルト = 1 +`.secondColumnStripSize` プロパティは、 二つ目の交互の列スタイルを適用する列数を指定します。デフォルト = 1 ### .secondColumnStripStyle @@ -394,7 +393,7 @@ title: クラス **.secondRowStripSize** : Integer -`.secondRowStripSize` プロパティは、 二つ目の交互の行スタイルを適用する行数を指定します。 デフォルト = 1。 +`.secondRowStripSize` プロパティは、 二つ目の交互の行スタイルを適用する行数を指定します。デフォルト = 1。 ### .secondRowStripStyle diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-formula-name.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-formula-name.md index 3451c5968dbf16..2800b779382eb5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-formula-name.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-formula-name.md @@ -27,18 +27,18 @@ title: VP ADD FORMULA NAME > このコマンドで作成された命名フォーミュラはドキュメントとともに保存されます。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*vpFormula* には、命名する 4D View Pro フォーミュラを渡します。 フォーミュラシンタックスの詳細については、[式と関数](../formulas.md) ページを参照ください。 +*vpFormula* には、命名する 4D View Pro フォーミュラを渡します。フォーミュラシンタックスの詳細については、[式と関数](../formulas.md) ページを参照ください。 -名前をつけたいレンジを rangeObj に、新しいレンジの名前は *name* に渡します。 同じスコープ内で名前が既に使用されている場合、新しい命名レンジは既存のものを上書きします。 ただし異なるスコープであれば同じ名前を使用することが可能です (以下参照)。 +名前をつけたいレンジを rangeObj に、新しいレンジの名前は *name* に渡します。同じスコープ内で名前が既に使用されている場合、新しい命名レンジは既存のものを上書きします。ただし異なるスコープであれば同じ名前を使用することが可能です (以下参照)。 -*options* 引数には、命名フォーミュラの追加プロパティを格納したオブジェクト型を渡すことができます。 以下のプロパティがサポートされています: +*options* 引数には、命名フォーミュラの追加プロパティを格納したオブジェクト型を渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| scope | Number | フォーミュラのスコープ。 シートのインデックス (0起点) を渡すか、あるいは以下の定数を使用することができます:
  • `vk current sheet`
  • `vk workbook`
  • スコープは、フォーミュラ名が特定のワークシートに限定されたローカル (*scope* = シートのインデックス または `vk current sheet`) なものか、あるいはワークブック全体で使用できるグローバル (*scope* = `vk workbook`) なものかを決定します。 | -| comment | Text | 命名フォーミュラに割り当てられたコメント | +| プロパティ | 型 | 説明 | +| ------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| scope | Number | フォーミュラのスコープ。シートのインデックス (0起点) を渡すか、あるいは以下の定数を使用することができます:
  • `vk current sheet`
  • `vk workbook`
  • スコープは、フォーミュラ名が特定のワークシートに限定されたローカル (*scope* = シートのインデックス または `vk current sheet`) なものか、あるいはワークブック全体で使用できるグローバル (*scope* = `vk workbook`) なものかを決定します。 | +| comment | Text | 命名フォーミュラに割り当てられたコメント | ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-range-name.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-range-name.md index f248e994b79511..2bacc667cb0472 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-range-name.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-range-name.md @@ -26,14 +26,14 @@ title: VP ADD RANGE NAME > このコマンドで作成された命名レンジはドキュメントとともに保存されます。 -名前をつけたいレンジを *rangeObj* に、新しいレンジの名前は *name* に渡します。 同じスコープ内で名前が既に使用されている場合、新しい命名フォーミュラは既存のものを上書きします。 ただし異なるスコープであれば同じ名前を使用することが可能です (以下参照)。 +名前をつけたいレンジを *rangeObj* に、新しいレンジの名前は *name* に渡します。同じスコープ内で名前が既に使用されている場合、新しい命名フォーミュラは既存のものを上書きします。ただし異なるスコープであれば同じ名前を使用することが可能です (以下参照)。 -*options* 引数には、命名レンジの追加プロパティを格納したオブジェクト型を渡すことができます。 以下のプロパティがサポートされています: +*options* 引数には、命名レンジの追加プロパティを格納したオブジェクト型を渡すことができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| scope | Number | レンジのスコープ。 シートのインデックス (0起点) を渡すか、あるいは以下の定数を使用することができます:
  • `vk current sheet`
  • `vk workbook`
  • スコープは、レンジ名が特定のワークシートに限定されたローカル (*scope* = シートのインデックス または `vk current sheet`) なものか、あるいはワークブック全体で使用できるグローバル (*scope* = `vk workbook`) なものかを決定します。 | -| comment | Text | 命名レンジに割り当てられたコメント | +| プロパティ | 型 | 説明 | +| ------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| scope | Number | レンジのスコープ。シートのインデックス (0起点) を渡すか、あるいは以下の定数を使用することができます:
  • `vk current sheet`
  • `vk workbook`
  • スコープは、レンジ名が特定のワークシートに限定されたローカル (*scope* = シートのインデックス または `vk current sheet`) なものか、あるいはワークブック全体で使用できるグローバル (*scope* = `vk workbook`) なものかを決定します。 | +| comment | Text | 命名レンジに割り当てられたコメント | > - 命名レンジの実態は、座標を格納した命名フォーミュラです。 `VP ADD RANGE NAME` を使うと簡単に命名レンジの作成ができますが、[`VP ADD FORMULA NAME`](vp-add-formula-name.md) コマンドで命名レンジを作成することもできます。 > - 命名レンジを定義するフォーミュラは、[`VP Get formula by name`](vp-get-formula-by-name.md) コマンドで取得することができます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-sheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-sheet.md index bfe46e6aff0722..d4a7c814c7d7da 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-sheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-sheet.md @@ -26,11 +26,11 @@ title: VP ADD SHEET *vpAreaName* には、4D View Pro エリアの名前を渡します。 -*index* 引数には、新しいシートのインデックスを渡します。 渡した *index* 引数が 0以下だった場合、コマンドは新しいシートを先頭に挿入します。 *index* 引数がシートの総数より多い場合、コマンドは既存のシートの後に新しいシートを挿入します。 +*index* 引数には、新しいシートのインデックスを渡します。渡した *index* 引数が 0以下だった場合、コマンドは新しいシートを先頭に挿入します。 *index* 引数がシートの総数より多い場合、コマンドは既存のシートの後に新しいシートを挿入します。 > インデックスは 0 起点です。 -*name* 引数として、新しいシートの名前を渡します。 新しい名前には、次の文字を含めることはできません: `*, :, [, ], ?,\,/` +*name* 引数として、新しいシートの名前を渡します。新しい名前には、次の文字を含めることはできません: `*, :, [, ], ?,\,/` ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-span.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-span.md index fd84f575cec1fb..900a084914179d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-span.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-span.md @@ -22,9 +22,9 @@ title: VP ADD SPAN `VP ADD SPAN` コマンドは、*rangeObj* に渡したセルを単一のセルに結合します。 -*rangeObj* には、セルのレンジオブジェクトを渡します。 レンジ内のセルは結合され、複数のカラム/行にまたがる大きなセルが作成されます。 複数のセルレンジを渡すことで、一度に複数の結合セルを作成することもできます。 ただし、セルレンジが重なった場合、最初のセルレンジのみが使用されます。 +*rangeObj* には、セルのレンジオブジェクトを渡します。レンジ内のセルは結合され、複数のカラム/行にまたがる大きなセルが作成されます。複数のセルレンジを渡すことで、一度に複数の結合セルを作成することもできます。ただし、セルレンジが重なった場合、最初のセルレンジのみが使用されます。 -> - 結合セルでは、左上端セルのデータのみが表示されます。 他のセルのデータは結合が解除されるまで非表示になります。 +> - 結合セルでは、左上端セルのデータのみが表示されます。他のセルのデータは結合が解除されるまで非表示になります。 > - 結合セル内の非表示データは、フォーミュラを使用することでアクセス可能です (フォーミュラは左上端セルから始まります)。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-stylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-stylesheet.md index 4a67732ceac777..4edbed874f87bc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-stylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-add-stylesheet.md @@ -23,15 +23,15 @@ title: VP ADD STYLESHEET ## 説明 -`VP ADD STYLESHEET` コマンドは、開いているドキュメント内にて、*styleName* 引数で指定したスタイルシートを、*styleObj* 引数のプロパティの組み合わせに基づいて作成または変更します。 同じ名前とインデックスを持つスタイルシートがドキュメント内にすでに存在する場合、このコマンドはそれを新しい値で上書きします。 +`VP ADD STYLESHEET` コマンドは、開いているドキュメント内にて、*styleName* 引数で指定したスタイルシートを、*styleObj* 引数のプロパティの組み合わせに基づいて作成または変更します。同じ名前とインデックスを持つスタイルシートがドキュメント内にすでに存在する場合、このコマンドはそれを新しい値で上書きします。 > このコマンドで作成されたスタイルシートはドキュメントとともに保存されます。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*styleName* 引数には、スタイルシートの名前を渡します。 同じスコープ内で名前が既に使用されている場合、新しいスタイルシートは既存のものを上書きします。 ただし異なるスコープであれば同じ名前を使用することが可能です (以下参照)。 +*styleName* 引数には、スタイルシートの名前を渡します。同じスコープ内で名前が既に使用されている場合、新しいスタイルシートは既存のものを上書きします。ただし異なるスコープであれば同じ名前を使用することが可能です (以下参照)。 -*styleObj* には、スタイルシートの設定 (例: フォント、テキスト装飾、文字揃え、境界線、など) を指定します。 スタイルプロパティの完全な一覧については、[スタイルオブジェクトプロパティ](../configuring.md#スタイルオブジェクトプロパティ) を参照ください。 +*styleObj* には、スタイルシートの設定 (例: フォント、テキスト装飾、文字揃え、境界線、など) を指定します。スタイルプロパティの完全な一覧については、[スタイルオブジェクトプロパティ](../configuring.md#スタイルオブジェクトプロパティ) を参照ください。 任意の *sheet* 引数を使用することで、スタイルシートをどこに定義するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-all.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-all.md index 66182b278be442..0026ca2e1b0863 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-all.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-all.md @@ -24,9 +24,9 @@ title: VP All `VP ALL` コマンドは、すべてのセルを参照する新しいレンジオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-cell.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-cell.md index b3a9e72698fa34..45d5b64a6fa0c7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-cell.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-cell.md @@ -26,15 +26,15 @@ title: VP Cell `VP Cell` コマンドは、特定のセルを参照する新しいレンジオブジェクトを返します。 -> このコマンドは単一セルのレンジを想定しています。 複数セルに対するレンジオブジェクトを作成するには、[VP Cells](vp-cells.md) コマンドを使用します。 +> このコマンドは単一セルのレンジを想定しています。複数セルに対するレンジオブジェクトを作成するには、[VP Cells](vp-cells.md) コマンドを使用します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*column* 引数で、セルレンジの位置のカラムを定義します。 この引数としてカラムのインデックスを渡します。 +*column* 引数で、セルレンジの位置のカラムを定義します。この引数としてカラムのインデックスを渡します。 -*row* 引数で、セルレンジの位置をの行を定義します。 この引数として行のインデックスを渡します。 +*row* 引数で、セルレンジの位置をの行を定義します。この引数として行のインデックスを渡します。 -任意の *sheet* 引数で、レンジが定義されるシートのインデックスを指定することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数で、レンジが定義されるシートのインデックスを指定することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 > インデックスは 0 起点です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-cells.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-cells.md index fdecdf0c172a60..cf716db71eb4cb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-cells.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-cells.md @@ -36,17 +36,17 @@ title: VP Cells `VP Cells` コマンドは、指定された複数のセルを参照する新しいレンジオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*column* 引数で、セルレンジの先頭カラムを指定します。 この引数としてカラムのインデックス (0 起点) を渡します。 レンジが複数カラムにわたる場合、*columnCount* 引数も併せて使用します。 +*column* 引数で、セルレンジの先頭カラムを指定します。この引数としてカラムのインデックス (0 起点) を渡します。レンジが複数カラムにわたる場合、*columnCount* 引数も併せて使用します。 -*row* 引数で、セルレンジの位置を決める行を指定します。 この引数として行のインデックス (0 起点) を渡します。 レンジが複数行にわたる場合、*rowCount* 引数も併せて使用します。 +*row* 引数で、セルレンジの位置を決める行を指定します。この引数として行のインデックス (0 起点) を渡します。レンジが複数行にわたる場合、*rowCount* 引数も併せて使用します。 *columnCount* には、レンジに含まれるカラム数を指定することができます。 *columnCount* 引数は 0 より大きい値でなくてはなりません。 *rowCount* には、レンジに含まれる行数を指定することができます。 *rowCount* 引数は 0 より大きい値でなくてはなりません。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-column.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-column.md index a1dcab3eb66efe..bea3806ffd1b9b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-column.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-column.md @@ -26,13 +26,13 @@ title: VP Column `VP Column` コマンドは、特定のカラム、あるいは複数のカラムを参照する新しいレンジオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*column* 引数で、カラムレンジの先頭カラムを指定します。 この引数としてカラムのインデックス (0 起点) を渡します。 レンジが複数カラムにわたる場合には、任意の *columnCount* 引数も併せて使用します。 +*column* 引数で、カラムレンジの先頭カラムを指定します。この引数としてカラムのインデックス (0 起点) を渡します。レンジが複数カラムにわたる場合には、任意の *columnCount* 引数も併せて使用します。 -任意の *columnCount* には、レンジに含まれるカラム数を指定することができます。 *columnCount* 引数は 0 より大きい値でなくてはなりません。 省略時、デフォルトで値は 1 に設定され、カラム型のレンジが作成されます。 +任意の *columnCount* には、レンジに含まれるカラム数を指定することができます。 *columnCount* 引数は 0 より大きい値でなくてはなりません。省略時、デフォルトで値は 1 に設定され、カラム型のレンジが作成されます。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-combine-ranges.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-combine-ranges.md index afd05366138147..943d3a2a812b6b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-combine-ranges.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-combine-ranges.md @@ -22,7 +22,7 @@ title: VP Combine ranges ## 説明 -`VP Combine Ranges` コマンドは、2つ以上のレンジオブジェクトを統合した新しいレンジオブジェクトを返します。 レンジはすべて同じ 4D View Pro エリア内のものでなくてはなりません。 +`VP Combine Ranges` コマンドは、2つ以上のレンジオブジェクトを統合した新しいレンジオブジェクトを返します。レンジはすべて同じ 4D View Pro エリア内のものでなくてはなりません。 *rangeObj* には、1つ目のレンジオブジェクトを渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-convert-from-4d-view.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-convert-from-4d-view.md index 09e381f3ea3e43..6df94271a4e799 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-convert-from-4d-view.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-convert-from-4d-view.md @@ -25,7 +25,7 @@ title: VP Convert from 4D View > 旧式の 4D View プラグインが現環境にインストールされていなくても、このコマンドは使用可能です。 -*4DViewDocument* には変換する 4D View ドキュメントを格納する BLOB変数やフィールドを渡します。 コマンドは、4D View ドキュメントに保存されていた情報をすべて 4D View Pro 属性へと変換した 4D View Pro オブジェクトを返します。 +*4DViewDocument* には変換する 4D View ドキュメントを格納する BLOB変数やフィールドを渡します。コマンドは、4D View ドキュメントに保存されていた情報をすべて 4D View Pro 属性へと変換した 4D View Pro オブジェクトを返します。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-convert-to-picture.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-convert-to-picture.md index fd0252fc775cfe..e23cf37a719e5a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-convert-to-picture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-convert-to-picture.md @@ -29,13 +29,13 @@ title: VP Convert to picture - 4D View Pro ドキュメントを 4D Write Pro ドキュメントなど、他のドキュメントに埋め込みたい場合 - 4D View Pro ドキュメントを、4D View Pro エリアに読み込まずに印刷したい場合 -*vpObject* 引数には、変換したい 4D View Pro オブジェクトを渡します。 このオブジェクトは事前に [VP Export to object](vp-export-to-object.md) コマンドで解析するか、または [VP EXPORT DOCUMENT](vp-export-document.md) コマンドにより保存してある必要があります。 +*vpObject* 引数には、変換したい 4D View Pro オブジェクトを渡します。このオブジェクトは事前に [VP Export to object](vp-export-to-object.md) コマンドで解析するか、または [VP EXPORT DOCUMENT](vp-export-document.md) コマンドにより保存してある必要があります。 -> 4D View Pro エリアに含まれている式や書式 ([セルフォーマット](../configuring.md#セルフォーマット) 参照) が正常に書き出されるよう、少なくともそれらが一度は評価されていることが SVG変換プロセスには必要です。 事前に評価されていないドキュメントを変換した場合、式や書式が予期せぬ形にレンダリングされている可能性があります。 +> 4D View Pro エリアに含まれている式や書式 ([セルフォーマット](../configuring.md#セルフォーマット) 参照) が正常に書き出されるよう、少なくともそれらが一度は評価されていることが SVG変換プロセスには必要です。事前に評価されていないドキュメントを変換した場合、式や書式が予期せぬ形にレンダリングされている可能性があります。 -*rangeObj* には、変換するセルのレンジを渡します。 この引数が省略された場合のデフォルトでは、ドキュメントのコンテンツ全体が変換されます。 +*rangeObj* には、変換するセルのレンジを渡します。この引数が省略された場合のデフォルトでは、ドキュメントのコンテンツ全体が変換されます。 -書式 (上の注記参照)、ヘッダーの表示状態、カラムと行などを含めた表示属性に準じて、ドキュメントコンテンツは変換されます。 以下の要素の変換がサポートされます: +書式 (上の注記参照)、ヘッダーの表示状態、カラムと行などを含めた表示属性に準じて、ドキュメントコンテンツは変換されます。以下の要素の変換がサポートされます: - テキスト: スタイル / フォント / サイズ / 文字揃え / 向き / 回転 / 書式 - セルの背景: カラー / 画像 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-copy-to-object.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-copy-to-object.md index dc28d2fa6bd8ed..8373879821bfe1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-copy-to-object.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-copy-to-object.md @@ -19,11 +19,11 @@ title: VP Copy to object
    -| 引数 | 型 | | 説明 | -| -------- | ------ | --------------------------- | ------------------------------- | -| rangeObj | Object | -> | レンジオブジェクト | -| options | Object | -> | 追加のオプション | -| 戻り値 | Object | <- | 返されるオブジェクト。 コピーされたデータが格納されています。 | +| 引数 | 型 | | 説明 | +| -------- | ------ | --------------------------- | ------------------------------ | +| rangeObj | Object | -> | レンジオブジェクト | +| options | Object | -> | 追加のオプション | +| 戻り値 | Object | <- | 返されるオブジェクト。コピーされたデータが格納されています。 |
    @@ -36,10 +36,10 @@ title: VP Copy to object 任意の *options* 引数として、以下のプロパティを渡すことができます。 -| プロパティ | 型 | 説明 | -| ----------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | コマンド実行後もコピーされた値、書式、数式が保持するには *true* (デフォルト)。 削除するには *false*。 | -| copyOptions | Integer | コピーまたは移動する内容を指定します。 とりうる値:

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

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

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

    | [ワークブックオプション](vp-set-workbook-options.md) で定義されている貼り付けオプションが考慮されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-create-table.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-create-table.md index 5afdcfa8518c2f..ba166b08921a2c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-create-table.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-create-table.md @@ -33,19 +33,19 @@ title: VP CREATE TABLE ## 説明 -`VP CREATE TABLE` コマンドは、指定のレンジ内に表組みを作成します。 表組みを作成することで、関連するデータの管理や分析をより簡単におこなえます。 表組みは通常、関連するデータを行と列に含み、[データコンテキスト](vp-set-data-context.md) を利用します。 +`VP CREATE TABLE` コマンドは、指定のレンジ内に表組みを作成します。表組みを作成することで、関連するデータの管理や分析をより簡単におこなえます。表組みは通常、関連するデータを行と列に含み、[データコンテキスト](vp-set-data-context.md) を利用します。 ![](../../assets/en/ViewPro/vp-create-table.png) *rangeObj* 引数には、表の作成場所としたいセルのレンジを渡します。 -*tableName* には、表組みの名称を渡します。 名称は次の条件を満たさなくてはなりません: +*tableName* には、表組みの名称を渡します。名称は次の条件を満たさなくてはなりません: - シートにおいて固有のものである - 5文字以上である - 先頭が数字でなく、スペースを含まない -*source* には、表組みにデータを提供する [データコンテキスト](vp-set-data-context.md) のプロパティ名を渡します。 これにより、表をデータコンテキストにバインドします。 データコンテキストが更新されると、表に表示されるデータも更新されます。 このデータコンテキストには、各要素が行を表すオブジェクトのコレクションが含まれている必要があります。 +*source* には、表組みにデータを提供する [データコンテキスト](vp-set-data-context.md) のプロパティ名を渡します。これにより、表をデータコンテキストにバインドします。データコンテキストが更新されると、表に表示されるデータも更新されます。このデータコンテキストには、各要素が行を表すオブジェクトのコレクションが含まれている必要があります。 - *source* を指定しない場合、コマンドは *rangeObj* が定義するサイズの空の表を作成します。 - 指定された *source* をドキュメント内に完全に表示できない場合、表は作成されません。 @@ -57,9 +57,9 @@ title: VP CREATE TABLE - *rangeObj* の列数が *tableColumns* の列数より多い場合、表は追加の空列で埋められます。 - *rangeObj* の列数が *tableColumns* の列数より少ない場合、表はレンジの列数のみを表示します。 -*source* を渡しながら、*tableColumn* オプションは渡さなかった場合、コマンドは自動的に列を生成します。 この場合、*rangeObj* はセルレンジでなければなりません。 そうでなければ、レンジの先頭セルが使用されます。 列を自動生成する場合、次のルールが適用されます: +*source* を渡しながら、*tableColumn* オプションは渡さなかった場合、コマンドは自動的に列を生成します。この場合、*rangeObj* はセルレンジでなければなりません。そうでなければ、レンジの先頭セルが使用されます。列を自動生成する場合、次のルールが適用されます: -- コマンドに渡されるデータがオブジェクトのコレクションである場合、列のタイトルとしてプロパティ名が使用されます。 例: +- コマンドに渡されるデータがオブジェクトのコレクションである場合、列のタイトルとしてプロパティ名が使用されます。例: ```4d ([{ LastName: \"Freehafer\", FirstName: \"Nancy\"},{ LastName: \"John\", FirstName: \"Doe\"}) @@ -69,7 +69,7 @@ title: VP CREATE TABLE - スカラー値のコレクションを各行のデータとして渡すには、それらはサブコレクションとしてコレクションに格納されている必要があります: - - 第1レベルのコレクションは、値のサブコレクションを格納しています。 それぞれのサブコレクションは行を定義します。 行をスキップするには空のコレクションを渡します。 最初のサブコレクションに格納されている値の数により、生成されるカラム数が決定します。 + - 第1レベルのコレクションは、値のサブコレクションを格納しています。それぞれのサブコレクションは行を定義します。行をスキップするには空のコレクションを渡します。最初のサブコレクションに格納されている値の数により、生成されるカラム数が決定します。 - 列のタイトルとして、サブコレクションのインデックスが使用されます。 - それぞれのサブコレクションは行におけるセルの値を定義します。 `Integer`, `Real`, `Boolean`, `Text`, `Date`, `Null`, `Time` または `Picture` の値が可能です。 `Time` の値は、[VP SET VALUE](vp-set-value.md) でも記述されているように、time 属性を含むオブジェクトでなければなりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-delete-columns.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-delete-columns.md index 2c897dc02f5637..f061e2ea46ea14 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-delete-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-delete-columns.md @@ -22,7 +22,7 @@ title: VP DELETE COLUMNS `VP DELETE COLUMNS` コマンドは、*rangeObj* 引数で指定したカラムを削除します。 -*rangeObj* 引数には、削除するカラムを指定するレンジオブジェクトを渡します。 渡すレンジについては、以下の点に注意してください: +*rangeObj* 引数には、削除するカラムを指定するレンジオブジェクトを渡します。渡すレンジについては、以下の点に注意してください: - レンジにカラムと行の両方が含まれる場合、カラムのみが削除されます。 - レンジに行しか含まれていない場合、コマンドは何もしません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-delete-rows.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-delete-rows.md index 85a92f91f5e3cd..899da9fcafa515 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-delete-rows.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-delete-rows.md @@ -22,7 +22,7 @@ title: VP DELETE ROWS `VP DELETE ROWS` コマンドは、*rangeObj* 引数で指定した行を削除します。 -*rangeObj* 引数には、削除する行を指定するレンジオブジェクトを渡します。 渡すレンジについては、以下の点に注意してください: +*rangeObj* 引数には、削除する行を指定するレンジオブジェクトを渡します。渡すレンジについては、以下の点に注意してください: - レンジにカラムと行の両方が含まれる場合、行のみが削除されます。 - レンジにカラムしか含まれていない場合、コマンドは何もしません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 6912640fadac81..ea16eb10de821f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -33,9 +33,9 @@ title: VP EXPORT DOCUMENT `VP EXPORT DOCUMENT` コマンドは、*vpAreaName* で指定した 4D View Pro エリアに関連付けられている 4D View Pro オブジェクトを、*filePath* と *paramObj* で指定したとおりにディスク上のドキュメントに書き出します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*filePath* には書き出すドキュメントのパスとファイル名を渡します。 パスを指定しない場合、ドキュメントは Projectフォルダーと同階層に保存されます。 +*filePath* には書き出すドキュメントのパスとファイル名を渡します。パスを指定しない場合、ドキュメントは Projectフォルダーと同階層に保存されます。 ドキュメント名に拡張子を付けることで、書き出すドキュメントの形式を指定することができます: @@ -49,63 +49,63 @@ title: VP EXPORT DOCUMENT 任意の *paramObj* 引数を渡すと、書き出される 4D View Pro オブジェクトの複数のプロパティに加えて、書き出しが完了した際に呼び出されるコールバックメソッド名を定義することができます。 -| プロパティ | | 型 | 説明 | -| -------------------- | ------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| format | | text | (任意) 渡した場合、書き出されるファイルの形式を指定します: ".4VP" (デフォルト)、 ".csv"、".xlsx"、 ".pdf"、または ".sjs"。 次の定数が利用できます:
  • `vk 4D View Pro format`
  • `vk csv format`
  • `vk MS Excel format`
  • `vk pdf format`
  • `vk sjs format`
  • 4D は必要に応じて適切な拡張子をファイル名に追加します。 指定した形式が *filePath* 引数として渡された拡張子と合致しない場合、指定形式の拡張子は *filePath* 引数の後ろに追加されます。 形式が指定されず、*filePath* 引数にも拡張子がなかった場合には、デフォルトのファイル形式が使用されます。 | -| password | | text | Microsoft Excel のみ (任意) - MS Excel ドキュメントの保護に使用されるパスワード。 | -| formula | | 4D.Function | 書き出しが完了した際に呼び出されるコールバックメソッド名。 書き出しが非同期でおこなわれる (PDF および Excel 形式での書き出しが該当します) 場合かつ、書き出し後にコードを実行したい場合には、コールバックメソッドが必要です。 コールバックメソッドは [`Formula`](../../commands/formula) コマンドを使って渡す必要があります。 [コールバックメソッドの渡し方](#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | -| valuesOnly | | boolean | フォーミュラ (あれば) の値のみを書き出すかどうかを指定します。 | -| includeFormatInfo | | boolean | フォーマット (書式) 情報を含めるには true、それ以外の場合には false (デフォルトは true)。 フォーマット情報は特定の場合 (例: SVGへの書き出しなど) において有用です。 一方で、このプロパティを **false** に設定することで書き出し時間を短縮することもできます。 | -| includeBindingSource | | boolean | 4DVP および Microsoft Excel のみ。 true (デフォルト) の場合、カレントデータコンテキストの値を、書き出したドキュメントのセルの値としてエクスポートします (データコンテキスト自体はエクスポートされません)。 それ以外は false。 セルバインドは常にエクスポートされます。 データコンテキストおよびセルバインドの管理については、[VP SET DATA CONTEXT](vp-set-data-context.md) および [VP SET BINDING PATH](vp-set-binding-path.md) を参照ください。 | -| sheetIndex | | number | PDF のみ (任意) - 書き出すシートのインデックス (0 起点)。 -2 = 表示されている全シート (**デフォルト**)、-1 = カレントシートのみ | -| pdfOptions | | object | PDFのみ (任意) - pdf 用のオプション | -| | creator | text | 変換されたドキュメントの変換元を作成したアプリケーション名。 | -| | title | text | ドキュメント名。 | -| | author | text | ドキュメントの作成者の名前。 | -| | keywords | text | ドキュメントに割り当てられたキーワード。 | -| | subject | text | ドキュメントの題名。 | -| csvOptions | | object | CSVのみ (任意) - csv 書き出しのオプション | -| | range | object | 複数セルのレンジオブジェクト | -| | rowDelimiter | text | 行の区切り文字。 デフォルト: "\r\n" | -| | columnDelimiter | text | カラムの区切り文字。 デフォルト: "," | -| sjsOptions | | object | SJSのみ (任意) - sjs 書き出しのオプション | -| | includeAutoMergedCells | boolean | 自動的に結合されたセルを含めるかどうか。デフォルトは false。 | -| | includeBindingSource | boolean | バインドされたソースを含めるかどうか。デフォルトは true。 | -| | includeCalcModelCache | boolean | 計算の追加データを含めるか。 追加データによって、ファイルを開くのが速くなる場合があります。デフォルトは false。 | -| | includeEmptyRegionCells | boolean | 使用されるデータレンジの外側の空白セル (データがない、またはスタイルだけのセル) を含めるかどうか。デフォルトは true。 | -| | includeFormulas | boolean | フォーミュラを含めるかどうか。デフォルトは true。 | -| | includeStyles | boolean | スタイルを含めるかどうか。デフォルトは true。 | -| | includeUnusedNames | boolean | 使用されていないカスタム名を含めるかどうか。デフォルトは true。 | -| | saveAsView | boolean | 書き出される値にフォーマット文字列を適用するかどうか。デフォルトは false。 | -| excelOptions | | object | Excel のみ (任意) - Excel 書き出しのオプション | -| | includeBindingSource | boolean | 書き出す際にバインドされたソースを含めるかどうか。デフォルトは false。 | -| | includeStyles | boolean | スタイルを含めるかどうか。デフォルトは true。 | -| | includeFormulas | boolean | フォーミュラを含めるかどうか。デフォルトは true。 | -| | saveAsView | boolean | 書き出される値にフォーマット文字列を適用するかどうか。デフォルトは false。 | -| | rowHeadersAsFrozenColumns | boolean | 書き出す際に行ヘッダーを固定された列と扱うかどうか。デフォルトは false。 | -| | columnHeadersAsFrozenRows | boolean | 書き出す際に列ヘッダーを固定された行として扱うかどうか。デフォルトは false。 | -| | includeAutoMergedCells | boolean | 自動的に結合されたセルを含めるかどうか。デフォルトは false。 | -| | includeCalcModelCache | boolean | 計算の追加データを含めるか。 追加データによって、ファイルを開くのが速くなる場合があります。デフォルトは false。 | -| | includeUnusedNames | boolean | 使用されていないカスタム名を含めるかどうか。デフォルトは true。 | -| | includeEmptyRegionCells | boolean | 使用されるデータレンジの外側の空白セル (データがない、またはスタイルだけのセル) を含めるかどうか。デフォルトは true。 | -| | password | text | ワークブックを開くためのパスワード。 | -| `\` | | any | コールバックメソッドの $3 引数を通して利用可能な任意のプロパティ。 | +| プロパティ | | 型 | 説明 | +| -------------------- | ------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| format | | text | (任意) 渡した場合、書き出されるファイルの形式を指定します: ".4VP" (デフォルト)、 ".csv"、".xlsx"、 ".pdf"、または ".sjs"。次の定数が利用できます:
  • `vk 4D View Pro format`
  • `vk csv format`
  • `vk MS Excel format`
  • `vk pdf format`
  • `vk sjs format`
  • 4D は必要に応じて適切な拡張子をファイル名に追加します。指定した形式が *filePath* 引数として渡された拡張子と合致しない場合、指定形式の拡張子は *filePath* 引数の後ろに追加されます。形式が指定されず、*filePath* 引数にも拡張子がなかった場合には、デフォルトのファイル形式が使用されます。 | +| password | | text | Microsoft Excel のみ (任意) - MS Excel ドキュメントの保護に使用されるパスワード。 | +| formula | | 4D.Function | 書き出しが完了した際に呼び出されるコールバックメソッド名。書き出しが非同期でおこなわれる (PDF および Excel 形式での書き出しが該当します) 場合かつ、書き出し後にコードを実行したい場合には、コールバックメソッドが必要です。コールバックメソッドは [`Formula`](../../commands/formula) コマンドを使って渡す必要があります。[コールバックメソッドの渡し方](#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | +| valuesOnly | | boolean | フォーミュラ (あれば) の値のみを書き出すかどうかを指定します。 | +| includeFormatInfo | | boolean | フォーマット (書式) 情報を含めるには true、それ以外の場合には false (デフォルトは true)。フォーマット情報は特定の場合 (例: SVGへの書き出しなど) において有用です。一方で、このプロパティを **false** に設定することで書き出し時間を短縮することもできます。 | +| includeBindingSource | | boolean | 4DVP および Microsoft Excel のみ。 true (デフォルト) の場合、カレントデータコンテキストの値を、書き出したドキュメントのセルの値としてエクスポートします (データコンテキスト自体はエクスポートされません)。それ以外は false。セルバインドは常にエクスポートされます。データコンテキストおよびセルバインドの管理については、[VP SET DATA CONTEXT](vp-set-data-context.md) および [VP SET BINDING PATH](vp-set-binding-path.md) を参照ください。 | +| sheetIndex | | number | PDF のみ (任意) - 書き出すシートのインデックス (0 起点)。 -2 = 表示されている全シート (**デフォルト**)、-1 = カレントシートのみ | +| pdfOptions | | object | PDFのみ (任意) - pdf 用のオプション | +| | creator | text | 変換されたドキュメントの変換元を作成したアプリケーション名。 | +| | title | text | ドキュメント名。 | +| | author | text | ドキュメントの作成者の名前。 | +| | keywords | text | ドキュメントに割り当てられたキーワード。 | +| | subject | text | ドキュメントの題名。 | +| csvOptions | | object | CSVのみ (任意) - csv 書き出しのオプション | +| | range | object | 複数セルのレンジオブジェクト | +| | rowDelimiter | text | 行の区切り文字。デフォルト: "\r\n" | +| | columnDelimiter | text | カラムの区切り文字。デフォルト: "," | +| sjsOptions | | object | SJSのみ (任意) - sjs 書き出しのオプション | +| | includeAutoMergedCells | boolean | 自動的に結合されたセルを含めるかどうか。デフォルトは false。 | +| | includeBindingSource | boolean | バインドされたソースを含めるかどうか。デフォルトは true。 | +| | includeCalcModelCache | boolean | 計算の追加データを含めるか。追加データによって、ファイルを開くのが速くなる場合があります。デフォルトは false。 | +| | includeEmptyRegionCells | boolean | 使用されるデータレンジの外側の空白セル (データがない、またはスタイルだけのセル) を含めるかどうか。デフォルトは true。 | +| | includeFormulas | boolean | フォーミュラを含めるかどうか。デフォルトは true。 | +| | includeStyles | boolean | スタイルを含めるかどうか。デフォルトは true。 | +| | includeUnusedNames | boolean | 使用されていないカスタム名を含めるかどうか。デフォルトは true。 | +| | saveAsView | boolean | 書き出される値にフォーマット文字列を適用するかどうか。デフォルトは false。 | +| excelOptions | | object | Excel のみ (任意) - Excel 書き出しのオプション | +| | includeBindingSource | boolean | 書き出す際にバインドされたソースを含めるかどうか。デフォルトは false。 | +| | includeStyles | boolean | スタイルを含めるかどうか。デフォルトは true。 | +| | includeFormulas | boolean | フォーミュラを含めるかどうか。デフォルトは true。 | +| | saveAsView | boolean | 書き出される値にフォーマット文字列を適用するかどうか。デフォルトは false。 | +| | rowHeadersAsFrozenColumns | boolean | 書き出す際に行ヘッダーを固定された列と扱うかどうか。デフォルトは false。 | +| | columnHeadersAsFrozenRows | boolean | 書き出す際に列ヘッダーを固定された行として扱うかどうか。デフォルトは false。 | +| | includeAutoMergedCells | boolean | 自動的に結合されたセルを含めるかどうか。デフォルトは false。 | +| | includeCalcModelCache | boolean | 計算の追加データを含めるか。追加データによって、ファイルを開くのが速くなる場合があります。デフォルトは false。 | +| | includeUnusedNames | boolean | 使用されていないカスタム名を含めるかどうか。デフォルトは true。 | +| | includeEmptyRegionCells | boolean | 使用されるデータレンジの外側の空白セル (データがない、またはスタイルだけのセル) を含めるかどうか。デフォルトは true。 | +| | password | text | ワークブックを開くためのパスワード。 | +| `\` | | any | コールバックメソッドの $3 引数を通して利用可能な任意のプロパティ。 | **Excel 形式についての注意**: -- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。 たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 +- 4D View Pro ドキュメントを Microsoft Excel 形式のファイルに書き出す場合、一部の設定が失われる可能性があります。たとえば、4Dメソッドとフォーミュラは Excel ではサポートされません。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、その他の設定を確認することができます。 - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 -- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。 潜在的な問題を避けるため、このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 +- ".xlsx" フォーマットで書き出す際には*excelOptions* オブジェクトの使用が推奨されています。潜在的な問題を避けるため、このオブジェクトを旧式の第一レベルプロパティ(*password*、*includeBindingSource*...)と混在させないように注意して下さい。 **PDF 形式についての注意**: -- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。 ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。 フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 +- 4D View Pro ドキュメントを PDF 形式に書き出す場合、ドキュメントで使用されているフォントは自動的に PDF ファイルに埋め込まれます。ただし、埋め込み可能なのは Unicode マップを持つ OpenType フォント (.OTF または .TTF ファイル) のみです。フォントに対して有効なフォントファイルが見つからない場合、デフォルトのフォントが代用されます。 - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **CSV 形式についての注意**: - 4D View Pro ドキュメントを CSV 形式に書き出す場合、テキストと値のみが保存されるため、一部の設定が失われる可能性があります。 -- すべての値は二重引用符で括られた形で保存されます。 ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 +- すべての値は二重引用符で括られた形で保存されます。ユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 - このフォーマットへの書き出しは非同期に実行されるため、書き出し後にコードを実行するには、*paramObj* 引数の `formula` プロパティを使用します。 **SpreadJS ファイル形式についての注意**: @@ -117,7 +117,7 @@ title: VP EXPORT DOCUMENT ## コールバックメソッド (フォーミュラ) の渡し方 -コマンドに任意の *paramObj* 引数を渡す場合、[`Formula`](../../commands/formula) コマンドを使って、書き出し完了時に実行される 4Dメソッドを呼び出すことができます。 コールバックメソッドは、以下の値をローカルパラメーターに受け取ります: +コマンドに任意の *paramObj* 引数を渡す場合、[`Formula`](../../commands/formula) コマンドを使って、書き出し完了時に実行される 4Dメソッドを呼び出すことができます。コールバックメソッドは、以下の値をローカルパラメーターに受け取ります: | 引数 | | 型 | 説明 | | ------ | ----------------------------- | ------- | --------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-to-blob.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-to-blob.md index 8e158447e03d75..9ce0558e2439ab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-to-blob.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-to-blob.md @@ -25,17 +25,17 @@ title: VP EXPORT TO BLOB *paramObj* には、複数のプロパティを渡せます: -| プロパティ | 型 | 説明 | -| ----------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | 4D.Function | (必須) 書き出しが完了した際に呼び出されるコールバックメソッド名。 [コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | -| includeAutoMergedCells | Boolean | 自動的に結合されたセルを含めるかどうか。デフォルトは false。 | -| includeBindingSource | Boolean | バインドされたソースを含めるかどうか。デフォルトは true。 | -| includeCalcModelCache | Boolean | 計算の追加データを含めるか。 ファイルを開く速さに影響する場合があります。デフォルトは false。 | -| includeEmptyRegionCells | Boolean | 使用されるデータレンジの外側の空白セル (データがない、またはスタイルだけのセル) を含めるかどうか。デフォルトは true。 | -| includeFormulas | Boolean | フォーミュラを含めるかどうか。デフォルトは true。 | -| includeStyles | Boolean | スタイルを含めるかどうか。デフォルトは true。 | -| includeUnusedNames | Boolean | 使用されていないカスタム名を含めるかどうか。デフォルトは true。 | -| saveAsView | Boolean | 書き出される値にフォーマット文字列を適用するかどうか。デフォルトは false。 | +| プロパティ | 型 | 説明 | +| ----------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| formula | 4D.Function | (必須) 書き出しが完了した際に呼び出されるコールバックメソッド名。[コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | +| includeAutoMergedCells | Boolean | 自動的に結合されたセルを含めるかどうか。デフォルトは false。 | +| includeBindingSource | Boolean | バインドされたソースを含めるかどうか。デフォルトは true。 | +| includeCalcModelCache | Boolean | 計算の追加データを含めるか。ファイルを開く速さに影響する場合があります。デフォルトは false。 | +| includeEmptyRegionCells | Boolean | 使用されるデータレンジの外側の空白セル (データがない、またはスタイルだけのセル) を含めるかどうか。デフォルトは true。 | +| includeFormulas | Boolean | フォーミュラを含めるかどうか。デフォルトは true。 | +| includeStyles | Boolean | スタイルを含めるかどうか。デフォルトは true。 | +| includeUnusedNames | Boolean | 使用されていないカスタム名を含めるかどうか。デフォルトは true。 | +| saveAsView | Boolean | 書き出される値にフォーマット文字列を適用するかどうか。デフォルトは false。 | コールバックメソッドでは、以下のパラメーターを使用することができます: @@ -51,7 +51,7 @@ title: VP EXPORT TO BLOB ## 例題 -`VP EXPORT TO BLOB` コマンドは非同期です。 エクスポートの結果を取得するには、コールバックメソッド (この例では *VPBlobCallback* という名前) を作成する必要があります。 +`VP EXPORT TO BLOB` コマンドは非同期です。エクスポートの結果を取得するには、コールバックメソッド (この例では *VPBlobCallback* という名前) を作成する必要があります。 ```4d // VPドキュメントをエクスポート diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-to-object.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-to-object.md index eed64fa9245b4c..841d0639f4dd7c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-to-object.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-to-object.md @@ -22,16 +22,16 @@ title: VP Export to object ## 説明 -`VP Export to object` コマンドは、 *vpAreaName* で指定した 4D View Pro エリアに関連付けられている 4D View Pro オブジェクトを返します。 このコマンドによって、たとえば 4D View Pro エリアを 4Dデータベースのオブジェクトフィールドに保存することができます。 +`VP Export to object` コマンドは、 *vpAreaName* で指定した 4D View Pro エリアに関連付けられている 4D View Pro オブジェクトを返します。このコマンドによって、たとえば 4D View Pro エリアを 4Dデータベースのオブジェクトフィールドに保存することができます。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 *options* 引数として、必要に応じて以下の書き出しオプションを渡すことができます: -| プロパティ | 型 | 説明 | -| -------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| includeFormatInfo | Boolean | フォーマット (書式) 情報を含めるには true (デフォルト)、それ以外の場合には false。 フォーマット情報は特定の場合 (例: SVGへの書き出しなど) において有用です。 一方で、このプロパティを false に設定することで書き出し時間を短縮することもできます。 | -| includeBindingSource | Boolean | true (デフォルト) の場合、カレントデータコンテキストの値を、書き出したオブジェクトのセルの値としてエクスポートします (データコンテキスト自体はエクスポートされません)。 それ以外は false。 セルバインドは常にエクスポートされます。 | +| プロパティ | 型 | 説明 | +| -------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| includeFormatInfo | Boolean | フォーマット (書式) 情報を含めるには true (デフォルト)、それ以外の場合には false。フォーマット情報は特定の場合 (例: SVGへの書き出しなど) において有用です。一方で、このプロパティを false に設定することで書き出し時間を短縮することもできます。 | +| includeBindingSource | Boolean | true (デフォルト) の場合、カレントデータコンテキストの値を、書き出したオブジェクトのセルの値としてエクスポートします (データコンテキスト自体はエクスポートされません)。それ以外は false。セルバインドは常にエクスポートされます。 | 4D View Pro オブジェクトについての詳細は [4D View Pro オブジェクト](../configuring.md#4d-view-pro-オブジェクト) を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find-table.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find-table.md index b5f6fdf251ca48..0cb638c2679e22 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find-table.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find-table.md @@ -31,7 +31,7 @@ title: VP Find table `VP Find table` コマンドは、*rangeObj* で指定したセルが所属する表組みの名称を返します。 -*rangeObj* には、セルのレンジオブジェクトを渡します。 指定したセルが表組みの一部でない場合、コマンドは空の文字列を返します。 +*rangeObj* には、セルのレンジオブジェクトを渡します。指定したセルが表組みの一部でない場合、コマンドは空の文字列を返します。 *rangeObj* 引数のレンジが単独セルのレンジでない場合、あるいは複数レンジを指定している場合、最初のレンジの先頭セルが使用されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md index f9a60c8d118c63..703b52a5cc3de1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-find.md @@ -24,28 +24,28 @@ title: VP Find ## 説明 -`VP Find` コマンドは、*rangeObj* に指定したレンジ内で *searchValue* に指定した値を検索します。 任意の引数を渡すことで、検索条件を詳細に指定したり、検索結果を置換したりすることができます。 +`VP Find` コマンドは、*rangeObj* に指定したレンジ内で *searchValue* に指定した値を検索します。任意の引数を渡すことで、検索条件を詳細に指定したり、検索結果を置換したりすることができます。 *rangeObj* 引数として、検索対象のレンジを格納したオブジェクトを渡します。 *searchValue* 引数として、*rangeObj* に指定したレンジ内で検索するテキスト値を渡します。 -任意の *searchCondition* 引数を渡すことで、検索がどのように実行されるかを指定することができます。 以下のプロパティがサポートされています: +任意の *searchCondition* 引数を渡すことで、検索がどのように実行されるかを指定することができます。以下のプロパティがサポートされています: -| プロパティ | 型 | 説明 | -| ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| afterColumn | Integer | 検索を開始するカラムの直前のカラムの番号。 *rangeObj* 引数が統合されたレンジの場合、渡されるカラムの番号は最初のレンジのものでなければなりません。 デフォルト値: -1 (*rangeObj* の最初) | -| afterRow | Integer | 検索を開始する行の直前の行番号。 *rangeObj* 引数が統合されたレンジの場合、渡される行番号は最初のレンジのものでなければなりません。 デフォルト値: -1 (*rangeObj* の最初) | -| all | Boolean |
  • true - *rangeObj* 内で *searchValue* の値に合致するセルはすべて返されます。
  • false - (デフォルト値) *rangeObj* 内で *searchValue* の値に合致する最初のセルのみが返されます。
  • | -| flags | Integer |
    `vk find flag exact match`セルの中身全体が検索値と完全に一致する必要があります
    `vk find flag ignore case`文字の大小は区別されません。 例: "a" と "A" は同じとみなされます。
    `vk find flag none`検索フラグは指定されていません (デフォルト)。
    `vk find flag use wild cards`検索文字列においてワイルドカード文字 (\*,?) を使用できます。 ワイルドカードは、すべての文字列の比較に使用することができ、ワイルドカードによって置き換わる文字の数は指定されません:
  • \* は 0 から複数文字に使用可能です (例: "bl*" を検索した場合、"bl"、"black"、"blob" などが合致します)。
  • ? は単一文字に使用可能です (例: "h?t" を検索した場合、"hot"、"hit" などが合致します)。
  • フラグは組み合わせることができます。 例: $search.flags:=vk find flag use wild cards+vk find flag ignore case | -| order | Integer |
    `vk find order by columns`検索がカラムごとに実行されます。 カラムの各行が検索されたあとに次のカラムへと移動します。
    `vk find order by rows`検索が行ごとに実行されます。 行の各カラムが検索されたあとに次の行へと移動します (デフォルト)。
    | -| target | Integer |
    `vk find target formula`セルフォーミュラ内で検索がおこなわれます。
    `vk find target tag`セルタグ内で検索がおこなわれます。
    `vk find target text`セルテキスト内で検索がおこなわれます (デフォルト)。

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

    | +| プロパティ | 型 | 説明 | +| ----------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| afterColumn | Integer | 検索を開始するカラムの直前のカラムの番号。 *rangeObj* 引数が統合されたレンジの場合、渡されるカラムの番号は最初のレンジのものでなければなりません。デフォルト値: -1 (*rangeObj* の最初) | +| afterRow | Integer | 検索を開始する行の直前の行番号。 *rangeObj* 引数が統合されたレンジの場合、渡される行番号は最初のレンジのものでなければなりません。デフォルト値: -1 (*rangeObj* の最初) | +| all | Boolean |
  • true - *rangeObj* 内で *searchValue* の値に合致するセルはすべて返されます。
  • false - (デフォルト値) *rangeObj* 内で *searchValue* の値に合致する最初のセルのみが返されます。
  • | +| flags | Integer |
    `vk find flag exact match`セルの中身全体が検索値と完全に一致する必要があります
    `vk find flag ignore case`文字の大小は区別されません。例: "a" と "A" は同じとみなされます。
    `vk find flag none`検索フラグは指定されていません (デフォルト)。
    `vk find flag use wild cards`検索文字列においてワイルドカード文字 (\*,?) を使用できます。ワイルドカードは、すべての文字列の比較に使用することができ、ワイルドカードによって置き換わる文字の数は指定されません:
  • \* は 0 から複数文字に使用可能です (例: "bl*" を検索した場合、"bl"、"black"、"blob" などが合致します)。
  • ? は単一文字に使用可能です (例: "h?t" を検索した場合、"hot"、"hit" などが合致します)。
  • フラグは組み合わせることができます。例: $search.flags:=vk find flag use wild cards+vk find flag ignore case | +| order | Integer |
    `vk find order by columns`検索がカラムごとに実行されます。カラムの各行が検索されたあとに次のカラムへと移動します。
    `vk find order by rows`検索が行ごとに実行されます。行の各カラムが検索されたあとに次の行へと移動します (デフォルト)。
    | +| target | Integer |
    `vk find target formula`セルフォーミュラ内で検索がおこなわれます。
    `vk find target tag`セルタグ内で検索がおこなわれます。
    `vk find target text`セルテキスト内で検索がおこなわれます (デフォルト)。

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

    | 任意の *replaceValue* 引数として、*rangeObj* 内で見つかった *searchValue* の値のテキストを置換するテキストを渡すことができます。 ## 返されるオブジェクト -この関数は、検出または置換された検索値の詳細を格納したレンジオブジェクトを返します。 何も見つからなかった場合には、空のレンジオブジェクトが返されます。 +この関数は、検出または置換された検索値の詳細を格納したレンジオブジェクトを返します。何も見つからなかった場合には、空のレンジオブジェクトが返されます。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-flush-commands.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-flush-commands.md index ef9ef2d359365e..f117acc4d2246e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-flush-commands.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-flush-commands.md @@ -31,11 +31,11 @@ title: VP FLUSH COMMANDS `VP FLUSH COMMANDS` コマンドは、 保存されているコマンドをただちに実行し、コマンドバッファをクリアします。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 パフォーマンス向上と、送信リクエスト数を抑えるため、デベロッパーが呼び出した 4D View Pro コマンドはコマンドバッファに保存されます。 `VP FLUSH COMMANDS` は呼び出されると、メソッド終了時にコマンドをバッチとして実行し、コマンドバッファのコンテンツを空にします。 -*callback* 関数が提供された場合、その関数は全ての保存されたコマンドと4D カスタム関数が処理を終えた後にのみ実行されます。 これにより、ドキュメントの保存や印刷などのフォローアップアクションは、全ての計算が完了した後に実行されることが保証されます。 +*callback* 関数が提供された場合、その関数は全ての保存されたコマンドと4D カスタム関数が処理を終えた後にのみ実行されます。これにより、ドキュメントの保存や印刷などのフォローアップアクションは、全ての計算が完了した後に実行されることが保証されます。 コールバック関数では、以下のパラメーターを使用することができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-font-to-object.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-font-to-object.md index da896fe7de4640..0151f458ca29d3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-font-to-object.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-font-to-object.md @@ -21,11 +21,11 @@ title: VP Font to object ## 説明 -`VP Font to object` ユーティリティコマンドは、フォントのショートハンド文字列からオブジェクトを返します。 このオブジェクトはその後、オブジェクト記法を通してフォントプロパティ設定を取得・設定するのに使用することができます。 +`VP Font to object` ユーティリティコマンドは、フォントのショートハンド文字列からオブジェクトを返します。このオブジェクトはその後、オブジェクト記法を通してフォントプロパティ設定を取得・設定するのに使用することができます。 -*font* には、フォントのショートハンド文字列を渡してフォントのプロパティを指定します (例: "12 pt Arial")。 フォントのショートハンド文字列についての詳細は、[こちら](https://www.w3schools.com/cssref/pr_font_font.asp) を参照ください。 +*font* には、フォントのショートハンド文字列を渡してフォントのプロパティを指定します (例: "12 pt Arial")。フォントのショートハンド文字列についての詳細は、[こちら](https://www.w3schools.com/cssref/pr_font_font.asp) を参照ください。 -返されるオブジェクトには、フォント属性がプロパティとして格納されています。 利用可能なプロパティの詳細については、[VP Object to font](vp-object-to-font.md) コマンドを参照ください。 +返されるオブジェクトには、フォント属性がプロパティとして格納されています。利用可能なプロパティの詳細については、[VP Object to font](vp-object-to-font.md) コマンドを参照ください。 ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-active-cell.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-active-cell.md index ced60ceb9c9b11..d8c80016181860 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-active-cell.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-active-cell.md @@ -24,9 +24,9 @@ title: VP Get active cell `VP Get active cell` コマンドは、フォーカスを持ち、データ入力されようとしてるセル (アクティブセル) を参照する新しいレンジオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-binding-path.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-binding-path.md index 4a0a54f1928a7c..dae4e3b8a3a42f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-binding-path.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-binding-path.md @@ -31,7 +31,7 @@ title: VP Get binding path `VP Get binding path` コマンドは、*rangeObj* で指定したセルにバインドされた属性の名称を返します。 -*rangeObj* 引数には、セルレンジまたは複合セルレンジのオブジェクトを渡します。 注: +*rangeObj* 引数には、セルレンジまたは複合セルレンジのオブジェクトを渡します。注: - *rangeObj* のレンジが複数セルを含む場合、コマンドは最初のセルにバインドされている属性名を返します。 - *rangeObj* 引数が複数のレンジを含む場合、最初のレンジの最初のセルにバインドされた属性名が返されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-column-count.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-column-count.md index 40767a0e574842..5ad49f01597b90 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-column-count.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-column-count.md @@ -24,9 +24,9 @@ title: VP Get column count `VP Get column count` コマンドは、*sheet* 引数で指定したシートにおけるカラムの総数を返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数にシートインデックス (0 起点) を指定することで、どのシートのカラム数を取得するかを定義することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数にシートインデックス (0 起点) を指定することで、どのシートのカラム数を取得するかを定義することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-current-sheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-current-sheet.md index 7e425d18c788ba..1e0354c96d375b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-current-sheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-current-sheet.md @@ -21,7 +21,7 @@ title: VP Get current sheet ## 説明 -`VP Get current sheet` コマンドは、*vpAreaName* 引数で指定した View Pro エリアのカレントシートのインデックスを返します。 カレントシートとは、ドキュメント内で選択されているシートのことです。 +`VP Get current sheet` コマンドは、*vpAreaName* 引数で指定した View Pro エリアのカレントシートのインデックスを返します。カレントシートとは、ドキュメント内で選択されているシートのことです。 *vpAreaName* には、4D View Pro エリアの名前を渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-data-context.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-data-context.md index 4fade1f1b54f57..952754310a2cc6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-data-context.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-data-context.md @@ -19,20 +19,20 @@ title: VP Get data context
    -| 引数 | 型 | | 説明 | -| ---------- | ------- | --------------------------- | -------------------------- | -| vpAreaName | Text | -> | 4D View Pro フォームオブジェクト名 | -| sheet | Integer | -> | データコンテキストを取得するシートのインデックス | -| 戻り値 | any | <- | データコンテキスト。 オブジェクトまたはコレクション | +| 引数 | 型 | | 説明 | +| ---------- | ------- | --------------------------- | ------------------------- | +| vpAreaName | Text | -> | 4D View Pro フォームオブジェクト名 | +| sheet | Integer | -> | データコンテキストを取得するシートのインデックス | +| 戻り値 | any | <- | データコンテキスト。オブジェクトまたはコレクション |
    ## 説明 -`VP Get data context` コマンドは、 ワークシートのカレントのデータコンテキストを返します。 返されるコンテキストには、データコンテキストの内容に対しておこなわれた変更を含みます。 +`VP Get data context` コマンドは、 ワークシートのカレントのデータコンテキストを返します。返されるコンテキストには、データコンテキストの内容に対しておこなわれた変更を含みます。 -*sheet* には、データコンテキストを取得するシートのインデックスを渡します。 インデックスを省略した場合、コマンドはカレントワークシートのデータコンテキストを返します。 ワークシートのコンテキストが存在しない場合、コマンドは `Null` を返します。 +*sheet* には、データコンテキストを取得するシートのインデックスを渡します。インデックスを省略した場合、コマンドはカレントワークシートのデータコンテキストを返します。ワークシートのコンテキストが存在しない場合、コマンドは `Null` を返します。 [VP SET DATA CONTEXT](vp-set-data-context.md) により設定されたデータコンテキストの種類によって、関数はオブジェクトまたはコレクションを返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-default-style.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-default-style.md index 4958db2b26c7ad..f15eac42db69ce 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-default-style.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-default-style.md @@ -22,11 +22,11 @@ title: VP Get default style ## 説明 -`VP Get default style` コマンドは、シートのデフォルトスタイルオブジェクトを返します。 返されるオブジェクトには、ドキュメントの基本的なレンダリングプロパティに加え、[VP SET DEFAULT STYLE](vp-set-default-style.md) コマンドによって事前に設定されたデフォルトのスタイル設定 (あれば) が格納されます。 スタイルプロパティの詳細な情報については、[スタイルオブジェクトとスタイルシート](../configuring.md#スタイルオブジェクトとスタイルシート) を参照ください。 +`VP Get default style` コマンドは、シートのデフォルトスタイルオブジェクトを返します。返されるオブジェクトには、ドキュメントの基本的なレンダリングプロパティに加え、[VP SET DEFAULT STYLE](vp-set-default-style.md) コマンドによって事前に設定されたデフォルトのスタイル設定 (あれば) が格納されます。スタイルプロパティの詳細な情報については、[スタイルオブジェクトとスタイルシート](../configuring.md#スタイルオブジェクトとスタイルシート) を参照ください。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数にシートインデックス (0 起点) を指定することで、どのシートのカラム数を取得するかを定義することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数にシートインデックス (0 起点) を指定することで、どのシートのカラム数を取得するかを定義することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-formula-by-name.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-formula-by-name.md index 4c6b9b74c41da7..3b6c1527d39717 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-formula-by-name.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-formula-by-name.md @@ -25,9 +25,9 @@ title: VP Get formula by name `VP Get formula by name` コマンドは、 *name* 引数で指定された名前の命名フォーミュラ、あるいは命名レンジに対応したフォーミュラとコメントを返します (定義されたスコープにそれらが存在しない場合には **null** が返されます)。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*name* には、取得したい命名レンジあるいは命名フォーミュラの名前を渡します。 命名レンジは、絶対セル参照を格納したフォーミュラとして返されるという点に注意してください。 +*name* には、取得したい命名レンジあるいは命名フォーミュラの名前を渡します。命名レンジは、絶対セル参照を格納したフォーミュラとして返されるという点に注意してください。 *scope* 引数を使用することで、フォーミュラを取得するスコープを定義できます。その際、シートのインデックス (0 起点) を渡すか、以下の定数のいずれかを渡します: @@ -38,10 +38,10 @@ title: VP Get formula by name 戻り値のオブジェクトには、以下のプロパティが格納されています: -| プロパティ | 型 | 説明 | -| ------- | ---- | --------------------------------------------------------------------- | -| formula | Text | 命名フォーミュラまたは命名レンジに対応したフォーミュラのテキスト。 命名レンジの場合、フォーミュラは連続した絶対セル参照として返されます。 | -| comment | Text | 命名フォーミュラまたは命名レンジに対応したコメント | +| プロパティ | 型 | 説明 | +| ------- | ---- | -------------------------------------------------------------------- | +| formula | Text | 命名フォーミュラまたは命名レンジに対応したフォーミュラのテキスト。命名レンジの場合、フォーミュラは連続した絶対セル参照として返されます。 | +| comment | Text | 命名フォーミュラまたは命名レンジに対応したコメント | ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-formulas.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-formulas.md index c03100cc1fbed9..afd0acb4419464 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-formulas.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-formulas.md @@ -27,8 +27,8 @@ title: VP Get formulas 返されるコレクションは 2次元構造になっています: -- 第1レベルのコレクションは、フォーミュラのサブコレクションを格納しています。 それぞれのサブコレクションは行をあらわします。 -- それぞれのサブコレクションは行におけるセルの値を定義します。 値は、セルのフォーミュラを格納しているテキスト要素です。 +- 第1レベルのコレクションは、フォーミュラのサブコレクションを格納しています。それぞれのサブコレクションは行をあらわします。 +- それぞれのサブコレクションは行におけるセルの値を定義します。値は、セルのフォーミュラを格納しているテキスト要素です。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-frozen-panes.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-frozen-panes.md index 25e80653eff2ef..198a53d6a29fff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-frozen-panes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-frozen-panes.md @@ -24,13 +24,13 @@ title: VP Get frozen panes `VP Get frozen panes` コマンドは、*vpAreaName* 引数で指定した View Pro エリア内の、固定化されたカラムと行についての情報を格納したオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ### 返されるオブジェクト -このコマンドは固定化されたカラムと行についてのオブジェクトを返します。 このオブジェクトには、次のプロパティが格納されることがあります: +このコマンドは固定化されたカラムと行についてのオブジェクトを返します。このオブジェクトには、次のプロパティが格納されることがあります: | プロパティ | 型 | 説明 | | ------------------- | ------- | ------------------ | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-names.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-names.md index ad2da14ade626c..89ce48188210f8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-names.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-names.md @@ -24,7 +24,7 @@ title: VP Get names `VP Get names` コマンドは、カレントシートまたは *scope* 引数で指定されたスコープ内において定義されているすべての "名前" のコレクションを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 *scope* 引数を使用することで、名前を取得するスコープを定義できます。その際、シートのインデックス (0 起点) を渡すか、以下の定数のいずれかを渡します: @@ -33,7 +33,7 @@ title: VP Get names ### 返されるコレクション -返されるコレクションには、1つの名前につき 1つのオブジェクトが格納されています。 以下のオブジェクトプロパティが返されます: +返されるコレクションには、1つの名前につき 1つのオブジェクトが格納されています。以下のオブジェクトプロパティが返されます: | プロパティ | 型 | 説明 | | --------------------------------------------------------------------------------------- | ---- | -------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-print-info.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-print-info.md index eec4730bee84f0..68b5376eb9fb60 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-print-info.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-print-info.md @@ -24,9 +24,9 @@ title: VP Get print info `VP Get print info` コマンドは、*vpAreaName* 引数で指定したエリアの印刷属性を格納したオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、印刷属性を取得するスプレッドシートを指定することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、印刷属性を取得するスプレッドシートを指定することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-row-count.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-row-count.md index 39d60e64246651..3d2f2cb04410b3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-row-count.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-row-count.md @@ -24,9 +24,9 @@ title: VP Get row count `VP Get row count` コマンドは、*sheet* 引数で指定したシートにおける行の総数を返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数にシートインデックス (0 起点) を指定することで、どのシートの行数を取得するかを定義することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数にシートインデックス (0 起点) を指定することで、どのシートの行数を取得するかを定義することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-selection.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-selection.md index a2238823c235ea..5654c65bce85ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-selection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-selection.md @@ -24,9 +24,9 @@ title: VP Get selection `VP Get selection` コマンドは、現在選択されているセルを参照する新しいレンジオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-sheet-options.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-sheet-options.md index b9a35d3f3daa68..1342dbdc24af1b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-sheet-options.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-sheet-options.md @@ -24,13 +24,13 @@ title: VP Get sheet options `VP Get sheet options` コマンドは、*vpAreaName* で指定したエリア内の、カレントのシートオプションを格納したオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、スプレッドシートを指定することができます。 省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、スプレッドシートを指定することができます。省略された場合、または `vk current sheet` を渡した場合、カレントスプレッドシートが使用されます。 ## 返されるオブジェクト -コマンドは、利用可能なシートオプションのカレント値をすべて格納したオブジェクトを返します。 オプションの値は、ユーザーあるいは [VP SET SHEET OPTIONS](vp-set-sheet-options.md) コマンドによって変更される可能性があります。 +コマンドは、利用可能なシートオプションのカレント値をすべて格納したオブジェクトを返します。オプションの値は、ユーザーあるいは [VP SET SHEET OPTIONS](vp-set-sheet-options.md) コマンドによって変更される可能性があります。 オプション一覧については、[シートオプション](../configuring.md#シートオプション) を参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheet.md index 472e7d9c583fcc..54819564f35d13 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheet.md @@ -25,7 +25,7 @@ title: VP Get stylesheet `VP Get stylesheet` コマンドは、*styleName* で指定した、定義済のプロパティ値を格納したスタイルシートオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 *styleName* には、取得するスタイルシートの名前を渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md index e56a18d46823f0..1ffc5da11b5aee 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-stylesheets.md @@ -24,7 +24,7 @@ title: VP Get stylesheets `VP Get stylesheets` コマンドは、*sheet* で指定されたスコープにおいて定義されているスタイルシートのコレクションを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 任意の *sheet* 引数を使用することで、スタイルシートをどこから取得するかを指定することができます。シートインデックス (0 起点) か、以下の定数のいずれかを渡すことができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-column-attributes.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-column-attributes.md index a7185f9321ce23..87beabe053fbb8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-column-attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-column-attributes.md @@ -42,13 +42,13 @@ title: VP Get column attributes このコマンドは、*column* のカレント属性を格納するオブジェクトを返します: -| プロパティ | 型 | 説明 | -| ------------------- | ------- | -------------------------------------------------- | -| dataField | text | データコンテキストにおける、表の列のプロパティ名。 表組みが自動で表示されている場合は返されません。 | -| name | text | 表の列の名前。 | -| footerText | text | 列のフッター値 | -| footerFormula | text | 列のフッターのフォーミュラ。 | -| filterButtonVisible | boolean | 列のフィルターボタンが表示されている場合には true、そうでない場合は false。 | +| プロパティ | 型 | 説明 | +| ------------------- | ------- | ------------------------------------------------- | +| dataField | text | データコンテキストにおける、表の列のプロパティ名。表組みが自動で表示されている場合は返されません。 | +| name | text | 表の列の名前。 | +| footerText | text | 列のフッター値 | +| footerFormula | text | 列のフッターのフォーミュラ。 | +| filterButtonVisible | boolean | 列のフィルターボタンが表示されている場合には true、そうでない場合は false。 | *tableName* に指定した名称の表組みが見つからない場合、または *column* に指定したインデックスが列数を超える場合には、コマンドは **null** を返します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-dirty-rows.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-dirty-rows.md index ea920c7effde98..9282b825006631 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-dirty-rows.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-dirty-rows.md @@ -36,9 +36,9 @@ title: VP Get table dirty rows *vpAreaName* には、4D View Pro エリアの名前を渡します。 -*tableName* には、変更された行を取得したい表組みの名称を渡します。 なお、[データコンテキスト](vp-set-data-context.md) にバインドされている列の変更のみが考慮されます。 +*tableName* には、変更された行を取得したい表組みの名称を渡します。なお、[データコンテキスト](vp-set-data-context.md) にバインドされている列の変更のみが考慮されます。 -デフォルトでは、このコマンドを呼び出すと、現在のテーブルから *ダーティ* のステータスをクリアします。 この状態をリセットせずに維持するには、*reset* に `false` を渡します。 +デフォルトでは、このコマンドを呼び出すと、現在のテーブルから *ダーティ* のステータスをクリアします。この状態をリセットせずに維持するには、*reset* に `false` を渡します。 *sheet* には、ターゲットシートのインデックスを渡します。 index が省略された場合、または -1 が渡された場合、コマンドはカレントシートに対して適用されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-theme.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-theme.md index e6e0bbac77ab97..17700ca29967ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-theme.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-table-theme.md @@ -31,7 +31,7 @@ title: VP Get table theme ## 説明 -`VP Get table theme` コマンドは、*tableName* で指定した表組みの現在のテーマのプロパティ値を返します。 表組みのテーマは、[`VP CREATE TABLE`](vp-create-table.md) または [`VP SET TABLE THEME`](vp-set-table-theme.md) コマンド、もしくはインターフェースから設定することができます。 +`VP Get table theme` コマンドは、*tableName* で指定した表組みの現在のテーマのプロパティ値を返します。表組みのテーマは、[`VP CREATE TABLE`](vp-create-table.md) または [`VP SET TABLE THEME`](vp-set-table-theme.md) コマンド、もしくはインターフェースから設定することができます。 *vpAreaName* には 4D View Pro エリアの名前を渡します。*tableName* には表組みの名前を渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md index 12fcadbe4d399e..9265a8bf08903c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-value.md @@ -39,7 +39,7 @@ title: VP Get value - 時間値 - 日付部分は DD/MM/YYYY フォーマットの、1899年12月30日 (30/12/1899) として補完されます。 - 日付値 - 時間部分は HH:MM:SS フォーマットの、真夜中 (00:00:00) として補完されます。 -*rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。 セルが空の場合には、コマンドは null オブジェクトを返します。 +*rangeObj* のレンジが複数セルあるいは複数レンジを含んでいる場合、最初のセルの値が返されます。セルが空の場合には、コマンドは null オブジェクトを返します。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-values.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-values.md index 9ec0b43e2e4991..1e43d6182a001c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-values.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-get-values.md @@ -28,7 +28,7 @@ title: VP Get values `VP Get values` によって返されるコレクションは、2次元構造のコレクションです: - 第1レベルのコレクションの各要素は行を表し、値のサブコレクションを格納しています。 -- 各サブコレクションはその行のセル値を格納しています。 値は整数、実数、ブール、テキスト、オブジェクト、Null のいずれかです。 値が日付または時間の場合には、以下のプロパティを持つオブジェクトとして返されます: +- 各サブコレクションはその行のセル値を格納しています。値は整数、実数、ブール、テキスト、オブジェクト、Null のいずれかです。値が日付または時間の場合には、以下のプロパティを持つオブジェクトとして返されます: | プロパティ | 型 | 説明 | | ----- | ---- | ----------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 0408d19139b83e..92c3ba821ed5be 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -31,58 +31,58 @@ title: VP IMPORT DOCUMENT ## 説明 -`VP IMPORT DOCUMENT` コマンドは、*vpAreaName* で指定した 4D View Pro エリアに、*filePath* 引数のドキュメントを読み込んで表示させます。 エリア内に挿入されていたデータがあれば、それらは読み込んだドキュメントによって置換されます。 +`VP IMPORT DOCUMENT` コマンドは、*vpAreaName* で指定した 4D View Pro エリアに、*filePath* 引数のドキュメントを読み込んで表示させます。エリア内に挿入されていたデータがあれば、それらは読み込んだドキュメントによって置換されます。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*filePath* には読み込むドキュメントのパスとファイル名を渡します。 以下のフォーマットがサポートされています : +*filePath* には読み込むドキュメントのパスとファイル名を渡します。以下のフォーマットがサポートされています : - 4D View Pro ドキュメント (拡張子 ".4vp") - Microsoft Excel 形式 (拡張子 ".xlsx") - テキスト形式のドキュメント (拡張子 ".txt", ".csv", ドキュメントは UTF-8 形式である必要あり) - [SpreadJS ドキュメント](https://developer.mescius.com/spreadjs/docs/features/spreadjs-file-format) (拡張子 ".sjs") -ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。 ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 +ドキュメントの拡張子が認識される拡張子 (`.4vp` や `.xlsx` など) ではなかった場合、ドキュメントはテキスト形式であると見なされます。ドキュメントが Project フォルダーと同階層に置かれている場合を除き、フルパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 `filePath` 引数が無効だった場合や、対象ファイルが存在しなかったり、壊れたりしている場合には、エラーが返されます。 任意の *paramObj* 引数を渡すことで、読み込まれるドキュメントのプロパティを定義することができます: -| 引数 | | 型 | 説明 | -| ------------ | ------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | | 4D.Function | 読み込み終了時に実行させるコールバックメソッド。 [`Formula`](../../commands/formula) コマンドの戻り値フォーミュラを使用する必要があります。 [コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | -| password | | text | Microsoft Excel のみ (任意) - MS Excel ドキュメントの保護に使用されているパスワード。 | -| csvOptions | | object | CSV読み込みのオプション | -| | range | object | 書き出されるデータの、最初のセルを格納しているセルレンジ。 指定されたレンジがセルレンジではない場合、レンジの最初のセルが使用されます。 | -| | rowDelimiter | text | 行の区切り文字。 渡されなかった場合、区切り文字は 4D によって自動的に定義されます。 | -| | columnDelimiter | text | カラムの区切り文字。 デフォルト: "," | -| sjsOptions | | object | sjs 読み込みのオプション | -| | calcOnDemand | boolean | 要求されたときにだけフォーミュラを計算するかどうか。デフォルトは false。 | -| | dynamicReferences | boolean | 動的参照を含む関数を計算するかどうか。デフォルトは true。 | -| | fullRecalc | boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | -| | includeFormulas | boolean | 読み込み時にフォーミュラを含めるかどうか。デフォルトは true。 | -| | includeStyles | boolean | 読み込み時にスタイルを含めるかどうか。デフォルトは true。 | -| | includeUnusedStyles | boolean | excel xml を json に変換する際、使用されていないカスタム名を含めるかどうか。デフォルトは true。 | -| | openMode | integer |
  • 0 (normal): 通常のオープンモード、レイジーなし、インクリメンタルなし。 ファイルを開くと、特定の時点で UI と UIイベントが更新され、応答します。
  • 1 (lazy): レイジー (遅延) オープンモード。 ファイルを開くと、アクティブなシートだけが直接読み込まれます。 ファイルを開くと、アクティブなシートだけが直接読み込まれます。 他のシートは使用された場合にのみ読み込まれます。
  • 2 (incremental): インクリメンタル (増分) オープンモード。 ファイルを開くと、データ読み込み中に UI と UIイベントが更新され、即座に応答します。
  • | -| excelOptions | | object | Excel のみ (任意) - Excel 書き出しのオプション | -| | includeStyles | boolean | 読み込み時にスタイルを含めるかどうか。デフォルトは true。 | -| | includeFormulas | boolean | 読み込み時にフォーミュラを含めるかどうか。デフォルトは true。 | -| | frozenColumnsAsRowHeaders | boolean | 読み込み時に固定された列を行ヘッダーとして扱うかどうか。デフォルトはfalse。 | -| | frozenRowsAsColumnHeaders | boolean | 読み込み時に固定された行を列ヘッダーとして扱うかどうか。デフォルトはfalse。 | -| | fullRecalc | boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | -| | dynamicReferences | boolean | 動的参照を含む関数を計算するかどうか。デフォルトは true。 | -| | calcOnDemand | boolean | 要求されたときにだけフォーミュラを計算するかどうか。デフォルトは false。 | -| | includeUnusedStyles | boolean | excel xml を json に変換する際、使用されていないカスタム名を含めるかどうか。デフォルトは true。 | -| | password | text | ワークブックを開くためのパスワード。 | -| | openMode | text | 開くモード(ノーマル、レイジー、インクリメンタル)。 デフォルトはノーマル。 | +| 引数 | | 型 | 説明 | +| ------------ | ------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| formula | | 4D.Function | 読み込み終了時に実行させるコールバックメソッド。 [`Formula`](../../commands/formula) コマンドの戻り値フォーミュラを使用する必要があります。[コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | +| password | | text | Microsoft Excel のみ (任意) - MS Excel ドキュメントの保護に使用されているパスワード。 | +| csvOptions | | object | CSV読み込みのオプション | +| | range | object | 書き出されるデータの、最初のセルを格納しているセルレンジ。指定されたレンジがセルレンジではない場合、レンジの最初のセルが使用されます。 | +| | rowDelimiter | text | 行の区切り文字。渡されなかった場合、区切り文字は 4D によって自動的に定義されます。 | +| | columnDelimiter | text | カラムの区切り文字。デフォルト: "," | +| sjsOptions | | object | sjs 読み込みのオプション | +| | calcOnDemand | boolean | 要求されたときにだけフォーミュラを計算するかどうか。デフォルトは false。 | +| | dynamicReferences | boolean | 動的参照を含む関数を計算するかどうか。デフォルトは true。 | +| | fullRecalc | boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | +| | includeFormulas | boolean | 読み込み時にフォーミュラを含めるかどうか。デフォルトは true。 | +| | includeStyles | boolean | 読み込み時にスタイルを含めるかどうか。デフォルトは true。 | +| | includeUnusedStyles | boolean | excel xml を json に変換する際、使用されていないカスタム名を含めるかどうか。デフォルトは true。 | +| | openMode | integer |
  • 0 (normal): 通常のオープンモード、レイジーなし、インクリメンタルなし。ファイルを開くと、特定の時点で UI と UIイベントが更新され、応答します。
  • 1 (lazy): レイジー (遅延) オープンモード。ファイルを開くと、アクティブなシートだけが直接読み込まれます。ファイルを開くと、アクティブなシートだけが直接読み込まれます。 他のシートは使用された場合にのみ読み込まれます。
  • 2 (incremental): インクリメンタル (増分) オープンモード。ファイルを開くと、データ読み込み中に UI と UIイベントが更新され、即座に応答します。
  • | +| excelOptions | | object | Excel のみ (任意) - Excel 書き出しのオプション | +| | includeStyles | boolean | 読み込み時にスタイルを含めるかどうか。デフォルトは true。 | +| | includeFormulas | boolean | 読み込み時にフォーミュラを含めるかどうか。デフォルトは true。 | +| | frozenColumnsAsRowHeaders | boolean | 読み込み時に固定された列を行ヘッダーとして扱うかどうか。デフォルトはfalse。 | +| | frozenRowsAsColumnHeaders | boolean | 読み込み時に固定された行を列ヘッダーとして扱うかどうか。デフォルトはfalse。 | +| | fullRecalc | boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | +| | dynamicReferences | boolean | 動的参照を含む関数を計算するかどうか。デフォルトは true。 | +| | calcOnDemand | boolean | 要求されたときにだけフォーミュラを計算するかどうか。デフォルトは false。 | +| | includeUnusedStyles | boolean | excel xml を json に変換する際、使用されていないカスタム名を含めるかどうか。デフォルトは true。 | +| | password | text | ワークブックを開くためのパスワード。 | +| | openMode | text | 開くモード(ノーマル、レイジー、インクリメンタル)。デフォルトはノーマル。 | :::note 注記 -- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。 これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 +- .xslx、.csv、.sjs 形式のファイルの読み込みは、**非同期** でおこなわれます。これらの形式で、ドキュメント処理の最後にアクションを実行したい場合には、`formula` プロパティを使用する必要があります。 - Microsoft Excel 形式のファイルを 4D View Pro ドキュメントに読み込む場合、一部の設定が失われる可能性があります。 [SpreadJS にある一覧](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport) にて、設定を確認することができます。 - CSV形式およびユーザー定義区切りの値 (DSV) に関する詳細については、こちらの [Wikipedia の記事](https://en.wikipedia.org/wiki/Delimiter-separated_values) (英文) を参照ください。 -- ".xlsx" フォーマットを読み込む際には*excelOptions* オブジェクトの使用が推奨されています。 潜在的な問題を避けるため、このオブジェクトを旧式の第一レベルプロパティの *password* と混在させないように注意して下さい。 -- 属性で指定されたコールバック関数は、読み込まれたコンテンツ内の全ての[4D カスタムファンクション](../formulas.md#4dファンクション) がその計算を終えた後にトリガーされます。 これにより、ドキュメントの変更や書き出しなどの依存処理は、全てのフォーミュラベースの計算が完全に解決した後に初めて実行されることが保証されます。 +- ".xlsx" フォーマットを読み込む際には*excelOptions* オブジェクトの使用が推奨されています。潜在的な問題を避けるため、このオブジェクトを旧式の第一レベルプロパティの *password* と混在させないように注意して下さい。 +- 属性で指定されたコールバック関数は、読み込まれたコンテンツ内の全ての[4D カスタムファンクション](../formulas.md#4dファンクション) がその計算を終えた後にトリガーされます。これにより、ドキュメントの変更や書き出しなどの依存処理は、全てのフォーミュラベースの計算が完全に解決した後に初めて実行されることが保証されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-from-blob.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-from-blob.md index 4873d0732e8a91..67d8fec838c483 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-from-blob.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-from-blob.md @@ -34,16 +34,16 @@ title: VP IMPORT FROM BLOB *paramObj* には、複数のプロパティを渡せます: -| プロパティ | 型 | 説明 | -| ------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | 4D.Function | 読み込み終了時に実行させるコールバックメソッド。 [コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | -| calcOnDemand | Boolean | 要求されたときにだけフォーミュラを計算するかどうか。デフォルトは false。 | -| dynamicReferences | Boolean | 動的参照を含む関数を計算するかどうか。デフォルトは true。 | -| fullRecalc | Boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | -| includeFormulas | Boolean | フォーミュラを含めるかどうか。デフォルトは true。 | -| includeStyles | Boolean | スタイルを含めるかどうか。デフォルトは true。 | -| includeUnusedStyles | Boolean | excel xml を json に変換する際、使用されていないカスタム名を含めるかどうか。デフォルトは true。 | -| openMode | Integer | 0 (normal): 通常のオープンモード、レイジーなし、インクリメンタルなし。 ドキュメントを開くと、特定の時点で UI と UIイベントが更新され、応答します。
    1 (lazy): レイジー (遅延) オープンモード。 ドキュメントを開くと、アクティブなシートだけが直接読み込まれます。 他のシートは使用された場合にのみ読み込まれます。
    2 (incremental): インクリメンタル (増分) オープンモード。 ドキュメントを開くと、データ読み込み中に UI と UIイベントが更新され、即座に応答します。 | +| プロパティ | 型 | 説明 | +| ------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| formula | 4D.Function | 読み込み終了時に実行させるコールバックメソッド。[コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | +| calcOnDemand | Boolean | 要求されたときにだけフォーミュラを計算するかどうか。デフォルトは false。 | +| dynamicReferences | Boolean | 動的参照を含む関数を計算するかどうか。デフォルトは true。 | +| fullRecalc | Boolean | jsonデータを読み込んだ後に計算するかどうか。デフォルトは false。 | +| includeFormulas | Boolean | フォーミュラを含めるかどうか。デフォルトは true。 | +| includeStyles | Boolean | スタイルを含めるかどうか。デフォルトは true。 | +| includeUnusedStyles | Boolean | excel xml を json に変換する際、使用されていないカスタム名を含めるかどうか。デフォルトは true。 | +| openMode | Integer | 0 (normal): 通常のオープンモード、レイジーなし、インクリメンタルなし。ドキュメントを開くと、特定の時点で UI と UIイベントが更新され、応答します。
    1 (lazy): レイジー (遅延) オープンモード。ドキュメントを開くと、アクティブなシートだけが直接読み込まれます。他のシートは使用された場合にのみ読み込まれます。
    2 (incremental): インクリメンタル (増分) オープンモード。ドキュメントを開くと、データ読み込み中に UI と UIイベントが更新され、即座に応答します。 | コールバックメソッドでは、以下のパラメーターを使用することができます: @@ -59,7 +59,7 @@ title: VP IMPORT FROM BLOB :::note -属性で指定されたコールバック関数は、読み込まれたコンテンツ内の全ての[4D カスタムファンクション](../formulas.md#4dファンクション) がその計算を終えた後にトリガーされます。 これにより、ドキュメントの変更や書き出しなどの依存処理は、全てのフォーミュラベースの計算が完全に解決した後に初めて実行されることが保証されます。 +属性で指定されたコールバック関数は、読み込まれたコンテンツ内の全ての[4D カスタムファンクション](../formulas.md#4dファンクション) がその計算を終えた後にトリガーされます。これにより、ドキュメントの変更や書き出しなどの依存処理は、全てのフォーミュラベースの計算が完全に解決した後に初めて実行されることが保証されます。 :::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-from-object.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-from-object.md index 9d856bbf5cb629..dbbd5ca6346084 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-from-object.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-from-object.md @@ -30,19 +30,19 @@ title: VP IMPORT FROM OBJECT ## 説明 -`VP IMPORT FROM OBJECT` コマンドは、*vpAreaName* で指定した 4D View Pro エリアに *viewPro* の 4D View Pro オブジェクトを読み込んで表示させます。 エリア内に挿入されていたデータがあれば、それらは読み込んだオブジェクトのデータで置換されます。 +`VP IMPORT FROM OBJECT` コマンドは、*vpAreaName* で指定した 4D View Pro エリアに *viewPro* の 4D View Pro オブジェクトを読み込んで表示させます。エリア内に挿入されていたデータがあれば、それらは読み込んだオブジェクトのデータで置換されます。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*viewPro* には有効な 4D View Pro オブジェクトを渡します。 このオブジェクトは手動で作成するほか、[VP Export to object](vp-export-to-object.md) を使って取得することができます。 オブジェクトについての詳細は [4D View Pro オブジェクト](../configuring.md#4d-view-pro-オブジェクト) を参照ください。 +*viewPro* には有効な 4D View Pro オブジェクトを渡します。このオブジェクトは手動で作成するほか、[VP Export to object](vp-export-to-object.md) を使って取得することができます。オブジェクトについての詳細は [4D View Pro オブジェクト](../configuring.md#4d-view-pro-オブジェクト) を参照ください。 *viewPro* オブジェクトが無効な場合には、エラーが返されます。 *paramObj* 引数には、以下のプロパティを渡すことができます: -| プロパティ | 型 | 説明 | -| ------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | 4D.Function | (任意) オブジェクトがロードされ、全ての4Dカスタムファンクションが応答したときに実行されるコールバックファンクション。 [コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | +| プロパティ | 型 | 説明 | +| ------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| formula | 4D.Function | (任意) オブジェクトがロードされ、全ての4Dカスタムファンクションが応答したときに実行されるコールバックファンクション。[コールバックメソッド (フォーミュラ) の渡し方](vp-export-document.md#コールバックメソッド-フォーミュラ-の渡し方) を参照ください。 | コールバックメソッドでは、以下のパラメーターを使用することができます: @@ -58,7 +58,7 @@ title: VP IMPORT FROM OBJECT :::note -属性で指定されたコールバック関数は、読み込まれたコンテンツ内の全ての[4D カスタムファンクション](../formulas.md#4dファンクション) がその計算を終えた後にトリガーされます。 これにより、ドキュメントの変更や書き出しなどの依存処理は、全てのフォーミュラベースの計算が完全に解決した後に初めて実行されることが保証されます。 +属性で指定されたコールバック関数は、読み込まれたコンテンツ内の全ての[4D カスタムファンクション](../formulas.md#4dファンクション) がその計算を終えた後にトリガーされます。これにより、ドキュメントの変更や書き出しなどの依存処理は、全てのフォーミュラベースの計算が完全に解決した後に初めて実行されることが保証されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-columns.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-columns.md index 9993b269c37778..f15ebdcfc18d55 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-columns.md @@ -22,7 +22,7 @@ title: VP INSERT COLUMNS `VP INSERT COLUMNS` コマンドは、*rangeObj* 引数で指定したレンジにカラムを挿入します。 -*rangeObj* には、開始カラム (新しいカラムが挿入される場所を指定するカラム) と挿入するカラムの数を格納したオブジェクトを渡します。 挿入するカラムの数が省略された場合 (定義されていない場合)、カラムは 1列だけ挿入されます。 +*rangeObj* には、開始カラム (新しいカラムが挿入される場所を指定するカラム) と挿入するカラムの数を格納したオブジェクトを渡します。挿入するカラムの数が省略された場合 (定義されていない場合)、カラムは 1列だけ挿入されます。 新しいカラムは、*rangeObj* 引数で指定した開始カラムの直前 (すぐ左側) に挿入されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-rows.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-rows.md index 87840da018453a..91fd705aaf96f6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-rows.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-rows.md @@ -22,7 +22,7 @@ title: VP INSERT ROWS `VP INSERT ROWS` コマンドは、*rangeObj* 引数で指定したレンジに行を挿入します。 -*rangeObj* には、開始行 (新しい行が挿入される場所を指定する行) と挿入する行数を格納したオブジェクトを渡します。 挿入する行数が省略された場合 (定義されていない場合) には、1行だけ挿入されます。 +*rangeObj* には、開始行 (新しい行が挿入される場所を指定する行) と挿入する行数を格納したオブジェクトを渡します。挿入する行数が省略された場合 (定義されていない場合) には、1行だけ挿入されます。 新しい行は、*rangeObj* 引数で指定した開始行の直前 (すぐ上) に挿入されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-table-columns.md index 5c2ced56bfbf62..66e80cf46e65c5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-table-columns.md @@ -44,7 +44,7 @@ title: VP INSERT TABLE COLUMNS | `vk table insert before` | 0 | *column* の前に列を挿入します (省略時のデフォルト) | | `vk table insert after` | 1 | *column* の後に列を挿入します | -このコマンドは、シート内ではなく、*tableName* の表組みに列を挿入します。 したがって、シートの総列数は、このコマンドの影響を受けません。 表組みより右側にデータがある場合は、挿入された列の数に応じて自動的に右に移動します。 +このコマンドは、シート内ではなく、*tableName* の表組みに列を挿入します。したがって、シートの総列数は、このコマンドの影響を受けません。表組みより右側にデータがある場合は、挿入された列の数に応じて自動的に右に移動します。 *tableName* の表組みが存在しない場合、あるいはシートに十分なスペースがない場合は、何も起こりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-table-rows.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-table-rows.md index 25ad4b9fd044c9..0fe9de2ca263ee 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-table-rows.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-insert-table-rows.md @@ -42,7 +42,7 @@ title: VP INSERT TABLE ROWS | `vk table insert before` | 0 | *row* の前に行を挿入します (省略時のデフォルト) | | `vk table insert after` | 1 | *row* の後に行を挿入します | -このコマンドは、シート内ではなく、*tableName* の表組みに行を挿入します。 したがって、シートの総行数は、このコマンドの影響を受けません。 表組みより下側にデータがある場合は、挿入された行の数に応じて自動的に下に移動します。 +このコマンドは、シート内ではなく、*tableName* の表組みに行を挿入します。したがって、シートの総行数は、このコマンドの影響を受けません。表組みより下側にデータがある場合は、挿入された行の数に応じて自動的に下に移動します。 *tableName* の表組みが [データコンテキスト](vp-set-data-context.md) にバインドされている場合、このコマンドはコレクションに新しい空の要素を挿入します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-move-cells.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-move-cells.md index ded499a5aa3ea1..277908b75b1e2d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-move-cells.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-move-cells.md @@ -40,10 +40,10 @@ title: VP MOVE CELLS *options* は、複数のプロパティを持ちます: -| プロパティ | 型 | 説明 | -| ------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | *originRange* のセルの値・書式・フォーミュラをコマンド実行後に削除するかどうかを指定します:
    • 削除するには *false* (デフォルト)。
    • 保持するには *true*。
    | -| pasteOptions | Integer | ペーストする内容を指定します。 とりうる値:

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

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

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

    | [ワークブックオプション](vp-set-workbook-options.md) で定義されている貼り付けオプションが考慮されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-name.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-name.md index 0746f520eb924a..6521e21cacc5ea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-name.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-name.md @@ -25,11 +25,11 @@ title: VP Name `VP Name` コマンドは、命名レンジを参照する新しいレンジオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 *rangeName* には、既存のセルレンジ名を渡します。 -任意の *sheet* 引数として、*rangeName* のレンジが属するスプレッドシートを指定することができます。 省略された場合はデフォルトでカレントスプレッドシートが使用されます。 以下の定数を使用することでカレントのスプレッドシートあるいはワークブック全体を明示的に選択することができます: +任意の *sheet* 引数として、*rangeName* のレンジが属するスプレッドシートを指定することができます。省略された場合はデフォルトでカレントスプレッドシートが使用されます。以下の定数を使用することでカレントのスプレッドシートあるいはワークブック全体を明示的に選択することができます: - `vk current sheet` - `vk workbook` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-new-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-new-document.md index 1eeeef83ef04b6..9c4f92dd783497 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-new-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-new-document.md @@ -20,9 +20,9 @@ title: VP NEW DOCUMENT ## 説明 -`VP NEW DOCUMENT` コマンドは、*vpAreaName* で指定した 4D View Pro エリアに、新規のデフォルトドキュメントを読み込んで表示させます。 エリア内に挿入されていたデータがあれば、それらは新規の空ドキュメントによって置換されます。 +`VP NEW DOCUMENT` コマンドは、*vpAreaName* で指定した 4D View Pro エリアに、新規のデフォルトドキュメントを読み込んで表示させます。エリア内に挿入されていたデータがあれば、それらは新規の空ドキュメントによって置換されます。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-object-to-font.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-object-to-font.md index c800884b40bae2..fd32cc0e5b704b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-object-to-font.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-object-to-font.md @@ -27,7 +27,7 @@ title: VP Object to font | プロパティ | 型 | 説明 | とりうる値 | 必須 | | ------- | ---- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -- | -| family | text | フォントを指定します。 | 標準の、あるいは一般的なフォントファミリー。 例: "Arial", "Helvetica", "serif", "arial,sans-serif" | ◯ | +| family | text | フォントを指定します。 | 標準の、あるいは一般的なフォントファミリー。例: "Arial", "Helvetica", "serif", "arial,sans-serif" | ◯ | | size | text | フォントのサイズを定義します。 "font-size/line-height" の形で line-height をfont-size に追加することもできます: 例: "15pt/20pt" | 以下のいずれかの単位を伴う数値:
  • "em", "ex", "%", "px", "cm", "mm", "in", "pt", "pc", "ch", "rem", "vh", "vw", "vmin", "vmax"
  • あるいは、以下の定数のいずれか 1つ:
  • `vk font size large`
  • `vk font size larger`
  • `vk font size x large`
  • `vk font size xx large`
  • `vk font size small`
  • `vk font size smaller`
  • `vk font size x small`
  • `vk font size xx small`
  • | ◯ | | style | text | フォントのスタイル。 |
  • `vk font style italic`
  • `vk font style oblique`
  • | × | | variant | text | スモールキャピタルのフォントを定義します。 |
  • `vk font variant small caps`
  • | × | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-paste-from-object.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-paste-from-object.md index f949c24ac706d3..54009fe40162ef 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-paste-from-object.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-paste-from-object.md @@ -36,7 +36,7 @@ title: VP PASTE FROM OBJECT *dataObject* には、ペーストしたい値・フォーマット・フォーミュラを格納しているオブジェクトを渡します。 -任意の *options* 引数を渡して、セルレンジにペーストする内容を指定することができます。 とりうる値: +任意の *options* 引数を渡して、セルレンジにペーストする内容を指定することができます。とりうる値: | 定数 | 説明 | | ---------------------------------------------- | ---------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-print.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-print.md index f1e188eeac3ad4..b6b308334bf7ac 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-print.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-print.md @@ -23,18 +23,18 @@ title: VP PRINT `VP PRINT` コマンドは、*vpAreaName* 引数で指定したエリアを印刷する印刷ダイアログウィンドウを開きます。 -*vpAreaName* には、印刷する 4D View Pro エリアの名前を渡します。 コマンドによって、システムの印刷ダイアログウィンドウが開かれ、プリンターを指定したりページプロパティを定義したりすることができます。 +*vpAreaName* には、印刷する 4D View Pro エリアの名前を渡します。コマンドによって、システムの印刷ダイアログウィンドウが開かれ、プリンターを指定したりページプロパティを定義したりすることができます。 -> 印刷ダイアログウィンドウで定義されるプロパティはプリンター用紙のためのもので、4D View Pro エリアの印刷プロパティではありません。 4D View Pro エリアの印刷プロパティは [VP SET PRINT INFO](vp-set-print-info.md) コマンドで定義されます。 プリンターと 4D View Pro エリアの両プロパティが合致することが強く推奨されます。 そうでない場合、ドキュメントが期待通りに印刷されない可能性があります。 +> 印刷ダイアログウィンドウで定義されるプロパティはプリンター用紙のためのもので、4D View Pro エリアの印刷プロパティではありません。 4D View Pro エリアの印刷プロパティは [VP SET PRINT INFO](vp-set-print-info.md) コマンドで定義されます。プリンターと 4D View Pro エリアの両プロパティが合致することが強く推奨されます。 そうでない場合、ドキュメントが期待通りに印刷されない可能性があります。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、印刷するスプレッドシートを指定することができます。 省略された場合はデフォルトでカレントシートが使用されます。 以下の定数を使用することでカレントのスプレッドシートあるいはワークブック全体を明示的に選択することができます: +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、印刷するスプレッドシートを指定することができます。省略された場合はデフォルトでカレントシートが使用されます。以下の定数を使用することでカレントのスプレッドシートあるいはワークブック全体を明示的に選択することができます: - `vk current sheet` - `vk workbook` > * 4D View Pro エリアは、`VP PRINT` コマンドによってのみ印刷可能です。 > * 4Dコマンドの **印刷** テーマのコマンドは、`VP PRINT` ではサポートされません。 -> * このコマンドは、最終的なエンドユーザーが個別に印刷を実行することを想定しています。 自動化印刷ジョブについては、[VP EXPORT DOCUMENT](vp-export-document.md) コマンドで 4D View Pro エリアを PDF に書き出すことが推奨されます。 +> * このコマンドは、最終的なエンドユーザーが個別に印刷を実行することを想定しています。自動化印刷ジョブについては、[VP EXPORT DOCUMENT](vp-export-document.md) コマンドで 4D View Pro エリアを PDF に書き出すことが推奨されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-recompute-formulas.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-recompute-formulas.md index c0b922365393ce..79927a46983f2d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-recompute-formulas.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-recompute-formulas.md @@ -20,9 +20,9 @@ title: VP RECOMPUTE FORMULAS ## 説明 -`VP RECOMPUTE FORMULAS` コマンドは、*vpAreaName* 引数で指定したエリアの全フォーミュラを即座に評価します。 デフォルトでは、4D はフォーミュラを挿入時、読み込み時、そして書き出し時のタイミングで自動計算します。 `VP RECOMPUTE FORMULAS` コマンドを使用すると、任意のタイミングで強制的に計算を実行することができます(例: フォーミュラに変更が加えられた場合、またはフォーミュラがデータベースへの呼び出しを格納している場合など)。 コマンドは [VP FLUSH COMMANDS](vp-flush-commands.md) コマンドを実行することで、実行保留されていたコマンドをすべて実行し、コマンドバッファをクリアします。 +`VP RECOMPUTE FORMULAS` コマンドは、*vpAreaName* 引数で指定したエリアの全フォーミュラを即座に評価します。デフォルトでは、4D はフォーミュラを挿入時、読み込み時、そして書き出し時のタイミングで自動計算します。 `VP RECOMPUTE FORMULAS` コマンドを使用すると、任意のタイミングで強制的に計算を実行することができます(例: フォーミュラに変更が加えられた場合、またはフォーミュラがデータベースへの呼び出しを格納している場合など)。コマンドは [VP FLUSH COMMANDS](vp-flush-commands.md) コマンドを実行することで、実行保留されていたコマンドをすべて実行し、コマンドバッファをクリアします。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 > `VP RECOMPUTE FORMULAS` コマンドを使用する前に [VP SUSPEND COMPUTING](vp-suspend-computing.md)コマンドが実行されていないようにしてください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-name.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-name.md index 0b00dd5c0bb667..f5632931a0aa82 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-name.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-name.md @@ -24,7 +24,7 @@ title: VP REMOVE NAME `VP REMOVE NAME` コマンドは、*name* の命名レンジまたは命名フォーミュラを、定義された *scope* のスコープから削除します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 *name* には、削除したい命名レンジあるいは命名フォーミュラの名前を渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-span.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-span.md index 1ad5351014b219..252158df680c68 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-span.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-span.md @@ -22,7 +22,7 @@ title: VP REMOVE SPAN `VP REMOVE SPAN` コマンドは、*rangeObj* で指定したレンジ内のセル結合を解除します。 -*rangeObj* には、セル結合しているレンジのオブジェクトを渡します。 レンジ内の結合セルは個別セルに分割されます。 +*rangeObj* には、セル結合しているレンジのオブジェクトを渡します。レンジ内の結合セルは個別セルに分割されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-stylesheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-stylesheet.md index 816d1b19e6f480..63cfc0338efce7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-stylesheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-stylesheet.md @@ -24,7 +24,7 @@ title: VP REMOVE STYLESHEET `VP REMOVE STYLESHEET` コマンドは、*vpAreaName* 引数で指定したエリアから、*styleName* で指定したスタイルシートを削除します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 *styleName* 引数には、削除するスタイルシートの名前を渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md index c61965299d28b1..cfc66dc070b533 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-columns.md @@ -32,9 +32,9 @@ title: VP REMOVE TABLE COLUMNS ## 説明 -`VP REMOVE TABLE COLUMNS` コマンドは、*tableName* で指定した表組みの *column* で指定した列インデックスから、1つまたは *count* で指定した数の列を削除します。 このコマンドは、値とスタイルを削除します。 +`VP REMOVE TABLE COLUMNS` コマンドは、*tableName* で指定した表組みの *column* で指定した列インデックスから、1つまたは *count* で指定した数の列を削除します。このコマンドは、値とスタイルを削除します。 -このコマンドは、シートではなく、*tableName* の表組みから列を削除します。 したがって、シートの総列数は、このコマンドの影響を受けません。 表組みより右側にデータがある場合は、削除された列の数に応じて自動的に左に移動します。 +このコマンドは、シートではなく、*tableName* の表組みから列を削除します。したがって、シートの総列数は、このコマンドの影響を受けません。表組みより右側にデータがある場合は、削除された列の数に応じて自動的に左に移動します。 *tableName* の表組みが存在しない場合には、何も起こりません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-rows.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-rows.md index 9c0580b496bc83..2f340bc22ee7ea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-rows.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table-rows.md @@ -32,9 +32,9 @@ title: VP REMOVE TABLE ROWS ## 説明 -`VP REMOVE TABLE ROWS` コマンドは、*tableName* で指定した表組みの *row* で指定した行インデックスから、1つまたは *count* で指定した数の行を削除します。 このコマンドは、値とスタイルを削除します。 +`VP REMOVE TABLE ROWS` コマンドは、*tableName* で指定した表組みの *row* で指定した行インデックスから、1つまたは *count* で指定した数の行を削除します。このコマンドは、値とスタイルを削除します。 -このコマンドは、シートではなく、*tableName* の表組みから行を削除します。 したがって、シートの総行数は、このコマンドの影響を受けません。 したがって、シートの総行数は、このコマンドの影響を受けません。 +このコマンドは、シートではなく、*tableName* の表組みから行を削除します。したがって、シートの総行数は、このコマンドの影響を受けません。表組みより下側にデータがある場合は、削除された行の数に応じて自動的に上に移動します。 *tableName* の表組みが [データコンテキスト](vp-set-data-context.md) にバインドされている場合、このコマンドはコレクションから要素を削除します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table.md index aac8ab45ff2ac9..065880b16b85aa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-remove-table.md @@ -45,7 +45,7 @@ title: VP REMOVE TABLE | vk table remove style | 1 | スタイルを削除し、データは保持 | | vk table remove data | 2 | データを削除し、スタイルは維持 | -表組み名はシートのレベルで定義されます。 任意の *sheet* 引数にシートインデックス (0 起点) を指定することで、表が置かれているシートを指定できます。 +表組み名はシートのレベルで定義されます。任意の *sheet* 引数にシートインデックス (0 起点) を指定することで、表が置かれているシートを指定できます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-reset-selection.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-reset-selection.md index 62714b831b7089..bf0a0b7e2b4232 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-reset-selection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-reset-selection.md @@ -25,9 +25,9 @@ title: VP RESET SELECTION > 4D View Pro コマンドに対して定義されているデフォルトのアクティブセル (A1 セル) は残ります。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。 省略された場合はデフォルトでカレントスプレッドシートが使用されます。 以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。省略された場合はデフォルトでカレントスプレッドシートが使用されます。以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: - `vk current sheet` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resize-table.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resize-table.md index 2a35da324aaaea..3293679b269dcd 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resize-table.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resize-table.md @@ -61,7 +61,7 @@ VP CREATE TABLE(VP Cells("ViewProArea"; 1; 1; 3; 3); "PeopleTable"; "col") ![](../../assets/en/ViewPro/table-base.png) -表組みの前後に 1列ずつと、空行を 2行を追加します。 以下のように書くことができます: +表組みの前後に 1列ずつと、空行を 2行を追加します。以下のように書くことができます: ```4d VP RESIZE TABLE(VP Cells("ViewProArea"; 0; 1; 4; 6); "PeopleTable") diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resume-computing.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resume-computing.md index b892b3785bc8f1..9926ee873e6d0c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resume-computing.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-resume-computing.md @@ -22,11 +22,11 @@ title: VP RESUME COMPUTING `VP RESUME COMPUTING` コマンドは、 *vpAreaName* 引数で指定したエリア内の計算を再開します。 -このコマンドは 4D View Pro 内の計算機能を再開します。 計算停止中におこなった編集に影響されたフォーミュラは更新され、`VP RESUME COMPUTING` 実行後に追加されるフォーミュラは計算されます。 +このコマンドは 4D View Pro 内の計算機能を再開します。計算停止中におこなった編集に影響されたフォーミュラは更新され、`VP RESUME COMPUTING` 実行後に追加されるフォーミュラは計算されます。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -> 4D View Pro 計算機能は停止/再開アクションを内部的にカウントしています。 そのため、`VP RESUME COMPUTING` コマンドの実行数は、[VP SUSPEND COMPUTING](vp-suspend-computing.md) コマンドの実行数と釣り合っていなければなりません。 +> 4D View Pro 計算機能は停止/再開アクションを内部的にカウントしています。そのため、`VP RESUME COMPUTING` コマンドの実行数は、[VP SUSPEND COMPUTING](vp-suspend-computing.md) コマンドの実行数と釣り合っていなければなりません。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-row.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-row.md index ced6caa19b3f59..70eff1d2ac233d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-row.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-row.md @@ -26,13 +26,13 @@ title: VP Row `VP Row` コマンドは、特定の行、あるいは複数の行を参照する新しいレンジオブジェクトを返します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*row* 引数で、セルレンジの先頭行を指定します。 この引数として行のインデックス (0 起点) を渡します。 レンジが複数行にわたる場合には、任意の *rowCount* 引数も併せて使用します。 +*row* 引数で、セルレンジの先頭行を指定します。この引数として行のインデックス (0 起点) を渡します。レンジが複数行にわたる場合には、任意の *rowCount* 引数も併せて使用します。 -任意の *rowCount* には、レンジに含まれる行数を指定することができます。 *rowCount* 引数は 0 より大きい値でなくてはなりません。 省略時、デフォルトで値は 1 に設定されます。 +任意の *rowCount* には、レンジに含まれる行数を指定することができます。 *rowCount* 引数は 0 より大きい値でなくてはなりません。省略時、デフォルトで値は 1 に設定されます。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。 省略された場合はデフォルトでカレントスプレッドシートが使用されます。 以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。省略された場合はデフォルトでカレントスプレッドシートが使用されます。以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: - `vk current sheet` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-run-offscreen-area.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-run-offscreen-area.md index a02f1cde1f2153..2c126c171aec8f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-run-offscreen-area.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-run-offscreen-area.md @@ -23,16 +23,16 @@ title: VP Run offscreen area `VP Run offscreen area` コマンドは、メモリ内にオフスクリーンエリアを作成し、これを利用して 4D View Pro エリアのコマンドやファンクションを処理することができます。 -*parameters* オブジェクトには、以下の任意のプロパティのいずれかを渡します。 これらのプロパティは `onEvent` コールバックメソッド内において `This` コマンドを介して利用可能であり、そのインスタンスを参照することができます: +*parameters* オブジェクトには、以下の任意のプロパティのいずれかを渡します。これらのプロパティは `onEvent` コールバックメソッド内において `This` コマンドを介して利用可能であり、そのインスタンスを参照することができます: -| プロパティ | 型 | 説明 | -| ------------------ | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| area | text | オフスクリーンエリアの名前。 省略時あるいは null の場合、一般的な名前 (例: "OffscreenArea1") が割り当てられます。 | -| onEvent | object (フォーミュラ) | オフスクリーンエリアの準備ができたときに実行されるコールバックメソッド。 以下のいずれかを渡すことができます:
  • クラスの `onEvent` 関数
  • `Formula` オブジェクト
  • デフォルトでは、コールバックメソッドは、[`On VP Ready`](../../Events/onVpReady.md), [`On Load`](../../Events/onLoad.md), [`On Unload`](../../Events/onUnload.md), [`On End URL Loading`](../../Events/onEndUrlLoading.md), [`On URL Loading Error`](../../Events/onUrlLoadingError.md), [`On VP Range Changed`](../../Events/onVpRangeChanged.md), または [`On Timer`](../../Events/onTimer.md) イベントで呼び出されます。 コールバックメソッドを使用して [4D View Pro フォームオブジェクト変数](../configuring.md#4d-view-pro-フォームオブジェクト変数) にアクセスすることができます。 | -| autoQuit | boolean | True (デフォルト値) の場合、[`On End URL Loading`](../../Events/onEndUrlLoading.md) または [`On URL Loading Error`](../../Events/onUrlLoadingError.md) イベントが起きた際にはコマンドがフォーミュラの実行を中止します。 False の場合、*onEvent* コールバックメソッド内で `CANCEL` あるいは `ACCEPT` コマンドを使用する必要があります。 | -| timeout | number | イベントが何も生成されない場合にエリアが自動的に閉まるまでの最大時間 (秒単位)。 0 に設定した場合、エリアは自動的には閉まりません。 デフォルト値: 60 | -| 戻り値 | mixed | 処理の結果 (あれば) | -| `` | mixed | *onEvent* コールバックメソッドで利用可能なカスタムの属性。 | +| プロパティ | 型 | 説明 | +| ------------------ | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| area | text | オフスクリーンエリアの名前。省略時あるいは null の場合、一般的な名前 (例: "OffscreenArea1") が割り当てられます。 | +| onEvent | object (フォーミュラ) | オフスクリーンエリアの準備ができたときに実行されるコールバックメソッド。以下のいずれかを渡すことができます:
  • クラスの `onEvent` 関数
  • `Formula` オブジェクト
  • デフォルトでは、コールバックメソッドは、[`On VP Ready`](../../Events/onVpReady.md), [`On Load`](../../Events/onLoad.md), [`On Unload`](../../Events/onUnload.md), [`On End URL Loading`](../../Events/onEndUrlLoading.md), [`On URL Loading Error`](../../Events/onUrlLoadingError.md), [`On VP Range Changed`](../../Events/onVpRangeChanged.md), または [`On Timer`](../../Events/onTimer.md) イベントで呼び出されます。コールバックメソッドを使用して [4D View Pro フォームオブジェクト変数](../configuring.md#4d-view-pro-フォームオブジェクト変数) にアクセスすることができます。 | +| autoQuit | boolean | True (デフォルト値) の場合、[`On End URL Loading`](../../Events/onEndUrlLoading.md) または [`On URL Loading Error`](../../Events/onUrlLoadingError.md) イベントが起きた際にはコマンドがフォーミュラの実行を中止します。 False の場合、*onEvent* コールバックメソッド内で `CANCEL` あるいは `ACCEPT` コマンドを使用する必要があります。 | +| timeout | number | イベントが何も生成されない場合にエリアが自動的に閉まるまでの最大時間 (秒単位)。 0 に設定した場合、エリアは自動的には閉まりません。デフォルト値: 60 | +| 戻り値 | mixed | 処理の結果 (あれば) | +| `` | mixed | *onEvent* コールバックメソッドで利用可能なカスタムの属性。 | 以下のプロパティは、必要に応じてコマンドによって自動的に追加されます: @@ -40,7 +40,7 @@ title: VP Run offscreen area | -------------- | ------- | ---------------------------- | | timeoutReached | boolean | タイムアウトを超えた場合に true の値で追加されます | -> オフスクリーンエリアは、`VP Run offscreen area` コマンドの実行中にしか利用できません。 実行が終わるとエリアは自動的に消去されます。 +> オフスクリーンエリアは、`VP Run offscreen area` コマンドの実行中にしか利用できません。実行が終わるとエリアは自動的に消去されます。 コールバックメソッドでは、以下のコマンドを使用することができます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-allowed-methods.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-allowed-methods.md index f8879ab388a867..b3f7839d769622 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-allowed-methods.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-allowed-methods.md @@ -24,22 +24,22 @@ title: VP SET ALLOWED METHODS ## 説明 -`VP SET ALLOWED METHODS` コマンドは、4D View Pro フォーミュラから呼び出し可能なプロジェクトメソッドを指定します。 このコマンドは、呼び出し後のセッション中に初期化される 4D View Pro エリアすべてに対して適用されます。 同じセッション中において異なる設定で初期化をするために、複数回呼び出すこともできます。 +`VP SET ALLOWED METHODS` コマンドは、4D View Pro フォーミュラから呼び出し可能なプロジェクトメソッドを指定します。このコマンドは、呼び出し後のセッション中に初期化される 4D View Pro エリアすべてに対して適用されます。同じセッション中において異なる設定で初期化をするために、複数回呼び出すこともできます。 -セキュリティ上の理由により、 `VP SET ALLOWED METHODS` コマンドを実行していない場合のデフォルトでは、4D View Pro エリアにおいてはメソッドの呼び出しは許可されません (ただし、4D の汎用的な `SET ALLOWED METHODS` コマンドが呼び出されていた場合を除きます (前述の互換性に関する注記参照)。 許可されていないのメソッドをフォーミュラ内で使用した場合には、4D View Pro エリアに #NAME? エラーが表示されます。 +セキュリティ上の理由により、 `VP SET ALLOWED METHODS` コマンドを実行していない場合のデフォルトでは、4D View Pro エリアにおいてはメソッドの呼び出しは許可されません (ただし、4D の汎用的な `SET ALLOWED METHODS` コマンドが呼び出されていた場合を除きます (前述の互換性に関する注記参照)。許可されていないのメソッドをフォーミュラ内で使用した場合には、4D View Pro エリアに #NAME? エラーが表示されます。 *methodObj* には、4D View Pro エリア内で定義したいファンクションの名前をプロパティとして格納しているオブジェクトを渡します: -| プロパティ | | | 型 | 説明 | -| ---------------- | ---------- | ------------------------------------------------------------------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `` | | | Object | カスタムファンクションの名前。 `` プロパティ名は、4D View Pro フォーミュラで表示するカスタムファンクションの名前を定義します (スペースは使用できません) | -| | method | | Text | (必須) 許可する既存の 4D プロジェクトメソッドの名前 | -| | parameters | | Object の Collection | 引数のコレクション (メソッド内で定義されている順) 詳細については [引数](../formulas.md#引数) の章を参照ください。 | -| | | \[ ].name | Text | `` 用に表示する引数の名前。**注**: 引数の名前にスペースを含めることはできません。 | -| | | \[ ].type | Number | 引数の型。 サポートされている型:
  • `Is Boolean`
  • `Is collection`
  • `Is date`
  • `Is Integer`
  • `Is object`
  • `Is real`
  • `Is text`
  • `Is time`
  • *type* は省略することができます (ただし、コレクション型の引数が 1つでも存在する場合は、引数の型宣言は必須です)。
    *type* を省略した場合、値は型と一緒に渡されますが、日付と時間の値に関してはオブジェクトとして送られます。 *type* が `Is object` の場合、オブジェクト引数は `.value` プロパティに格納されて渡されます。 [引数](../formulas.md#引数) の章を参照ください。 | -| | summary | | Text | 4D View Pro に表示するファンクションの説明 | -| | minParams | | Number | 引数の最小の数 | -| | maxParams | | Number | 引数の最大の数。 ここに parameters の length より大きな値を渡すことによって、デフォルトの型を持つ "任意の" 引数を宣言することができるようになります。 | +| プロパティ | | | 型 | 説明 | +| ---------------- | ---------- | ------------------------------------------------------------------------------ | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `` | | | Object | カスタムファンクションの名前。 `` プロパティ名は、4D View Pro フォーミュラで表示するカスタムファンクションの名前を定義します (スペースは使用できません) | +| | method | | Text | (必須) 許可する既存の 4D プロジェクトメソッドの名前 | +| | parameters | | Object の Collection | 引数のコレクション (メソッド内で定義されている順)詳細については [引数](../formulas.md#引数) の章を参照ください。 | +| | | \[ ].name | Text | `` 用に表示する引数の名前。**注**: 引数の名前にスペースを含めることはできません。 | +| | | \[ ].type | Number | 引数の型。サポートされている型:
  • `Is Boolean`
  • `Is collection`
  • `Is date`
  • `Is Integer`
  • `Is object`
  • `Is real`
  • `Is text`
  • `Is time`
  • *type* は省略することができます (ただし、コレクション型の引数が 1つでも存在する場合は、引数の型宣言は必須です)。
    *type* を省略した場合、値は型と一緒に渡されますが、日付と時間の値に関してはオブジェクトとして送られます。 *type* が `Is object` の場合、オブジェクト引数は `.value` プロパティに格納されて渡されます。[引数](../formulas.md#引数) の章を参照ください。 | +| | summary | | Text | 4D View Pro に表示するファンクションの説明 | +| | minParams | | Number | 引数の最小の数 | +| | maxParams | | Number | 引数の最大の数。ここに parameters の length より大きな値を渡すことによって、デフォルトの型を持つ "任意の" 引数を宣言することができるようになります。 | ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-binding-path.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-binding-path.md index 7e8114d1f3da63..7b5fe1448aef2b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-binding-path.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-binding-path.md @@ -29,7 +29,7 @@ title: VP SET BINDING PATH ## 説明 -`VP SET BINDING PATH` コマンドは、*rangeObj* で指定したレンジに、シートのデータコンテキストの属性をバインドします。 機能するには、[SET DATA CONTEXT](vp-set-data-context.md) を使ってデータコンテキストを設定する必要があります。 読み込まれたデータコンテキストが属性を含む場合、*dataContextAttribute* の値が *rangeObj* のセルに自動的に表示されます。 +`VP SET BINDING PATH` コマンドは、*rangeObj* で指定したレンジに、シートのデータコンテキストの属性をバインドします。機能するには、[SET DATA CONTEXT](vp-set-data-context.md) を使ってデータコンテキストを設定する必要があります。読み込まれたデータコンテキストが属性を含む場合、*dataContextAttribute* の値が *rangeObj* のセルに自動的に表示されます。 *rangeObj* 引数には、セルレンジまたは複合セルレンジのオブジェクトを渡します。 @@ -38,7 +38,7 @@ title: VP SET BINDING PATH *dataContextAttribute* には、*rangeObj* にバインドする属性の名称を渡します。 *dataContextAttribute* が空の文字列だった場合、関数は属性のバインドを解除します。 -> コレクション型の属性はサポートされていません。 コレクション属性の名前を渡した場合、コマンドは何もしません。 +> コレクション型の属性はサポートされていません。コレクション属性の名前を渡した場合、コマンドは何もしません。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-border.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-border.md index d245de7eb82c37..ae86eff2fe48e6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-border.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-border.md @@ -24,14 +24,14 @@ title: VP SET BORDER `VP SET BORDER` コマンドは、*rangeObj* のレンジに *borderStyleObj* および *borderPosObj* で定義される境界線スタイルを適用します。 -*rangeObj* 引数には、境界線スタイルを適用したいセルのレンジを渡します。 *rangeObj* 引数に複数のセルが含まれる場合、`VP SET BORDER` で適用される境界線は、*rangeObj* のレンジ全体を一つのセルとして適用されます (これに対し、[`VP SET CELL STYLE`](vp-set-cell-style.md) コマンドでは*rangeObj* 引数のレンジに含まれる個々のセルに対し境界線が適用されます)。 スタイルシートがすでに適用されている場合、`VP SET BORDER` コマンドは *rangeObj* のレンジに対してすでに適用されていた境界線設定を上書きします。 +*rangeObj* 引数には、境界線スタイルを適用したいセルのレンジを渡します。 *rangeObj* 引数に複数のセルが含まれる場合、`VP SET BORDER` で適用される境界線は、*rangeObj* のレンジ全体を一つのセルとして適用されます (これに対し、[`VP SET CELL STYLE`](vp-set-cell-style.md) コマンドでは*rangeObj* 引数のレンジに含まれる個々のセルに対し境界線が適用されます)。スタイルシートがすでに適用されている場合、`VP SET BORDER` コマンドは *rangeObj* のレンジに対してすでに適用されていた境界線設定を上書きします。 *borderStyleObj* 引数を使用すると、境界線のスタイルを定義することができます。 *borderStyleObj* 引数は、以下のプロパティをサポートしています: -| プロパティ | 型 | 説明 | とりうる値 | -| ----- | ------- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| color | text | 境界線のカラーを定義します。 デフォルト = black | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | -| style | Integer | 境界線のスタイルを定義します。 デフォルト = empty。 |
  • `vk line style dash dot`
  • `vk line style dash dot dot`
  • `vk line style dashed`
  • `vk line style dotted`
  • `vk line style double`
  • `vk line style empty`
  • `vk line style hair`
  • `vk line style medium`
  • `vk line style medium dash dot`
  • `vk line style medium dash dot dot`
  • `vk line style medium dashed`
  • `vk line style slanted dash dot`
  • `vk line style thick`
  • `vk line style thin`
  • | +| プロパティ | 型 | 説明 | とりうる値 | +| ----- | ------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| color | text | 境界線のカラーを定義します。デフォルト = black | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | +| style | Integer | 境界線のスタイルを定義します。デフォルト = empty。 |
  • `vk line style dash dot`
  • `vk line style dash dot dot`
  • `vk line style dashed`
  • `vk line style dotted`
  • `vk line style double`
  • `vk line style empty`
  • `vk line style hair`
  • `vk line style medium`
  • `vk line style medium dash dot`
  • `vk line style medium dash dot dot`
  • `vk line style medium dashed`
  • `vk line style slanted dash dot`
  • `vk line style thick`
  • `vk line style thin`
  • | *borderStyleObj* の境界線スタイルの位置 (どこに境界線を引くか) は *borderPosObj* 引数で定義します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-cell-style.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-cell-style.md index 7bd297f6d40012..9a4a01c352831f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-cell-style.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-cell-style.md @@ -27,7 +27,7 @@ title: VP SET CELL STYLE > `VP SET CELL STYLE` で適用された境界線は、*rangeObj* の各セルに対して適用されます。これに対して [VP SET BORDER](vp-set-border.md) コマンドは境界線を *rangeObj* のレンジ全体に対して適用されます。 -*styleObj* にはスタイル設定を格納したオブジェクトを渡します。 既存のスタイルシートを使用することもできますし、新しいスタイルを作成することも可能です。 *styleObj* に既存のスタイルシートと、追加のスタイル設定の両方が格納されている場合、既存のスタイルシートが先に適用され、そのあとに追加の設定が適用されます。 +*styleObj* にはスタイル設定を格納したオブジェクトを渡します。既存のスタイルシートを使用することもできますし、新しいスタイルを作成することも可能です。 *styleObj* に既存のスタイルシートと、追加のスタイル設定の両方が格納されている場合、既存のスタイルシートが先に適用され、そのあとに追加の設定が適用されます。 スタイルを削除してデフォルトのスタイル設定 (あれば) に戻すには、NULL値を渡します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-column-attributes.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-column-attributes.md index f24ead7a03b2c1..8c2468d88d196d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-column-attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-column-attributes.md @@ -23,9 +23,9 @@ title: VP SET COLUMN ATTRIBUTES `VP SET COLUMN ATTRIBUTES` コマンドは、 *rangeObj* 引数で指定したカラムに対して *propertyObj* 引数で定義されている属性を適用します。 -*rangeObj* 引数には、レンジオブジェクトを渡します。 レンジにカラムと行の両方が格納されている場合、属性は行に対してのみ適用されます。 +*rangeObj* 引数には、レンジオブジェクトを渡します。レンジにカラムと行の両方が格納されている場合、属性は行に対してのみ適用されます。 -*propertyObj* 引数は、*rangeObj* 引数のレンジ内のカラムに対して適用する属性を指定します。 指定できる属性は以下の通りです: +*propertyObj* 引数は、*rangeObj* 引数のレンジ内のカラムに対して適用する属性を指定します。指定できる属性は以下の通りです: | プロパティ | 型 | 説明 | | --------- | ------- | ------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-column-count.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-column-count.md index 87f8a9e189424f..b9bd422a741fc3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-column-count.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-column-count.md @@ -24,11 +24,11 @@ title: VP SET COLUMN COUNT `VP SET COLUMN COUNT` コマンドは、*vpAreaName* 引数内にあるカラムの総数を定義します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 *columnCount* には、カラムの総数を渡します。 *columnCount* 引数は 0 より大きい値でなくてはなりません。 *columnCount* 引数は 0 より大きい値でなくてはなりません。 -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、*columnCount* が適用されるスプレッドシートを指定することができます。 省略された場合はデフォルトでカレントスプレッドシートが使用されます。 以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、*columnCount* が適用されるスプレッドシートを指定することができます。省略された場合はデフォルトでカレントスプレッドシートが使用されます。以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: - `vk current sheet` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-current-sheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-current-sheet.md index cd2a49c3fec1bb..d20108f5d92ce8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-current-sheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-current-sheet.md @@ -21,7 +21,7 @@ title: VP SET CURRENT SHEET ## 説明 -`VP SET CURRENT SHEET` コマンドは、*vpAreaName* 引数で指定した View Pro エリアのカレントシートを設定します 。 カレントシートとは、ドキュメント内で選択されているシートのことです。 +`VP SET CURRENT SHEET` コマンドは、*vpAreaName* 引数で指定した View Pro エリアのカレントシートを設定します 。カレントシートとは、ドキュメント内で選択されているシートのことです。 *vpAreaName* には、4D View Pro エリアの名前を渡します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md index 42ccb1e94b457d..d7fa5eeb5c42dc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-custom-functions.md @@ -21,26 +21,26 @@ title: VP SET CUSTOM FUNCTIONS ## 説明 -`VP SET CUSTOM FUNCTIONS` コマンドは、4D View Pro フォーミュラから直接呼び出し可能な 4Dフォーミュラを指定します。 カスタムのファンクションはドキュメント内に保存されていないので、`VP SET CUSTOM FUNCTIONS` は `On Load` フォームイベント内で呼び出される必要があります。 +`VP SET CUSTOM FUNCTIONS` コマンドは、4D View Pro フォーミュラから直接呼び出し可能な 4Dフォーミュラを指定します。カスタムのファンクションはドキュメント内に保存されていないので、`VP SET CUSTOM FUNCTIONS` は `On Load` フォームイベント内で呼び出される必要があります。 -`VP SET CUSTOM FUNCTIONS` で指定されたフォーミュラは、最初の文字が入力されるとポップアップメニューに表示されます。 詳細については [式と関数](../formulas.md) を参照ください。 +`VP SET CUSTOM FUNCTIONS` で指定されたフォーミュラは、最初の文字が入力されるとポップアップメニューに表示されます。詳細については [式と関数](../formulas.md) を参照ください。 > `VP SET CUSTOM FUNCTIONS` が同一セッション中に同じエリアに対して複数回呼び出された場合、最後の呼び出しのみが有効になります。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 *formulaObj* 引数として、4D View Pro フォーミュラから呼び出し可能な 4Dフォーミュラと、その追加のプロパティを格納したオブジェクトを渡します。 *formulaObj* 引数の各 `customFunction` プロパティが 4D View Pro エリア内でのファンクション名になります。 -| プロパティ | | | 型 | 説明 | -| ------------------ | ---------- | ------------------------------------------------------------------------------ | ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `` | | | Object | カスタムファンクションの名前。 `` は、4D View Pro フォーミュラで表示するカスタムファンクションの名前を定義します (スペースは使用できません) | -| | formula | | Object | 4Dフォーミュラオブジェクト (必須)。 `Formula` コマンド参照。 | -| | parameters | | Object の Collection | 引数のコレクション (フォーミュラ内で定義されている順)。 詳細については [引数](../formulas.md#引数) の章を参照ください。 | -| | | \[ ].name | Text | 4D View Pro に表示する引数の名前。 | -| | | \[ ].type | Number | 引数の型。 サポートされている型:
  • `Is Boolean`
  • `Is collection`
  • `Is date`
  • `Is Integer`
  • `Is object`
  • `Is real`
  • `Is text`
  • `Is time`
  • *type* は省略するか、デフォルト値 (-1) を渡すことができます (ただし、コレクション型の引数が 1つでも存在する場合は、引数の型宣言は必須です)。
    *type* を省略した、または -1 を渡した場合、値は型と一緒に渡されますが、日付と時間の値に関してはオブジェクトとして送られます。 *type* が `Is object` の場合、オブジェクト引数は `.value` プロパティに格納されて渡されます。 [引数](../formulas.md#引数) の章を参照ください。 | -| | summary | | Text | 4D View Pro に表示するフォーミュラの説明 | -| | minParams | | Number | 引数の最小の数 | -| | maxParams | | Number | 引数の最大の数。 ここに *parameters* の length より大きな値を渡すことによって、デフォルトの型を持つ "任意の" 引数を宣言できるようになります。 | +| プロパティ | | | 型 | 説明 | +| ------------------ | ---------- | ------------------------------------------------------------------------------ | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `` | | | Object | カスタムファンクションの名前。 `` は、4D View Pro フォーミュラで表示するカスタムファンクションの名前を定義します (スペースは使用できません) | +| | formula | | Object | 4Dフォーミュラオブジェクト (必須)。 `Formula` コマンド参照。 | +| | parameters | | Object の Collection | 引数のコレクション (フォーミュラ内で定義されている順)。詳細については [引数](../formulas.md#引数) の章を参照ください。 | +| | | \[ ].name | Text | 4D View Pro に表示する引数の名前。 | +| | | \[ ].type | Number | 引数の型。サポートされている型:
  • `Is Boolean`
  • `Is collection`
  • `Is date`
  • `Is Integer`
  • `Is object`
  • `Is real`
  • `Is text`
  • `Is time`
  • *type* は省略するか、デフォルト値 (-1) を渡すことができます (ただし、コレクション型の引数が 1つでも存在する場合は、引数の型宣言は必須です)。
    *type* を省略した、または -1 を渡した場合、値は型と一緒に渡されますが、日付と時間の値に関してはオブジェクトとして送られます。 *type* が `Is object` の場合、オブジェクト引数は `.value` プロパティに格納されて渡されます。[引数](../formulas.md#引数) の章を参照ください。 | +| | summary | | Text | 4D View Pro に表示するフォーミュラの説明 | +| | minParams | | Number | 引数の最小の数 | +| | maxParams | | Number | 引数の最大の数。ここに *parameters* の length より大きな値を渡すことによって、デフォルトの型を持つ "任意の" 引数を宣言できるようになります。 | > **警告** diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-data-context.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-data-context.md index d06eafeb3000c7..8fded55d670885 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-data-context.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-data-context.md @@ -32,11 +32,11 @@ title: VP SET DATA CONTEXT ## 説明 -`VP SET DATA CONTEXT` コマンドは、シートのデータコンテキストを設定します。 データコンテキストは、ワークシートにバインドされたオブジェクトまたはコレクションで、自動生成オプションまたは [VP SET BINDING PATH](vp-set-binding-path.md) メソッドを使用することで、シートのセルにその内容を自動的に表示させることができます。 他方、[VP Get data context](vp-get-data-context.md) コマンドは、ユーザーによる編集が含まれたコンテキストを返すことができます。 +`VP SET DATA CONTEXT` コマンドは、シートのデータコンテキストを設定します。データコンテキストは、ワークシートにバインドされたオブジェクトまたはコレクションで、自動生成オプションまたは [VP SET BINDING PATH](vp-set-binding-path.md) メソッドを使用することで、シートのセルにその内容を自動的に表示させることができます。他方、[VP Get data context](vp-get-data-context.md) コマンドは、ユーザーによる編集が含まれたコンテキストを返すことができます。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*dataObj* または *dataColl* には、データコンテキストに読み込むデータを格納したオブジェクトまたはコレクションを渡します。 ピクチャーはデータURIスキームに変換されます。 +*dataObj* または *dataColl* には、データコンテキストに読み込むデータを格納したオブジェクトまたはコレクションを渡します。ピクチャーはデータURIスキームに変換されます。 *dataObj* または *dataColl* に時間値を渡すには、次のプロパティを持つオブジェクトにカプセル化します ([例題 4](#例題-4---日付と時間のシンタックス) 参照): @@ -45,16 +45,16 @@ title: VP SET DATA CONTEXT | value | Integer, Real, Boolean, Text, Date, Null | コンテキストに設定する値 | | time | Real | コンテキストに設定する時間値 (秒単位) | -*options* には、追加のオプションを格納したオブジェクトを渡せます。 利用可能なプロパティは次のとおりです: +*options* には、追加のオプションを格納したオブジェクトを渡せます。利用可能なプロパティは次のとおりです: -| プロパティ | 型 | 説明 | -| ------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| reset | Object | 新しいコンテキストを読み込む前にシートの内容をリセットする場合は true、それ以外は false (デフォルト) | -| autoGenerateColumns | Object | コレクション型のデータの場合にのみ使用します。 データコンテキストがバインドされると同時に、カラムを自動生成する場合は true (デフォルト)。 この場合、次のルールが適用されます:
    • *dataColl* がオブジェクトのコレクションの場合、属性名はカラムのタイトルとして使用されます (例題 2 参照)。
    • *dataColl* がスカラー値のサブコレクションを含む場合、各サブコレクションは一つの行の値を定義します (例題 3 参照)。 最初のサブコレクションにより、生成されるカラム数が決定します。
    | +| プロパティ | 型 | 説明 | +| ------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| reset | Object | 新しいコンテキストを読み込む前にシートの内容をリセットする場合は true、それ以外は false (デフォルト) | +| autoGenerateColumns | Object | コレクション型のデータの場合にのみ使用します。データコンテキストがバインドされると同時に、カラムを自動生成する場合は true (デフォルト)。この場合、次のルールが適用されます:
    • *dataColl* がオブジェクトのコレクションの場合、属性名はカラムのタイトルとして使用されます (例題 2 参照)。
    • *dataColl* がスカラー値のサブコレクションを含む場合、各サブコレクションは一つの行の値を定義します (例題 3 参照)。最初のサブコレクションにより、生成されるカラム数が決定します。
    | -*sheet* には、データコンテキストを受け取るシートのインデックスを渡します。 インデックスを渡さなかった場合、コンテキストはカレントシートに対して適用されます。 +*sheet* には、データコンテキストを受け取るシートのインデックスを渡します。インデックスを渡さなかった場合、コンテキストはカレントシートに対して適用されます。 -[VP Export to object](vp-export-to-object.md) でドキュメントをオブジェクトにエクスポート、または [VP EXPORT DOCUMENT](vp-export-document.md) でドキュメントを 4DVP ドキュメントにエクスポートする場合、`includeBindingSource` オプションを使うことで、現在のコンテキストの内容をエクスポート先のセルの値としてコピーすることができます。 詳細については、これらのメソッドの説明を参照ください。 +[VP Export to object](vp-export-to-object.md) でドキュメントをオブジェクトにエクスポート、または [VP EXPORT DOCUMENT](vp-export-document.md) でドキュメントを 4DVP ドキュメントにエクスポートする場合、`includeBindingSource` オプションを使うことで、現在のコンテキストの内容をエクスポート先のセルの値としてコピーすることができます。詳細については、これらのメソッドの説明を参照ください。 ## 例題 @@ -98,7 +98,7 @@ VP SET DATA CONTEXT("ViewProArea"; $data; $options) ## 例題 3 -引数として渡す *data* は、サブコレクションを含むコレクションです。 それぞれのサブコレクションは行を定義します: +引数として渡す *data* は、サブコレクションを含むコレクションです。それぞれのサブコレクションは行を定義します: ```4d var $data : Collection diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-date-time-value.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-date-time-value.md index 5959ead6608ca4..53ee99d70ac187 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-date-time-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-date-time-value.md @@ -31,7 +31,7 @@ title: VP SET DATE TIME VALUE *timeValue* 引数に、*rangeObj* 引数のレンジに割り当てたい時間値 (秒単位) を指定します。 -任意の *formatPattern* 引数は、*dateValue* および *timeValue* 引数に対するパターンを定義します。 パターンおよびフォーマット文字に関しての情報については、[日付と時間のフォーマット](../configuring.md#日付と時間のフォーマット) の章を参照してください。 +任意の *formatPattern* 引数は、*dateValue* および *timeValue* 引数に対するパターンを定義します。パターンおよびフォーマット文字に関しての情報については、[日付と時間のフォーマット](../configuring.md#日付と時間のフォーマット) の章を参照してください。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-date-value.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-date-value.md index 73ccfc0d5c4c6d..0a618e7214e2b9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-date-value.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-date-value.md @@ -28,7 +28,7 @@ title: VP SET DATE VALUE *dateValue* 引数に、*rangeObj* 引数のレンジに割り当てたい日付値を指定します。 -任意の *formatPattern* 引数は、*dateValue* 引数に対するパターンを定義します。 カスタムのフォーマット、または以下の定数のいずれかを渡します: +任意の *formatPattern* 引数は、*dateValue* 引数に対するパターンを定義します。カスタムのフォーマット、または以下の定数のいずれかを渡します: | 定数 | 説明 | デフォルト US パターン | | ----------------------- | ------------------------ | -------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-default-style.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-default-style.md index b7d34cea4474cc..d342cd7785b420 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-default-style.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-default-style.md @@ -24,11 +24,11 @@ title: VP SET DEFAULT STYLE `VP SET DEFAULT STYLE` コマンドは、*sheet* で指定したシートに対して、*styleObj* 引数のスタイルをデフォルトスタイルとして定義します。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*styleObj* にはスタイル設定を格納したオブジェクトを渡します。 既存のスタイルシートを使用することもできますし、新しいスタイルを作成することも可能です。 詳細については、[スタイルオブジェクト](../configuring.md#スタイルオブジェクト) を参照ください。 +*styleObj* にはスタイル設定を格納したオブジェクトを渡します。既存のスタイルシートを使用することもできますし、新しいスタイルを作成することも可能です。詳細については、[スタイルオブジェクト](../configuring.md#スタイルオブジェクト) を参照ください。 -任意の *sheet* 引数として、シートのインデックスを渡すことで、スタイルが定義されるスプレッドシートを指定することができます。 省略された場合はデフォルトでカレントスプレッドシートが使用されます。 以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: +任意の *sheet* 引数として、シートのインデックスを渡すことで、スタイルが定義されるスプレッドシートを指定することができます。省略された場合はデフォルトでカレントスプレッドシートが使用されます。以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: - `vk current sheet` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-field.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-field.md index d9c7821980927f..05331ccd8f86eb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-field.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-field.md @@ -26,9 +26,9 @@ title: VP SET FIELD *rangeObj* には、値を割り当てたいセルのレンジを渡します。 *rangeObj* 引数に複数のセルが含まれる場合、指定されたフィールドはそれぞれのセルに対して繰り返し割り当てられます。 -*field* 引数は、*rangeObj* のレンジに対して割り当てられる 4Dデータベースの [仮想フィールド](../formulas.md#仮想ストラクチャーを使ったフィールド参照) を指定します。 フォーミュラバーには、*field* の仮想ストラクチャー名が表示されます。 *rangeObj* に含まれるセルに既存のコンテンツがあった場合、そのコンテンツは *field* で上書きされます。 +*field* 引数は、*rangeObj* のレンジに対して割り当てられる 4Dデータベースの [仮想フィールド](../formulas.md#仮想ストラクチャーを使ったフィールド参照) を指定します。フォーミュラバーには、*field* の仮想ストラクチャー名が表示されます。 *rangeObj* に含まれるセルに既存のコンテンツがあった場合、そのコンテンツは *field* で上書きされます。 -任意の *formatPattern* 引数は、*field* 引数に対するパターンを定義します。 有効な [カスタムフォーマット](../configuring.md#セルフォーマット) を渡すことができます。 +任意の *formatPattern* 引数は、*field* 引数に対するパターンを定義します。有効な [カスタムフォーマット](../configuring.md#セルフォーマット) を渡すことができます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-formulas.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-formulas.md index b9e0c1148f5083..ca9963dacec8f4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-formulas.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-formulas.md @@ -27,8 +27,8 @@ title: VP SET FORMULAS *formulasCol* 引数は 2次元構造のコレクションです: -- 第1レベルのコレクションは、フォーミュラのサブコレクションを格納しています。 それぞれのサブコレクションは行を定義します。 -- それぞれのサブコレクションは行におけるセルの値を定義します。 値は、セルに割り当てるフォーミュラを格納したテキスト要素でなくてはなりません。 +- 第1レベルのコレクションは、フォーミュラのサブコレクションを格納しています。それぞれのサブコレクションは行を定義します。 +- それぞれのサブコレクションは行におけるセルの値を定義します。値は、セルに割り当てるフォーミュラを格納したテキスト要素でなくてはなりません。 > フォーミュラが文字列の場合、数値の区切り文字にピリオド `.` そして引数の区切り文字にカンマ `,` を使用します。 > 4Dメソッドを使用する場合、そのメソッドは [`SET ALLOWED METHODS`](vp-set-allowed-method.md) コマンドで許可されている必要があります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-frozen-panes.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-frozen-panes.md index 22c1037d1ac176..0e37dc8579f0e2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-frozen-panes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-frozen-panes.md @@ -22,14 +22,14 @@ title: VP SET FROZEN PANES ## 説明 -`VP SET FROZEN PANES` コマンドは、*vpAreaName* 引数で指定した View Pro エリア内の、*paneObj* 引数のカラムと行の固定化ステータスを設定します。 固定化されたカラムと行は固定された位置に表示され続け、ドキュメントの他の部分がスクロールされても移動しません。 そのカラムと行が固定化されていることを示すために、太い実線が表示されます。 実線の位置は、固定化されたカラムまたは行がシートのどこにあるかによって変わります: +`VP SET FROZEN PANES` コマンドは、*vpAreaName* 引数で指定した View Pro エリア内の、*paneObj* 引数のカラムと行の固定化ステータスを設定します。固定化されたカラムと行は固定された位置に表示され続け、ドキュメントの他の部分がスクロールされても移動しません。そのカラムと行が固定化されていることを示すために、太い実線が表示されます。実線の位置は、固定化されたカラムまたは行がシートのどこにあるかによって変わります: -- **左または右にあるカラム**: シートの左側にあるカラムについては、実線は最後に固定化されたカラム (最も右のカラム) の右側に表示されます。 シートの右側に表示されているカラムについては、実線は最初に固定化されたカラム (最も左のカラム) の左側に表示されます。 -- **上または下にある行**: シートの上部にある行については、実線は最後に固定化された行 (最も下の行) の下側に表示されます。 シートの下部に表示されている行については、実線は最初に固定化された行 (最も上の行) の上側に表示されます。 +- **左または右にあるカラム**: シートの左側にあるカラムについては、実線は最後に固定化されたカラム (最も右のカラム) の右側に表示されます。シートの右側に表示されているカラムについては、実線は最初に固定化されたカラム (最も左のカラム) の左側に表示されます。 +- **上または下にある行**: シートの上部にある行については、実線は最後に固定化された行 (最も下の行) の下側に表示されます。シートの下部に表示されている行については、実線は最初に固定化された行 (最も上の行) の上側に表示されます。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -*paneObj* には、固定化するカラムと行を定義するオブジェクトを渡します。 以下のカラムまたは行のプロパティの値にゼロを設定すると、そのプロパティをリセット (固定解除) します。 プロパティが 0以下の値に設定された場合、コマンドは何もしません。 以下のものを渡すことができます: +*paneObj* には、固定化するカラムと行を定義するオブジェクトを渡します。以下のカラムまたは行のプロパティの値にゼロを設定すると、そのプロパティをリセット (固定解除) します。プロパティが 0以下の値に設定された場合、コマンドは何もしません。以下のものを渡すことができます: | プロパティ | 型 | 説明 | | ------------------- | ------- | ------------------ | @@ -38,7 +38,7 @@ title: VP SET FROZEN PANES | rowCount | Integer | シートの上側にある固定化された行 | | trailingRowCount | Integer | シートの下側にある固定化された行 | -任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。 省略された場合はデフォルトでカレントスプレッドシートが使用されます。 以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: +任意の *sheet* 引数として、シートのインデックス (0 起点) を渡すことで、定義されるレンジが属するスプレッドシートを指定することができます。省略された場合はデフォルトでカレントスプレッドシートが使用されます。以下の定数を使用することでカレントのスプレッドシートを明示的に選択することができます: - `vk current sheet` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-values.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-values.md index 0d48ed6ac9cfe8..85d316de7388cf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-values.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-values.md @@ -30,8 +30,8 @@ title: VP SET VALUES *valuesCol* 引数は 2次元構造のコレクションです: -- 第1レベルのコレクションは、値のサブコレクションを格納しています。 それぞれのサブコレクションは行を定義します。 行をスキップするには空のコレクションを渡します。 -- それぞれのサブコレクションは行におけるセルの値を定義します。 値は整数、実数、ブール、テキスト、日付、Null、オブジェクトのいずれかです。 値がオブジェクトの場合、以下のプロパティを持つことができます: +- 第1レベルのコレクションは、値のサブコレクションを格納しています。それぞれのサブコレクションは行を定義します。行をスキップするには空のコレクションを渡します。 +- それぞれのサブコレクションは行におけるセルの値を定義します。値は整数、実数、ブール、テキスト、日付、Null、オブジェクトのいずれかです。値がオブジェクトの場合、以下のプロパティを持つことができます: | プロパティ | 型 | 説明 | | ----- | ---------------------------------------- | --------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-workbook-options.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-workbook-options.md index 190cc925e0dd9c..7ba737111384ab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-set-workbook-options.md @@ -33,66 +33,66 @@ title: VP SET WORKBOOK OPTIONS 次の表は、利用可能なワークブックオプションの一覧です: -| プロパティ | 型 | 説明 | -| ------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| allowUserDragMerge | boolean | ドラッグ&マージオプションを許可します (複数セルを選択し、選択をドラッグしてセルを結合します) | -| allowAutoCreateHyperlink | boolean | スプレッドシート内でハイパーリンクの自動作成を有効にします。 | -| allowContextMenu | boolean | ビルトインのコンテキストメニューの使用を許可します。 | -| allowCopyPasteExcelStyle | boolean | スプレッドシートのスタイルを Excel にコピー&ペーストすることを許可します (逆も可)。 | -| allowDynamicArray | boolean | ワークシート内で動的配列を有効にします。 | -| allowExtendPasteRange | boolean | 貼り付けデータが貼り付け先の範囲に収まりきらない場合に、貼り付け先の範囲を拡張します。 | -| allowSheetReorder | boolean | シートの順序変更を許可します。 | -| allowUndo | boolean | 編集を元に戻す操作を許可します。 | -| allowUserDeselect | boolean | 選択範囲から特定のセルを除外することを許可します。 | -| allowUserDragDrop | boolean | レンジデータのドラッグ&ドロップを許可します。 | -| allowUserDragFill | boolean | ドラッグ&フィルを許可します。 | -| allowUserEditFormula | boolean | 内容をセル内に収めます。 | -| allowUserResize | boolean | カラムと行のリサイズを許可します。 | -| allowUserZoom | boolean | ズームを許可します (Ctrl + マウスホイール)。 | -| autoFitType | number | セル内やヘッダー内に収まるよう、内容をフォーマットします。 使用可能な値:
    定数値説明
    vk auto fit type cell 0 内容をセル内に収めます。
    vk auto fit type cell with header 1 内容をセル内・ヘッダー内に収めます。
    | -| backColor | string | エリアの背景色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5")。 backgroundImage を設定している場合、背景色は非表示になります。 | -| backgroundImage | string / picture / file | エリアの背景画像。 | -| backgroundImageLayout | number | 背景画像のレイアウト。 使用可能な値:
    定数値説明
    vk image layout center 1 エリアの中央に表示。
    vk image layout none 3 エリアの左上に元のサイズで表示。
    vk image layout stretch 0 エリアを埋めるように拡大表示。
    vk image layout zoom 2 アスペクト比を維持して表示。
    | -| calcOnDemand | boolean | 要求されたときのみフォーミュラを計算します。 | -| columnResizeMode | number | カラムのリサイズモード。 使用可能な値:
    定数値説明
    vk resize mode normal 0 通常のリサイズモード (残りのカラムに影響します)
    vk resize mode split 1 split モード (残りのカラムに影響しません)
    | -| copyPasteHeaderOptions | number | データのコピー/ペースト時に含めるヘッダーについて指定します。 使用可能な値:
    定数値説明
    vk copy paste header options all headers3 データのコピー時: 選択ヘッダーを含めます。データのペースト時: 選択ヘッダーを上書きします。
    vk copy paste header options column headers 2 データのコピー時: 選択されたカラムヘッダーを含めます。データのペースト時: 選択されたカラムヘッダーを上書きします。
    vk copy paste header options no headers0 データのコピー時: ヘッダーを含めません。データのペースト時: ヘッダーを上書きしません。
    vk copy paste header options row headers1 データのコピー時: 選択された行ヘッダーを含めます。データのペースト時: 選択された行ヘッダーを上書きします。
    | -| customList | collection | ドラッグ&フィルをカスタマイズするためのリストです。フィルの際には、このリストに合致する値が入力されます。 各コレクション要素は、文字列のコレクションです。 [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists) 参照。 | -| cutCopyIndicatorBorderColor | string | ユーザーが選択をカットまたはコピーしたときの領域の境界色。 | -| cutCopyIndicatorVisible | boolean | コピーまたはカットされた際の領域を表示します。 | -| defaultDragFillType | number | デフォルトのドラッグ&フィルタイプ。 使用可能な値 :
    定数値説明
    vk auto fill type auto 5 自動でセルをフィルします。
    vk auto fill type clear values 4 セルの値をクリアします。
    vk auto fill type copycells 0 値・フォーマット・フォーミュラを含むすべてのデータオブジェクトでセルをフィルします。
    vk auto fill type fill formatting only 2 フォーマットのみでセルをフィルします。
    vk auto fill type fill series 1 連続データでフィルします。
    vk auto fill type fill without formatting 3 値のみでセルをフィルします (フォーマットは除外)。
    | -| enableAccessibility | boolean | スプレッドシートにおけるアクセシビリティのサポートを有効にします。 | -| enableFormulaTextbox | boolean | フォーミュラテキストボックスを有効化します。 | -| grayAreaBackColor | string | グレー領域の背景色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5")。 | -| highlightInvalidData | boolean | 無効なデータをハイライト表示します。 | -| iterativeCalculation | boolean | 反復計算を有効にします。 [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative) 参照。 | -| iterativeCalculationMaximumChange | numeric | 2つの計算値の最大差。 | -| iterativeCalculationMaximumIterations | numeric | フォーミュラが反復計算される最大回数。 | -| newTabVisible | boolean | 新規シートを挿入するための特別なタブを表示します。 | -| numbersFitMode | number | 日付/数値データがカラム幅を超える場合の表示モード。 使用可能な値:
    定数値説明
    vk numbers fit mode mask0 データの中身を "###" で置き換え、Tipを表示します。
    vk numbers fit mode overflow 1 データの中身を文字列として表示します。 隣のセルが空であれば、はみ出して表示します。
    | -| pasteSkipInvisibleRange | boolean | 非表示のレンジへの貼り付けについて指定します。
    • False (デフォルト): データを貼り付けます。
    • True: 非表示のレンジはスキップします。
    非表示のレンジについての詳細は [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) を参照ください。 | -| referenceStyle | number | セルフォーミュラにおける、セルやレンジ参照のスタイル。 使用可能な値:
    定数値説明
    vk reference style A1 0 A1 スタイルを使用します。
    vk reference style R1C1 1 R1C1 スタイルを使用します。
    | -| resizeZeroIndicator | number | 行やカラムのサイズが 0 に変更されたときの描画ポリシー。 使用可能な値:
    定数値説明
    vk resize zero indicator default 0 行やカラムのサイズが 0 に変更されたときに、現在の描画ポリシーを使用します。
    vk resize zero indicator enhanced 1 行やカラムのサイズが 0 に変更されたときに、2本の短い線を描画します。
    | -| rowResizeMode | number | 行のリサイズモード。 使用可能な値は columnResizeMode と同じです。 | -| scrollbarAppearance | number | スクロールバーの見た目。 使用可能な値:
    定数値説明
    vk scrollbar appearance mobile1 モバイル風のスクロールバー。
    vk scrollbar appearance skin (デフォルト)0 Excel風のクラシックなスクロールバー。
    | -| scrollbarMaxAlign | boolean | スクロールバーをアクティブシートの最後の行およびカラムに揃えます。 | -| scrollbarShowMax | boolean | シートのカラムと行の総数に基づいてスクロールバーを表示します。 | -| scrollByPixel | boolean | ピクセル単位のスクロールを有効にします。 | -| scrollIgnoreHidden | boolean | スクロールバーは非表示の行やカラムを無視します。 | -| scrollPixel | integer | scrollByPixel が true の場合、スクロール毎のピクセル数を指定します。 最終的にスクロールするピクセル数は `scrolling delta (スクロールの相対変化値) * scrollPixel` によって算出されます。 例: scrolling delta が 3、scrollPixel が 5 の場合、最終的なスクロールピクセル数は 15 です。 | -| showDragDropTip | boolean | ドラッグ&ドロップの Tip を表示します。 | -| showDragFillSmartTag | boolean | ドラッグ&フィルダイアログを表示します。 | -| showDragFillTip | boolean | ドラッグ&フィルの Tip を表示します。 | -| showHorizontalScrollbar | boolean | 横スクロールバーを表示します。 | -| showResizeTip | number | リサイズ Tip の表示を指定します。 使用可能な値:
    定数値説明
    vk show resize tip both 3 縦と横のリサイズ Tip が表示されます。
    vk show resize tip column 1 横のリサイズ Tip のみ表示されます。
    vk show resize tip none 0 リサイズ Tip は表示されません。
    vk show resize tip row 2 縦のリサイズ Tip のみ表示されます。
    | -| showScrollTip | number | スクロール Tip の表示を指定します。 使用可能な値:
    定数値説明
    vk show scroll tip both 3 縦と横のスクロール Tip が表示されます。
    vk show scroll tip horizontal 1 横のスクロール Tip のみ表示されます。
    vk show scroll tip none スクロール Tip は表示されません。
    vk show scroll tip vertical 2 縦のスクロール Tip のみ表示されます。
    | -| showVerticalScrollbar | boolean | 縦スクロールバーを表示します。 | -| tabEditable | boolean | タブストリップの編集を有効にします。 | -| tabNavigationVisible | boolean | タブナビゲーションを表示します。 | -| tabStripPosition | number | タブストリップの位置を指定します。 使用可能な値:
    定数値説明
    vk tab strip position bottom 0 タブストリップはワークブックの下側に位置します。
    vk tab strip position left 2 タブストリップはワークブックの左側に位置します。
    vk tab strip position right 3 タブストリップはワークブックの右側に位置します。
    vk tab strip position top 1 タブストリップはワークブックの上側に位置します。
    | -| tabStripRatio | number | スプレッドシートエリアの幅において、タブストリップが占める割合を指定します (0.x)。 残るスペース (1 - 0.x) には横スクロールバーが表示されます。 | -| tabStripVisible | boolean | タブストリップを表示します。 | -| tabStripWidth | number | タブストリップの位置が左側/右側の場合に、その幅を指定します。 デフォルト値は最小値の 80 です。 | -| useTouchLayout | boolean | Spreadコンポーネントを提示するのにタッチレイアウトを使用するかどうかを指定します。 | +| プロパティ | 型 | 説明 | +| ------------------------------------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| allowUserDragMerge | boolean | ドラッグ&マージオプションを許可します (複数セルを選択し、選択をドラッグしてセルを結合します) | +| allowAutoCreateHyperlink | boolean | スプレッドシート内でハイパーリンクの自動作成を有効にします。 | +| allowContextMenu | boolean | ビルトインのコンテキストメニューの使用を許可します。 | +| allowCopyPasteExcelStyle | boolean | スプレッドシートのスタイルを Excel にコピー&ペーストすることを許可します (逆も可)。 | +| allowDynamicArray | boolean | ワークシート内で動的配列を有効にします。 | +| allowExtendPasteRange | boolean | 貼り付けデータが貼り付け先の範囲に収まりきらない場合に、貼り付け先の範囲を拡張します。 | +| allowSheetReorder | boolean | シートの順序変更を許可します。 | +| allowUndo | boolean | 編集を元に戻す操作を許可します。 | +| allowUserDeselect | boolean | 選択範囲から特定のセルを除外することを許可します。 | +| allowUserDragDrop | boolean | レンジデータのドラッグ&ドロップを許可します。 | +| allowUserDragFill | boolean | ドラッグ&フィルを許可します。 | +| allowUserEditFormula | boolean | 内容をセル内に収めます。 | +| allowUserResize | boolean | カラムと行のリサイズを許可します。 | +| allowUserZoom | boolean | ズームを許可します (Ctrl + マウスホイール)。 | +| autoFitType | number | セル内やヘッダー内に収まるよう、内容をフォーマットします。使用可能な値:
    定数値説明
    vk auto fit type cell 0 内容をセル内に収めます。
    vk auto fit type cell with header 1 内容をセル内・ヘッダー内に収めます。
    | +| backColor | string | エリアの背景色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5")。 backgroundImage を設定している場合、背景色は非表示になります。 | +| backgroundImage | string / picture / file | エリアの背景画像。 | +| backgroundImageLayout | number | 背景画像のレイアウト。使用可能な値:
    定数値説明
    vk image layout center 1 エリアの中央に表示。
    vk image layout none 3 エリアの左上に元のサイズで表示。
    vk image layout stretch 0 エリアを埋めるように拡大表示。
    vk image layout zoom 2 アスペクト比を維持して表示。
    | +| calcOnDemand | boolean | 要求されたときのみフォーミュラを計算します。 | +| columnResizeMode | number | カラムのリサイズモード。使用可能な値:
    定数値説明
    vk resize mode normal 0 通常のリサイズモード (残りのカラムに影響します)
    vk resize mode split 1 split モード (残りのカラムに影響しません)
    | +| copyPasteHeaderOptions | number | データのコピー/ペースト時に含めるヘッダーについて指定します。使用可能な値:
    定数値説明
    vk copy paste header options all headers3 データのコピー時: 選択ヘッダーを含めます。データのペースト時: 選択ヘッダーを上書きします。
    vk copy paste header options column headers 2 データのコピー時: 選択されたカラムヘッダーを含めます。データのペースト時: 選択されたカラムヘッダーを上書きします。
    vk copy paste header options no headers0 データのコピー時: ヘッダーを含めません。データのペースト時: ヘッダーを上書きしません。
    vk copy paste header options row headers1 データのコピー時: 選択された行ヘッダーを含めます。データのペースト時: 選択された行ヘッダーを上書きします。
    | +| customList | collection | ドラッグ&フィルをカスタマイズするためのリストです。フィルの際には、このリストに合致する値が入力されます。各コレクション要素は、文字列のコレクションです。 [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists) 参照。 | +| cutCopyIndicatorBorderColor | string | ユーザーが選択をカットまたはコピーしたときの領域の境界色。 | +| cutCopyIndicatorVisible | boolean | コピーまたはカットされた際の領域を表示します。 | +| defaultDragFillType | number | デフォルトのドラッグ&フィルタイプ。使用可能な値 :
    定数値説明
    vk auto fill type auto 5 自動でセルをフィルします。
    vk auto fill type clear values 4 セルの値をクリアします。
    vk auto fill type copycells 0 値・フォーマット・フォーミュラを含むすべてのデータオブジェクトでセルをフィルします。
    vk auto fill type fill formatting only 2 フォーマットのみでセルをフィルします。
    vk auto fill type fill series 1 連続データでフィルします。
    vk auto fill type fill without formatting 3 値のみでセルをフィルします (フォーマットは除外)。
    | +| enableAccessibility | boolean | スプレッドシートにおけるアクセシビリティのサポートを有効にします。 | +| enableFormulaTextbox | boolean | フォーミュラテキストボックスを有効化します。 | +| grayAreaBackColor | string | グレー領域の背景色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5")。 | +| highlightInvalidData | boolean | 無効なデータをハイライト表示します。 | +| iterativeCalculation | boolean | 反復計算を有効にします。 [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/formulareference/formulaoverview/calculating-iterative) 参照。 | +| iterativeCalculationMaximumChange | numeric | 2つの計算値の最大差。 | +| iterativeCalculationMaximumIterations | numeric | フォーミュラが反復計算される最大回数。 | +| newTabVisible | boolean | 新規シートを挿入するための特別なタブを表示します。 | +| numbersFitMode | number | 日付/数値データがカラム幅を超える場合の表示モード。使用可能な値:
    定数値説明
    vk numbers fit mode mask0 データの中身を "###" で置き換え、Tipを表示します。
    vk numbers fit mode overflow 1 データの中身を文字列として表示します。隣のセルが空であれば、はみ出して表示します。
    | +| pasteSkipInvisibleRange | boolean | 非表示のレンジへの貼り付けについて指定します。
    • False (デフォルト): データを貼り付けます。
    • True: 非表示のレンジはスキップします。
    非表示のレンジについての詳細は [SpreadJS のドキュメント](https://developer.mescius.com/spreadjs/docs/features/rows-columns/paste-skip-data-invisible-range) を参照ください。 | +| referenceStyle | number | セルフォーミュラにおける、セルやレンジ参照のスタイル。使用可能な値:
    定数値説明
    vk reference style A1 0 A1 スタイルを使用します。
    vk reference style R1C1 1 R1C1 スタイルを使用します。
    | +| resizeZeroIndicator | number | 行やカラムのサイズが 0 に変更されたときの描画ポリシー。使用可能な値:
    定数値説明
    vk resize zero indicator default 0 行やカラムのサイズが 0 に変更されたときに、現在の描画ポリシーを使用します。
    vk resize zero indicator enhanced 1 行やカラムのサイズが 0 に変更されたときに、2本の短い線を描画します。
    | +| rowResizeMode | number | 行のリサイズモード。使用可能な値は columnResizeMode と同じです。 | +| scrollbarAppearance | number | スクロールバーの見た目。使用可能な値:
    定数値説明
    vk scrollbar appearance mobile1 モバイル風のスクロールバー。
    vk scrollbar appearance skin (デフォルト)0 Excel風のクラシックなスクロールバー。
    | +| scrollbarMaxAlign | boolean | スクロールバーをアクティブシートの最後の行およびカラムに揃えます。 | +| scrollbarShowMax | boolean | シートのカラムと行の総数に基づいてスクロールバーを表示します。 | +| scrollByPixel | boolean | ピクセル単位のスクロールを有効にします。 | +| scrollIgnoreHidden | boolean | スクロールバーは非表示の行やカラムを無視します。 | +| scrollPixel | integer | scrollByPixel が true の場合、スクロール毎のピクセル数を指定します。最終的にスクロールするピクセル数は `scrolling delta (スクロールの相対変化値) * scrollPixel` によって算出されます。例: scrolling delta が 3、scrollPixel が 5 の場合、最終的なスクロールピクセル数は 15 です。 | +| showDragDropTip | boolean | ドラッグ&ドロップの Tip を表示します。 | +| showDragFillSmartTag | boolean | ドラッグ&フィルダイアログを表示します。 | +| showDragFillTip | boolean | ドラッグ&フィルの Tip を表示します。 | +| showHorizontalScrollbar | boolean | 横スクロールバーを表示します。 | +| showResizeTip | number | リサイズ Tip の表示を指定します。使用可能な値:
    定数値説明
    vk show resize tip both 3 縦と横のリサイズ Tip が表示されます。
    vk show resize tip column 1 横のリサイズ Tip のみ表示されます。
    vk show resize tip none 0 リサイズ Tip は表示されません。
    vk show resize tip row 2 縦のリサイズ Tip のみ表示されます。
    | +| showScrollTip | number | スクロール Tip の表示を指定します。使用可能な値:
    定数値説明
    vk show scroll tip both 3 縦と横のスクロール Tip が表示されます。
    vk show scroll tip horizontal 1 横のスクロール Tip のみ表示されます。
    vk show scroll tip none スクロール Tip は表示されません。
    vk show scroll tip vertical 2 縦のスクロール Tip のみ表示されます。
    | +| showVerticalScrollbar | boolean | 縦スクロールバーを表示します。 | +| tabEditable | boolean | タブストリップの編集を有効にします。 | +| tabNavigationVisible | boolean | タブナビゲーションを表示します。 | +| tabStripPosition | number | タブストリップの位置を指定します。使用可能な値:
    定数値説明
    vk tab strip position bottom 0 タブストリップはワークブックの下側に位置します。
    vk tab strip position left 2 タブストリップはワークブックの左側に位置します。
    vk tab strip position right 3 タブストリップはワークブックの右側に位置します。
    vk tab strip position top 1 タブストリップはワークブックの上側に位置します。
    | +| tabStripRatio | number | スプレッドシートエリアの幅において、タブストリップが占める割合を指定します (0.x)。残るスペース (1 - 0.x) には横スクロールバーが表示されます。 | +| tabStripVisible | boolean | タブストリップを表示します。 | +| tabStripWidth | number | タブストリップの位置が左側/右側の場合に、その幅を指定します。デフォルト値は最小値の 80 です。 | +| useTouchLayout | boolean | Spreadコンポーネントを提示するのにタッチレイアウトを使用するかどうかを指定します。 | ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-show-cell.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-show-cell.md index 6bb529bee95194..b0122767afdde6 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-show-cell.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-show-cell.md @@ -28,16 +28,16 @@ title: VP SHOW CELL 次のセレクターが利用可能です: -| セレクター | 説明 | *vPos* で利用可 | *hPos* で利用可 | -| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ----------- | -| `vk position bottom` | セルあるいは行の下辺に対する垂直揃え。 | ○ | | -| `vk position center` | 中央揃え。 セル・行・カラムの境界に対して位置を揃えます:
  • 縦方向の表示位置 - セルあるいは行
  • 横方向の表示位置 - セルあるいはカラム
  • | ○ | ○ | -| `vk position left` | セルあるいはカラムの左辺に対する水平揃え。 | | ○ | -| `vk position nearest` | 一番近い基準に対する位置揃え (上、下、左、右、中央)。 中央揃え。 セル・行・カラムの境界に対して位置を揃えます:
  • 縦方向の表示位置 - セルあるいは行
  • 横方向の表示位置 - セルあるいはカラム
  • | ○ | ○ | -| `vk position right` | セルあるいはカラムの右辺に対する水平揃え。 | | ○ | -| `vk position top` | セルあるいは行の上辺に対する垂直揃え。 | ○ | | - -> このコマンドは、表示位置の変更が可能な場合にのみ動作します。 たとえば、*rangeObj* が現在のシートの A1 セル (先頭カラムと先頭行) の場合、すでに縦および横方向の限界に接している (つまり、上にも左にもこれ以上スクロールできない) ため、表示位置を変更しても何も変わりません。 *rangeObj* が C3 セルの場合に、表示位置を中央または右下に変えても同じことが言えます。 表示は変更されません。 +| セレクター | 説明 | *vPos* で利用可 | *hPos* で利用可 | +| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ----------- | +| `vk position bottom` | セルあるいは行の下辺に対する垂直揃え。 | ○ | | +| `vk position center` | 中央揃え。セル・行・カラムの境界に対して位置を揃えます:
  • 縦方向の表示位置 - セルあるいは行
  • 横方向の表示位置 - セルあるいはカラム
  • | ○ | ○ | +| `vk position left` | セルあるいはカラムの左辺に対する水平揃え。 | | ○ | +| `vk position nearest` | 一番近い基準に対する位置揃え (上、下、左、右、中央)。中央揃え。 セル・行・カラムの境界に対して位置を揃えます:
  • 縦方向の表示位置 - セルあるいは行
  • 横方向の表示位置 - セルあるいはカラム
  • | ○ | ○ | +| `vk position right` | セルあるいはカラムの右辺に対する水平揃え。 | | ○ | +| `vk position top` | セルあるいは行の上辺に対する垂直揃え。 | ○ | | + +> このコマンドは、表示位置の変更が可能な場合にのみ動作します。たとえば、*rangeObj* が現在のシートの A1 セル (先頭カラムと先頭行) の場合、すでに縦および横方向の限界に接している (つまり、上にも左にもこれ以上スクロールできない) ため、表示位置を変更しても何も変わりません。 *rangeObj* が C3 セルの場合に、表示位置を中央または右下に変えても同じことが言えます。表示は変更されません。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-suspend-computing.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-suspend-computing.md index 7a7fd1f6b764e6..b5b5c0046559c2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-suspend-computing.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-suspend-computing.md @@ -20,13 +20,13 @@ title: VP SUSPEND COMPUTING ## 説明 -`VP SUSPEND COMPUTING` コマンドは、*vpAreaName* 引数で指定したエリア内の計算をすべて停止します。 このコマンドは、4D View Pro エリア内の計算を停止したい場合、たとえばフォーミュラを手動で編集している際に、最終的な編集が完了するまでエラーが発生しないようにするのに便利です。 +`VP SUSPEND COMPUTING` コマンドは、*vpAreaName* 引数で指定したエリア内の計算をすべて停止します。このコマンドは、4D View Pro エリア内の計算を停止したい場合、たとえばフォーミュラを手動で編集している際に、最終的な編集が完了するまでエラーが発生しないようにするのに便利です。 -このコマンドは 4D View Pro 内の計算機能を停止します。 すでに計算済みのフォーミュラはそのままですが、`VP SUSPEND COMPUTING` の実行後に追加されたフォーミュラは計算されません。 +このコマンドは 4D View Pro 内の計算機能を停止します。すでに計算済みのフォーミュラはそのままですが、`VP SUSPEND COMPUTING` の実行後に追加されたフォーミュラは計算されません。 -*vpAreaName* には、4D View Pro エリアの名前を渡します。 存在しない名前を渡した場合、エラーが返されます。 +*vpAreaName* には、4D View Pro エリアの名前を渡します。存在しない名前を渡した場合、エラーが返されます。 -> 4D View Pro 計算機能は停止/再開アクションを内部的にカウントしています。 そのため、`VP SUSPEND COMPUTING` コマンドの実行数は、`VP RESUME COMPUTING` コマンドの実行数と釣り合っていなければなりません。 計算が停止されていた間に編集された部分に影響を受けるフォーミュラは、 VP RESUME COMPUTING コマンドが実行された時に再計算されます。 +> 4D View Pro 計算機能は停止/再開アクションを内部的にカウントしています。そのため、`VP SUSPEND COMPUTING` コマンドの実行数は、`VP RESUME COMPUTING` コマンドの実行数と釣り合っていなければなりません。計算が停止されていた間に編集された部分に影響を受けるフォーミュラは、 VP RESUME COMPUTING コマンドが実行された時に再計算されます。 ## 例題 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/configuring.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/configuring.md index adee2ac77b526f..25ea4112216601 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/configuring.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/configuring.md @@ -3,7 +3,7 @@ id: configuring title: 4D View Pro エリアの設定 --- -4D View Pro エリアのプロパティは、プロパティリストを利用して設定することが可能です。 スプレッドシートプロパティはランゲージにより設定します。 +4D View Pro エリアのプロパティは、プロパティリストを利用して設定することが可能です。スプレッドシートプロパティはランゲージにより設定します。 ## フォームエリアプロパティ @@ -19,7 +19,7 @@ title: 4D View Pro エリアの設定 > また、[`userInterface`](FormObjects/properties_Appearance.md#ユーザーインターフェース) および [`withFormulaBar`](FormObjects/properties_Appearance.md#フォーミュラバーを表示) ("ツールバー" インターフェースのみ) の JSONプロパティを使用することもできます。 -インターフェースにより、基本的な編集とデータ操作がおこなえます。 ユーザーによる編集は、ユーザーによってドキュメントが保存されたときに 4D View Pro オブジェクトに保存されます。 +インターフェースにより、基本的な編集とデータ操作がおこなえます。ユーザーによる編集は、ユーザーによってドキュメントが保存されたときに 4D View Pro オブジェクトに保存されます。 #### リボン @@ -27,7 +27,7 @@ title: 4D View Pro エリアの設定 #### ツールバー -ツールバー型インターフェースを有効化すると [**フォーミュラバーを表示**](FormObjects/properties_Appearance.md#フォーミュラバーを表示) オプションが表示されます。 これを選択すると、ツールバーのすぐ下にフォーミュラバーが表示されます。 +ツールバー型インターフェースを有効化すると [**フォーミュラバーを表示**](FormObjects/properties_Appearance.md#フォーミュラバーを表示) オプションが表示されます。これを選択すると、ツールバーのすぐ下にフォーミュラバーが表示されます。 フォーミュラバーが表示された状態: @@ -51,7 +51,7 @@ title: 4D View Pro エリアの設定 4D View Pro エリアのプロパティリスト内では、以下のフォームイベントが利用可能です。 -一部のイベントは (すべてのアクティブオブジェクトで利用可能な) 標準のフォームイベントであり、一部は 4D View Pro 専用のフォームイベントです。 また一部の標準フォームイベントは、4D View Pro エリアにおいて生成された場合、[`FORM Event`](../commands/form-event) コマンドが返すオブジェクトに追加の情報を提供します。 以下の表は標準イベントと、4D View Pro 専用または追加情報を提供するイベントの一覧です: +一部のイベントは (すべてのアクティブオブジェクトで利用可能な) 標準のフォームイベントであり、一部は 4D View Pro 専用のフォームイベントです。また一部の標準フォームイベントは、4D View Pro エリアにおいて生成された場合、[`FORM Event`](../commands/form-event) コマンドが返すオブジェクトに追加の情報を提供します。以下の表は標準イベントと、4D View Pro 専用または追加情報を提供するイベントの一覧です: | 標準の 4Dイベント | 4D View Pro 専用、または追加情報を返すイベント | | ----------------------------------------------- | ----------------------------------------------------- | @@ -67,92 +67,92 @@ title: 4D View Pro エリアの設定 ## シートオプション -4D View Pro シートオプションオブジェクトを使って、4D View Pro エリアの様々なオプションをコントロールすることができます。 このオブジェクトは以下のコマンドで操作します: +4D View Pro シートオプションオブジェクトを使って、4D View Pro エリアの様々なオプションをコントロールすることができます。このオブジェクトは以下のコマンドで操作します: - [VP SET SHEET OPTIONS](commands/vp-set-sheet-options.md) - [VP Get sheet options](commands/vp-get-sheet-options.md) ### シートのアピアランス -| プロパティ | | 型 | 説明 | -| -------------------- | ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| allowCellOverflow | | boolean | セルに収まらないデータを隣の空のセルにはみ出し表示するかどうかを指定します | -| sheetTabColor | | string | シートタブの色を指定するカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5") | -| frozenlineColor | | string | 固定化された線の色を指定するカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5") | -| clipBoardOptions | | longint | クリップボードオプション。 利用可能な値: `vk clipboard paste options all`, `vk clipboard paste options formatting`, `vk clipboard paste options formulas`, `vk clipboard paste options formulas and formatting`, `vk clipboard paste options values`, `vk clipboard paste options values and formatting` | -| gridline | | object | 枠線のオプション | -| | color | string | 枠線の色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5") | -| | showVerticalGridline | boolean | 垂直の枠線を表示するかどうかを指定します。 | -| | showHorizontalGridline | boolean | 水平の枠線を表示するかどうかを指定します。 | -| rowHeaderVisible | | boolean | 行ヘッダーを表示するかどうかを指定します。 | -| colHeaderVisible | | boolean | 列ヘッダーを表示するかどうかを指定します。 | -| rowHeaderAutoText | | longint | 行ヘッダーが文字を表示するか、数字を表示するか、あるいは空かを指定します。 利用可能な値: `vk header auto text blank`, `vk header auto text letters`, `vk header auto text numbers` | -| colHeaderAutoText | | longint | 列ヘッダーが文字を表示するか、数字を表示するか、あるいは空かを指定します。 利用可能な値: `vk header auto text blank`, `vk header auto text letters`, `vk header auto text numbers` | -| selectionBackColor | | string | シートにおける選択範囲の背景色。 (RGBAフォーマット推奨) | -| selectionBorderColor | | string | シートにおける選択範囲の枠線の色。 | -| sheetAreaOffset | | object | シートエリアのオフセットオプション | -| | left | longint | シートの、ホストからの左オフセット | -| | top | longint | シートの、ホストからの上オフセット | +| プロパティ | | 型 | 説明 | +| -------------------- | ---------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| allowCellOverflow | | boolean | セルに収まらないデータを隣の空のセルにはみ出し表示するかどうかを指定します | +| sheetTabColor | | string | シートタブの色を指定するカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5") | +| frozenlineColor | | string | 固定化された線の色を指定するカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5") | +| clipBoardOptions | | longint | クリップボードオプション。利用可能な値: `vk clipboard paste options all`, `vk clipboard paste options formatting`, `vk clipboard paste options formulas`, `vk clipboard paste options formulas and formatting`, `vk clipboard paste options values`, `vk clipboard paste options values and formatting` | +| gridline | | object | 枠線のオプション | +| | color | string | 枠線の色を表すカラー文字列 (例: "red"、"#FFFF00"、"rgb(255,0,0)"、"Accent 5") | +| | showVerticalGridline | boolean | 垂直の枠線を表示するかどうかを指定します。 | +| | showHorizontalGridline | boolean | 水平の枠線を表示するかどうかを指定します。 | +| rowHeaderVisible | | boolean | 行ヘッダーを表示するかどうかを指定します。 | +| colHeaderVisible | | boolean | 列ヘッダーを表示するかどうかを指定します。 | +| rowHeaderAutoText | | longint | 行ヘッダーが文字を表示するか、数字を表示するか、あるいは空かを指定します。利用可能な値: `vk header auto text blank`, `vk header auto text letters`, `vk header auto text numbers` | +| colHeaderAutoText | | longint | 列ヘッダーが文字を表示するか、数字を表示するか、あるいは空かを指定します。利用可能な値: `vk header auto text blank`, `vk header auto text letters`, `vk header auto text numbers` | +| selectionBackColor | | string | シートにおける選択範囲の背景色。 (RGBAフォーマット推奨) | +| selectionBorderColor | | string | シートにおける選択範囲の枠線の色。 | +| sheetAreaOffset | | object | シートエリアのオフセットオプション | +| | left | longint | シートの、ホストからの左オフセット | +| | top | longint | シートの、ホストからの上オフセット | > いずれのプロパティも任意です。 ### シートの保護 -シート全体をロック (保護) するには、*isProtected* プロパティを **true** に設定するだけです。 その上で、[locked](#レイアウト) セルスタイルプロパティを個別に設定することで、特定のセルをロック解除することができます。 - -| プロパティ | | 型 | 説明 | -| ----------------- | ------------------------ | ------- | ------------------------------------------------------------------------- | -| isProtected | | boolean | シート上で保護状態とされているセルが編集可能かどうかを指定します。 | -| protectionOptions | | object | ユーザーにより編集可能な要素を指定します。 null の場合、protectionOptions パラメーターはリセットされます。 | -| | allowSelectLockedCells | boolean | ロックされたセルをユーザーが選択できるかどうかを指定します (任意)。 デフォルトは true。 | -| | allowSelectUnlockedCells | boolean | ロック解除されたセルをユーザーが選択できるかどうかを指定します (任意)。 デフォルトは true。 | -| | allowSort | boolean | ユーザーによるレンジの並べ替えが可能かどうかを指定します (任意)。 デフォルトは false。 | -| | allowFilter | boolean | ユーザーによるレンジのフィルタリングが可能かどうかを指定します (任意)。 デフォルトは false。 | -| | allowEditObjects | boolean | フローティングオブジェクトをユーザーが編集できるかどうかを指定します (任意)。 デフォルトは false。 | -| | allowResizeRows | boolean | ユーザーが行をリサイズできるかどうかを指定します (任意)。 デフォルトは false。 | -| | allowResizeColumns | boolean | ユーザーが列をリサイズできるかどうかを指定します (任意)。 デフォルトは false。 | -| | allowDragInsertRows | boolean | ユーザーがドラッグ操作で行を挿入できるかどうかを指定します (任意)。 デフォルトは false。 | -| | allowDragInsertColumns | boolean | ユーザーがドラッグ操作で列を挿入できるかどうかを指定します (任意)。 デフォルトは false。 | -| | allowInsertRows | boolean | ユーザーが行を挿入できるかどうかを指定します (任意)。 デフォルトは false。 | -| | allowInsertColumns | boolean | ユーザーが列を挿入できるかどうかを指定します (任意)。 デフォルトは false。 | -| | allowDeleteRows | boolean | ユーザーが行を削除できるかどうかを指定します (任意)。 デフォルトは false。 | -| | allowDeleteColumns | boolean | ユーザーが列を削除できるかどうかを指定します (任意)。 デフォルトは false。 | +シート全体をロック (保護) するには、*isProtected* プロパティを **true** に設定するだけです。その上で、[locked](#レイアウト) セルスタイルプロパティを個別に設定することで、特定のセルをロック解除することができます。 + +| プロパティ | | 型 | 説明 | +| ----------------- | ------------------------ | ------- | ------------------------------------------------------------------------ | +| isProtected | | boolean | シート上で保護状態とされているセルが編集可能かどうかを指定します。 | +| protectionOptions | | object | ユーザーにより編集可能な要素を指定します。 null の場合、protectionOptions パラメーターはリセットされます。 | +| | allowSelectLockedCells | boolean | ロックされたセルをユーザーが選択できるかどうかを指定します (任意)。デフォルトは true。 | +| | allowSelectUnlockedCells | boolean | ロック解除されたセルをユーザーが選択できるかどうかを指定します (任意)。デフォルトは true。 | +| | allowSort | boolean | ユーザーによるレンジの並べ替えが可能かどうかを指定します (任意)。デフォルトは false。 | +| | allowFilter | boolean | ユーザーによるレンジのフィルタリングが可能かどうかを指定します (任意)。デフォルトは false。 | +| | allowEditObjects | boolean | フローティングオブジェクトをユーザーが編集できるかどうかを指定します (任意)。デフォルトは false。 | +| | allowResizeRows | boolean | ユーザーが行をリサイズできるかどうかを指定します (任意)。デフォルトは false。 | +| | allowResizeColumns | boolean | ユーザーが列をリサイズできるかどうかを指定します (任意)。デフォルトは false。 | +| | allowDragInsertRows | boolean | ユーザーがドラッグ操作で行を挿入できるかどうかを指定します (任意)。デフォルトは false。 | +| | allowDragInsertColumns | boolean | ユーザーがドラッグ操作で列を挿入できるかどうかを指定します (任意)。デフォルトは false。 | +| | allowInsertRows | boolean | ユーザーが行を挿入できるかどうかを指定します (任意)。デフォルトは false。 | +| | allowInsertColumns | boolean | ユーザーが列を挿入できるかどうかを指定します (任意)。デフォルトは false。 | +| | allowDeleteRows | boolean | ユーザーが行を削除できるかどうかを指定します (任意)。デフォルトは false。 | +| | allowDeleteColumns | boolean | ユーザーが列を削除できるかどうかを指定します (任意)。デフォルトは false。 | > いずれのプロパティも任意です。 ## セルフォーマット -フォーマットパターン (表示形式) を定義することで、4D View Pro ドキュメントのコンテンツを想定通りに表示することができます。 フォーマットは、選択された 4D View Pro の [インターフェース](#ユーザーインターフェースの選択) を使用するか、[VP SET VALUE](commands/vp-set-value.md) または [VP SET NUM VALUE](commands/vp-set-num-value.md) コマンドを使用して設定します。 +フォーマットパターン (表示形式) を定義することで、4D View Pro ドキュメントのコンテンツを想定通りに表示することができます。フォーマットは、選択された 4D View Pro の [インターフェース](#ユーザーインターフェースの選択) を使用するか、[VP SET VALUE](commands/vp-set-value.md) または [VP SET NUM VALUE](commands/vp-set-num-value.md) コマンドを使用して設定します。 4D View Pro には数値、日付、時間、そしてテキスト用のビルトインのフォーマットがありますが、カスタムパターンを作成することで、特殊文字やコードを使ったフォーマットでセルのコンテンツを表示することができます。 -たとえば、請求書において [VP SET VALUE](commands/vp-set-value.md) あるいは [VP SET NUM VALUE](commands/vp-set-num-value.md) コマンドを使用して金額を入力している場合、数値の桁数とは関係なく (つまり金額が $5.00 だろうと $5,000.00 だろうと) 通貨記号 ($, €, ¥, など)を同じ位置に整列させたい場合があるかもしれません。 この場合、フォーマット文字を使用してパターン *($\* #,##0.00)* を指定することで、以下のように表示させることができます: +たとえば、請求書において [VP SET VALUE](commands/vp-set-value.md) あるいは [VP SET NUM VALUE](commands/vp-set-num-value.md) コマンドを使用して金額を入力している場合、数値の桁数とは関係なく(つまり金額が $5.00 だろうと $5,000.00 だろうと) 通貨記号 ($, €, ¥, など)を同じ位置に整列させたい場合があるかもしれません。この場合、フォーマット文字を使用してパターン *($\* #,##0.00)* を指定することで、以下のように表示させることができます: ![](../assets/en/ViewPro/apx_vpCellFormat1.PNG) -カスタムのフォーマットパターンを作成する場合、データの表示 のみが変更されるという点に注意してください。 データの値そのものは変わりません。 +カスタムのフォーマットパターンを作成する場合、データの表示 のみが変更されるという点に注意してください。データの値そのものは変わりません。 ### 数値とテキストのフォーマット 数値フォーマットはすべての数値型 (例: 正の数、負の数、ゼロ) に対して適用されます。 -| 文字 | 説明 | 例題 | -| ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 0 | ゼロを表示する桁のプレースホルダー | #.00 は 1.1 を 1.10 と表示します。 | -| . | 小数点を表示します | 0.00 は 1999 を 1999.00 と表示します。 | -| , | 数値内に千区切りのカンマを表示します。 数値記号 "#" あるいはゼロに挟まれたカンマがフォーマットに含まれる場合、3桁ごとにカンマで区切られます。 桁のプレースホルダーの後にくるカンマは、数値を 1000 で割ります。 | #,0 は 12200000 を 12,200,000 と表示します。 | -| \_ | アンダーバーに続く文字の幅をスキップします。 | \_( のようにカッコなどと組み合わせることで、左や右にスペースを追加します。 | -| @ | テキストのフォーマット文字。 セル内のすべてのテキストにフォーマットを適用します。 | "\[Red]@" はテキスト値に対して赤のフォントカラーを適用します。 | -| \* | 列幅いっぱいまで、後に続く文字を繰り返します。 | 0\*- は、数値の後にセルの幅いっぱいまでダッシュを繰り返します。対して、\*0 をフォーマットの前につけると、先頭に 0 が複数表示されます。 | -| " " | 引用符にはさまれたテキストを、解釈せずにそのまま表示します。 | "8%" は 8% と表示されます。 | -| % | 数値を百分率で表示します。 | 8% は、.08 として表示されます。 | -| \# | 追加のゼロを表示しない、桁のプレースホルダー。 もしプレースホルダーの数以上に小数点以下の桁数があった場合、それらの数字は丸められます。 | #.# は 1.54 を 1.5 として表示します。 | -| ? | 追加のゼロの分のスペースを残すが、そのゼロは表示しない桁のプレースホルダー。 通常、数値を小数点の位置で揃えるために使用されます。 | $?? は最低 2桁のスペースを確保し、1桁の数値が混じっていても 2桁の場所に $記号が並ぶように指定します。 | -| \ | 後に続く文字を表示します。 | #.00\? は 123 を 123.00? として表示します。 | -| / | 数値に対して使用した場合、分数として表記します。 テキスト、日付、時刻に対して使用した場合、それらをそのまま表示します。 | #/# は .75 を 3/4 として表示します。 | -| \[ ] | 条件つき書式を作成します。 | \[>100]\[GREEN]#,##0;\[`<=-100`]\[YELLOW]#,##0;\[BLUE]#,##0 | -| E | 指数表記のフォーマット。 | #E+# - は 1,500,500 を 2E+6 として表示します。 | -| \[color] | テキストまたは数値を指定カラーで表示します。 | \[Green]###.##\[Red]-###.### | +| 文字 | 説明 | 例題 | +| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 0 | ゼロを表示する桁のプレースホルダー | #.00 は 1.1 を 1.10 と表示します。 | +| . | 小数点を表示します | 0.00 は 1999 を 1999.00 と表示します。 | +| , | 数値内に千区切りのカンマを表示します。数値記号 "#" あるいはゼロに挟まれたカンマがフォーマットに含まれる場合、3桁ごとにカンマで区切られます。桁のプレースホルダーの後にくるカンマは、数値を 1000 で割ります。 | #,0 は 12200000 を 12,200,000 と表示します。 | +| \_ | アンダーバーに続く文字の幅をスキップします。 | \_( のようにカッコなどと組み合わせることで、左や右にスペースを追加します。 | +| @ | テキストのフォーマット文字。セル内のすべてのテキストにフォーマットを適用します。 | "\[Red]@" はテキスト値に対して赤のフォントカラーを適用します。 | +| \* | 列幅いっぱいまで、後に続く文字を繰り返します。 | 0\*- は、数値の後にセルの幅いっぱいまでダッシュを繰り返します。対して、\*0 をフォーマットの前につけると、先頭に 0 が複数表示されます。 | +| " " | 引用符にはさまれたテキストを、解釈せずにそのまま表示します。 | "8%" は 8% と表示されます。 | +| % | 数値を百分率で表示します。 | 8% は、.08 として表示されます。 | +| \# | 追加のゼロを表示しない、桁のプレースホルダー。もしプレースホルダーの数以上に小数点以下の桁数があった場合、それらの数字は丸められます。 | #.# は 1.54 を 1.5 として表示します。 | +| ? | 追加のゼロの分のスペースを残すが、そのゼロは表示しない桁のプレースホルダー。通常、数値を小数点の位置で揃えるために使用されます。 | $?? は最低 2桁のスペースを確保し、1桁の数値が混じっていても 2桁の場所に $記号が並ぶように指定します。 | +| \ | 後に続く文字を表示します。 | #.00\? は 123 を 123.00? として表示します。 | +| / | 数値に対して使用した場合、分数として表記します。テキスト、日付、時刻に対して使用した場合、それらをそのまま表示します。 | #/# は .75 を 3/4 として表示します。 | +| \[ ] | 条件つき書式を作成します。 | \[>100]\[GREEN]#,##0;\[`<=-100`]\[YELLOW]#,##0;\[BLUE]#,##0 | +| E | 指数表記のフォーマット。 | #E+# - は 1,500,500 を 2E+6 として表示します。 | +| \[color] | テキストまたは数値を指定カラーで表示します。 | \[Green]###.##\[Red]-###.### | #### 例題 @@ -188,61 +188,61 @@ VP SET VALUE(VP Cell("ViewProArea";3;9);New object("value";!2024-12-18!);"time"; カレント言語設定における日付と時間のカスタムパターンを作成したい場合、以下のコードを組み合わせて使用することができます: -| | コード
    (文字の大小の区別なし) | 説明 | 例題 | -| ---- | ---------------------------------------------------------- | ----------------------------- | --------------------------------------------------------------- | -| Date | | | (January 1, 2019) | -| | m | 先頭のゼロなしの月表示 | 1 | -| | mm | 先頭のゼロありの月表示 | 01 | -| | mmm | 短い月名 | Jan | -| | mmmm | 長い月名 | January | -| | d | 先頭のゼロなしの日付表示 | 1 | -| | dd | 先頭のゼロありの日付表示 | 01 | -| | ddd | 短い曜日名 | Tue | -| | dddd | 長い曜日名 | Tuesday | -| | yy | 短い年表示 | 19 | -| | yyyy | 長い年表示 | 2019 | -| Time | | | (2:03:05 PM) | -| | h | 先頭のゼロなしの時間。 0-23の値 | 2 | -| | hh | 先頭のゼロありの時間。 00-23の値 | 02 | -| | m | 先頭のゼロなしの秒数。 0-59の値 | 3 | -| | mm | 先頭のゼロありの秒数。 00-59の値 | 03 | -| | s | 先頭のゼロなしの分数。 0-59の値 | 5 | -| | ss | 先頭のゼロありの分数。 00-59の値 | 05 | -| | \[h] | 経過時間の時間数 | 14 (24 を超える表示も可能) | -| | \[mm] | 経過時間の分数 | 843 | -| | \[ss] | 経過時間の秒数 | 50585 | -| | AM/PM | 午前/午後。 省略された場合、24時間表記が適用されます。 | PM | +| | コード
    (文字の大小の区別なし) | 説明 | 例題 | +| ---- | ---------------------------------------------------------- | ---------------------------- | --------------------------------------------------------------- | +| Date | | | (January 1, 2019) | +| | m | 先頭のゼロなしの月表示 | 1 | +| | mm | 先頭のゼロありの月表示 | 01 | +| | mmm | 短い月名 | Jan | +| | mmmm | 長い月名 | January | +| | d | 先頭のゼロなしの日付表示 | 1 | +| | dd | 先頭のゼロありの日付表示 | 01 | +| | ddd | 短い曜日名 | Tue | +| | dddd | 長い曜日名 | Tuesday | +| | yy | 短い年表示 | 19 | +| | yyyy | 長い年表示 | 2019 | +| Time | | | (2:03:05 PM) | +| | h | 先頭のゼロなしの時間。 0-23の値 | 2 | +| | hh | 先頭のゼロありの時間。 00-23の値 | 02 | +| | m | 先頭のゼロなしの秒数。 0-59の値 | 3 | +| | mm | 先頭のゼロありの秒数。 00-59の値 | 03 | +| | s | 先頭のゼロなしの分数。 0-59の値 | 5 | +| | ss | 先頭のゼロありの分数。 00-59の値 | 05 | +| | \[h] | 経過時間の時間数 | 14 (24 を超える表示も可能) | +| | \[mm] | 経過時間の分数 | 843 | +| | \[ss] | 経過時間の秒数 | 50585 | +| | AM/PM | 午前/午後。省略された場合、24時間表記が適用されます。 | PM | > 'm' のコードはその位置とパターンに応じて解釈されます。 'h' または 'hh' の直後、あるいは 's' または 'ss' の直前に位置する場合には分を表すと解釈されますが、それ以外の場合には月を表すと解釈されます。 ### 追加の記号 -上記で説明されている特殊文字とコードに加えて、フォーマットパターンに使用可能な追加の文字と記号があります。 これらの追加文字と記号は \ または "" を必要とせず、フォーマットパターンの解釈に影響することはありません。 これらはパターン内において "そのまま" 表示されます。 - -| 文字 | 説明 | 例題 | -| ---------------------- | ------------------------------------ | -------------------------------------------- | -| + と - | プラス記号およびマイナス記号 | ### + ### = ###,##\# | -| ( ) | 左と右のカッコ記号 | (-###.##) | -| : | コロン | hh:mm:ss | -| ^ | キャレット | #\^# | -| ' | アポストロフィー | '###### | -| { } | 中カッコ | {###,###,###} | -| `< >` | 小なり大なり | `## >##` | -| = | 等号 | #+#=## | -| / | フォワードスラッシュ。 数値に対して使用した場合、分数として表記します。 | mm/dd/yyyy | -| ! | 感嘆符 | $###.00! | -| & | アンパサンド | "Hello" & "Welcome" | -| ~ | チルダ | ~## | -| | スペース文字 | | -| € | ユーロ | €###.00 | -| £ | 英ポンド | £###.00 | -| ¥ | 日本円 | ¥###.00 | -| $ | ドル記号 | $###.00 | -| ¢ | セント記号 | .00¢ | +上記で説明されている特殊文字とコードに加えて、フォーマットパターンに使用可能な追加の文字と記号があります。これらの追加文字と記号は \ または "" を必要とせず、フォーマットパターンの解釈に影響することはありません。これらはパターン内において "そのまま" 表示されます。 + +| 文字 | 説明 | 例題 | +| ---------------------- | ----------------------------------- | -------------------------------------------- | +| + と - | プラス記号およびマイナス記号 | ### + ### = ###,##\# | +| ( ) | 左と右のカッコ記号 | (-###.##) | +| : | コロン | hh:mm:ss | +| ^ | キャレット | #\^# | +| ' | アポストロフィー | '###### | +| { } | 中カッコ | {###,###,###} | +| `< >` | 小なり大なり | `## >##` | +| = | 等号 | #+#=## | +| / | フォワードスラッシュ。数値に対して使用した場合、分数として表記します。 | mm/dd/yyyy | +| ! | 感嘆符 | $###.00! | +| & | アンパサンド | "Hello" & "Welcome" | +| ~ | チルダ | ~## | +| | スペース文字 | | +| € | ユーロ | €###.00 | +| £ | 英ポンド | £###.00 | +| ¥ | 日本円 | ¥###.00 | +| $ | ドル記号 | $###.00 | +| ¢ | セント記号 | .00¢ | ## 印刷属性 -4D View Pro 印刷属性を使って、4D View Pro エリアの印刷に関するすべての項目を管理することができます。 これらの属性は以下のコマンドによって操作します: +4D View Pro 印刷属性を使って、4D View Pro エリアの印刷に関するすべての項目を管理することができます。これらの属性は以下のコマンドによって操作します: - [VP SET PRINT INFO](commands/vp-set-print-info.md) - [VP Get print info](commands/vp-get-print-info.md) @@ -251,16 +251,16 @@ VP SET VALUE(VP Cell("ViewProArea";3;9);New object("value";!2024-12-18!);"time"; カラム属性と行属性を使って、カラムと行の始まり、終わり、そして繰り返しについて指定します。 -| プロパティ | 型 | 説明 | -| ----------------- | ------- | ----------------------------------------------------------------- | -| columnEnd | longint | セルレンジ内で印刷する最後のカラム。 デフォルト値 = -1 (全カラム) | -| columnStart | longint | セルレンジ内で印刷する最初のカラム。 デフォルト値 = -1 (全カラム) | -| repeatColumnEnd | longint | 各ページの左に印刷するカラムのレンジの、最後のカラム。 デフォルト値 = -1 (全カラム) | -| repeatColumnStart | longint | 各ページの左に印刷するカラムのレンジの、最初のカラム。 デフォルト値 = -1 (全カラム) | -| repeatRowEnd | longint | 各ページの上に印刷する行のレンジの、最後の行。 デフォルト値 = -1 (すべての行) | -| repeatRowStart | longint | 各ページの上に印刷する行のレンジの、最初の行。 デフォルト値 = -1 (すべての行) | -| rowEnd | longint | セルレンジ内で印刷する最後の行。 デフォルト値 = -1 (すべての行) | -| rowStart | longint | セルレンジ内で印刷する最初の行。 デフォルト値 = -1 (すべての行) | +| プロパティ | 型 | 説明 | +| ----------------- | ------- | ---------------------------------------------------------------- | +| columnEnd | longint | セルレンジ内で印刷する最後のカラム。デフォルト値 = -1 (全カラム) | +| columnStart | longint | セルレンジ内で印刷する最初のカラム。デフォルト値 = -1 (全カラム) | +| repeatColumnEnd | longint | 各ページの左に印刷するカラムのレンジの、最後のカラム。デフォルト値 = -1 (全カラム) | +| repeatColumnStart | longint | 各ページの左に印刷するカラムのレンジの、最初のカラム。デフォルト値 = -1 (全カラム) | +| repeatRowEnd | longint | 各ページの上に印刷する行のレンジの、最後の行。デフォルト値 = -1 (すべての行) | +| repeatRowStart | longint | 各ページの上に印刷する行のレンジの、最初の行。デフォルト値 = -1 (すべての行) | +| rowEnd | longint | セルレンジ内で印刷する最後の行。デフォルト値 = -1 (すべての行) | +| rowStart | longint | セルレンジ内で印刷する最初の行。デフォルト値 = -1 (すべての行) | ### ヘッダー / フッター @@ -281,7 +281,7 @@ VP SET VALUE(VP Cell("ViewProArea";3;9);New object("value";!2024-12-18!);"time"; | headerRight | text | 印刷ページの右ヘッダーのテキストとフォーマット | | headerRightImage | picture | text\* | ヘッダーの右セクションの画像 | -\* テキスト型を使用する場合には、画像のファイルパス (絶対パスまたは相対パス) を渡します。 相対パスを渡す場合、ファイルはデータベースのストラクチャーファイルのと階層に置かれてなければなりません。 Windows では、ファイル拡張子も含めて渡します。 画像指定に使用するデータ型にかかわらず、4D View Pro エリアには (参照ではなく) 画像そのものが保存され、[VP Get print info](commands/vp-get-print-info.md) によって返されます。 +\* テキスト型を使用する場合には、画像のファイルパス (絶対パスまたは相対パス) を渡します。相対パスを渡す場合、ファイルはデータベースのストラクチャーファイルのと階層に置かれてなければなりません。 Windows では、ファイル拡張子も含めて渡します。画像指定に使用するデータ型にかかわらず、4D View Pro エリアには (参照ではなく) 画像そのものが保存され、[VP Get print info](commands/vp-get-print-info.md) によって返されます。 ### 特殊文字 @@ -296,7 +296,7 @@ VP SET VALUE(VP Cell("ViewProArea";3;9);New object("value";!2024-12-18!);"time"; | T | 現在の時刻 | printInfo.headerLeft:="時刻は &T です" | 時刻は 16:30:36 です | | | G | ピクチャー | printInfo.headerLeftImage:=smiley
    printInfo.headerLeft:="&G" | ![](../assets/en/ViewPro/apx_vpPrintAttributes1.PNG) | | | S | 打ち消し線 | printInfo.headerLeft:="&Sこれはテキストです" | ~~これはテキストです~~ | | -| U | 下線 | printInfo.headerLeft:="&Uこれはテキストです" | これはテキストです (下線) | | +| U | 下線 | printInfo.headerLeft:="&Uこれはテキストです" | これはテキストです(下線) | | | B | 太字 | printInfo.headerLeft:="&Bこれはテキストです" | **これはテキストです** | | | I | イタリック | printInfo.headerLeft:="&Iこれはテキストです" | *これはテキストです* | | | " | フォント指定 | printInfo.headerLeft:="&\"Lucida Console\"&14This is text." | ![](../assets/en/ViewPro/apx_vpPrintAttributes2.PNG) | | @@ -308,15 +308,15 @@ VP SET VALUE(VP Cell("ViewProArea";3;9);New object("value";!2024-12-18!);"time"; マージン属性は、印刷時の 4D View Pro エリアのマージンを指定するために使用されます。 100分の1インチ単位で表現されます。 -| プロパティ | | 型 | 説明 | -| ------ | ------ | ------- | ----------------------------------- | -| margin | | object | 印刷マージン | -| | top | longint | 上部マージン、100分の1インチ単位。 デフォルト値 = 75 | -| | bottom | longint | 下部マージン、100分の1インチ単位。 デフォルト値 = 75 | -| | left | longint | 右マージン、100分の1インチ単位。 デフォルト値 = 70 | -| | right | longint | 左マージン、100分の1インチ単位。 デフォルト値 = 70 | -| | header | longint | ヘッダーのオフセット、100分の1インチ単位。 デフォルト値 = 30 | -| | footer | longint | フッターのオフセット、100分の1インチ単位。 デフォルト値 = 30 | +| プロパティ | | 型 | 説明 | +| ------ | ------ | ------- | ---------------------------------- | +| margin | | object | 印刷マージン | +| | top | longint | 上部マージン、100分の1インチ単位。デフォルト値 = 75 | +| | bottom | longint | 下部マージン、100分の1インチ単位。デフォルト値 = 75 | +| | left | longint | 右マージン、100分の1インチ単位。デフォルト値 = 70 | +| | right | longint | 左マージン、100分の1インチ単位。デフォルト値 = 70 | +| | header | longint | ヘッダーのオフセット、100分の1インチ単位。デフォルト値 = 30 | +| | footer | longint | フッターのオフセット、100分の1インチ単位。デフォルト値 = 30 | ### 方向 @@ -324,83 +324,82 @@ VP SET VALUE(VP Cell("ViewProArea";3;9);New object("value";!2024-12-18!);"time"; > この属性はレンダリング情報のみを定義します。 -| プロパティ | 型 | 説明 | -| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| orientation | longint | ページの向き。 とりうる値: `vk print page orientation landscape`, `vk print page orientation portrait` (デフォルト) | +| プロパティ | 型 | 説明 | +| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| orientation | longint | ページの向き。とりうる値: `vk print page orientation landscape`, `vk print page orientation portrait` (デフォルト) | ### ページ ページ属性は、一般的なドキュメント印刷設定を指定するのに使用されます。 -| プロパティ | 型 | 説明 | -| --------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| blackAndWhite | boolean | 白黒で印刷します。

    デフォルト値 = false

    **注**: PDF はこの属性に影響されません。 白黒で印刷します。 白黒で印刷します。

    デフォルト値 = false

    **注**: PDF はこの属性に影響されません。 PDF のカラーはそのままです。

    白黒で印刷します。 白黒で印刷します。

    デフォルト値 = false

    **注**: PDF はこの属性に影響されません。 PDF のカラーはそのままです。

    PDF のカラーはそのままです。

    | -| centering | longint | 印刷ページ上でコンテンツをどのように中央揃えするかを指定します。 とりうる値: `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (デフォルト), `vk print centering vertical` | -| firstPageNumber | longint | 最初のページに印刷するページ番号。 デフォルト値 = 1 | -| pageOrder | longint | ページの印刷順。 とりうる値: `vk print page order auto` (デフォルト), `vk print page order down then over`, `vk print page order over then down`. | -| pageRange | text | 印刷されるページの範囲 | -| qualityFactor | longint | 印刷の品質指定 (1 - 8)。 高ければ印刷の質は高くなりますが、印刷のパフォーマンスに影響する可能性があります。

    デフォルト値 = 2

    | -| useMax | boolean | データのあるカラムと行のみが印刷されます。

    デフォルト値 = true

    | -| zoomFactor | real | 印刷ページの拡大/縮小率。

    デフォルト値 = 1

    | +| プロパティ | 型 | 説明 | +| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| blackAndWhite | boolean | 白黒で印刷します。

    デフォルト値 = false

    **注**: PDF はこの属性に影響されません。白黒で印刷します。 白黒で印刷します。

    デフォルト値 = false

    **注**: PDF はこの属性に影響されません。 PDF のカラーはそのままです。

    白黒で印刷します。 白黒で印刷します。

    デフォルト値 = false

    **注**: PDF はこの属性に影響されません。 PDF のカラーはそのままです。

    PDF のカラーはそのままです。

    | +| centering | longint | 印刷ページ上でコンテンツをどのように中央揃えするかを指定します。とりうる値: `vk print centering both`, `vk print centering horizontal`, `vk print centering none` (デフォルト), `vk print centering vertical` | +| firstPageNumber | longint | 最初のページに印刷するページ番号。 デフォルト値 = 1 | +| pageOrder | longint | ページの印刷順。とりうる値: `vk print page order auto` (デフォルト), `vk print page order down then over`, `vk print page order over then down`. | +| pageRange | text | 印刷されるページの範囲 | +| qualityFactor | longint | 印刷の品質指定 (1 - 8)。高ければ印刷の質は高くなりますが、印刷のパフォーマンスに影響する可能性があります。

    デフォルト値 = 2

    | +| useMax | boolean | データのあるカラムと行のみが印刷されます。

    デフォルト値 = true

    | +| zoomFactor | real | 印刷ページの拡大/縮小率。

    デフォルト値 = 1

    | ### 用紙サイズ -用紙サイズ属性は印刷に使用する用紙の寸法や規格サイズを指定します。 用紙サイズを定義するには 2つの方法があります: +用紙サイズ属性は印刷に使用する用紙の寸法や規格サイズを指定します。用紙サイズを定義するには 2つの方法があります: - カスタムサイズ - height と width 属性を使用 - 規格サイズ - kind 属性を使用 -| プロパティ | | 型 | 説明 | -| --------- | ------ | ------- | ------------------------------------------------------------------------------------------------------------------- | -| paperSize | | object | 印刷に使用する用紙の寸法 (height、width) または規格 (kind) | -| | height | longint | 用紙の高さ、100分の1インチ単位 | -| | width | longint | 用紙の幅、100分の1インチ単位 | -| | kind | text | 用紙の規格サイズの名前 (例: A2、A4、legal、など)。 `GET PRINT OPTION` によって返されます。 デフォルト値 = "letter" | +| プロパティ | | 型 | 説明 | +| --------- | ------ | ------- | ------------------------------------------------------------------------------------------------------------------ | +| paperSize | | object | 印刷に使用する用紙の寸法 (height、width) または規格 (kind) | +| | height | longint | 用紙の高さ、100分の1インチ単位 | +| | width | longint | 用紙の幅、100分の1インチ単位 | +| | kind | text | 用紙の規格サイズの名前 (例: A2、A4、legal、など)。 `GET PRINT OPTION` によって返されます。デフォルト値 = "letter" | - `height` と `width` プロパティで用紙サイズを指定した場合、[`VP Get print info`](./commands/vp-get-print-info.md) が返す用紙サイズ属性の `kind` プロパティ値は `custom` です。 - `kind` プロパティで用紙サイズを設定する場合、以下のいずれかを使用することができます: - [ SpreadJS のフォーマットリスト](https://developer.mescius.com/spreadjs/api/enums/GC.Spread.Sheets.Print.PaperKind) のフォーマット - - [`PRINT OPTION VALUES`](../commands/print-option-values) コマンドによって返されるフォーマットのひとつ。 - この場合、[`VP Get print info`](./commands/vp-get-print-info.md) は対応するフォーマットを高さと幅とともに返します。 + - [`PRINT OPTION VALUES`](../commands/print-option-values) コマンドによって返されるフォーマットのひとつ。この場合、[`VP Get print info`](./commands/vp-get-print-info.md) は対応するフォーマットを高さと幅とともに返します。 ### スケール スケール属性は印刷の最適化と調整のために使用されます。 -| プロパティ | 型 | 説明 | -| -------------- | ------- | ------------------------------------------------------------- | -| bestFitColumns | boolean | 印刷時、カラムの幅はテキストの最大幅に合うように調整されます。 デフォルト値 = false | -| bestFitRows | boolean | 印刷時、行の高さはテキストの最大高さに合うように調整されます。 デフォルト値 = false | -| fitPagesTall | longint | 最適化印刷時、チェックする垂直方向 (縦向き) のページ数。 デフォルト値 = -1 | -| fitPagesWide | longint | 最適化印刷時、チェックする水平方向 (横向き) のページ数。 デフォルト値 = -1 | +| プロパティ | 型 | 説明 | +| -------------- | ------- | ------------------------------------------------------------ | +| bestFitColumns | boolean | 印刷時、カラムの幅はテキストの最大幅に合うように調整されます。デフォルト値 = false | +| bestFitRows | boolean | 印刷時、行の高さはテキストの最大高さに合うように調整されます。デフォルト値 = false | +| fitPagesTall | longint | 最適化印刷時、チェックする垂直方向 (縦向き) のページ数。デフォルト値 = -1 | +| fitPagesWide | longint | 最適化印刷時、チェックする水平方向 (横向き) のページ数。デフォルト値 = -1 | ### 表示 / 非表示 表示 / 非表示属性は 4D View Pro エリア要素の表示 (印刷) 状態を指定するのに使用されます。 -| プロパティ | 型 | 説明 | -| ---------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| showBorder | boolean | 外枠の境界線を印刷します。 デフォルト値 = true | -| showColumnHeader | longint | カラムヘッダーの印刷設定。 とりうる値: `vk print visibility hide`, `vk print visibility inherit` (デフォルト), `vk print visibility show`, `vk print visibility show once` | -| showGridLine | boolean | 枠線を印刷します。 デフォルト値 = false | -| showRowHeader | longint | 行ヘッダーの印刷設定。 とりうる値: `vk print visibility hide`, `vk print visibility inherit` (デフォルト), `vk print visibility show`, `vk print visibility show once` | +| プロパティ | 型 | 説明 | +| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| showBorder | boolean | 外枠の境界線を印刷します。 デフォルト値 = true | +| showColumnHeader | longint | カラムヘッダーの印刷設定。とりうる値: `vk print visibility hide`, `vk print visibility inherit` (デフォルト), `vk print visibility show`, `vk print visibility show once` | +| showGridLine | boolean | 枠線を印刷します。デフォルト値 = false | +| showRowHeader | longint | 行ヘッダーの印刷設定。とりうる値: `vk print visibility hide`, `vk print visibility inherit` (デフォルト), `vk print visibility show`, `vk print visibility show once` | ### ウォーターマーク ウォーターマーク属性は 4D View Pro エリアに透かしとして、テキストまたは画像を重ねて表示するために使用されます。 -| プロパティ | | 型 | 説明 | -| --------- | ---------------------------------------------------------------------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| watermark | | collection | ウォーターマーク設定のコレクション。 デフォルト値: undefined | -| | \[ ].height | longint | ウォーターマークのテキスト/画像の高さ。 | -| | \[ ].imageSrc | picture | text\* | ウォーターマークのテキスト/画像。 | -| | \[ ].page | text | ウォーターマークが印刷されるページ。 全ページに印刷: "all"。 特定のページ: カンマで区切られたページ番号またはページの範囲。 例: "1,3,5-12" | -| | \[ ].width | longint | ウォーターマークのテキスト/画像の幅。 | -| | \[ ].x | longint | ウォーターマークのテキスト/画像の左上端の水平方向の座標 | -| | \[ ].y | longint | ウォーターマークのテキスト/画像の左上端の垂直方向の座標 | +| プロパティ | | 型 | 説明 | +| --------- | ---------------------------------------------------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| watermark | | collection | ウォーターマーク設定のコレクション。デフォルト値: undefined | +| | \[ ].height | longint | ウォーターマークのテキスト/画像の高さ。 | +| | \[ ].imageSrc | picture | text\* | ウォーターマークのテキスト/画像。 | +| | \[ ].page | text | ウォーターマークが印刷されるページ。全ページに印刷: "all"。特定のページ: カンマで区切られたページ番号またはページの範囲。例: "1,3,5-12" | +| | \[ ].width | longint | ウォーターマークのテキスト/画像の幅。 | +| | \[ ].x | longint | ウォーターマークのテキスト/画像の左上端の水平方向の座標 | +| | \[ ].y | longint | ウォーターマークのテキスト/画像の左上端の垂直方向の座標 | -\* テキスト型を使用する場合には、画像のファイルパス (絶対パスまたは相対パス) を渡します。 相対パスを渡す場合、ファイルはデータベースのストラクチャーファイルのと階層に置かれてなければなりません。 Windows では、ファイル拡張子も含めて渡します。 画像指定に使用するデータ型にかかわらず、4D View Pro エリアには (参照ではなく) 画像そのものが保存され、[VP Get print info](commands/vp-get-print-info.md) によって返されます。 +\* テキスト型を使用する場合には、画像のファイルパス (絶対パスまたは相対パス) を渡します。相対パスを渡す場合、ファイルはデータベースのストラクチャーファイルのと階層に置かれてなければなりません。 Windows では、ファイル拡張子も含めて渡します。画像指定に使用するデータ型にかかわらず、4D View Pro エリアには (参照ではなく) 画像そのものが保存され、[VP Get print info](commands/vp-get-print-info.md) によって返されます。 ## スタイルオブジェクト {#style-objects} {#style-objects} @@ -408,11 +407,11 @@ VP SET VALUE(VP Cell("ViewProArea";3;9);New object("value";!2024-12-18!);"time"; ### スタイルオブジェクトとスタイルシート -スタイルオブジェクトには、スタイル設定が格納されます。 これらはスタイルシートで使用するか、あるいはそのまま使用することができます。 スタイルオブジェクトはスタイルシートと組み合わせて使用することもでき、ドキュメントの他の部分に影響を及ぼすことなく個別のセルレンジに異なる設定を指定することもできます。 [VP SET CELL STYLE](commands/vp-set-cell-style.md) および [VP SET DEFAULT STYLE](commands/vp-set-default-style.md) コマンドでは、スタイルオブジェクトを直接使用することができます。 [VP SET TABLE THEME](commands/vp-set-table-theme.md) または [VP CREATE TABLE](commands/vp-create-table.md) コマンドを使用してカスタムテーブルテーマを定義する場合にも、スタイル オブジェクトが使用できます。 +スタイルオブジェクトには、スタイル設定が格納されます。これらはスタイルシートで使用するか、あるいはそのまま使用することができます。スタイルオブジェクトはスタイルシートと組み合わせて使用することもでき、ドキュメントの他の部分に影響を及ぼすことなく個別のセルレンジに異なる設定を指定することもできます。 [VP SET CELL STYLE](commands/vp-set-cell-style.md) および [VP SET DEFAULT STYLE](commands/vp-set-default-style.md) コマンドでは、スタイルオブジェクトを直接使用することができます。 [VP SET TABLE THEME](commands/vp-set-table-theme.md) または [VP CREATE TABLE](commands/vp-create-table.md) コマンドを使用してカスタムテーブルテーマを定義する場合にも、スタイル オブジェクトが使用できます。 -**スタイルシート** は、プロパティの組み合わせをスタイルオブジェクトにまとめたもので、それによって 4D View Pro ドキュメントのすべてのセルの見た目を指定します。 ドキュメントとともに保存されたスタイルシートを使用して、単一のシート、複数のシート、あるいはワークブック全体に対してプロパティを設定することができます。 4D View Pro スタイルシートは作成時に名前が与えられ、この名前はスタイルシートの "name" プロパティに保存されます。 これによりスタイルシートの使用が容易になり、また注意深く命名することで、その定義と目的を分かりやすくすることもできます (例: Letterhead_internal、Letterhead_external、など)。 +**スタイルシート** は、プロパティの組み合わせをスタイルオブジェクトにまとめたもので、それによって 4D View Pro ドキュメントのすべてのセルの見た目を指定します。ドキュメントとともに保存されたスタイルシートを使用して、単一のシート、複数のシート、あるいはワークブック全体に対してプロパティを設定することができます。 4D View Pro スタイルシートは作成時に名前が与えられ、この名前はスタイルシートの "name" プロパティに保存されます。これによりスタイルシートの使用が容易になり、また注意深く命名することで、その定義と目的を分かりやすくすることもできます (例: Letterhead_internal、Letterhead_external、など)。 -スタイルシートは [VP ADD STYLESHEET](commands/vp-add-stylesheet.md) コマンドで作成され、[VP SET DEFAULT STYLE](commands/vp-set-default-style.md) あるいは [VP SET CELL STYLE](commands/vp-set-cell-style.md) コマンドで適用されます。 スタイルシートは [VP REMOVE STYLESHEET](commands/vp-remove-stylesheet.md) コマンドで削除できます。 +スタイルシートは [VP ADD STYLESHEET](commands/vp-add-stylesheet.md) コマンドで作成され、[VP SET DEFAULT STYLE](commands/vp-set-default-style.md) あるいは [VP SET CELL STYLE](commands/vp-set-cell-style.md) コマンドで適用されます。スタイルシートは [VP REMOVE STYLESHEET](commands/vp-remove-stylesheet.md) コマンドで削除できます。 [VP Get stylesheet](commands/vp-get-stylesheet.md) コマンドを使用することでスタイルシートのスタイルオブジェクトを取得できます。また、[VP Get stylesheets](commands/vp-get-stylesheets.md) コマンドを使用して複数のスタイルシートのスタイルオブジェクトのコレクションを取得することもできます。 @@ -432,60 +431,60 @@ VP SET DEFAULT STYLE("myDoc";$style) #### 背景色と文字色 -| プロパティ | 型 | 説明 | とりうる値 | -| --------------------- | ------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| backColor | text | 背景色を定義します。 | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | -| backgroundImage | picture, text | 背景画像を指定します。 | 直接指定するか、または画像パス (フルパス、またはファイル名のみ) で指定することができます。 ファイル名のみを使用する場合、ファイルはデータベースのストラクチャーファイルと同じ階層に置かれている必要があります。 指定の方法 (ピクチャーまたはテキスト) に関わらず、ピクチャーはドキュメントとともに保存されます。 画像のサイズが大きい場合、ドキュメントのサイズに影響する場合があります。 Windows での注意: ファイル拡張子も含める必要があります。 | -| backgroundImageLayout | longint | 背景画像のレイアウトを定義します。 | `vk image layout center`, `vk image layout none`, `vk image layout stretch`, `vk image layout zoom` | -| foreColor | text | 文字のカラーを定義します。 | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | +| プロパティ | 型 | 説明 | とりうる値 | +| --------------------- | ------------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| backColor | text | 背景色を定義します。 | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | +| backgroundImage | picture, text | 背景画像を指定します。 | 直接指定するか、または画像パス (フルパス、またはファイル名のみ) で指定することができます。ファイル名のみを使用する場合、ファイルはデータベースのストラクチャーファイルと同じ階層に置かれている必要があります。指定の方法 (ピクチャーまたはテキスト) に関わらず、ピクチャーはドキュメントとともに保存されます。画像のサイズが大きい場合、ドキュメントのサイズに影響する場合があります。 Windows での注意: ファイル拡張子も含める必要があります。 | +| backgroundImageLayout | longint | 背景画像のレイアウトを定義します。 | `vk image layout center`, `vk image layout none`, `vk image layout stretch`, `vk image layout zoom` | +| foreColor | text | 文字のカラーを定義します。 | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | #### 境界線 -| プロパティ | | 型 | 説明 | とりうる値 | -| -------------------------------------------------------------------------- | ----- | ------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| borderBottom, borderLeft, borderRight, borderTop, diagonalDown, diagonalUp | | object | それぞれに対応する境界線を定義します。 | | -| | color | text | 境界線のカラーを定義します。 デフォルト = black | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | -| | style | longint | 境界線のスタイルを定義します。 デフォルト = empty。 null または未定義をとることはできません。 | `vk line style dash dot`, `vk line style dash dot dot`, `vk line style dashed`, `vk line style dotted`, `vk line style double`, `vk line style empty`, `vk line style hair`, `vk line style medium`, `vk line style medium dash dot`, `vk line style medium dash dot dot`,`vk line style medium dashed`, `vk line style slanted dash dot`, `vk line style thick` | +| プロパティ | | 型 | 説明 | とりうる値 | +| -------------------------------------------------------------------------- | ----- | ------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| borderBottom, borderLeft, borderRight, borderTop, diagonalDown, diagonalUp | | object | それぞれに対応する境界線を定義します。 | | +| | color | text | 境界線のカラーを定義します。デフォルト = black | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | +| | style | longint | 境界線のスタイルを定義します。デフォルト = empty。 null または未定義をとることはできません。 | `vk line style dash dot`, `vk line style dash dot dot`, `vk line style dashed`, `vk line style dotted`, `vk line style double`, `vk line style empty`, `vk line style hair`, `vk line style medium`, `vk line style medium dash dot`, `vk line style medium dash dot dot`,`vk line style medium dashed`, `vk line style slanted dash dot`, `vk line style thick` | #### フォントとテキスト -| プロパティ | | 型 | 説明 | とりうる値 | -| --------------- | ---------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| font | | text | フォントの特徴を CSS の fontショートハンドで指定します ("font-style font-variant font-weight font-size/line-height font-family")。 例: "14pt Century Gothic"。 フォントサイズ (font-size) とフォントファミリー (font-family) の値は必須です。 その他の値が省略された場合には、そのデフォルト値が使用されます。 注: フォント名にスペースが含まれる場合、その名前は引用符 ("") で括られる必要があります。 | CSS fontショートハンド。 4D ではフォントの特徴をオブジェクトとして管理するためのユーティリティコマンドを提供しています: [`VP Font to object`](commands/vp-font-to-object.md) および [`VP Object to font`](commands/vp-object-to-font.md) | -| formatter | | text | 値や日時に対するパターン。 | 数値/テキスト/日付/時間フォーマット、特殊文字など。 [セルフォーマット](#セルフォーマット) 参照。 | -| isVerticalText | | boolean | テキストの向きを指定します。 | true = 縦方向のテキスト, false = 横方向のテキスト | -| labelOptions | | object | セルラベルのオプションを定義します (ウォーターマークオプション) | | -| | alignment | longint | セルラベルの位置を指定します。 任意プロパティです。 | `vk label alignment top left`, `vk label alignment bottom left`, `vk label alignment top center`, `vk label alignment bottom center`, `vk label alignment top right`, `vk label alignment bottom right` | -| | visibility | longint | セルラベルの表示状態を指定します。 任意プロパティです。 | `vk label visibility auto`, `vk label visibility hidden`, `vk label visibility visible` | -| | foreColor | text | 文字のカラーを定義します。 任意プロパティです。 | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | -| | font | text | フォントの特徴を CSS の fontショートハンドで指定します ("font-style font-variant font-weight font-size/line-height font-family")。 フォントサイズ (font-size) とフォントファミリー (font-family) の値は必須です。 | | -| textDecoration | | longint | テキストに追加する装飾を指定します。 | `vk text decoration double underline`, `vk text decoration line through`, `vk text decoration none`, `vk text decoration overline`, `vk text decoration underline` | -| textIndent | | longint | テキストのインデントを定義します。 1 = 8ピクセル | | -| textOrientation | | longint | セル内のテキストの回転角度を定義します。 -90 から 90 の数値 | | -| watermark | | text | ウォーターマーク (セルラベル) のコンテンツを定義します。 | | -| wordWrap | | boolean | テキストを折り返すかどうかを指定します。 | true = テキストを折り返す、false = テキストを折り返さない | +| プロパティ | | 型 | 説明 | とりうる値 | +| --------------- | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| font | | text | フォントの特徴を CSS の fontショートハンドで指定します ("font-style font-variant font-weight font-size/line-height font-family")。例: "14pt Century Gothic"。フォントサイズ (font-size) とフォントファミリー (font-family) の値は必須です。その他の値が省略された場合には、そのデフォルト値が使用されます。注: フォント名にスペースが含まれる場合、その名前は引用符 ("") で括られる必要があります。 | CSS fontショートハンド。 4D ではフォントの特徴をオブジェクトとして管理するためのユーティリティコマンドを提供しています: [`VP Font to object`](commands/vp-font-to-object.md) および [`VP Object to font`](commands/vp-object-to-font.md) | +| formatter | | text | 値や日時に対するパターン。 | 数値/テキスト/日付/時間フォーマット、特殊文字など。[セルフォーマット](#セルフォーマット) 参照。 | +| isVerticalText | | boolean | テキストの向きを指定します。 | true = 縦方向のテキスト, false = 横方向のテキスト | +| labelOptions | | object | セルラベルのオプションを定義します (ウォーターマークオプション) | | +| | alignment | longint | セルラベルの位置を指定します。任意プロパティです。 | `vk label alignment top left`, `vk label alignment bottom left`, `vk label alignment top center`, `vk label alignment bottom center`, `vk label alignment top right`, `vk label alignment bottom right` | +| | visibility | longint | セルラベルの表示状態を指定します。任意プロパティです。 | `vk label visibility auto`, `vk label visibility hidden`, `vk label visibility visible` | +| | foreColor | text | 文字のカラーを定義します。任意プロパティです。 | CSSカラー "#rrggbb" シンタックス (推奨シンタックス)、CSSカラー "rgb(r,g,b)" シンタックス (代替シンタックス)、CSSカラーネーム (代替シンタックス) | +| | font | text | フォントの特徴を CSS の fontショートハンドで指定します ("font-style font-variant font-weight font-size/line-height font-family")。フォントサイズ (font-size) とフォントファミリー (font-family) の値は必須です。 | | +| textDecoration | | longint | テキストに追加する装飾を指定します。 | `vk text decoration double underline`, `vk text decoration line through`, `vk text decoration none`, `vk text decoration overline`, `vk text decoration underline` | +| textIndent | | longint | テキストのインデントを定義します。 1 = 8ピクセル | | +| textOrientation | | longint | セル内のテキストの回転角度を定義します。 -90 から 90 の数値 | | +| watermark | | text | ウォーターマーク (セルラベル) のコンテンツを定義します。 | | +| wordWrap | | boolean | テキストを折り返すかどうかを指定します。 | true = テキストを折り返す、false = テキストを折り返さない | #### レイアウト -| プロパティ | 型 | 説明 | とりうる値 | -| ----------- | ------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| cellPadding | text | セルのパッディングを定義します | | -| hAlign | longint | セルコンテンツの水平方向の揃え方を定義します | `vk horizontal align center`, `vk horizontal align general`, `vk horizontal align left`, `vk horizontal align right` | -| locked | boolean | セルの保護状態を指定します。 ただし、[シートの保護](#シートの保護) が有効化されている場合にのみ利用可能である点に注意してください。 | true = ロックされている、false = ロック解除 | -| shrinkToFit | boolean | セルのコンテンツが縮小されるかどうかを指定します。 | true = コンテンツ縮小、false = 縮小なし | -| tabStop | boolean | Tabキーを使用してセルにフォーカスできるかどうかを指定します。 | true = Tabキーでフォーカス可、false = Tabキーでフォーカス不可 | -| vAlign | longint | セルコンテンツの垂直方向の揃え方を定義します | `vk vertical align bottom`, `vk vertical align center`, `vk vertical align top` | +| プロパティ | 型 | 説明 | とりうる値 | +| ----------- | ------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| cellPadding | text | セルのパッディングを定義します | | +| hAlign | longint | セルコンテンツの水平方向の揃え方を定義します | `vk horizontal align center`, `vk horizontal align general`, `vk horizontal align left`, `vk horizontal align right` | +| locked | boolean | セルの保護状態を指定します。ただし、[シートの保護](#シートの保護) が有効化されている場合にのみ利用可能である点に注意してください。 | true = ロックされている、false = ロック解除 | +| shrinkToFit | boolean | セルのコンテンツが縮小されるかどうかを指定します。 | true = コンテンツ縮小、false = 縮小なし | +| tabStop | boolean | Tabキーを使用してセルにフォーカスできるかどうかを指定します。 | true = Tabキーでフォーカス可、false = Tabキーでフォーカス不可 | +| vAlign | longint | セルコンテンツの垂直方向の揃え方を定義します | `vk vertical align bottom`, `vk vertical align center`, `vk vertical align top` | #### スタイル情報 -| プロパティ | 型 | 説明 | -| ---------- | ---- | ----------------------------------------------------------------------------------------------------------------------- | -| name | text | スタイルの名前を定義します。 | -| parentName | text | カレントスタイルの元となっているスタイルを指定します。 まず親スタイルの値が適用され、次にカレントスタイルの値が適用されます。 カレントスタイルの変更は親スタイルには反映されません。 これはスタイルシートを使用している時のみ利用可能です。 | +| プロパティ | 型 | 説明 | +| ---------- | ---- | -------------------------------------------------------------------------------------------------------------------- | +| name | text | スタイルの名前を定義します。 | +| parentName | text | カレントスタイルの元となっているスタイルを指定します。まず親スタイルの値が適用され、次にカレントスタイルの値が適用されます。カレントスタイルの変更は親スタイルには反映されません。これはスタイルシートを使用している時のみ利用可能です。 | ## 4D View Pro オブジェクト -4D View Pro [オブジェクト](Concepts/dt_object.md) はスプレッドシートの中身をすべて保存します。 このオブジェクトは 4D View Pro によって自動的に管理されます。 [VP IMPORT FROM OBJECT](commands/vp-import-from-object.md) および [VP Export to object](commands/vp-export-to-object.md) コマンドによって、このオブジェクトを設定したり取得したりできます。 +4D View Pro [オブジェクト](Concepts/dt_object.md) はスプレッドシートの中身をすべて保存します。このオブジェクトは 4D View Pro によって自動的に管理されます。 [VP IMPORT FROM OBJECT](commands/vp-import-from-object.md) および [VP Export to object](commands/vp-export-to-object.md) コマンドによって、このオブジェクトを設定したり取得したりできます。 このオブジェクトには次のプロパティが含まれます: @@ -499,19 +498,19 @@ VP SET DEFAULT STYLE("myDoc";$style) ## 4D View Pro フォームオブジェクト変数 -The 4D View Pro フォームオブジェクト変数は、4D View Pro フォームエリアに紐づけられた [オブジェクト](Concepts/dt_object.md) 変数のことです。 この変数は、4D View Pro オブジェクトが使用する情報を管理します。 +The 4D View Pro フォームオブジェクト変数は、4D View Pro フォームエリアに紐づけられた [オブジェクト](Concepts/dt_object.md) 変数のことです。この変数は、4D View Pro オブジェクトが使用する情報を管理します。 -> 4D View Pro フォームオブジェクト変数は、情報目的 (例: デバッグなど) のためだけに存在します。 どのような状況においてもこれを編集してはいけません。 +> 4D View Pro フォームオブジェクト変数は、情報目的 (例: デバッグなど) のためだけに存在します。どのような状況においてもこれを編集してはいけません。 このオブジェクトには次のプロパティが含まれます: -| プロパティ | 値の型 | 説明 | -| -------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ViewPro.area | Text | 4D View Pro エリア名 | -| ViewPro.callbacks | Object | インポートやエクスポートなど、コールバックを必要とするコマンドが使用するための一時的な情報を保存します。 | -| ViewPro.commandBuffers | Collection | メソッドによって呼び出されるコマンドを順番に保存し、メソッド終了時、あるいはコマンドが値を返した時、あるいは [VP FLUSH COMMANDS](commands/vp-flush-commands.md) が呼び出された時に、それらのコマンドを (個別にではなく) バッチとして実行します。 この機構によって、送信されるリクエスト数が抑えられ、パフォーマンスが向上します。 | -| ViewPro.events | Object | [イベント](Events/overview.md) リスト。 | -| ViewPro.formulaBar | Boolean | フォーミュラバーが表示されているかどうかを示します。 "toolbar" インターフェースにおいてのみ利用可能です。 | -| ViewPro.inited | Boolean | 4D View Pro エリアが初期化されたかどうかを示します([On VP Ready](Events/onVpReady.md) 参照)。 | -| ViewPro.interface | Text | ユーザーインターフェースのタイプを指定します: "ribbon"、"toolbar"、"none"。 | +| プロパティ | 値の型 | 説明 | +| -------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ViewPro.area | Text | 4D View Pro エリア名 | +| ViewPro.callbacks | Object | インポートやエクスポートなど、コールバックを必要とするコマンドが使用するための一時的な情報を保存します。 | +| ViewPro.commandBuffers | Collection | メソッドによって呼び出されるコマンドを順番に保存し、メソッド終了時、あるいはコマンドが値を返した時、あるいは [VP FLUSH COMMANDS](commands/vp-flush-commands.md) が呼び出された時に、それらのコマンドを (個別にではなく) バッチとして実行します。この機構によって、送信されるリクエスト数が抑えられ、パフォーマンスが向上します。 | +| ViewPro.events | Object | [イベント](Events/overview.md) リスト。 | +| ViewPro.formulaBar | Boolean | フォーミュラバーが表示されているかどうかを示します。 "toolbar" インターフェースにおいてのみ利用可能です。 | +| ViewPro.inited | Boolean | 4D View Pro エリアが初期化されたかどうかを示します([On VP Ready](Events/onVpReady.md) 参照)。 | +| ViewPro.interface | Text | ユーザーインターフェースのタイプを指定します: "ribbon"、"toolbar"、"none"。 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/formulas.md b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/formulas.md index caf24741552c07..c116d1342e49e5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/formulas.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ViewPro/formulas.md @@ -21,11 +21,11 @@ title: フォーミュラとファンクション ![](../assets/en/ViewPro/formulas.PNG) -- 入力したい関数の頭文字を入力します。 すると、利用可能な関数と参照の一覧がポップアップメニューに表示され、必要な要素を選択することができます: +- 入力したい関数の頭文字を入力します。すると、利用可能な関数と参照の一覧がポップアップメニューに表示され、必要な要素を選択することができます: ![](../assets/en/ViewPro/formula2.png) -また、命名フォーミュラを作成すると、その名前で呼び出すことが可能です。 この場合、[VP ADD FORMULA NAME](commands/vp-add-formula-name.md) コマンドを使用して命名フォーミュラを入力します。 +また、命名フォーミュラを作成すると、その名前で呼び出すことが可能です。この場合、[VP ADD FORMULA NAME](commands/vp-add-formula-name.md) コマンドを使用して命名フォーミュラを入力します。 ### 演算子とオペランド @@ -40,7 +40,7 @@ title: フォーミュラとファンクション ## 値と演算子 -4D View Pro は 5つのデータ型をサポートします。 それぞれのデータ型について、特定の定数と演算子がサポートされています。 +4D View Pro は 5つのデータ型をサポートします。それぞれのデータ型について、特定の定数と演算子がサポートされています。 | データ型 | 値 | 演算子 | | ----------------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -81,13 +81,13 @@ title: フォーミュラとファンクション ## セル参照 -フォーミュラ (式) は多くの場合、セルアドレスを使って他のセルを参照します。 このような式を他のセルにコピーすることも可能です。 たとえば、C8 に入力された以下の式では、すぐ上にある 2つのセルの値を足して結果を表示します。 +フォーミュラ (式) は多くの場合、セルアドレスを使って他のセルを参照します。このような式を他のセルにコピーすることも可能です。たとえば、C8 に入力された以下の式では、すぐ上にある 2つのセルの値を足して結果を表示します。 ``` = C6 + C7 ``` -この式はセル C6 と C7 を参照します。 つまり、式内で使用する値については他のセルを参照するよう、4D View Pro に指示しています。 +この式はセル C6 と C7 を参照します。つまり、式内で使用する値については他のセルを参照するよう、4D View Pro に指示しています。 こういった式を別のセルにコピーあるいは移動させた場合、式内のセルアドレスは参照の仕方によって連動して変化したり変化しなかったりします。 @@ -97,25 +97,25 @@ title: フォーミュラとファンクション ### 参照の記法 -セル座標 ( `C5` など) のみを使用すると、4D View Pro はそれを相対参照として解釈します。 文字と数字の前に $ (ドル) 記号を入れることで、参照を絶対参照にすることができます (例: `$C$5`)。 +セル座標 ( `C5` など) のみを使用すると、4D View Pro はそれを相対参照として解釈します。文字と数字の前に $ (ドル) 記号を入れることで、参照を絶対参照にすることができます (例: `$C$5`)。 -ドル記号を文字あるいは数字の前だけに入れることで相対参照と絶対参照を組み合わせることができます (例: `$C5`、`C$5`)。 複合参照を使用すると、行かカラムを絶対参照として指定しながら、もう片方については相対的に参照させることが可能になります。 +ドル記号を文字あるいは数字の前だけに入れることで相対参照と絶対参照を組み合わせることができます (例: `$C5`、`C$5`)。複合参照を使用すると、行かカラムを絶対参照として指定しながら、もう片方については相対的に参照させることが可能になります。 -素早くかつ正確に絶対参照を指定するには、セルを命名し、その名前をセルアドレス代わりに使用する方法があります。 命名セルへの参照は常に絶対参照です。 命名セルまたは命名セルレンジを作成・編集するには、[`VP ADD RANGE NAME`](commands/vp-add-range-name.md) メソッドを使用します。 +素早くかつ正確に絶対参照を指定するには、セルを命名し、その名前をセルアドレス代わりに使用する方法があります。命名セルへの参照は常に絶対参照です。命名セルまたは命名セルレンジを作成・編集するには、[`VP ADD RANGE NAME`](commands/vp-add-range-name.md) メソッドを使用します。 以下の表は異なる記法による効果をまとめたものです: -| 例題 | 参照タイプ | 説明 | -| ---- | ----- | ------------------------------------------------------------------------------------ | -| C5 | 相対 | 参照は相対的にセル C5 を指しており、参照が最初に使用されたセルが位置の基準となります。 | -| $C$5 | 絶対 | 参照は絶対参照です。 どこで使用されるかにかかわらず、常にセル C5 を参照します。 | -| $C5 | 複合 | 常にカラム C を参照しますが、行の参照は相対的で、参照が最初に使用されたセルを基準に決まります。 | -| C$5 | 複合 | 常に 5行目を参照しますが、カラムの参照は相対的で、参照が最初に使用されたセルを基準に決まります。 | -| セル名 | 絶対 | 参照は絶対参照です。 どこで使用されるかにかかわらず、常に [命名されたセルまたはレンジ](commands/vp-add-range-name.md) を参照します。 | +| 例題 | 参照タイプ | 説明 | +| ---- | ----- | ----------------------------------------------------------------------------------- | +| C5 | 相対 | 参照は相対的にセル C5 を指しており、参照が最初に使用されたセルが位置の基準となります。 | +| $C$5 | 絶対 | 参照は絶対参照です。どこで使用されるかにかかわらず、常にセル C5 を参照します。 | +| $C5 | 複合 | 常にカラム C を参照しますが、行の参照は相対的で、参照が最初に使用されたセルを基準に決まります。 | +| C$5 | 複合 | 常に 5行目を参照しますが、カラムの参照は相対的で、参照が最初に使用されたセルを基準に決まります。 | +| セル名 | 絶対 | 参照は絶対参照です。どこで使用されるかにかかわらず、常に [命名されたセルまたはレンジ](commands/vp-add-range-name.md) を参照します。 | ## ビルトインファンクション -スプレッドシートのファンクションとは、セルの値を計算する規定のフォーミュラのことで、関数とも呼ばれます。 入力したい関数の頭文字を入力すると、利用可能な関数と参照の一覧がポップアップメニューに表示され、必要な要素を選択することができます: +スプレッドシートのファンクションとは、セルの値を計算する規定のフォーミュラのことで、関数とも呼ばれます。入力したい関数の頭文字を入力すると、利用可能な関数と参照の一覧がポップアップメニューに表示され、必要な要素を選択することができます: ![](../assets/en/ViewPro/vpFormula2.PNG) @@ -135,7 +135,7 @@ title: フォーミュラとファンクション 4Dカスタムファンクションは、4D View Pro エリアから [引数](#引数) を受け取り、値を返すことができます。 -これらのカスタムファンクションは [`VP SET CUSTOM FUNCTIONS`](commands/vp-set-custom-functions) メソッドを使って宣言します。 例: +これらのカスタムファンクションは [`VP SET CUSTOM FUNCTIONS`](commands/vp-set-custom-functions) メソッドを使って宣言します。例: ```4d $o:=New object @@ -213,7 +213,7 @@ $o.DRIVERS_LICENCE.parameters.push(New object("name"; "ID"; "type"; Is longint)) =METHODWITHOUTNAME() ``` -[VP SET CUSTOM FUNCTIONS](commands/vp-set-custom-functions.md) コマンドを使用して宣言したファンクションの *parameters* コレクションを使って、引数の名前、型、数を宣言することができます。 オプションとして、*minParams* および *maxParams* プロパティにより、ユーザーから渡される引数の数を制御することができます。 +[VP SET CUSTOM FUNCTIONS](commands/vp-set-custom-functions.md) コマンドを使用して宣言したファンクションの *parameters* コレクションを使って、引数の名前、型、数を宣言することができます。オプションとして、*minParams* および *maxParams* プロパティにより、ユーザーから渡される引数の数を制御することができます。 サポートされている引数の型の詳細については、[VP SET CUSTOM FUNCTIONS](commands/vp-set-custom-functions) コマンドの説明を参照ください。 @@ -236,7 +236,7 @@ $o.DRIVERS_LICENCE.parameters.push(New object("name"; "ID"; "type"; Is longint)) ### 戻り値 -4Dプロジェクトメソッドは、$0 を介して 4D View Pro のセルフォーミュラに値を返すこともできます。 以下のデータ型の戻り値がサポートされています: +4Dプロジェクトメソッドは、$0 を介して 4D View Pro のセルフォーミュラに値を返すこともできます。以下のデータ型の戻り値がサポートされています: - [テキスト](Concepts/dt_string.md) (4D View Pro 内で文字列に変換) - [実数](Concepts/dt_number.md)/[倍長整数](Concepts/dt_number.md) (4D View Pro 内で数値に変換) @@ -278,11 +278,11 @@ VP SET CUSTOM FUNCTIONS("ViewProArea"; $o) ## 互換性 -4D View Pro エリアでフィールドやメソッドをファンクションとして宣言する場合、代わりの方法も利用可能です。 これらの方法は、互換性のために維持されており、特定のケースで使用することができます。 しかしながら、[`VP SET CUSTOM FUNCTIONS`](commands/vp-set-custom-functions.md) の使用が推奨されます。 +4D View Pro エリアでフィールドやメソッドをファンクションとして宣言する場合、代わりの方法も利用可能です。これらの方法は、互換性のために維持されており、特定のケースで使用することができます。しかしながら、[`VP SET CUSTOM FUNCTIONS`](commands/vp-set-custom-functions.md) の使用が推奨されます。 ### 仮想ストラクチャーを使ったフィールド参照 -4D View Pro では、データベースの仮想ストラクチャーを使用して 4Dフィールドを参照することができます。つまり、\*引数とともに [`SET TABLE TITLES`](../commands/set-table-titles) や [`SET FIELD TITLES`](../commands/set-field-titles) コマンドで宣言されている場合です。 この代替方法は、アプリケーションがすでに仮想ストラクチャーに依存している場合に便利です (そうでない場合は、[`VP SET CUSTOM FUNCTIONS` の使用](#4dファンクション) が推奨されます)。 +4D View Pro では、データベースの仮想ストラクチャーを使用して 4Dフィールドを参照することができます。つまり、\*引数とともに [`SET TABLE TITLES`](../commands/set-table-titles) や [`SET FIELD TITLES`](../commands/set-field-titles) コマンドで宣言されている場合です。この代替方法は、アプリケーションがすでに仮想ストラクチャーに依存している場合に便利です (そうでない場合は、[`VP SET CUSTOM FUNCTIONS` の使用](#4dファンクション) が推奨されます)。 > **警告**: 仮想ストラクチャーと `VP SET CUSTOM FUNCTIONS` を同時に使用することはできません。 `VP SET CUSTOM FUNCTIONS` が呼び出されると、4D View Pro エリアは `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに基づく機能を無視します。 @@ -351,7 +351,7 @@ TABLENAME_FIELDNAME() ### 許可されたメソッドの宣言 -4D View Pro のフォーミュラ内にて 4Dプロジェクトメソッドを直接呼び出すことができます。 セキュリティ上の理由から、ユーザーによって呼び出し可能なメソッドは [VP SET ALLOWED METHODS](commands/vp-set-allowed-methods.md) によって明示的に宣言されなくてはなりません。 +4D View Pro のフォーミュラ内にて 4Dプロジェクトメソッドを直接呼び出すことができます。セキュリティ上の理由から、ユーザーによって呼び出し可能なメソッドは [VP SET ALLOWED METHODS](commands/vp-set-allowed-methods.md) によって明示的に宣言されなくてはなりません。 #### 要件 @@ -361,6 +361,6 @@ TABLENAME_FIELDNAME() - **実行可能**: メソッドがホストデータベースに属している、あるいはロードされたコンポーネントに属しており当該メソッドの "コンポーネントとホストデータベース間で共有" オプションが有効化されていること ([プロジェクトメソッドの共有](../Extensions/develop-components.md#プロジェクトメソッドの共有) 参照)。 - 既存の 4D View Pro ファンクションと **競合していない**: 4D View Pro ビルトインファンクションと同じ名前のプロジェクトメソッドを呼び出した場合、ファンクションの方が呼び出されます。 -> [VP SET CUSTOM FUNCTIONS](commands/vp-set-custom-functions.md) および [VP SET ALLOWED METHODS](commands/vp-set-allowed-methods.md) コマンドのいずれもがセッション中に実行されていない場合、4D View Pro カスタムファンクションには 4D の汎用的な `SET ALLOWED METHODS` コマンドで許可されたメソッドが使用できます。 この場合、プロジェクトメソッド名は JavaScript の字句文法に則ってなければなりません ([ECMA Script standard](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6) 参照)。 ストラクチャー設定のグローバルなフィルタリングオプション (セキュリティページ > データアクセス権) はいずれの場合でも無視されます。 +> [VP SET CUSTOM FUNCTIONS](commands/vp-set-custom-functions.md) および [VP SET ALLOWED METHODS](commands/vp-set-allowed-methods.md) コマンドのいずれもがセッション中に実行されていない場合、4D View Pro カスタムファンクションには 4D の汎用的な `SET ALLOWED METHODS` コマンドで許可されたメソッドが使用できます。この場合、プロジェクトメソッド名は JavaScript の字句文法に則ってなければなりません ([ECMA Script standard](https://www.ecma-international.org/ecma-262/5.1/#sec-7.6) 参照)。ストラクチャー設定のグローバルなフィルタリングオプション (セキュリティページ > データアクセス権) はいずれの場合でも無視されます。 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 778a244d43a8ec..292b9dfdcec1a7 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 @@ -3,7 +3,7 @@ id: getting-started title: はじめに --- -4D View Pro は、[4D フォームエリア](FormObjects/viewProArea_overview.md) と専用の [コマンド](commands.md) が含まれる [4Dコンポーネント](Concepts/components.md) です。 これにより、先進的なスプレッドシート機能をプロジェクトに埋め込むことが可能です。 +4D View Pro は、[4D フォームエリア](FormObjects/viewProArea_overview.md) と専用の [コマンド](commands.md) が含まれる [4Dコンポーネント](Concepts/components.md) です。これにより、先進的なスプレッドシート機能をプロジェクトに埋め込むことが可能です。 ![](../assets/en/ViewPro/vpSpreadsheet.png) @@ -33,13 +33,13 @@ title: はじめに プロジェクトを再起動すると、4D View Pro コンポーネントは[Github 依存関係](../Project/components.md#githubまたはgitlab依存関係を追加する)としてインストールされます。 -4D View Pro はライセンスを必要とします。 この機能を使用するためには、[アプリケーション内においてライセンスを有効化して割り当てる](../../Users/handling_users_groups.md#グループにライセンスを割り当てる) 必要があります。 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) ## 4D View Pro エリアを挿入する -4D View Pro ドキュメントは 4D View Pro という名前の [4Dフォームオブジェクト](FormObjects/viewProArea_overview.md) 内に表示され、手動で編集されます。 このオブジェクトを選択するには、オブジェクトバーの最後のツールをクリックします: +4D View Pro ドキュメントは 4D View Pro という名前の [4Dフォームオブジェクト](FormObjects/viewProArea_overview.md) 内に表示され、手動で編集されます。このオブジェクトを選択するには、オブジェクトバーの最後のツールをクリックします: ![](../assets/en/ViewPro/vpArea.png) @@ -51,13 +51,13 @@ title: はじめに ## セレクション、入力、およびナビゲージョンの基本 -スプレッドシートは行と列から構成されています。 各行には番号が割り当てられています。 各列には文字 (アルファベットの文字数を超えた場合には文字のグループ) が割り当てられています。 行と列の交差する場所がセルと呼ばれます。 セルを選択したり、そのコンテンツを編集したりすることができます。 +スプレッドシートは行と列から構成されています。各行には番号が割り当てられています。各列には文字 (アルファベットの文字数を超えた場合には文字のグループ) が割り当てられています。行と列の交差する場所がセルと呼ばれます。セルを選択したり、そのコンテンツを編集したりすることができます。 ### セル、列、および行の選択 -- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。 その中身 (あるいは式) がセル内に表示されます。 +- セルを選択するには、単にセルをクリックするか、キーボードの矢印キーを使用します。その中身 (あるいは式) がセル内に表示されます。 -- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。 また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 +- 複数の連続したセルを選択するには、マウスをセレクションの端から端へとドラッグします。また、Shiftキーを押しながらセレクションの二つの端をクリックすることでも選択可能です。 - スプレッドシート内のセルをすべて選択するには、エリアの左上端にあるセルをクリックします: ![](../assets/en/ViewPro/vpSelectAll.PNG) @@ -72,11 +72,11 @@ title: はじめに ### データの入力 -セルをダブルクリックすると、そのセル内で入力モードに入ります。 セルが空でない場合、挿入カーソルはセルのコンテンツの最後に置かれます。 +セルをダブルクリックすると、そのセル内で入力モードに入ります。セルが空でない場合、挿入カーソルはセルのコンテンツの最後に置かれます。 ![](../assets/en/ViewPro/vpInput.PNG) -セルが選択されていれば、たとえ挿入カーソルが非表示であってもデータを直接入力することができます。 その場合、入力した内容はセルのコンテンツを上書きします。 +セルが選択されていれば、たとえ挿入カーソルが非表示であってもデータを直接入力することができます。その場合、入力した内容はセルのコンテンツを上書きします。 **Tab**キーはセルの内容を確定し、一つ右のセルを選択します。 **Shift + Tab**キーの組み合わせでは、セル入力を確定したあと、一つ左のセルを選択します。 @@ -90,7 +90,7 @@ title: はじめに ![](../assets/en/ViewPro/vpContext.PNG) -> コンテキストメニューのコピー/カット/ペースト機能はスプレッドシートエリア内でのみ動作し、システムのペーストボードにはアクセスしません。 しかしながら、**Ctrl+c/Ctrl+v** といったシステムショートカットは動作し、エリアと他のアプリケーション間でデータを交換するために使用することが可能です。 +> コンテキストメニューのコピー/カット/ペースト機能はスプレッドシートエリア内でのみ動作し、システムのペーストボードにはアクセスしません。しかしながら、**Ctrl+c/Ctrl+v** といったシステムショートカットは動作し、エリアと他のアプリケーション間でデータを交換するために使用することが可能です。 クリックしたエリアに応じて、メニューには次の選択肢が表示されます: @@ -118,7 +118,7 @@ title: はじめに ![](../assets/en/ViewPro/vpDocument.PNG) -ほとんどの 4D View Pro コマンドは、[4D View Pro のフォームエリア名](FormObjects/viewProArea_overview.md) (4Dフォームオブジェクト) を *vpAreaName* 引数として必要とします。 このエリア名は、[オブジェクト名](FormObjects/properties_Object.md#オブジェクト名) プロパティの値のことです。 +ほとんどの 4D View Pro コマンドは、[4D View Pro のフォームエリア名](FormObjects/viewProArea_overview.md) (4Dフォームオブジェクト) を *vpAreaName* 引数として必要とします。このエリア名は、[オブジェクト名](FormObjects/properties_Object.md#オブジェクト名) プロパティの値のことです。 たとえば、"myVpArea" という名前の 4D View Pro エリアの列数を設定するには、次のように書きます: @@ -126,11 +126,11 @@ title: はじめに VP SET COLUMN COUNT("myVpArea";5) ``` -> フォームエリアへの 4D View Pro オブジェクトの読み込みが完了すると、4D は [On VP Ready](../Events/onVpReady.md) フォームイベントを生成します。 エリアを操作する 4D View Pro コードはこのイベント内で実行する必要があります。 そうでない場合はエラーが返されます。 +> フォームエリアへの 4D View Pro オブジェクトの読み込みが完了すると、4D は [On VP Ready](../Events/onVpReady.md) フォームイベントを生成します。エリアを操作する 4D View Pro コードはこのイベント内で実行する必要があります。 そうでない場合はエラーが返されます。 ### レンジオブジェクトの使い方 -4D View Pro のコマンドの中には、*rangeObj* 引数を必要とするものがあります。 4D View Pro におけるレンジとは、スプレッドシート内の特定のエリアを参照するオブジェクトです。 このエリアは、1つ以上のセルで構成されます。 4D View Pro コマンドを使って、作成したレンジを他のコマンドに受け渡し、ドキュメントの特定箇所に対して読み取りや書き込み操作をおこなうことができます。 +4D View Pro のコマンドの中には、*rangeObj* 引数を必要とするものがあります。 4D View Pro におけるレンジとは、スプレッドシート内の特定のエリアを参照するオブジェクトです。このエリアは、1つ以上のセルで構成されます。 4D View Pro コマンドを使って、作成したレンジを他のコマンドに受け渡し、ドキュメントの特定箇所に対して読み取りや書き込み操作をおこなうことができます。 たとえば、次のセルに対応するレンジオブジェクトを作成したい場合: @@ -148,7 +148,7 @@ $myRange:=VP Cells("ViewProArea";2;4;2;3) // C5 から D7 4D View Pro のレンジオブジェクトは、いくつかのプロパティで構成されます: - area - 4D View Pro エリアの名称 -- ranges - レンジオブジェクトのコレクション。 各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。 たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 +- ranges - レンジオブジェクトのコレクション。各レンジオブジェクトで利用できるプロパティは、レンジオブジェクトの種類によって異なります。たとえば、列のレンジオブジェクトには、*.column* と *.sheet* プロパティしか含まれません。 | プロパティ | | 型 | 説明 | 利用可能な対象 | | ------ | ------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- | -------------------------------------------------- | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/allowProject.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/allowProject.md index a3a6f68237b33c..16fef1fc91d135 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/allowProject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/allowProject.md @@ -3,17 +3,17 @@ id: allowProject title: プロジェクトメソッドの許可 --- -`4DEVAL`, `4DTEXT`, `4DHTML` などの 4Dタグや [`/4DACTION URL`](./httpRequests.md#4daction) を使用すると、Webに公開された 4Dプロジェクトのあらゆるプロジェクトメソッドが実行できます。 たとえば、リクエスト *http://www.server.com/4DACTION/login* は ***login*** プロジェクトメソッドを (存在すれば) 実行します。 +`4DEVAL`, `4DTEXT`, `4DHTML` などの 4Dタグや [`/4DACTION URL`](./httpRequests.md#4daction) を使用すると、Webに公開された 4Dプロジェクトのあらゆるプロジェクトメソッドが実行できます。たとえば、リクエスト *http://www.server.com/4DACTION/login* は ***login*** プロジェクトメソッドを (存在すれば) 実行します。 -このメカニズムは具体的には、インターネット上のユーザーが故意に (あるいは予期せず) Web用でないメソッドを実行してしまうというような、アプリケーションのセキュリティを脅かすリスクをもたらします。 このリスクは以下の 3つの方法で回避できます: +このメカニズムは具体的には、インターネット上のユーザーが故意に (あるいは予期せず) Web用でないメソッドを実行してしまうというような、アプリケーションのセキュリティを脅かすリスクをもたらします。このリスクは以下の 3つの方法で回避できます: -- [`On Web Authentication`](authentication.md#on-web-authentication) データベースメソッドを使用して URL から呼び出されるメソッドをフィルターする。 欠点: データベースに多くのメソッドが定義されている場合、この方法は管理が困難になります。 +- [`On Web Authentication`](authentication.md#on-web-authentication) データベースメソッドを使用して URL から呼び出されるメソッドをフィルターする。欠点: データベースに多くのメソッドが定義されている場合、この方法は管理が困難になります。 - **公開オプション: 4DタグとURL (4DACTION...)** (メソッドプロパティ) を使用する: ![](../assets/en/WebServer/methodProperties.png) -このオプションを使用してプロジェクトメソッドごとに、特別な URL `4DACTION` や `4DTEXT`, `4DHTML`, `4DEVAL`, `4DSCRIPT`, `4DIF`, `4DELSEIF`, `4DLOOP` などの 4Dタグを使用した呼び出しを許可するかしないかを設定できます。 このオプションがチェックされていない場合、そのプロジェクトメソッドは HTTPリクエストから直接実行することはできません。 他方、他のタイプの呼び出し (フォーミュラや他のメソッドからの呼び出しなど) ではこれらのメソッドを実行することができます。 +このオプションを使用してプロジェクトメソッドごとに、特別な URL `4DACTION` や `4DTEXT`, `4DHTML`, `4DEVAL`, `4DSCRIPT`, `4DIF`, `4DELSEIF`, `4DLOOP` などの 4Dタグを使用した呼び出しを許可するかしないかを設定できます。このオプションがチェックされていない場合、そのプロジェクトメソッドは HTTPリクエストから直接実行することはできません。他方、他のタイプの呼び出し (フォーミュラや他のメソッドからの呼び出しなど) ではこれらのメソッドを実行することができます。 このオプションはデフォルトでチェックされていません。 `4DACTION` やタグなどを使用して呼び出すことのできるメソッドは、明示的に指定する必要があります。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/authentication.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/authentication.md index a6112a74f1c05a..d21ba4cfc46429 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/authentication.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/authentication.md @@ -3,7 +3,7 @@ id: authentication title: 認証 --- -Webユーザーに特定のアクセス権を与えるには、ユーザーを認証することが必要です。 認証とは、ユーザーの資格情報 (通常は名前とパスワード) を取得・処理する方法のことです。 +Webユーザーに特定のアクセス権を与えるには、ユーザーを認証することが必要です。認証とは、ユーザーの資格情報 (通常は名前とパスワード) を取得・処理する方法のことです。 ## 認証モード @@ -32,7 +32,7 @@ Webユーザーに特定のアクセス権を与えるには、ユーザーを この認証モードは最も柔軟性が高く、以下のことが可能です: - ユーザー認証をサードパーティ・アプリケーション (例: ソーシャルネットワーク、SSO) に委ねることができます。 -- 顧客データベースにアカウントを作成できるよう、ユーザーにインターフェース (Webフォームなど) を提供することもできます。登録後は、任意のカスタムアルゴリズムでユーザーを認証することができます ("ユーザーセッション" の章の [例題](sessions.md#例題) を参照ください)。 重要なのは、以下のようなコードを使って、決してパスワードを平文で保存しないことです: +- 顧客データベースにアカウントを作成できるよう、ユーザーにインターフェース (Webフォームなど) を提供することもできます。登録後は、任意のカスタムアルゴリズムでユーザーを認証することができます ("ユーザーセッション" の章の [例題](sessions.md#例題) を参照ください)。重要なのは、以下のようなコードを使って、決してパスワードを平文で保存しないことです: ```4d //... ユーザーアカウントの作成 @@ -42,7 +42,7 @@ ds.webUser.save() "はじめに" の章の [例題](gettingStarted.md#ユーザー認証) も参照ください。 -カスタム認証が提供されていない場合、4D は [`On Web Authentication`](#on-web-authentication) データベースメソッドを呼び出します (あれば)。 $url と $content に加えて、ブラウザーとサーバーの IPアドレス ($IPClient と$IPServer) のみが提供され、ユーザー名とパスワード ($user と $password) は空です。 ユーザー認証が成功した場合、このメソッドは $0 に **True** を返さなければなりません。この場合、リクエストされたリソースが提供されます。認証が失敗した場合には、$0 に **False** を返します。 +カスタム認証が提供されていない場合、4D は [`On Web Authentication`](#on-web-authentication) データベースメソッドを呼び出します (あれば)。 $url と $content に加えて、ブラウザーとサーバーの IPアドレス ($IPClient と$IPServer) のみが提供され、ユーザー名とパスワード ($user と $password) は空です。ユーザー認証が成功した場合、このメソッドは $0 に **True** を返さなければなりません。この場合、リクエストされたリソースが提供されます。認証が失敗した場合には、$0 に **False** を返します。 > **警告:** `On Web Authentication` データベースメソッドが存在しない場合、接続は自動的に受け入れられます (テストモード)。 @@ -50,23 +50,23 @@ ds.webUser.save() ユーザーがサーバーに接続するとダイアログボックスがブラウザー上に表示され、ユーザー名とパスワードの入力を求められます。 -> ユーザーが入力したユーザー名とパスワードは暗号化されずに、HTTPリクエストヘッダーに含められて送信されます。 このモードで機密性を確保するには通常、HTTPSを必要とします。 +> ユーザーが入力したユーザー名とパスワードは暗号化されずに、HTTPリクエストヘッダーに含められて送信されます。このモードで機密性を確保するには通常、HTTPSを必要とします。 入力された値は次のように評価されます: - **4Dパスワードを含む** オプションがチェックされている場合、ユーザーの認証情報はまず、[内部の 4Dユーザーテーブル](Users/overview.md) に対して評価されます。 - - ブラウザーから送信されたユーザー名が 4D のユーザーテーブルに存在し、パスワードが正しい場合、接続は受け入れられます。 パスワードが正しくなければ接続は拒否されます。 + - ブラウザーから送信されたユーザー名が 4D のユーザーテーブルに存在し、パスワードが正しい場合、接続は受け入れられます。パスワードが正しくなければ接続は拒否されます。 - ユーザー名が 4D のユーザーテーブルに存在しない場合、[`On Web Authentication`](#on-web-authentication) データベースメソッドが呼び出されます。 `On Web Authentication` データベースメソッドが存在しない場合、接続は拒否されます。 - **4Dパスワードを含む** オプションがチェックされていない場合、ユーザーの認証情報は、その他の接続情報 (IPアドレス、ポート、URL など) とともに [`On Web Authentication`](#on-web-authentication) データベースメソッドに受け渡されます。 `On Web Authentication` データベースメソッドが存在しない場合、接続は拒否されます。 -> 4Dクライアントの Webサーバーでは、すべての 4Dクライアントマシンが同じユーザーテーブルを共有することに留意が必要です。 ユーザー名/パスワードの検証は 4D Serverアプリケーションでおこなわれます。 +> 4Dクライアントの Webサーバーでは、すべての 4Dクライアントマシンが同じユーザーテーブルを共有することに留意が必要です。ユーザー名/パスワードの検証は 4D Serverアプリケーションでおこなわれます。 ### DIGEST認証 DIGESTモードはより高いセキュリティレベルを提供します。認証情報は復号が困難な一方向ハッシュを使用して処理されます。 -BASICモードと同様に、ユーザーは接続時に自分の名前とパスワードを入力する必要があります。 その後、[`On Web Authentication`](#on-web-authentication) データベースメソッドが呼び出されます。 DIGESTモードが有効の時、$password 引数 (パスワード) は常に空の文字列が渡されます。 実際このモードを使用するとき、この情報はネットワークからクリアテキスト (平文) では渡されません。 この場合、接続リクエストは `WEB Validate digest` コマンドを使用して検証しなければなりません。 +BASICモードと同様に、ユーザーは接続時に自分の名前とパスワードを入力する必要があります。その後、[`On Web Authentication`](#on-web-authentication) データベースメソッドが呼び出されます。 DIGESTモードが有効の時、$password 引数 (パスワード) は常に空の文字列が渡されます。実際このモードを使用するとき、この情報はネットワークからクリアテキスト (平文) では渡されません。この場合、接続リクエストは `WEB Validate digest` コマンドを使用して検証しなければなりません。 > これらのパラメーターの変更を反映させるためには、Webサーバーを再起動する必要があります。 @@ -76,7 +76,7 @@ BASICモードと同様に、ユーザーは接続時に自分の名前とパス ### データベースメソッドの呼び出し -`On Web Authentication` データベースメソッドは、リクエストや処理が 4Dコードの実行を必要とするとき (REST呼び出しを除く) に自動で呼び出されます。 また、Webサーバーが無効な静的URLを受信した場合 (要求された静的ページが存在しない場合など) にも呼び出されます。 +`On Web Authentication` データベースメソッドは、リクエストや処理が 4Dコードの実行を必要とするとき (REST呼び出しを除く) に自動で呼び出されます。また、Webサーバーが無効な静的URLを受信した場合 (要求された静的ページが存在しない場合など) にも呼び出されます。 つまり、`On Web Authentication` データベースメソッドは次の場合に呼び出されます: @@ -120,7 +120,7 @@ BASICモードと同様に、ユーザーは接続時に自分の名前とパス :::note -`On Web Authentication` データベースメソッドのすべての引数が必ず値を受け取るわけではありません。 データベースメソッドが受け取る情報は、[認証モード](#認証モード)の設定により異なります。 +`On Web Authentication` データベースメソッドのすべての引数が必ず値を受け取るわけではありません。データベースメソッドが受け取る情報は、[認証モード](#認証モード)の設定により異なります。 ::: @@ -128,7 +128,7 @@ BASICモードと同様に、ユーザーは接続時に自分の名前とパス 最初の引数 (`$url`) は、ユーザーが Webブラウザーのアドレスエリアに入力したURLからホストのアドレスを取り除いたものです。 -イントラネット接続の場合をみてみましょう。 4D Webサーバーマシンの IPアドレスを 123.45.67.89 とします。 以下の表は Webブラウザーに入力された URL に対して、$url が受け取る値を示しています: +イントラネット接続の場合をみてみましょう。 4D Webサーバーマシンの IPアドレスを 123.45.67.89 とします。以下の表は Webブラウザーに入力された URL に対して、$url が受け取る値を示しています: | Webブラウザーに入力された値 | $url 引数の値 | | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | @@ -140,21 +140,21 @@ BASICモードと同様に、ユーザーは接続時に自分の名前とパス #### $content - HTTP リクエストのヘッダーと本文 -二番目の引数 (`$content`) は Webブラウザーから送信された HTTPリクエストのヘッダーと本文部分です。 この情報は `On Web Authentication` データベースメソッドに "そのまま" 渡されることに留意してください。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 +二番目の引数 (`$content`) は Webブラウザーから送信された HTTPリクエストのヘッダーと本文部分です。この情報は `On Web Authentication` データベースメソッドに "そのまま" 渡されることに留意してください。その内容は、接続を試みた Webブラウザーの仕様により異なります。 アプリケーションでこの情報を使用するには、開発者がヘッダーとボディを解析しなければなりません。 `WEB GET HTTP HEADER` や `WEB GET HTTP BODY` コマンドを使うことができます。 -> パフォーマンス上の理由により、$content を介して渡されるデータのサイズは 32KB 以下でなくてはなりません。 これを超過する分は、4D HTTPサーバーにより切り取られます。 +> パフォーマンス上の理由により、$content を介して渡されるデータのサイズは 32KB 以下でなくてはなりません。これを超過する分は、4D HTTPサーバーにより切り取られます。 #### $IPClient - Web クライアントIP アドレス -`$IPClient` 引数はブラウザーマシンの IPアドレスを受け取ります。 この情報を使用して、イントラネットアクセスとインターネットアクセスを区別できます。 +`$IPClient` 引数はブラウザーマシンの IPアドレスを受け取ります。この情報を使用して、イントラネットアクセスとインターネットアクセスを区別できます。 -> 4D は IPv4 アドレスを、96-bit の接頭辞付きのハイブリッド型 IPv6/IPv4 フォーマットで返します。 たとえば、::ffff:192.168.2.34 は、192.168.2.34 という IPv4 アドレスを意味します。 詳細については、[IPv6 のサポートについて](webServerConfig.md#IPv6-のサポートについて) の章を参照ください。 +> 4D は IPv4 アドレスを、96-bit の接頭辞付きのハイブリッド型 IPv6/IPv4 フォーマットで返します。 たとえば、::ffff:192.168.2.34 は、192.168.2.34 という IPv4 アドレスを意味します。詳細については、[IPv6 のサポートについて](webServerConfig.md#IPv6-のサポートについて) の章を参照ください。 #### $IPServer - サーバーIP アドレス -`$IPServer` 引数は Webサーバーを呼び出すために使用された IPアドレスを受け取ります。 4D はマルチホーミングをサポートしており、複数の IPアドレスを持つマシンを使用できます。 詳細は [設定ページ](webServerConfig.md#リクエストを受け付ける-ipアドレス) を参照ください。 +`$IPServer` 引数は Webサーバーを呼び出すために使用された IPアドレスを受け取ります。 4D はマルチホーミングをサポートしており、複数の IPアドレスを持つマシンを使用できます。詳細は [設定ページ](webServerConfig.md#リクエストを受け付ける-ipアドレス) を参照ください。 #### $user と $password - ユーザー名とパスワード @@ -175,7 +175,7 @@ BASICモードと同様に、ユーザーは接続時に自分の名前とパス :::warning - 値が何も返されなかった場合、接続は**受け入れられたもの**とみなされ、`On Web Connection` データベースメソッドが実行されます。 -- `On Web Authentication` データベースメソッド内でインターフェース要素を呼び出してはいけません (`ALERT`, `DIALOG` 等)。 メソッドの実行が中断され、接続が拒否されてしまいます。 処理中にエラーが発生した場合も同様です。 +- `On Web Authentication` データベースメソッド内でインターフェース要素を呼び出してはいけません (`ALERT`, `DIALOG` 等)。メソッドの実行が中断され、接続が拒否されてしまいます。処理中にエラーが発生した場合も同様です。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/errorPages.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/errorPages.md index aae63d97fbed0a..9697cb1dee44b9 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/errorPages.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/errorPages.md @@ -3,7 +3,7 @@ id: errorPages title: カスタム HTTPエラーページ --- -4D Web Server を使って、サーバーレスポンスのステータスコードに基づいて、クライアントに送信される HTTPエラーページをカスタマイズすることができます。 エラーページとは、以下のものを指します: +4D Web Server を使って、サーバーレスポンスのステータスコードに基づいて、クライアントに送信される HTTPエラーページをカスタマイズすることができます。エラーページとは、以下のものを指します: - 4 から始まるステータスコード (クライアントエラー)。 たとえば 404 など。 @@ -19,7 +19,7 @@ HTTPエラーステータスコードの完全な詳細については、[HTTP - カスタムページを "\{statusCode\}.html" (例: "404.html") という名前にします。 -一つのステータスコードにつき、一つのエラーページを定義することができるほか、"{number}xx.html" と名前をつけることで複数のエラーに汎用的なエラーページを定義することもできます。 たとえば、クライアントエラー全般に対するページとして、"4xx.html" というファイルを作成できます。 4D Web Server は最初に \{statusCode\}.html のページを探し、それが存在しない場合には汎用的なページを探します。 +一つのステータスコードにつき、一つのエラーページを定義することができるほか、"{number}xx.html" と名前をつけることで複数のエラーに汎用的なエラーページを定義することもできます。たとえば、クライアントエラー全般に対するページとして、"4xx.html" というファイルを作成できます。 4D Web Server は最初に \{statusCode\}.html のページを探し、それが存在しない場合には汎用的なページを探します。 たとえば、HTTPレスポンスがステータスコード 404 を返す場合: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md index f25eb778be5d43..9cefa33f0e6aca 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/gettingStarted.md @@ -3,11 +3,11 @@ id: gettingStarted title: はじめに --- -この章は、データベースのデータを扱う 4D Webサイトをゼロから作成する方法を知りたい、初心者ユーザーを対象としています。 さあ、始めましょう! +この章は、データベースのデータを扱う 4D Webサイトをゼロから作成する方法を知りたい、初心者ユーザーを対象としています。さあ、始めましょう! ## Hello World 例題 -まずは、Webサーバーからブラウザーに向けて "Hello World" を送信するところから始めましょう。 もっとも簡単な方法は、プロジェクトを作成して Webサーバーを開始し、`On Web Connection` データベースメソッドにテキストを返す短いコードを書くことです。 +まずは、Webサーバーからブラウザーに向けて "Hello World" を送信するところから始めましょう。もっとも簡単な方法は、プロジェクトを作成して Webサーバーを開始し、`On Web Connection` データベースメソッドにテキストを返す短いコードを書くことです。 ### Webサーバーの開始 @@ -16,7 +16,7 @@ title: はじめに 1. 4Dアプリケーションを起動し、新規プロジェクトを作成します。 2. 上部の **実行** メニューから、**Webサーバー開始** を選択します。 -これだけです。 Webサーバーが開始します (メニュー項目が **Webサーバー停止** に変わったのが確認できます)。 これでリクエストを処理できるようになりました。 確認のため、デフォルトホームページを表示してみましょう。 +これだけです。 Webサーバーが開始します (メニュー項目が **Webサーバー停止** に変わったのが確認できます)。これでリクエストを処理できるようになりました。確認のため、デフォルトホームページを表示してみましょう。 ### デフォルトホームページの表示 @@ -43,7 +43,7 @@ Case of End case ``` -[`On Web Connection`](httpRequests.md#on-web-connection) データベースメソッドは、受信リクエストに対して呼び出され、ターゲットURLを引数として `$1` に受け取ります。 この非常にシンプルなコードは、ただテキストをブラウザーに送信します。 +[`On Web Connection`](httpRequests.md#on-web-connection) データベースメソッドは、受信リクエストに対して呼び出され、ターゲットURLを引数として `$1` に受け取ります。この非常にシンプルなコードは、ただテキストをブラウザーに送信します。 3. ブラウザーで次の URL を入力します: @@ -57,7 +57,7 @@ Webサーバーがリクエストを処理して次を返します: ## データベースのデータを取得する -次に、データベースからデータを取得するのが、いかに簡単か見てみましょう。 まず、テーブルを作成し、そこにデータを入力していきます。 +次に、データベースからデータを取得するのが、いかに簡単か見てみましょう。まず、テーブルを作成し、そこにデータを入力していきます。 たとえば、数件のレコードを含む 1つのテーブルを持つ基本的なデータベースを作成します: @@ -88,7 +88,7 @@ Webサーバーがリクエストを処理して次を返します: http://localhost/friends.shtml ``` -`.shtml` のページは、Webサーバーによって自動的に処理されます。 データを表示するページが返されます: +`.shtml` のページは、Webサーバーによって自動的に処理されます。データを表示するページが返されます: ![](../assets/en/WebServer/hello3bis.png) @@ -178,11 +178,11 @@ http://localhost/rest/Friends } ``` -この非常にシンプルな例では、Webサーバーが [RESTサーバー](REST/gettingStarted.md) と透過的に通信し、要求されたデータが公開されていればそれを返す様子を示しています。 返されたデータは、Webインターフェース内で javascript や html のコードと簡単に結びつけることができます。 データクラスにバインドされている、洗練された Webインターフェースの例として、ビルトインの [Webデータエクスプローラー](Admin/dataExplorer.md) を参照ください。 +この非常にシンプルな例では、Webサーバーが [RESTサーバー](REST/gettingStarted.md) と透過的に通信し、要求されたデータが公開されていればそれを返す様子を示しています。返されたデータは、Webインターフェース内で javascript や html のコードと簡単に結びつけることができます。データクラスにバインドされている、洗練された Webインターフェースの例として、ビルトインの [Webデータエクスプローラー](Admin/dataExplorer.md) を参照ください。 ## ログインとセッション -上の例で Webリクエストは、アプリケーションへの自由なアクセスを得ています。 しかし、Webアプリケーションの世界では、データアクセスのセキュリティが最優先されます。 4D Webサーバーに接続する際には、ユーザーを認証し、そのナビゲーションを制御する必要があります。 +上の例で Webリクエストは、アプリケーションへの自由なアクセスを得ています。しかし、Webアプリケーションの世界では、データアクセスのセキュリティが最優先されます。 4D Webサーバーに接続する際には、ユーザーを認証し、そのナビゲーションを制御する必要があります。 ### ユーザーテーブルの作成 @@ -263,7 +263,7 @@ End if http://localhost/4DACTION/login/?userID=john@4d.com&password=123 ``` -> このような URL の使用は推奨されませんが、ここでは例を簡単にするために使っています。 より現実的なログインリクエストは、Webフォームと POSTリクエストで処理する必要があります。 フォームの POST の例は、[このページ](sessions.md#例題) を参照ください。 +> このような URL の使用は推奨されませんが、ここでは例を簡単にするために使っています。より現実的なログインリクエストは、Webフォームと POSTリクエストで処理する必要があります。フォームの POST の例は、[このページ](sessions.md#例題) を参照ください。 すると、そのセッションでログインされます: @@ -273,5 +273,5 @@ http://localhost/4DACTION/login/?userID=john@4d.com&password=123 ![](../assets/en/WebServer/login2.png) -ユーザーがログインすると、`WEB Get current session ID` メソッドを使って、関連するセッションを処理することができます。 [ユーザーセッション](sessions.md) のページを参照ください。 +ユーザーがログインすると、`WEB Get current session ID` メソッドを使って、関連するセッションを処理することができます。[ユーザーセッション](sessions.md) のページを参照ください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md index a8748dc5462498..9f353ad6f35b9b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-request-handler.md @@ -24,13 +24,13 @@ title: HTTPリクエストハンドラー ### 認証と特権 -HTTP リクエストハンドラー関数は標準のWeb リクエストから呼び出される(これらはREST リクエストの様にのような`/rest/xxx` パターンを格納していない)ため、これらはの[**強制ログイン**](../REST/authUsers.md#強制ログインモード) ルールの対象にはなりません。 これはつまり事前の認証なく実行することができる、つまりセッションに対して[`setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出すことなく実行できることを意味します。この場合、これらは*ゲスト* セッション内で実行されます。 +HTTP リクエストハンドラー関数は標準のWeb リクエストから呼び出される(これらはREST リクエストの様にのような`/rest/xxx` パターンを格納していない)ため、これらはの[**強制ログイン**](../REST/authUsers.md#強制ログインモード) ルールの対象にはなりません。これはつまり事前の認証なく実行することができる、つまりセッションに対して[`setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出すことなく実行できることを意味します。この場合、これらは*ゲスト* セッション内で実行されます。 -しかしながら、これらの関数もWeb プロセスから実行される全てのリクエスト同様に、適切な**パーミッション** を持つ必要があります。 ハンドラー関数が呼び出されたとき、そのWeb セッションの**権限** は、コードが適切に実行されるようにしなければなりません。 コード内からアクセスされる他のリソース(データ、他の関数など) もまたパーミッションで許可されている必要があります。 +しかしながら、これらの関数もWeb プロセスから実行される全てのリクエスト同様に、適切な**パーミッション** を持つ必要があります。ハンドラー関数が呼び出されたとき、そのWeb セッションの**権限** は、コードが適切に実行されるようにしなければなりません。コード内からアクセスされる他のリソース(データ、他の関数など)もまたパーミッションで許可されている必要があります。 [*デフォルトの制限モード*](../ORDA/privileges.md#制限モード)では、HTTP リクエストハンドラーが、新しい、未承認のセッションを開いた場合(これは例えばアプリケーションが**ディープリンキング** 機能を提供しているような場合が該当)、権限でハンドラー関数の実行と、それに関連する全てのリソースへのアクセスが許可されていることを確認してください。 -HTTP リクエストハンドラー関数はすでに認証されているセッション内で実行することも可能です。その場合そのユーザーセッションがハンドラー関数の実行と関連する全てのリソースへのアクセスが許可されている様にする必要があります。 これは例えば、すでにアプリケーションに対して認証が完了していて、セッションがまだアクティブであるときに、リンクをブラウザーにコピーペーストをした場合にもディープリンキングで起こる可能性があることに注意してください。 +HTTP リクエストハンドラー関数はすでに認証されているセッション内で実行することも可能です。その場合そのユーザーセッションがハンドラー関数の実行と関連する全てのリソースへのアクセスが許可されている様にする必要があります。これは例えば、すでにアプリケーションに対して認証が完了していて、セッションがまだアクティブであるときに、リンクをブラウザーにコピーペーストをした場合にもディープリンキングで起こる可能性があることに注意してください。 ## ハンドラーの設定方法 @@ -87,11 +87,10 @@ JSON ファイル(あるいは*settings* 引数内のオブジェクト)がリ URL パターンは**接頭辞** として、あるいは**正規表現** を使用して定義することできます。 -- 接頭辞パターンを宣言するためには、HTTPHandlers.json ファイル内の"pattern" プロパティ名を使用します。 接頭辞は `/` の開始と終了をすでに含んでいる正規表現とみなされます。 +- 接頭辞パターンを宣言するためには、HTTPHandlers.json ファイル内の"pattern" プロパティ名を使用します。接頭辞は `/` の開始と終了をすでに含んでいる正規表現とみなされます。 Ex: `"pattern" : "docs"` または `"pattern" : "docs/invoices"` -- 正規表現パターンを宣言するためには、HTTPHandlers.json ファイル内において"regexPattern" プロパティ名を使用します。 正規表現パターンは直接管理されます。 - 礼: `"regexPattern" : "/docs/.+/index\.html"` +- 正規表現パターンを宣言するためには、HTTPHandlers.json ファイル内において"regexPattern" プロパティ名を使用します。正規表現パターンは直接管理されます。礼: `"regexPattern" : "/docs/.+/index\.html"` "Pattern" と "regexPattern" プロパティは同じハンドラー定義内で同時に使用することはできません(使用した場合、"regexPattern" プロパティのみが有効となります)。 @@ -141,22 +140,22 @@ URL パターンは以下の指定された順番に基づいてトリガーさ 定義されたURL パターンを検知して割り込んだときに実行されるべきコードを宣言するためには、"class" および "method" プロパティを使用します。 -- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。 このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 +- "class": `cs.` を除いたクラス名。例: `cs.UsersHandling` ユーザークラスの場合は、"UsersHandling" 。このクラスは[**共有**](../Concepts/classes.md#共有シングルトン) クラスかつ[**シングルトン**](../Concepts/classes.md#シングルトンクラス) クラスである必要があります。 - "method": クラスに属性ているクラス関数 リクエストハンドラーコードについての情報に関しては、[後述の説明](#リクエストハンドラーコード) を参照してください。 ### Verbs -ハンドラー定義内で "verbs" プロパティを使用することで、そのハンドラーが受信するリクエスト内でサポートされるHTTP 動詞(メソッド) を宣言することができます。 明示的に許可されていない動詞を使用するリクエストは、サーバーによって自動的に拒否されます。 +ハンドラー定義内で "verbs" プロパティを使用することで、そのハンドラーが受信するリクエスト内でサポートされるHTTP 動詞(メソッド) を宣言することができます。明示的に許可されていない動詞を使用するリクエストは、サーバーによって自動的に拒否されます。 -カンマで区切ることで、複数の動詞を宣言することができます。 動詞の名前の大文字・小文字は区別されます。 +カンマで区切ることで、複数の動詞を宣言することができます。動詞の名前の大文字・小文字は区別されます。 例: `"verbs" : "PUT, POST"` :::note -動詞名に対する制約はありません。 全ての動詞名を使用することが可能です。 +動詞名に対する制約はありません。全ての動詞名を使用することが可能です。 ::: @@ -254,7 +253,7 @@ HTTP リクエストハンドラーコードは、[**共有された**](../Conce シングルトンがないかあるいは共有されていない場合、"シングルトンが見つかりません" エラーがサーバーから返されます。 HTTPHandlers.json 内で[ハンドラーとして定義されている](#ハンドラー定義) クラスまたは関数が見つからない場合、"シングルトン関数が見つかりません" エラーがサーバーによって返されます。 -リクエストハンドラーのプロパティが関数によってアップデートされていない限り、リクエストハンドラー関数は必ずしも共有されているわけではありません。 この場合、[`shared` キーワード](../Concepts/classes.md#共有関数) を使用して関数を宣言する必要があります。 +リクエストハンドラーのプロパティが関数によってアップデートされていない限り、リクエストハンドラー関数は必ずしも共有されているわけではありません。この場合、[`shared` キーワード](../Concepts/classes.md#共有関数) を使用して関数を宣言する必要があります。 :::note @@ -295,7 +294,7 @@ HTTP リクエストハンドラーコードは、[**共有された**](../Conce 呼び出されたURL: http://127.0.0.1:8044/putFile?fileName=testFile -ファイルのバイナリーのコンテンツはリクエストの本文に置かれ、またPOST 動詞が使用されています。 ファイル名はURL 内に引数(*fileName*) として渡されています。 これはリクエストの[`urlQuery`](../API/IncomingMessageClass.md#urlquery) オブジェクト内に受け取られます。 +ファイルのバイナリーのコンテンツはリクエストの本文に置かれ、またPOST 動詞が使用されています。ファイル名はURL 内に引数(*fileName*) として渡されています。これはリクエストの[`urlQuery`](../API/IncomingMessageClass.md#urlquery) オブジェクト内に受け取られます。 ```4d //UploadFile クラス diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index 2adabfa7781626..bee0dabc361a99 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -3,9 +3,9 @@ id: http-rules title: HTTP ルール --- -4D Web サーバーで受信される任意のリクエスト (RESTリクエストも含めます) に対して HTTPレスポンスヘッダーを管理する HTTPルールを定義することができます。 HTTPヘッダーの追加、変更、削除、リダイレクトの送信あるいは HTTPステータスの設定などを行うことができます。 この機能はヘッダーの管理に基づいてセキュリティポリシーを実装したい様な場合に有用です。 +4D Web サーバーで受信される任意のリクエスト (RESTリクエストも含めます) に対して HTTPレスポンスヘッダーを管理する HTTPルールを定義することができます。 HTTPヘッダーの追加、変更、削除、リダイレクトの送信あるいは HTTPステータスの設定などを行うことができます。この機能はヘッダーの管理に基づいてセキュリティポリシーを実装したい様な場合に有用です。 -HTTPルールを定義するためには、管理したい URLパターンを宣言するための正規表現を書くのに加えて、レスポンスヘッダーの編集の方法を定義します。 これらのルールは、プロジェクトフォルダー内に保存されている `HTTPRules.json` ファイルを使用するか、あるいは Webサーバーオブジェクトの [`start()`](../API/WebServerClass.md#start) 関数の *settings* 引数を使用することで設定可能です。 +HTTPルールを定義するためには、管理したい URLパターンを宣言するための正規表現を書くのに加えて、レスポンスヘッダーの編集の方法を定義します。これらのルールは、プロジェクトフォルダー内に保存されている `HTTPRules.json` ファイルを使用するか、あるいは Webサーバーオブジェクトの [`start()`](../API/WebServerClass.md#start) 関数の *settings* 引数を使用することで設定可能です。 ## 要件 @@ -18,7 +18,7 @@ HTTP ルールは以下のコンテキストでサポートされています: 以下の方法で、HTTP レスポンスルールを宣言することができます: -- プロジェクトの[`Project/Sources`](../Project/architecture.md#sources) フォルダー内に保存されている**HTTPRules.json** という名前の設定ファイルを使用する。 設定したルールは、Web サーバーが起動したときにロードされて適用されます。 +- プロジェクトの[`Project/Sources`](../Project/architecture.md#sources) フォルダー内に保存されている**HTTPRules.json** という名前の設定ファイルを使用する。設定したルールは、Web サーバーが起動したときにロードされて適用されます。 - 任意のWeb サーバーオブジェクトに対して、[`start()`](../API/WebServerClass.md#start) 関数の*settings* 引数内で設定された[`.rules`](../API/WebServerClass.md#rules) プロパティを使用する: ```4d @@ -43,24 +43,24 @@ WEB Server.start($settings.rules) //Web サーバー開始時にルールを設 ### URL パターン -URL パターンは、**正規表現** を使用して与えられます。 正規表現パターンを宣言するためには、"RegExPattern" プロパティ名を使用します。 +URL パターンは、**正規表現** を使用して与えられます。正規表現パターンを宣言するためには、"RegExPattern" プロパティ名を使用します。 例: `"RegExPattern": "/Test/Authorized/(.*)"` -Web サーバーがリクエストを受信すると、**すべての** URL パターンが指定された順番で順次トリガーされ、全ての合致するパターンが実行されます。 複数のアクションが同様のリソースを編集しようとした場合、最後に実行されたアクションのみが考慮されます。 +Web サーバーがリクエストを受信すると、**すべての** URL パターンが指定された順番で順次トリガーされ、全ての合致するパターンが実行されます。複数のアクションが同様のリソースを編集しようとした場合、最後に実行されたアクションのみが考慮されます。 ### アクション 以下のアクションキーワードがサポートされています: -| キーワード | 値の型 | 説明 | -| ------------ | ------------------ | ---------------------------------------------------------------------------------------------------------------------------- | -| Description | テキストまたはテキストのコレクション | HTTP レスポンスから削除するヘッダー。 削除するヘッダーがレスポンスヘッダー内に存在しない場合は無視されます。 | -| `addHeaders` | Object | HTTP レスポンスに追加するヘッダーのname(テキスト)とvalue(テキスト)。 | -| `setHeaders` | Object | HTTP レスポンス内で編集するヘッダーのname (テキスト)とvalue (テキスト)。 編集するヘッダーがレスポンスヘッダー内に存在しない場合は、それが追加されます。 | -| `denyAccess` | Boolean | リソースへのアクセスを拒否するにはtrue、アクセスを許可するにはfalse。 リソースへのアクセスが拒否された場合、Web サーバーはデフォルトで403 ステータスを返します。 | -| `redirect` | Text | リダイレクト URL。 リダイレクトがトリガーされた場合、Web サーバーはデフォルトで302 ステータスを返します。 | -| `status` | Number | HTTP ステータス | +| キーワード | 値の型 | 説明 | +| ------------ | ------------------ | --------------------------------------------------------------------------------------------------------------------------- | +| Description | テキストまたはテキストのコレクション | HTTP レスポンスから削除するヘッダー。削除するヘッダーがレスポンスヘッダー内に存在しない場合は無視されます。 | +| `addHeaders` | Object | HTTP レスポンスに追加するヘッダーのname(テキスト)とvalue(テキスト)。 | +| `setHeaders` | Object | HTTP レスポンス内で編集するヘッダーのname (テキスト)とvalue (テキスト)。編集するヘッダーがレスポンスヘッダー内に存在しない場合は、それが追加されます。 | +| `denyAccess` | Boolean | リソースへのアクセスを拒否するにはtrue、アクセスを許可するにはfalse。リソースへのアクセスが拒否された場合、Web サーバーはデフォルトで403 ステータスを返します。 | +| `redirect` | Text | リダイレクト URL。リダイレクトがトリガーされた場合、Web サーバーはデフォルトで302 ステータスを返します。 | +| `status` | Number | HTTP ステータス | ### 変更不可なヘッダー diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md index 9385920a481ca0..85b2cec25b2465 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/httpRequests.md @@ -13,7 +13,7 @@ title: HTTPリクエストの処理 :::info -また受信リクエストと送信リクエストに対してカスタマイズされた管理をするために、独自の HTTPリクエストハンドラーを実装することもできます。 カスタム HTTPリクエストハンドラーがトリガーされた場合、データベースメソッドは呼び出されません。 詳細については、[**HTTP Request Handler**](http-request-handler.md) の章を参照して下さい。 +また受信リクエストと送信リクエストに対してカスタマイズされた管理をするために、独自の HTTPリクエストハンドラーを実装することもできます。カスタム HTTPリクエストハンドラーがトリガーされた場合、データベースメソッドは呼び出されません。詳細については、[**HTTP Request Handler**](http-request-handler.md) の章を参照して下さい。 ::: @@ -55,13 +55,13 @@ title: HTTPリクエストの処理 ``` -> インターフェース要素 を表示する 4Dコマンド (`DIALOG`、`ALERT` など) の呼び出しは許可されず、メソッドの処理を終了します。 +> インターフェース要素 を表示する 4Dコマンド (`DIALOG`、`ALERT` など)の呼び出しは許可されず、メソッドの処理を終了します。 ### $url - URL 追加データ 最初の引数($url) は、ユーザーが Webブラウザーのアドレスエリアに入力した URL からホストのアドレスを取り除いたものです。 -イントラネット接続の場合を見てみましょう。 4D Webサーバーマシンの IPアドレスを 123.4.567.89 とします。 以下の表は Webブラウザーに入力された URL に対して、$url が受け取る値を示しています: +イントラネット接続の場合を見てみましょう。 4D Webサーバーマシンの IPアドレスを 123.4.567.89 とします。以下の表は Webブラウザーに入力された URL に対して、$url が受け取る値を示しています: | Webブラウザーに入力された値 | $url 引数の値 | | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | @@ -71,25 +71,25 @@ title: HTTPリクエストの処理 | http://123.45.67.89/Customers/Add | /Customers/Add | | 123.4.567.89/Do_This/If_OK/Do_That | /Do_This/If_OK/Do_That | -この引数は必要に応じて自由に利用できます。 4D は単に URL のホスト部より後の部分を無視し、$1 に渡します。 たとえば、値 "*/Customers/Add*" が "`[Customers]` テーブルに新規レコードを直接追加する" ということを意味するような、オリジナルのルールを作成できます。 利用可能な値やデフォルトブックマークを Webユーザーに提供することで、アプリケーションの異なる部分へのショートカットを提供できます。 このようにして、Webユーザーは新しく接続するたびにナビゲーションを通過することなく、素早く Webサイトのリソースにアクセスできます。 +この引数は必要に応じて自由に利用できます。 4D は単に URL のホスト部より後の部分を無視し、$1 に渡します。たとえば、値 "*/Customers/Add*" が "`[Customers]` テーブルに新規レコードを直接追加する" ということを意味するような、オリジナルのルールを作成できます。利用可能な値やデフォルトブックマークを Webユーザーに提供することで、アプリケーションの異なる部分へのショートカットを提供できます。このようにして、Webユーザーは新しく接続するたびにナビゲーションを通過することなく、素早く Webサイトのリソースにアクセスできます。 ### $header - HTTP リクエストのヘッダーと本文 -二番目の引数 ($header) は Webブラウザーから送信された HTTPリクエストのヘッダーと本文部分です。 この情報は `On Web Connection` データベースメソッドに "そのまま" 渡されることに留意してください。 その内容は、接続を試みた Webブラウザーの仕様により異なります。 +二番目の引数 ($header) は Webブラウザーから送信された HTTPリクエストのヘッダーと本文部分です。この情報は `On Web Connection` データベースメソッドに "そのまま" 渡されることに留意してください。その内容は、接続を試みた Webブラウザーの仕様により異なります。 アプリケーションでこの情報を使用するには、開発者がヘッダーとボディを解析しなければなりません。 `WEB GET HTTP HEADER` や `WEB GET HTTP BODY` コマンドを使うことができます。 -> パフォーマンス上の理由により、$header を介して渡されるデータのサイズは 32KB 以下でなくてはなりません。 これを超過する分は、4D HTTPサーバーにより切り取られます。 +> パフォーマンス上の理由により、$header を介して渡されるデータのサイズは 32KB 以下でなくてはなりません。これを超過する分は、4D HTTPサーバーにより切り取られます。 ### $BrowserIP - Web クライアントIP アドレス -$BrowserIP 引数はブラウザーマシンの IPアドレスを受け取ります。 この情報を使用して、イントラネットアクセスとインターネットアクセスを区別できます。 +$BrowserIP 引数はブラウザーマシンの IPアドレスを受け取ります。この情報を使用して、イントラネットアクセスとインターネットアクセスを区別できます。 -> 4D は IPv4 アドレスを、96-bit の接頭辞付きのハイブリッド型 IPv6/IPv4 フォーマットで返します。 たとえば、::ffff:192.168.2.34 は、192.168.2.34 という IPv4 アドレスを意味します。 詳細については、[IPv6 のサポートについて](webServerConfig.md#IPv6-のサポートについて) の章を参照ください。 +> 4D は IPv4 アドレスを、96-bit の接頭辞付きのハイブリッド型 IPv6/IPv4 フォーマットで返します。 たとえば、::ffff:192.168.2.34 は、192.168.2.34 という IPv4 アドレスを意味します。詳細については、[IPv6 のサポートについて](webServerConfig.md#IPv6-のサポートについて) の章を参照ください。 ### $ServerIP - サーバーIP アドレス -$ServerIP 引数は 4D Webサーバーによってリクエストされた IPアドレスを受け取ります。 4D はマルチホーミングをサポートしており、複数の IPアドレスを持つマシンを使用できます。 詳細は [設定ページ](webServerConfig.md#リクエストを受け付ける-IPアドレス) を参照ください。 +$ServerIP 引数は 4D Webサーバーによってリクエストされた IPアドレスを受け取ります。 4D はマルチホーミングをサポートしており、複数の IPアドレスを持つマシンを使用できます。詳細は [設定ページ](webServerConfig.md#リクエストを受け付ける-IPアドレス) を参照ください。 ### $user と $password - ユーザー名とパスワード @@ -109,7 +109,7 @@ $user と $password 引数は、ブラウザーが表示する標準の認証ダ **利用法**: URL またはフォームアクション -この URL を使用して、任意の *Param* テキスト引数とともに *MethodName* に指定した 4Dプロジェクトメソッドを呼び出すことができます。 メソッドはこの引数を受け取ります。 +この URL を使用して、任意の *Param* テキスト引数とともに *MethodName* に指定した 4Dプロジェクトメソッドを呼び出すことができます。メソッドはこの引数を受け取ります。 - 4Dプロジェクトメソッドは、[Webリクエスト用に許可](allowProject.md)されていなければなりません。メソッドのプロパティで "公開オプション: 4DタグとURL(4DACTION...)" 属性がチェックされていない場合、Webリクエストは拒否されます。 - `/4DACTION/MyMethod/Param` リクエストを受け取ると、4D は `On Web Authentication` データベースメソッド (あれば) を呼び出します。 @@ -120,13 +120,13 @@ $user と $password 引数は、ブラウザーが表示する標準の認証ダ Do Something ``` -`MyMethod` プロジェクトメソッドは通常レスポンスを返すべきです (`WEB SEND FILE` や `WEB SEND BLOB` で HTMLページを送信するなど)。 ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 +`MyMethod` プロジェクトメソッドは通常レスポンスを返すべきです (`WEB SEND FILE` や `WEB SEND BLOB` で HTMLページを送信するなど)。ブラウザーをブロックしないように、処理は可能な限り短時間でおこなわれるようにします。 > `4DACTION/` から呼び出されるメソッドは、インターフェース要素 (`DIALOG`, `ALERT` など) を呼び出してはいけません。 #### 例題 -この例題は、HTMLピクチャーオブジェクトに `/4DACTION/` URL を割り当て、ページ上でピクチャーを動的に表示する方法を説明しています。 スタティック HTMLページに以下のコードを記述します: +この例題は、HTMLピクチャーオブジェクトに `/4DACTION/` URL を割り当て、ページ上でピクチャーを動的に表示する方法を説明しています。スタティック HTMLページに以下のコードを記述します: ```html @@ -169,7 +169,7 @@ WEB SEND BLOB($BLOB;"image/png") #### 例題 -Webアプリケーションにおいて、スタティックなHTMLページを使い、ブラウザーからレコードを検索できるようにしたいとします。 このページを "search.htm" とします。 アプリケーションには、検索結果を表示するためのスタティックページ ("results.htm") もあるとします。 POSTメソッドと `/4DACTION/PROCESSFORM` アクションがページに割り当てられています。 +Webアプリケーションにおいて、スタティックなHTMLページを使い、ブラウザーからレコードを検索できるようにしたいとします。このページを "search.htm" とします。アプリケーションには、検索結果を表示するためのスタティックページ ("results.htm") もあるとします。 POSTメソッドと `/4DACTION/PROCESSFORM` アクションがページに割り当てられています。 以下はこのページの HTMLコードです: @@ -220,7 +220,7 @@ End if 4D Web サーバーでは、Webフォームや URL を介して POST や GET リクエストで送信されたデータを復元することができます。 -ヘッダーや URL にデータが含まれたリクエストを Webサーバーが受信すると、4D はそれに含まれる HTMLオブジェクトの値を受け取ることができます。 たとえば [`WEB SEND FILE`](../commands/web-send-file) コマンドまたは[`WEB SEND BLOB`](../commands/web-send-blob) コマンドで送信され、ユーザーが値を入力・修正して確定ボタンをクリックするような Webフォームにおいてもこの原理は使用可能です。 +ヘッダーや URL にデータが含まれたリクエストを Webサーバーが受信すると、4D はそれに含まれる HTMLオブジェクトの値を受け取ることができます。たとえば [`WEB SEND FILE`](../commands/web-send-file) コマンドまたは[`WEB SEND BLOB`](../commands/web-send-blob) コマンドで送信され、ユーザーが値を入力・修正して確定ボタンをクリックするような Webフォームにおいてもこの原理は使用可能です。 この場合 4D は[`WEB GET VARIABLES`](../commands/web-get-variables) コマンドを使って、リクエスト内の HTMLオブジェクトの値を取得することができます。 `WEB GET VARIABLES` コマンドは、値をテキストとして受け取ります。 @@ -276,9 +276,8 @@ return false このページの主な特徴は: - 送信のための **Submit** ボタンが 3つあります: `vsbLogOn`, `vsbRegister` そして `vsbInformation`。 -- **Log On** をクリックすると、フォームからの送信はまず初めに JavaScript関数 `LogOn` によって処理されます。 名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 -- フォームは POST 4Dメソッドに加えて、ブラウザープロパティを *vtNav_App* から始まる名称の 4つの隠しオブジェクトへとコピーする投稿スクリプト (*GetBrowserInformation*) を持っています。 - また、このページには `vtUserName` オブジェクトも含まれます。 +- **Log On** をクリックすると、フォームからの送信はまず初めに JavaScript関数 `LogOn` によって処理されます。名前が入力されていない場合、フォームは 4Dに送信すらされず、JavaScript による警告が表示されます。 +- フォームは POST 4Dメソッドに加えて、ブラウザープロパティを *vtNav_App* から始まる名称の 4つの隠しオブジェクトへとコピーする投稿スクリプト (*GetBrowserInformation*) を持っています。また、このページには `vtUserName` オブジェクトも含まれます。 ユーザーが HTMLフォーム上のボタンのどれかをクリックした際に呼び出される `WWW_STD_FORM_POST` という 4Dメソッドを検証してみましょう。 @@ -318,7 +317,7 @@ return false このメソッドの機能は: - 変数 *vtNav_appName*, *vtNav_appVersion*, *vtNav_appCodeName*, そして *vtNav_userAgent* の値 (同じ名前を持つ HTMLオブジェクトにそれぞれバインドされています) は 、`WEB GET VARIABLES` コマンドを使用することによって JavaScript のスクリプト *GetBrowserInformation* で作成された HTMLオブジェクトから取得することができます。 -- 3つの投稿ボタンにバインドされている変数 *vsbLogOn*, *vsbRegister* と *vsbInformation* のうち、クリックされたボタンに対応するもののみが `WEB GET VARIABLES` コマンドによって取得されます。 この 3つのうちいずれかのボタンによって投稿がおこなわれたとき、ブラウザーはクリックされたボタンの値を 4D に返します。 これにより、どのボタンがクリックされたのかが分かります。 +- 3つの投稿ボタンにバインドされている変数 *vsbLogOn*, *vsbRegister* と *vsbInformation* のうち、クリックされたボタンに対応するもののみが `WEB GET VARIABLES` コマンドによって取得されます。この 3つのうちいずれかのボタンによって投稿がおこなわれたとき、ブラウザーはクリックされたボタンの値を 4D に返します。これにより、どのボタンがクリックされたのかが分かります。 HTMLではすべてのオブジェクトがテキストオブジェクトであることに留意が必要です。 SELECT要素を使用した場合、 `WEB GET VARIABLES` コマンドで返されるのはオブジェクト内でハイライトされている要素の値であり、4D のように配列内の要素の位置を返すわけではありません。 `WEB GET VARIABLES` コマンドは必ずテキスト型の値を返します。 @@ -327,18 +326,18 @@ HTMLではすべてのオブジェクトがテキストオブジェクトであ 4D Webサーバーには、リクエストの処理をカスタマイズするための、低レベル Webコマンドがいくつか用意されています。 - [`WEB GET HTTP BODY`](../commands/web-get-http-body) コマンドは本文を標準テキストとして返すため、必要な解析を行うことができます。 -- [`WEB GET HTTP HEADER`](../commands/web-get-http-header) コマンドはリクエストのヘッダーを返します。 カスタムcookie などを処理するのに便利です (`WEB SET HTTP HEADER` コマンドも使用できます)。 +- [`WEB GET HTTP HEADER`](../commands/web-get-http-header) コマンドはリクエストのヘッダーを返します。カスタムcookie などを処理するのに便利です (`WEB SET HTTP HEADER` コマンドも使用できます)。 - [`WEB GET BODY PART`](../commands/web-get-body-part) と[`WEB Get body part count`](../commands/web-get-body-part-count) コマンドは、マルチパートリクエストのボディパートを解析して、テキスト値を取得するだけでなく、ポストされたファイルもBLOBに取得します。 これらのコマンドは次の図にまとめられています: ![](../assets/en/WebServer/httpCommands.png) -4D Webサーバーは、どの Webクライアントからでもチャンクド・エンコーディングでアップロードされたファイルをサポートするようになりました。 チャンクド・エンコーディングは HTTP/1.1 にて定義されているデータ転送方式です。 これを使用することにより、最終的なデータサイズを知る事なく、データを複数の "チャンク" (部分) に分けて転送することができます。 4D Webサーバーでは、サーバーから Webクライアントへのチャンクド・エンコーディングもサポートしています ([`WEB SEND RAW DATA`](../commands/web-send-raw-data) を使用します)。 +4D Webサーバーは、どの Webクライアントからでもチャンクド・エンコーディングでアップロードされたファイルをサポートするようになりました。チャンクド・エンコーディングは HTTP/1.1 にて定義されているデータ転送方式です。これを使用することにより、最終的なデータサイズを知る事なく、データを複数の "チャンク" (部分) に分けて転送することができます。 4D Webサーバーでは、サーバーから Webクライアントへのチャンクド・エンコーディングもサポートしています ([`WEB SEND RAW DATA`](../commands/web-send-raw-data) を使用します)。 ## COMPILER_WEB プロジェクトメソッド -COMPILER_WEB メソッドが存在する場合、それは HTTPサーバーが動的なリクエストを受け取り、4Dエンジンを呼び出した場合に、システムを通して呼び出されます。 これはたとえば 4D Webサーバーが、ポストされたフォーム、または処理すべき URL を [`On Web Connection`](#on-web-connection) に受け取る場合が該当します。 このメソッドは Web通信時に使用される型指定または変数初期化指示子を含めることを目的としています。 これはデータベースのコンパイル時にコンパイラーによって使用されます。 COMPILER_WEB メソッドはすべての Webフォームで共通です。 デフォルトでは、COMPILER_WEB メソッドは存在しません。 明示的に作成する必要があります。 +COMPILER_WEB メソッドが存在する場合、それは HTTPサーバーが動的なリクエストを受け取り、4Dエンジンを呼び出した場合に、システムを通して呼び出されます。これはたとえば 4D Webサーバーが、ポストされたフォーム、または処理すべき URL を [`On Web Connection`](#on-web-connection) に受け取る場合が該当します。このメソッドは Web通信時に使用される型指定または変数初期化指示子を含めることを目的としています。これはデータベースのコンパイル時にコンパイラーによって使用されます。 COMPILER_WEB メソッドはすべての Webフォームで共通です。デフォルトでは、COMPILER_WEB メソッドは存在しません。明示的に作成する必要があります。 > COMPILER_WEB プロジェクトメソッドは (存在すれば)、SOAPリクエストが受け入れられるごとに実行されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 24a6cb0808f6fe..439511e57f579a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -34,7 +34,7 @@ title: プリエンプティブWebプロセスの使用 ## スレッドセーフなWebサーバーコードの書き方 -Webプロセスをプリエンプティモードで実行するには、Webサーバーで実行されるすべての 4Dコードがスレッドセーフでなければなりません。 [プリエンプティブモードが有効化](#webプロセスにおけるプリエンプティブモードの使用可能状況) されている場合、アプリケーションの以下の部分が 4Dコンパイラーによって自動的に評価されます: +Webプロセスをプリエンプティモードで実行するには、Webサーバーで実行されるすべての 4Dコードがスレッドセーフでなければなりません。[プリエンプティブモードが有効化](#webプロセスにおけるプリエンプティブモードの使用可能状況) されている場合、アプリケーションの以下の部分が 4Dコンパイラーによって自動的に評価されます: - すべての Web関連データベースメソッド: - [`On Web Authentication`](authentication.md#on-web-authentication) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/sessions.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/sessions.md index 56f67bbc24bde8..f45fb1de24ae42 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/sessions.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/sessions.md @@ -34,13 +34,13 @@ Webセッションは次のものに使用されます: ## Webセッションの有効化 {#enabling-web-sessions} -セッション管理機能は、4D Webサーバー上で有効または無効にすることができます。 セッション管理を有効化する方法は複数あります: +セッション管理機能は、4D Webサーバー上で有効または無効にすることができます。セッション管理を有効化する方法は複数あります: - ストラクチャー設定の Web / オプション (I) ページの **スケーラブルセッション** を使用する (永続的な設定): ![alt-text](../assets/en/WebServer/settingsSession.png) -このオプションは、新規プロジェクトではデフォルトで選択されています。 これは、 **セッションなし** オプションを選択して無効にすることもできます。この場合、Webセッション機能は無効になります (`Session` オブジェクトは使用できません)。 +このオプションは、新規プロジェクトではデフォルトで選択されています。これは、 **セッションなし** オプションを選択して無効にすることもできます。この場合、Webセッション機能は無効になります (`Session` オブジェクトは使用できません)。 -- Webサーバーオブジェクトの [`.scalableSession`](API/WebServerClass.md#scalablesession) プロパティを使用する ([`.start()`](API/WebServerClass.md#start) 関数に *settings* 引数として渡します)。 この場合、ストラクチャー設定ダイアログボックスで定義されたオプションよりも、Webサーバーオブジェクトの設定が優先されます (ディスクには保存されません)。 +- Webサーバーオブジェクトの [`.scalableSession`](API/WebServerClass.md#scalablesession) プロパティを使用する ([`.start()`](API/WebServerClass.md#start) 関数に *settings* 引数として渡します)。この場合、ストラクチャー設定ダイアログボックスで定義されたオプションよりも、Webサーバーオブジェクトの設定が優先されます (ディスクには保存されません)。 > メインの Webサーバーのセッションモードは、[`WEB SET OPTION`](../commands/web-set-option) コマンドを使って設定することもできます。 @@ -50,7 +50,7 @@ Webセッションは次のものに使用されます: ## セッションの実装 -[セッションを有効にする](#セッションの有効化) と、4D自身が設定したプライベート cookie ("4DSID_*AppName*"、*AppName* はアプリケーションプロジェクトの名称) に基づいて、自動メカニズムが実装されます。 この cookie は、アプリケーションのカレントWebセッションを参照します。 +[セッションを有効にする](#セッションの有効化) と、4D自身が設定したプライベート cookie ("4DSID_*AppName*"、*AppName* はアプリケーションプロジェクトの名称) に基づいて、自動メカニズムが実装されます。この cookie は、アプリケーションのカレントWebセッションを参照します。 :::info @@ -79,7 +79,7 @@ RESTリクエストのための Webセッションを作成するには、利用 ## セッション情報の保存と共有 -各 `Session` オブジェクトには、共有オブジェクトである [`.storage`](API/SessionClass.md#storage) プロパティが用意されています。 このプロパティにより、セッションで処理されるすべてのプロセス間で情報を共有することができます。 +各 `Session` オブジェクトには、共有オブジェクトである [`.storage`](API/SessionClass.md#storage) プロパティが用意されています。このプロパティにより、セッションで処理されるすべてのプロセス間で情報を共有することができます。 ## セッションの有効期限 @@ -106,9 +106,9 @@ Webセッションが閉じられた後に [`Session`](../commands/session) コ ## 権限 -Webユーザーセッションには、権限を関連付けることができます。 セッションの権限に応じて、特定のアクセスや機能を Webサーバー上で提供することができます。 +Webユーザーセッションには、権限を関連付けることができます。セッションの権限に応じて、特定のアクセスや機能を Webサーバー上で提供することができます。 -権限を割り当てるには、[`.setPrivileges()`](API/SessionClass.md#setprivileges) 関数を使用します。 コード内では、[`.hasPrivilege()`](API/SessionClass.md#hasprivilege) 関数を使ってセッションの権限をチェックし、アクセスを許可または拒否することができます。 デフォルトでは、新しいセッションは権限を持たず、**ゲスト** セッションとなります ([`.isGuest()`](API/SessionClass.md#isguest) 関数は true を返します)。 +権限を割り当てるには、[`.setPrivileges()`](API/SessionClass.md#setprivileges) 関数を使用します。コード内では、[`.hasPrivilege()`](API/SessionClass.md#hasprivilege) 関数を使ってセッションの権限をチェックし、アクセスを許可または拒否することができます。デフォルトでは、新しいセッションは権限を持たず、**ゲスト** セッションとなります ([`.isGuest()`](API/SessionClass.md#isguest) 関数は true を返します)。 例: @@ -123,13 +123,13 @@ End if :::info -権限は ORDAアーキテクチャーの中心に実装されており、データストアやデータクラス関数へのアクセスを制御するための強力な技術を開発者に提供します。 詳細については、ORDA の章の [**権限**](../ORDA/privileges.md) を参照ください。 +権限は ORDAアーキテクチャーの中心に実装されており、データストアやデータクラス関数へのアクセスを制御するための強力な技術を開発者に提供します。詳細については、ORDA の章の [**権限**](../ORDA/privileges.md) を参照ください。 ::: ## 例題 -CRMアプリケーションを使って、各営業担当者が自分の顧客ポートフォリオを管理します。 データストアには、少なくとも 2つのリンクされたデータクラス Customers と SalesPersons が含まれています (営業担当者は複数の顧客を持ちます)。 +CRMアプリケーションを使って、各営業担当者が自分の顧客ポートフォリオを管理します。データストアには、少なくとも 2つのリンクされたデータクラス Customers と SalesPersons が含まれています (営業担当者は複数の顧客を持ちます)。 ![alt-text](../assets/en/WebServer/exampleSession.png) @@ -212,7 +212,7 @@ End if 4D web サーバーでは、OTP (One-Time Passcode/ワンタイムパスコード) セッショントークンを生成、共有、そして使用することができます。 OTP セッショントークンは、サードパーティのアプリケーションやWebサイトとの通信を保護するために使用されます。 OTP の詳細な情報については、Wikipedia の[ワンタイムパスワードのページ](https://ja.wikipedia.org/wiki/%E3%83%AF%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%A0%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89) を参照して下さい。 -4D では、OTPセッショントークンは外部 URL を呼び出して、それが他のブラウザーや他のデバイス (モバイル/PC) でコールバックされる場合に特に有用です。 通常、こういったサードパーティアプリケーションはコールバックリンクが入った確認メールを送信してきて、ユーザーはこれをクリックする必要があります。 コールバックリンクにはOTP トークンが含まれており、そのコールバックをトリガーしたセッションは、そのデータと権限とともにロードされます。 この原理により、同じセッションを複数のデバイス間で共有することができます。 このアーキテクチャーのおかげで、[セッションクッキー](#session-implementation) はネットワークに公開されることはないため、中間者攻撃のリスクを排除することができます。 +4D では、OTPセッショントークンは外部 URL を呼び出して、それが他のブラウザーや他のデバイス (モバイル/PC) でコールバックされる場合に特に有用です。通常、こういったサードパーティアプリケーションはコールバックリンクが入った確認メールを送信してきて、ユーザーはこれをクリックする必要があります。コールバックリンクにはOTP トークンが含まれており、そのコールバックをトリガーしたセッションは、そのデータと権限とともにロードされます。この原理により、同じセッションを複数のデバイス間で共有することができます。このアーキテクチャーのおかげで、[セッションクッキー](#session-implementation) はネットワークに公開されることはないため、中間者攻撃のリスクを排除することができます。 :::tip 関連したblog 記事 @@ -232,15 +232,15 @@ End if 1. Web ユーザーが、保護されたサードパーティ接続を必要とするアクションを開始します。例えば、特定のセッション内での認証などです。 2. 4D コード内において、[`Session.createOTP()`](../API/SessionClass.md#createotp) 関数を使用してそのセッションのための新しいOTP を作成します。 -3. サードパーティアプリケーションに対して、コールバックURL 内にセッショントークンを含んだリクエストを送信します。 ここで、サードパーティアプリケーションにコールバックURL を提供する方法は、API によって異なるという点に注意して下さい(下記参照)。 +3. サードパーティアプリケーションに対して、コールバックURL 内にセッショントークンを含んだリクエストを送信します。ここで、サードパーティアプリケーションにコールバックURL を提供する方法は、API によって異なるという点に注意して下さい(下記参照)。 4. サードパーティアプリケーションは、コールバックURL に提供したパターンを使用して4D へリクエストを送り返します。 5. その後、そのリクエストのコールバックをアプリケーション内で処理します。 -その名前が示す通り、OTP (ワンタイムパスワード)トークンは一度しか使用することができません。 このシナリオにおいては、既に使用されたセッショントークンを引数として持つWeb リクエストが受信された場合、最初のセッションは復元されません。 +その名前が示す通り、OTP (ワンタイムパスワード)トークンは一度しか使用することができません。このシナリオにおいては、既に使用されたセッショントークンを引数として持つWeb リクエストが受信された場合、最初のセッションは復元されません。 ### OTPをコールバックで処理する -サードパーティアプリケーションからのOTP トークンを含んだコールバックは、開発とサードパーティAPI に応じて、4D アプリケーション内で違う方法で処理することもできます。 基本的には、トークンを扱う方法には2つの方法があります: 自動処理をする **`$4DSID`** 引数を通して渡すか、自分で処理する必要があるカスタム引数を通して渡すかです。 +サードパーティアプリケーションからのOTP トークンを含んだコールバックは、開発とサードパーティAPI に応じて、4D アプリケーション内で違う方法で処理することもできます。基本的には、トークンを扱う方法には2つの方法があります: 自動処理をする **`$4DSID`** 引数を通して渡すか、自分で処理する必要があるカスタム引数を通して渡すかです。 #### `$4DSID`をURLの中で使用する @@ -258,7 +258,7 @@ End if #### カスタムの引数を使用する -OTP トークンは、セッションを復元するために特別に処理する必要があるカスタムの引数として渡すこともできます。 このソリューションは、以下のような場合に使用する必要があります: +OTP トークンは、セッションを復元するために特別に処理する必要があるカスタムの引数として渡すこともできます。このソリューションは、以下のような場合に使用する必要があります: - サードパーティアプリケーションが`$4DSID` のような引数をリダイレクトURI に挿入することを許可しておらず、専用のAPI を提供している(実装はサードパーティアプリケーションに依存します)。 - あるいは、コールバックを処理するのにREST 経由でORDA 関数を呼び出したい場合。この場合、OTP は[REST 引数シンタックス](../REST/ClassFunctions.md#parameters) (例: `?$params='["XXX123"]'`) に則って渡す必要があります。 @@ -274,7 +274,7 @@ OTP トークンは以下の場合には無効と判断されます: - セッショントークンが存在しない場合 - オリジナルのセッション自身が失効してしまっている場合 -この場合、Web ユーザーセッションは復元されず、またカレントセッション(あれば)は変更されずにそのままにされます。 通常、ログインページを表示するか、あるいはゲストセッションを開くかを決めることができます。 +この場合、Web ユーザーセッションは復元されず、またカレントセッション(あれば)は変更されずにそのままにされます。通常、ログインページを表示するか、あるいはゲストセッションを開くかを決めることができます。 受信したOTP トークンが有効化かどうかの検証するための方法は、その使用方法によって異なります: @@ -397,7 +397,7 @@ shared singleton Class constructor() ### $4DSIDを使用したメール検証の例 -1. ユーザーアカウントが *Users* データクラス内で作成されるような場合を考えます。 まず、Eメールとパスワードを格納した *$info* オブジェクトが受信されます。 次に、カレントのセッションに対応したOTP が生成されます。 最後に、$4DSID 引数内に渡されたOTP を含んだURL が返されます。 +1. ユーザーアカウントが *Users* データクラス内で作成されるような場合を考えます。まず、Eメールとパスワードを格納した *$info* オブジェクトが受信されます。次に、カレントのセッションに対応したOTP が生成されます。最後に、$4DSID 引数内に渡されたOTP を含んだURL が返されます。 ```4d //cs.Users class @@ -486,9 +486,9 @@ Function validateEmail() : 4D.OutgoingMessage ### ライフスパン -セッショントークンにはライフスパン(有効期限)があり、またセッション自身にもライフスパンがあります。 セッショントークンのライフスパンは、[トークン作成時](../API/SessionClass.md#createotp) に設定することが可能です。 デフォルトで、トークンのライフスパンは[`.idleTimeout`](../API/SessionClass.md#idletimeout) の値と同じ値となっています。 +セッショントークンにはライフスパン(有効期限)があり、またセッション自身にもライフスパンがあります。セッショントークンのライフスパンは、[トークン作成時](../API/SessionClass.md#createotp) に設定することが可能です。デフォルトで、トークンのライフスパンは[`.idleTimeout`](../API/SessionClass.md#idletimeout) の値と同じ値となっています。 -セッショントークンのライフパンと、セッションのライフスパンの両方がどちらも失効していない場合に限り、トークンを使用してセッションを復元することができます。 それ以外の場合(セッショントークンが失効している、またはセッション自身が失効している)には、セッショントークンをもったWeb リクエストが受信されたときにゲストセッションが作成されます。 +セッショントークンのライフパンと、セッションのライフスパンの両方がどちらも失効していない場合に限り、トークンを使用してセッションを復元することができます。それ以外の場合(セッショントークンが失効している、またはセッション自身が失効している)には、セッショントークンをもったWeb リクエストが受信されたときにゲストセッションが作成されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md index f5b25de9686893..47ef400fa86825 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/templates.md @@ -3,9 +3,9 @@ id: templates title: テンプレートページ --- -4D の Webサーバーでは、タグを含む HTMLテンプレートページを使用することができます。 つまり、静的な HTMLコードと、4DTEXT、4DIF、4DINCLUDEなどの [変換タグ](../Tags/transformation-tags.md) によって追加された 4D参照の組み合わせです。 これらのタグは通常、HTMLタイプのコメント (``) として、HTMLソースコードに挿入されます。 +4D の Webサーバーでは、タグを含む HTMLテンプレートページを使用することができます。 つまり、静的な HTMLコードと、4DTEXT、4DIF、4DINCLUDEなどの [変換タグ](../Tags/transformation-tags.md) によって追加された 4D参照の組み合わせです。これらのタグは通常、HTMLタイプのコメント (``) として、HTMLソースコードに挿入されます。 -これらのページが HTTPサーバーから送信される際、ページは解析され、含まれているタグが実行され、結果のデータに置き換えられます。 このように、ブラウザーが受け取るページは、静的な要素と 4D の処理による値が組み合わさったものです。 +これらのページが HTTPサーバーから送信される際、ページは解析され、含まれているタグが実行され、結果のデータに置き換えられます。このように、ブラウザーが受け取るページは、静的な要素と 4D の処理による値が組み合わさったものです。 たとえば、HTMLページ内にて以下のように記述すると: @@ -32,7 +32,7 @@ title: テンプレートページ これらのタグについては、[変換タグ](../Tags/transformation-tags.md) のページで説明しています。 -タグは混在させることが可能です。 たとえば、次のような HTMLコードが認められています: +タグは混在させることが可能です。たとえば、次のような HTMLコードが認められています: ```html @@ -63,31 +63,31 @@ title: テンプレートページ 最適化のため、".HTML" または ".HTM" を末尾に持つ単純な URL で HTMLページを呼び出した場合、4D Webサーバーは HTMLソースコードの解析をおこないません。 -4D Web サーバーが送信するテンプレートページの解析は、`WEB SEND FILE` (.htm, .html, .sthtm, .shtml)、`WEB SEND BLOB` (text/html type BLOB)、または `WEB SEND TEXT` コマンドが呼び出されたとき、および URL を使用して呼び出されたページを送信するときにおこなわれます。 URL で呼び出す場合、".htm" と ".html" で終わるページは最適化のため解析されません。 この場合に HTMLページの解析を強制するには、末尾を ".shtm" または ".shtml" とする必要があります (例: `http://www.server.com/dir/page.shtm`)。 このタイプのページの使用例は、`WEB GET STATISTICS` コマンドの説明に記載されています。 XMLページ (.xml、.xsl) もサポートされており、常に 4D によって解析されます。 +4D Web サーバーが送信するテンプレートページの解析は、`WEB SEND FILE` (.htm, .html, .sthtm, .shtml)、`WEB SEND BLOB` (text/html type BLOB)、または `WEB SEND TEXT` コマンドが呼び出されたとき、および URL を使用して呼び出されたページを送信するときにおこなわれます。 URL で呼び出す場合、".htm" と ".html" で終わるページは最適化のため解析されません。この場合に HTMLページの解析を強制するには、末尾を ".shtm" または ".shtml" とする必要があります (例: `http://www.server.com/dir/page.shtm`)。このタイプのページの使用例は、`WEB GET STATISTICS` コマンドの説明に記載されています。 XMLページ (.xml、.xsl) もサポートされており、常に 4D によって解析されます。 `PROCESS 4D TAGS` コマンドを使用すると、Webコンテキスト外でも解析をおこなうことができます。 -内部的には、パーサーは UTF-16 文字列で動作しますが、解析するデータは異なる方法でエンコードされている場合があります。 タグにテキストが含まれている場合 (`4DHTML` など)、提供されている情報 (charset) や出所に応じて、4D は必要に応じてデータを変換します。 以下に、HTMLページに含まれるタグを 4D が解析する場合と、おこなわれる変換を示します: +内部的には、パーサーは UTF-16 文字列で動作しますが、解析するデータは異なる方法でエンコードされている場合があります。タグにテキストが含まれている場合 (`4DHTML` など)、提供されている情報 (charset) や出所に応じて、4D は必要に応じてデータを変換します。以下に、HTMLページに含まれるタグを 4D が解析する場合と、おこなわれる変換を示します: -| 動作 / コマンド | 送信ページの解析 | $シンタックスのサポート(\*) | タグ解析に使用される文字セット | -| --------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | -| URL で呼び出されたページ | ○、ただし拡張子が ".htm" または ".html" のページを除く | ○、ただし拡張子が ".htm" または ".html" のページを除く | ページの "Content-Type" ヘッダーのパラメーターに渡された文字セットに従います。 それが無い場合は、META-HTTP EQUIVタグを探します。 それも無ければ、HTTPサーバーのデフォルト文字セットを使用します。 | -| `WEB SEND FILE` | ○ | - | ページの "Content-Type" ヘッダーのパラメーターに渡された文字セットに従います。 それが無い場合は、META-HTTP EQUIVタグを探します。 それも無ければ、HTTPサーバーのデフォルト文字セットを使用します。 | -| `WEB SEND TEXT` | ○ | - | 変換は不要です。 | -| `WEB SEND BLOB` | ○ (BLOBが "text/html" 型の場合) | - | レスポンスの "Content-Type" ヘッダーに指定された文字セットを使います。 それも無ければ、HTTPサーバーのデフォルト文字セットを使用します。 | -| `` タグによる挿入 | ○ | ○ | ページの "Content-Type" ヘッダーのパラメーターに渡された文字セットに従います。 それが無い場合は、META-HTTP EQUIVタグを探します。 それも無ければ、HTTPサーバーのデフォルト文字セットを使用します。 | -| `PROCESS 4D TAGS` | ○ | ○ | テキストデータは変換しません。 BLOBデータは、互換性のために Mac-Roman 文字セットから自動変換されます。 | +| 動作 / コマンド | 送信ページの解析 | $シンタックスのサポート(\*) | タグ解析に使用される文字セット | +| --------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| URL で呼び出されたページ | ○、ただし拡張子が ".htm" または ".html" のページを除く | ○、ただし拡張子が ".htm" または ".html" のページを除く | ページの "Content-Type" ヘッダーのパラメーターに渡された文字セットに従います。それが無い場合は、META-HTTP EQUIVタグを探します。それも無ければ、HTTPサーバーのデフォルト文字セットを使用します。 | +| `WEB SEND FILE` | ○ | - | ページの "Content-Type" ヘッダーのパラメーターに渡された文字セットに従います。それが無い場合は、META-HTTP EQUIVタグを探します。それも無ければ、HTTPサーバーのデフォルト文字セットを使用します。 | +| `WEB SEND TEXT` | ○ | - | 変換は不要です。 | +| `WEB SEND BLOB` | ○ (BLOBが "text/html" 型の場合) | - | レスポンスの "Content-Type" ヘッダーに指定された文字セットを使います。それも無ければ、HTTPサーバーのデフォルト文字セットを使用します。 | +| `` タグによる挿入 | ○ | ○ | ページの "Content-Type" ヘッダーのパラメーターに渡された文字セットに従います。それが無い場合は、META-HTTP EQUIVタグを探します。それも無ければ、HTTPサーバーのデフォルト文字セットを使用します。 | +| `PROCESS 4D TAGS` | ○ | ○ | テキストデータは変換しません。 BLOBデータは、互換性のために Mac-Roman 文字セットから自動変換されます。 | (\*) 4DHTML、4DTEXT、4DEVALタグにおいては、代替の $ベースシンタックスが利用可能です。 ## Webから 4Dメソッドへのアクセス -`4DEACH`、`4DELSEIF`、`4DEVAL`、`4DHTML`、`4DIF`、`4DLOOP`、`4DSCRIPT`、または `4DTEXT` で Webリクエストから 4Dメソッドを実行できるか否かは、メソッドプロパティの [公開オプション: 4D タグと URL(4DACTION...)](allowProject.md) 属性の設定に依存します。 この属性がチェックされていないメソッドは、Webリクエストから呼び出すことができません。 +`4DEACH`、`4DELSEIF`、`4DEVAL`、`4DHTML`、`4DIF`、`4DLOOP`、`4DSCRIPT`、または `4DTEXT` で Webリクエストから 4Dメソッドを実行できるか否かは、メソッドプロパティの [公開オプション: 4D タグと URL(4DACTION...)](allowProject.md) 属性の設定に依存します。この属性がチェックされていないメソッドは、Webリクエストから呼び出すことができません。 ## 悪意あるコードの侵入を防止 -4D変換タグは様々なタイプのデータを引数として受け入れます: テキスト、変数、メソッド、コマンド名、…。 これらのデータが自分で書いたコードから提供される場合、その受け渡しを自分でコントロールできるので、悪意あるコードの侵入のリスクは無いと言っていいでしょう。 しかしながら、 データベースのコード扱うデータは多くの場合、外部ソース (ユーザー入力、読み込み、等) から導入されたものです。 +4D変換タグは様々なタイプのデータを引数として受け入れます: テキスト、変数、メソッド、コマンド名、…。これらのデータが自分で書いたコードから提供される場合、その受け渡しを自分でコントロールできるので、悪意あるコードの侵入のリスクは無いと言っていいでしょう。しかしながら、 データベースのコード扱うデータは多くの場合、外部ソース (ユーザー入力、読み込み、等) から導入されたものです。 この場合、`4DEVAL` や `4DSCRIPT` などの変換タグは **使用しない** のが賢明です。なぜならこれらのタグはこういったデータが格納された変数を直接評価するからです。 -これに加え、[繰り返しの原則](../Tags/transformation-tags.md#再起的処理) に従い、悪意あるコード自身が変換タグを含んでいる可能性もあります。 この場合、`4DTEXT` タグを使用しなくてはなりません。 例として、"Name" という名前の Webフォームフィールドがあり、ユーザーがそこに名前を入力する場合を考えます。 この名前は `` タグを使用してページ内に表示されます。 もし "<!--#4DEVAL QUIT 4D-->" というテキストが名前の代わりに入力されたとしたら、このタグを解釈するとアプリケーションは終了してしまいます。 このリスクを避けるには、`4DTEXT` タグを使用することで対応できます。 このタグは特殊 HTML文字をエスケープするため、挿入された悪意ある再起的コードが解釈されることはありません。 前の例でいうと、"Name" フィールドには "``" が含まれることになり、これは変換されません。 +これに加え、[繰り返しの原則](../Tags/transformation-tags.md#再起的処理) に従い、悪意あるコード自身が変換タグを含んでいる可能性もあります。この場合、`4DTEXT` タグを使用しなくてはなりません。例として、"Name" という名前の Webフォームフィールドがあり、ユーザーがそこに名前を入力する場合を考えます。この名前は `` タグを使用してページ内に表示されます。もし "<!--#4DEVAL QUIT 4D-->" というテキストが名前の代わりに入力されたとしたら、このタグを解釈するとアプリケーションは終了してしまいます。このリスクを避けるには、`4DTEXT` タグを使用することで対応できます。このタグは特殊 HTML文字をエスケープするため、挿入された悪意ある再起的コードが解釈されることはありません。前の例でいうと、"Name" フィールドには "``" が含まれることになり、これは変換されません。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServer.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServer.md index f9a42d89153bcd..34c5c0a0981dea 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServer.md @@ -8,13 +8,13 @@ title: Web サーバー :::warning 廃止予定の機能 -リモート4D においてWeb サーバーを使用する機能は4D 21 においてと **廃止予定** なっています。 この機能を使用することは今後推奨されません。 +リモート4D においてWeb サーバーを使用する機能は4D 21 においてと **廃止予定** なっています。この機能を使用することは今後推奨されません。 ::: ## 簡単なモニタリング -Webアプリケーションの公開は、いつでも開始または停止することができます。 メニューコマンドを選択、またはランゲージコマンドを実行するだけで、操作できます。 +Webアプリケーションの公開は、いつでも開始または停止することができます。メニューコマンドを選択、またはランゲージコマンドを実行するだけで、操作できます。 4D Webサーバーの監視も簡単で、[4D Server の管理ウィンドウ](../ServerWindow/http-server.md) や [専用URL](webServerAdmin.md#管理用-url) を使っておこなうことができます。 @@ -24,13 +24,13 @@ Webアプリケーションの公開は、いつでも開始または停止す ## セキュリティ -データセキュリティは、4D Webサーバーの実装のすべての段階に存在します。 セキュリティレベルは調整可能で、デフォルト設定では通常、もっとも安全なオプションが選択されます。 4D Webサーバーのセキュリティは、以下の要素に基づいています: +データセキュリティは、4D Webサーバーの実装のすべての段階に存在します。セキュリティレベルは調整可能で、デフォルト設定では通常、もっとも安全なオプションが選択されます。 4D Webサーバーのセキュリティは、以下の要素に基づいています: - [**TLSプロトコル (HTTPS)**](../Admin/tls.md) の拡張サポート。 - **認証**: ビルトインの設定および、フォールバックデータベースメソッド (Webサーバー用の [`On Web Authentication`](authentication.md#on-web-authentication)、RESTサーバー用の `On REST Authentication`) に基づく柔軟でカスタマイズ可能な [認証機能](authentication.md) -- **公開するコンテンツの管理**: 明示的に公開した要素のみが、Web や RESTリクエストで直接利用できます。 次のものについて、宣言する必要があります: +- **公開するコンテンツの管理**: 明示的に公開した要素のみが、Web や RESTリクエストで直接利用できます。次のものについて、宣言する必要があります: - HTTPリクエストで公開する [プロジェクトメソッド](templates.md#webから-4dメソッドへのアクセス) - RESTリクエストで公開する [ORDAのデータモデルクラス関数](../ORDA/ordaClasses.md#公開vs非公開関数) - RESTリクエストに公開しない [テーブルやフィールド](REST/configuration.md#テーブルやフィールドの公開) テーブルやフィールド diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md index 9e13ba302b4e59..f5c9b6856c0676 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerAdmin.md @@ -7,7 +7,7 @@ title: 管理 ## 4D Webサーバーの開始 -> 4D や 4D Server の Webサーバーを起動するには、"4D Web Application" ライセンスが必要です。 詳細については [4D Webサイト](https://www.4d.com) を参照ください。 +> 4D や 4D Server の Webサーバーを起動するには、"4D Web Application" ライセンスが必要です。詳細については [4D Webサイト](https://www.4d.com) を参照ください。 4Dプロジェクトは、メイン (ホスト) アプリケーションおよび、ホストされた各コンポーネントの Webサーバーを起動して監視することができます。 @@ -17,7 +17,7 @@ title: 管理 - 4D: **実行 > Webサーバー開始** メニュー
    ![](../assets/en/WebServer/start1.png) - 4D Server: HTTPサーバーページの **HTTPサーバー開始** ボタン
    ![](../assets/en/WebServer/start2.png) -- 4Dアプリケーション開始時に Webサーバーを自動起動。 これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
    ![](../assets/en/WebServer/config.png) +- 4Dアプリケーション開始時に Webサーバーを自動起動。これには、ストラクチャー設定の **Web/設定**ページを表示し、**開始時にWebサーバーを起動** オプションを有効にします:
    ![](../assets/en/WebServer/config.png) - [`webServer.start()`](API/WebServerClass.md#start) 関数または `WEB START SERVER` コマンドを呼び出してプログラムで開始。 @@ -37,7 +37,7 @@ title: 管理 ## 4D Webサーバーのテスト -**Webサーバーテスト** メニューコマンドを使用してビルトインの Webサーバーが正しく実行されているか確認できます (4Dのみ)。 このメニューは Webサーバーが実行されているときに **実行** メニューからアクセスできます: +**Webサーバーテスト** メニューコマンドを使用してビルトインの Webサーバーが正しく実行されているか確認できます (4Dのみ)。このメニューは Webサーバーが実行されているときに **実行** メニューからアクセスできます: ![](../assets/en/WebServer/test1.png) @@ -45,7 +45,7 @@ title: 管理 ![](../assets/en/WebServer/defaultHomePage.png) -このコマンドで Webサーバーの動作や、ホームページの表示などを検証できます。 ページは、Webブラウザーが実行されているマシンの IPアドレスを指定する標準のショートカットである、*ローカルホスト* の URL を使用して呼び出されます。 コマンドはストラクチャー設定で指定された [TCP 公開ポート](./webServerConfig.md#http-ポート) 番号を考慮に入れます。 +このコマンドで Webサーバーの動作や、ホームページの表示などを検証できます。ページは、Webブラウザーが実行されているマシンの IPアドレスを指定する標準のショートカットである、*ローカルホスト* の URL を使用して呼び出されます。コマンドはストラクチャー設定で指定された [TCP 公開ポート](./webServerConfig.md#http-ポート) 番号を考慮に入れます。 ## キャッシュクリア @@ -94,7 +94,7 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい ### /4DHTMLSTATS -*/4DHTMLSTATS* URL は、*/4DSTATS* URLと同じ情報を HTML表形式で返します。 その違いは **キャッシュされているオブジェクト** に HTMLページの情報のみが返され、ピクチャーファイルをカウントしないことです。 さらにこの URL は **フィルターされたオブジェクト** の情報を返します。 +*/4DHTMLSTATS* URL は、*/4DSTATS* URLと同じ情報を HTML表形式で返します。その違いは **キャッシュされているオブジェクト** に HTMLページの情報のみが返され、ピクチャーファイルをカウントしないことです。さらにこの URL は **フィルターされたオブジェクト** の情報を返します。 | 項目 | 説明 | | -------------------- | ---------------------------------------------------------- | @@ -107,11 +107,11 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい ### /4DCACHECLEAR -*/4DCACHECLEAR* URLは、スタティックページとイメージのキャッシュを即座に消去します。 そのため、修正されたページを "強制的に" 更新することができます。 +*/4DCACHECLEAR* URLは、スタティックページとイメージのキャッシュを即座に消去します。そのため、修正されたページを "強制的に" 更新することができます。 ### /4DWEBTEST -*/4DWEBTEST* URLは、Webサーバーの状態を確認するために設計されています。 このURLが呼び出されると、4D は以下の HTTPフィールドを記したテキストファイルを返します。 +*/4DWEBTEST* URLは、Webサーバーの状態を確認するために設計されています。このURLが呼び出されると、4D は以下の HTTPフィールドを記したテキストファイルを返します。 | HTTPフィールド | 説明 | 例題 | | ---------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -132,7 +132,7 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい [`WebServer` オブジェクト](webServerObject.md) または `WEB SET OPTION` コマンドを使って、[http デバッグファイル](webServerConfig.md#デバッグログ) を有効化することができます。 -このログファイルは、各 HTTPリクエストとそれぞれのレスポンスを rawモードで記録します。 ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。 +このログファイルは、各 HTTPリクエストとそれぞれのレスポンスを rawモードで記録します。ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。 リクエストとレスポンスの両方に対して以下のフィールドが記録されます: @@ -147,73 +147,73 @@ Webサイト管理用の URL を使用して、サーバー上に公開してい ### logweb.txt -[`WebServer` オブジェクト](webServerObject.md)、`WEB SET OPTION` コマンド、またはストラクチャー設定の **Web/ログ (タイプ)** ページを使って、[Webログファイル](webServerConfig.md#ログの記録) を有効化することができます。 ログのフォーマットを選択する必要があります。 +[`WebServer` オブジェクト](webServerObject.md)、`WEB SET OPTION` コマンド、またはストラクチャー設定の **Web/ログ (タイプ)** ページを使って、[Webログファイル](webServerConfig.md#ログの記録) を有効化することができます。ログのフォーマットを選択する必要があります。 #### CLF/DLF それぞれのリクエストが行単位でファイル内に表示されます: *host rfc931 user [DD/MMM/YYYY:HH:MM:SS] "request" state length*。各フィールドはスペースによって区切られ、各行は CR/LF シーケンス (character 13、character 10) で終わります。 -DLF (Combined Log Format) フォーマットは CLF (Common Log Format) フォーマットと類似していて、まったく同じ構造を使用します。 さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 CLF/DLF フォーマット (カスタマイズ不可) についての説明です: +DLF (Combined Log Format) フォーマットは CLF (Common Log Format) フォーマットと類似していて、まったく同じ構造を使用します。さらに、各リクエストの最後に2つのHTTPフィールド、Referer と User-agent を追加します。 CLF/DLF フォーマット (カスタマイズ不可) についての説明です: -| フィールド名 | 説明 | -| -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| host | クライアントの IPアドレス (例: 192.100.100.10) | -| rfc931 | 4Dによって作成されない情報。 常に - (マイナス記号) です。 | -| user | 認証されているユーザー名、あるいは、- (マイナス記号) 。 ユーザー名にスペースが含まれると、_ (下線) に置き換わります。 | -| DD/MMM/YYYY:HH:MM:SS | DD: 日、MMM: 月を表す3文字の略号 (Jan、Febなど)、YYYY: 年、HH: 時間、MM: 分、SS: 秒。 日付と時間はサーバーのローカルタイム。 | -| request | クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) 。 | -| state | サーバーの返答。 | -| length | 返されたデータ (HTTPヘッダー以外) のサイズまたは 0 | -| Referer | DLF のみ - リクエストされたドキュメントを指しているページの URL を含みます。 | -| User-agent | DLF のみ - リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 | +| フィールド名 | 説明 | +| -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| host | クライアントの IPアドレス (例: 192.100.100.10) | +| rfc931 | 4Dによって作成されない情報。 常に - (マイナス記号) です。 | +| user | 認証されているユーザー名、あるいは、- (マイナス記号) 。ユーザー名にスペースが含まれると、_ (下線) に置き換わります。 | +| DD/MMM/YYYY:HH:MM:SS | DD: 日、MMM: 月を表す3文字の略号 (Jan、Febなど)、YYYY: 年、HH: 時間、MM: 分、SS: 秒。日付と時間はサーバーのローカルタイム。 | +| request | クライアントによって送られたリクエスト (例: GET /index.htm HTTP/1.0) 。 | +| state | サーバーの返答。 | +| length | 返されたデータ (HTTPヘッダー以外) のサイズまたは 0 | +| Referer | DLF のみ - リクエストされたドキュメントを指しているページの URL を含みます。 | +| User-agent | DLF のみ - リクエストのオリジンにおけるクライアントのブラウザーまたはソフトウェアの名前とバージョンを含みます。 | #### ELF/WLF -ELF (Extended Log Format) フォーマットは HTTPブラウザー界で広く普及しています。 そして、特別なニーズに応える洗練されたログを構築します。 この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 +ELF (Extended Log Format) フォーマットは HTTPブラウザー界で広く普及しています。そして、特別なニーズに応える洗練されたログを構築します。この理由により、ELFフォーマットはカスタマイズされます。 記録するフィールドやそのフィールドをファイルへ挿入する順番を選択することが可能です。 WLF (WebStar Log Format) フォーマットは 4D WebSTAR サーバー用として特別に開発されました。 ##### フィールドの設定 -ELF または WLF を選択すると、選択されたフォーマットに対して利用可能なフィールドが "Weg Log Token Selection" エリアに表示されます。 ログに含む各フィールドを選択する必要があります。 これには、選択するフィールドにチェックを入れます。 +ELF または WLF を選択すると、選択されたフォーマットに対して利用可能なフィールドが "Weg Log Token Selection" エリアに表示されます。ログに含む各フィールドを選択する必要があります。これには、選択するフィールドにチェックを入れます。 > 同じフィールドを 2度選択することはできません。 各フォーマットで利用可能なフィールド (アルファベット順) とその内容を以下のテーブルに示します: -| フィールド | ELF | WLF | 値 | -| ------------------------------------------------------ | --- | --- | --------------------------------------------------------------------------------------------------------------------------- | -| BYTES_RECEIVED | | ○ | サーバーが受け取ったバイト数 | -| BYTES_SENT | ○ | ○ | サーバーがクライアントに送ったバイト数 | -| C_DNS | ○ | ○ | DNS の IPアドレス (ELF: C_IP フィールドと同一のフィールド) | -| C_IP | ○ | ○ | クライアントの IPアドレス (例: 192.100.100.10) | -| CONNECTION_ID | | ○ | 接続ID番号 | -| CS(COOKIE) | ○ | ○ | HTTPリクエストに格納されている cookie に関する情報 | -| CS(HOST) | ○ | ○ | HTTPリクエストの Hostフィールド | -| CS(REFERER) | ○ | ○ | リクエストされたドキュメントを指すページの URL | -| CS(USER_AGENT) | ○ | ○ | クライアントのソフトウェアとオペレーティングシステムに関する情報 | -| CS_SIP | ○ | ○ | サーバーの IPアドレス | -| CS_URI | ○ | ○ | リクエストが作成された URI | -| CS_URI_QUERY | ○ | ○ | リクエストのクエリ引数 | -| CS_URI_STEM | ○ | ○ | クエリ引数のないリクエストのパート | -| DATE | ○ | ○ | DD: 日、MMM: 月を表す3文字の略号 (Jan、Febなど)、YYYY: 年 | -| METHOD | ○ | ○ | サーバーへ送られたリクエスト用の HTTPメソッド | -| PATH_ARGS | | ○ | CGI引数: "$" の後に続く文字列 | -| STATUS | ○ | ○ | サーバーの返答 | -| TIME | ○ | ○ | HH: 時間、MM: 分、SS: 秒 | -| TRANSFER_TIME | ○ | ○ | 返答を作成するためにサーバーが要求した時間 | -| USER | ○ | ○ | 認証されているユーザー名、あるいは、- (マイナス記号) 。 ユーザー名にスペースが含まれると、_ (下線) に置き換わります。 | -| URL | | ○ | クライアントがリクエストした URL | +| フィールド | ELF | WLF | 値 | +| ------------------------------------------------------ | --- | --- | -------------------------------------------------------------------------------------------------------------------------- | +| BYTES_RECEIVED | | ○ | サーバーが受け取ったバイト数 | +| BYTES_SENT | ○ | ○ | サーバーがクライアントに送ったバイト数 | +| C_DNS | ○ | ○ | DNS の IPアドレス (ELF: C_IP フィールドと同一のフィールド) | +| C_IP | ○ | ○ | クライアントの IPアドレス (例: 192.100.100.10) | +| CONNECTION_ID | | ○ | 接続ID番号 | +| CS(COOKIE) | ○ | ○ | HTTPリクエストに格納されている cookie に関する情報 | +| CS(HOST) | ○ | ○ | HTTPリクエストの Hostフィールド | +| CS(REFERER) | ○ | ○ | リクエストされたドキュメントを指すページの URL | +| CS(USER_AGENT) | ○ | ○ | クライアントのソフトウェアとオペレーティングシステムに関する情報 | +| CS_SIP | ○ | ○ | サーバーの IPアドレス | +| CS_URI | ○ | ○ | リクエストが作成された URI | +| CS_URI_QUERY | ○ | ○ | リクエストのクエリ引数 | +| CS_URI_STEM | ○ | ○ | クエリ引数のないリクエストのパート | +| DATE | ○ | ○ | DD: 日、MMM: 月を表す3文字の略号 (Jan、Febなど)、YYYY: 年 | +| METHOD | ○ | ○ | サーバーへ送られたリクエスト用の HTTPメソッド | +| PATH_ARGS | | ○ | CGI引数: "$" の後に続く文字列 | +| STATUS | ○ | ○ | サーバーの返答 | +| TIME | ○ | ○ | HH: 時間、MM: 分、SS: 秒 | +| TRANSFER_TIME | ○ | ○ | 返答を作成するためにサーバーが要求した時間 | +| USER | ○ | ○ | 認証されているユーザー名、あるいは、- (マイナス記号) 。ユーザー名にスペースが含まれると、_ (下線) に置き換わります。 | +| URL | | ○ | クライアントがリクエストした URL | > 日付と時間は GMTで表されます。 #### 周期的なバックアップ -*logweb.txt* ファイルはかなり膨大になることがあるため、自動のアーカイブメカニズムを構築することが可能です。 バックアップはある周期 (時間、日、週、月単位) または、ファイルのサイズに基づいて起動します。 設定の期限 (またはファイルサイズ) に近づくと、4D は自動的にカレントのログファイルを閉じてアーカイブします。 そして新たにファイルを作成します。 +*logweb.txt* ファイルはかなり膨大になることがあるため、自動のアーカイブメカニズムを構築することが可能です。バックアップはある周期 (時間、日、週、月単位) または、ファイルのサイズに基づいて起動します。 設定の期限 (またはファイルサイズ) に近づくと、4D は自動的にカレントのログファイルを閉じてアーカイブします。 そして新たにファイルを作成します。 Web のログファイル用のバックアップが起動すると、ログファイルは "Logweb Archives" という名前のフォルダーにアーカイブされます。このフォルダーは、*logweb.txt* ファイルと同じ階層に作成されます。 -アーカイブされたファイルは、以下の例に基づいて名称変更されます: "DYYYY_MM_DD_Thh_mm_ss.txt"。 たとえば、ファイルがアーカイブされた時間が September 4, 2020 at 3:50 p.m. and 7 seconds である場合、"D2020_09_04_T15_50_07.txt" になります。 +アーカイブされたファイルは、以下の例に基づいて名称変更されます: "DYYYY_MM_DD_Thh_mm_ss.txt"。たとえば、ファイルがアーカイブされた時間が September 4, 2020 at 3:50 p.m. and 7 seconds である場合、"D2020_09_04_T15_50_07.txt" になります。 #### バックアップパラメーター @@ -221,17 +221,17 @@ logweb.txt の自動バックアップパラメーターは、ストラクチャ ![](../assets/en/WebServer/backup.png) -最初に、頻度 (日、週などの単位) またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。 必要に応じて、バックアップする正確な時間を指定します。 +最初に、頻度 (日、週などの単位)またはファイルサイズの上限に対応するラジオボタンをクリックして選択します。必要に応じて、バックアップする正確な時間を指定します。 - **バックアップしない**: 周期的なバックアップ機能が無効になっています。 - **X 時間ごと**: 1時間単位でバックアップをプログラムする際、このオプションを使用します。 1 から 24 の値を入力します。 - **開始時刻**: 最初のバックアップ開始時間の設定に使用します。 -- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。 バックアップを毎日実行するには、1を入力します。 このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 +- **X 日ごと**: 1日単位でバックアップをプログラムする際、このオプションを使用します。バックアップを毎日実行するには、1を入力します。このオプションをチェックすると、バックアップの開始時間を指定しなければなりません。 -- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 たとえば、毎週バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。 複数の曜日を選択することもできます。 +- **X 週ごと**: 1週間単位でバックアップをプログラムする際、このオプションを使用します。たとえば、毎週バックアップをおこなうには 1 と設定します。このオプションをチェックすると、バックアップを開始する曜日と時間を指定しなければなりません。複数の曜日を選択することもできます。たとえば、毎週水曜日と金曜日にバックアップをするようプログラムできます。 -- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。 たとえば、毎月バックアップをおこなうには 1 と設定します。 このオプションをチェックすると、バックアップ開始月の日時を設定しなければなりません。 +- **X 月ごと**: 1ヶ月単位でバックアップをプログラムする際、このオプションを使用します。たとえば、毎月バックアップをおこなうには 1 と設定します。このオプションをチェックすると、バックアップ開始月の日時を設定しなければなりません。 -- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。 ファイルが指定サイズに達すると、バックアップが自動的に起動します。 サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 +- **X MB** (サイズ指定): カレントのリクエストログのファイルサイズに基づいてバックアップをプログラムする際、このオプションを使用します。ファイルが指定サイズに達すると、バックアップが自動的に起動します。サイズ制限は 1、10、100 または 1000MB ごとに設定可能です。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md index 970335ed352f23..ad1821ccf40b2a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerConfig.md @@ -26,11 +26,11 @@ title: 設定 Webページキャッシュの有効化と設定をおこないます。 -4D Webサーバーにはキャッシュがあり、スタティックページ、GIF、JPEG (<512 kb)、そしてスタイルシート (.css ファイル) などがリクエストされると、メモリにロードされます。 キャッシュの利用は、スタティックページの送信時に Webサーバーのパフォーマンスを大幅に向上します。 キャッシュはすべての Webプロセスで共有されます。 キャッシュが有効化されている場合、4D Webサーバーは、ブラウザーからリクエストされた静的ページをまずキャッシュ内で探します。 ページが見つかれば、それを送信します。 見つからない場合、4D はディスクからページを読み込み、キャッシュに格納します。 +4D Webサーバーにはキャッシュがあり、スタティックページ、GIF、JPEG (<512 kb)、そしてスタイルシート (.css ファイル) などがリクエストされると、メモリにロードされます。キャッシュの利用は、スタティックページの送信時に Webサーバーのパフォーマンスを大幅に向上します。キャッシュはすべての Webプロセスで共有されます。キャッシュが有効化されている場合、4D Webサーバーは、ブラウザーからリクエストされた静的ページをまずキャッシュ内で探します。ページが見つかれば、それを送信します。見つからない場合、4D はディスクからページを読み込み、キャッシュに格納します。 -キャッシュのサイズは、**ページキャッシュサイズ** エリアで変更できます。 設定する値は、スタティックページのサイズや数、およびホストマシンで利用可能なリソースによります。 +キャッシュのサイズは、**ページキャッシュサイズ** エリアで変更できます。設定する値は、スタティックページのサイズや数、およびホストマシンで利用可能なリソースによります。 -> Webデータベースを利用する間、`WEB GET STATISTICS` コマンドを使用してキャッシュのパフォーマンスを検証できます。 たとえば、キャッシュ利用率が 100% に近い場合、キャッシュに割り当てたメモリ量を増やすことを考慮します。 [/4DSTATS] と [/4DHTMLSTATS] の URL も、キャッシュの状態を知るのに使用できます。 +> Webデータベースを利用する間、`WEB GET STATISTICS` コマンドを使用してキャッシュのパフォーマンスを検証できます。たとえば、キャッシュ利用率が 100% に近い場合、キャッシュに割り当てたメモリ量を増やすことを考慮します。 [/4DSTATS] と [/4DHTMLSTATS] の URL も、キャッシュの状態を知るのに使用できます。 ## 証明書フォルダー @@ -42,7 +42,7 @@ Webサーバー用の TLS証明書ファイルが置かれているフォルダ 4D または 4D Server のデフォルトでは、これらのファイルは[Project フォルダー](Project/architecture.md#project-フォルダー) の隣に配置する必要があります。 -4D をリモートモードで使用する場合、これらのファイルは、リモートマシン上のデータベースのローカルリソースフォルダーに配置されている必要があります (`Get 4D folder` コマンドの `4D Client Database Folder` の項を参照ください)。 これらのファイルはリモートマシンに手動でコピーする必要があります。 +4D をリモートモードで使用する場合、これらのファイルは、リモートマシン上のデータベースのローカルリソースフォルダーに配置されている必要があります (`Get 4D folder` コマンドの `4D Client Database Folder` の項を参照ください)。これらのファイルはリモートマシンに手動でコピーする必要があります。 > TLS 証明書ファイルは、*key.pem* (秘密の暗号鍵を含むドキュメント) と *cert.pem* (証明書を含むドキュメント) です。 @@ -54,7 +54,7 @@ Webサーバー用の TLS証明書ファイルが置かれているフォルダ | `WEB SET OPTION` | `Web character set` | MIBEnum 整数、または名称の文字列 | | 設定ダイアログボックス | [オプション (II) ページ / 文字コード](../settings/web.md#文字コード) | ポップアップメニュー | -4D Webサーバーが使用する文字セットを定義します。 デフォルト値は OS の言語に依存します。 +4D Webサーバーが使用する文字セットを定義します。デフォルト値は OS の言語に依存します。 > この設定は、クイックレポートを HTMLフォーマットで書き出す際にも使用されます。 @@ -64,7 +64,7 @@ Webサーバー用の TLS証明書ファイルが置かれているフォルダ | ---------------- | -------------------------------------------------- | ---- | | webServer オブジェクト | [`cipherSuite`](API/WebServerClass.md#ciphersuite) | テキスト | -セキュアプロトコルに使用される暗号リストです。 Webサーバーが実装する暗号アルゴリズムの優先順位を設定します。 コロン区切りの文字列として設定できます (例: "ECDHE-RSA-AES128-...")。 詳細は Open SSL サイトの [ciphers ページ](https://www.openssl.org/docs/manmaster/man1/ciphers.html) を参照ください。 +セキュアプロトコルに使用される暗号リストです。 Webサーバーが実装する暗号アルゴリズムの優先順位を設定します。コロン区切りの文字列として設定できます (例: "ECDHE-RSA-AES128-...")。詳細は Open SSL サイトの [ciphers ページ](https://www.openssl.org/docs/manmaster/man1/ciphers.html) を参照ください。 > 4D が使用するデフォルトの暗号リストは、`SET DATABASE PARAMETER` コマンドを使用してセッションごとに変更することができます。この場合、変更は 4Dアプリケーション全体に適用されます (Webサーバー・SQLサーバー・クライアント/サーバー接続、HTTPクライアント、セキュアプロトコルを使用するすべての 4Dコマンドを含む)。 @@ -80,7 +80,7 @@ CORSサービスで許可されたホストとメソッドの一覧。 #### ドメイン名 (hostプロパティ) -CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。 複数のドメインを追加してホワイトリストを作成することができます。 複数のシンタックスがサポートされています: +CORS を介したサーバーへのデータリクエスト送信が許可されている外部ページのドメイン名または IPアドレス。複数のドメインを追加してホワイトリストを作成することができます。複数のシンタックスがサポートされています: - 192.168.5.17:8081 - 192.168.5.17 @@ -95,7 +95,7 @@ CORS を介したサーバーへのデータリクエスト送信が許可され #### 許可された HTTPメソッド (methodsプロパティ) -対応する CORSホストに対して許可する HTTPメソッド。 以下の HTTPメソッドがサポートされます: +対応する CORSホストに対して許可する HTTPメソッド。以下の HTTPメソッドがサポートされます: - GET - HEAD @@ -119,7 +119,7 @@ CORS を介したサーバーへのデータリクエスト送信が許可され | webServer オブジェクト | `debugLog` | 数値 | | `WEB SET OPTION` | `Web debug log` | 数値 | -Webサーバーの HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている [*HTTPDebugLog_nn.txt*](../Debugging/debugLogFiles.md#httpdebuglogtxt) (nn はファイル番号)) の状態を指定します。 このログファイルは、Webサーバーに関連する問題をデバッグするのに便利です。 ログには、各リクエスト・レスポンスが rawモードで記録されます。 ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。 +Webサーバーの HTTPリクエストログファイル (アプリケーションの "Logs" フォルダーに格納されている [*HTTPDebugLog_nn.txt*](../Debugging/debugLogFiles.md#httpdebuglogtxt) (nn はファイル番号)) の状態を指定します。このログファイルは、Webサーバーに関連する問題をデバッグするのに便利です。ログには、各リクエスト・レスポンスが rawモードで記録されます。ヘッダーを含むリクエスト全体が記録され、オプションでボディ部分も記録することができます。 | 値 | 定数 | 説明 | | - | ------------------------------ | ------------------------------------------------------------ | @@ -137,9 +137,9 @@ Webサーバーの HTTPリクエストログファイル (アプリケーショ | `WEB SET HOME PAGE` | | Webプロセス毎に異なる設定が可能 | | 設定ダイアログボックス | [設定ページ / デフォルトホームページ](../settings/web.md#デフォルトホームページ) | | -Webサーバーのデフォルトホームページを指定します。 このページはスタティックでもセミダイナミックでも可能です。 +Webサーバーのデフォルトホームページを指定します。このページはスタティックでもセミダイナミックでも可能です。 -Webサーバーの初回起動時には、4D はデフォルトで "index.html" という名前のホームページを作成し、HTMLルートフォルダーに置きます。 この設定を変更しない場合、Webサーバーに接続するブラウザーには以下のようなページが表示されます: +Webサーバーの初回起動時には、4D はデフォルトで "index.html" という名前のホームページを作成し、HTMLルートフォルダーに置きます。この設定を変更しない場合、Webサーバーに接続するブラウザーには以下のようなページが表示されます: ![](../assets/en/WebServer/defaultHomePage.png) @@ -151,7 +151,7 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" たとえば、デフォルトHTMLルートフォルダー内の "Web" サブフォルダーにある "MyHome.htm" をデフォルトホームページにする場合、"Web/MyHome.htm" と入力します。 -デフォルトホームページを指定しない場合、`On Web Connection` データベースメソッドが呼び出されます。 この場合には、プロシージャーでリクエストを処理するのは開発者の役割です。 +デフォルトホームページを指定しない場合、`On Web Connection` データベースメソッドが呼び出されます。この場合には、プロシージャーでリクエストを処理するのは開発者の役割です。 ## CORSを有効化 @@ -161,7 +161,7 @@ Webサーバーの初回起動時には、4D はデフォルトで "index.html" | `WEB SET OPTION` | `Web CORS enabled` | 0 (デフォルト値; 無効) または 1 (有効) | | 設定ダイアログボックス | [オプション (II) ページ / CORSを有効化](../settings/web.md#corsを有効化) | デフォルトではチェックなし | -4D Webサーバーは、クロスオリジンリソースシェアリング (CORS) を実装しており、これによって別ドメインにて提供されている特定の Webページが、REST などを使用した XHRコールを介してカレントWebアプリケーションのリソースにアクセスできるようにすることが可能です。 セキュリティ上の理由により、"ドメイン間" のリクエストはブラウザーレベルでデフォルトで禁止されています。 有効化されている場合、ドメイン外 Webページからの XHRコール (RESTリクエストなど) をアプリケーションにおいて許可することができます (CORSドメインリストに許可されたアドレスのリストを定義する必要があります。 有効時に、許可されていないドメインやメソッドがサイト間リクエストを送信した場合、"403 - forbidden" エラーレスポンスによって拒否されます。 +4D Webサーバーは、クロスオリジンリソースシェアリング (CORS) を実装しており、これによって別ドメインにて提供されている特定の Webページが、REST などを使用した XHRコールを介してカレントWebアプリケーションのリソースにアクセスできるようにすることが可能です。セキュリティ上の理由により、"ドメイン間" のリクエストはブラウザーレベルでデフォルトで禁止されています。有効化されている場合、ドメイン外 Webページからの XHRコール (RESTリクエストなど) をアプリケーションにおいて許可することができます (CORSドメインリストに許可されたアドレスのリストを定義する必要があります。有効時に、許可されていないドメインやメソッドがサイト間リクエストを送信した場合、"403 - forbidden" エラーレスポンスによって拒否されます。 無効化されている場合 (デフォルト) には、CORS で送信されたサイト間リクエストはすべて無視されます。 @@ -189,7 +189,7 @@ CORS についての詳細は、Wikipedia の[Cross-origin resource sharing](htt | `WEB SET OPTION` | `Web HTTPS enabled` | | | 設定ダイアログボックス | 設定ページ / HTTPSを有効にする | | -Webサーバーがセキュアな接続を受け入れるか受け入れないかを指定します。 このオプションは [TLSプロトコル](Admin/tls.md) で説明しています。 +Webサーバーがセキュアな接続を受け入れるか受け入れないかを指定します。このオプションは [TLSプロトコル](Admin/tls.md) で説明しています。 ## HSTSを有効にする @@ -202,9 +202,9 @@ HTTP Strict Transport Security (HSTS) の状態です。 [HTTPSを有効](#httpsを有効にする) にした場合、同時に [HTTPも有効](#httpを有効化)になっていると、ブラウザー上では HTTPS と HTTP を切り替えることができることに注意が必要です (たとえば、ブラウザーのアドレスバーで、ユーザーは "https" を "http" に置き換えることができます)。 HTTP へのリダイレクトを禁止するには、[HTTPを無効](#httpを有効化) にすることもできますが、この場合、クライアントの HTTPリクエストに対してエラーメッセージが表示されてしまいます。 -HSTS によって、4D Webサーバーはブラウザーに対し、セキュアな HTTPS接続のみを許可すると宣言できます。 HSTS を有効にすると、4D Webサーバーはすべてのレスポンスヘッダーに HSTS 関連の情報を自動的に追加します。 4D Webサーバーからの初回レスポンスを受け取った際にブラウザーは HSTS情報を記録し、以降の HTTPリクエストは自動的に HTTPSリクエストに変換されます。 ブラウザー側でこの情報が保存される時間は **HSTS max age** 設定によって指定されます。 +HSTS によって、4D Webサーバーはブラウザーに対し、セキュアな HTTPS接続のみを許可すると宣言できます。 HSTS を有効にすると、4D Webサーバーはすべてのレスポンスヘッダーに HSTS 関連の情報を自動的に追加します。 4D Webサーバーからの初回レスポンスを受け取った際にブラウザーは HSTS情報を記録し、以降の HTTPリクエストは自動的に HTTPSリクエストに変換されます。ブラウザー側でこの情報が保存される時間は **HSTS max age** 設定によって指定されます。 -> HSTS のためには、サーバー上で [HTTPS が有効](#httpsを有効にする)になっていなくてはなりません。 また、クライアントの初回接続を許可するために、[HTTP も有効](#httpを有効化) でなくてはなりません。 +> HSTS のためには、サーバー上で [HTTPS が有効](#httpsを有効にする)になっていなくてはなりません。また、クライアントの初回接続を許可するために、[HTTP も有効](#httpを有効化) でなくてはなりません。 > 現在の接続モードは、`WEB Is secured connection` コマンドで取得できます。 @@ -215,10 +215,9 @@ HSTS によって、4D Webサーバーはブラウザーに対し、セキュア | webServer オブジェクト | [`HSTSMaxAge`](API/WebServerClass.md#hstsmaxage) | 数値 (秒単位) | | `WEB SET OPTION` | `Web HSTS max age` | 数値 (秒単位) | -新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位) を指定します。 この情報はクライアント側で指定された時間のあいだ保存されます。 -デフォルト値は 63072000 (2年)。 +新規クライアント接続ごとに HSTS がアクティブな最長時間 (秒単位) を指定します。この情報はクライアント側で指定された時間のあいだ保存されます。デフォルト値は 63072000 (2年)。 -> **警告:** HSTS が有効な間、クライアントの接続はこのメカニズムを使用し続けます。 アプリケーションをテストする際には、セキュアな接続とセキュアでない接続を必要に応じて切り替えることができるように、短い時間を設定することが推奨されます。 +> **警告:** HSTS が有効な間、クライアントの接続はこのメカニズムを使用し続けます。アプリケーションをテストする際には、セキュアな接続とセキュアでない接続を必要に応じて切り替えることができるように、短い時間を設定することが推奨されます。 ## HTTP圧縮レベル @@ -227,9 +226,9 @@ HSTS によって、4D Webサーバーはブラウザーに対し、セキュア | webServer オブジェクト | [`HTTPCompressionLevel`](API/WebServerClass.md#httpcompressionlevel) | | | `WEB SET OPTION` | `Web HTTP compression level` | Web および Webサービスに適用されます | -4D Webサーバーの HTTP圧縮通信 (クライアントリクエストまたはサーバーレスポンス) における圧縮レベル。 この設定を使って、実行速度を優先するか (圧縮少)、それとも圧縮レベルを優先するか (速度減) を指定し、通信を最適化することができます。 適切な値は、通信データのサイズとタイプによって異なります。 +4D Webサーバーの HTTP圧縮通信 (クライアントリクエストまたはサーバーレスポンス) における圧縮レベル。この設定を使って、実行速度を優先するか (圧縮少)、それとも圧縮レベルを優先するか (速度減) を指定し、通信を最適化することができます。適切な値は、通信データのサイズとタイプによって異なります。 -1 から 9 の値を指定します (1 が低圧縮、9 が高圧縮)。 -1 を指定すると、圧縮速度と圧縮率の妥協点が得られます。 デフォルトの圧縮レベルは 1 (低圧縮) です。 +1 から 9 の値を指定します (1 が低圧縮、9 が高圧縮)。 -1 を指定すると、圧縮速度と圧縮率の妥協点が得られます。デフォルトの圧縮レベルは 1 (低圧縮) です。 ## HTTP圧縮のしきい値 @@ -238,9 +237,9 @@ HSTS によって、4D Webサーバーはブラウザーに対し、セキュア | webServer オブジェクト | [`HTTPCompressionThreshold`](API/WebServerClass.md#httpcompressionthreshold) | | | `WEB SET OPTION` | `Web HTTP compression threshold` | | -最適化されたHTTP通信のフレームワークにおける、HTTP圧縮のしきい値 (バイト単位)。 このサイズ未満のリクエストについては、通信が圧縮されません。 この設定は、通信サイズが小さい場合、圧縮に処理時間が費やされるのを避けるのに有用です。 +最適化されたHTTP通信のフレームワークにおける、HTTP圧縮のしきい値 (バイト単位)。 このサイズ未満のリクエストについては、通信が圧縮されません。この設定は、通信サイズが小さい場合、圧縮に処理時間が費やされるのを避けるのに有用です。 -サイズを数値 (バイト単位) で指定します。 デフォルトのしきい値は 1024 バイトに設定されています。 +サイズを数値 (バイト単位) で指定します。デフォルトのしきい値は 1024 バイトに設定されています。 ## HTTP ポート @@ -250,13 +249,13 @@ HSTS によって、4D Webサーバーはブラウザーに対し、セキュア | `WEB SET OPTION` | `Web port ID` | | | 設定ダイアログボックス | [設定ページ / HTTPポート](../settings/web.md#http-ポート) | | -HTTP接続を受け付ける IP (TCP) ポート番号。 デフォルトで、4D は通常の Web HTTPポート (TCPポート) 番号である 80番を使用して Webアプリケーションを公開します。 他の Webサービスによってこのポート番号が既に使用されている場合、4D が使用する HTTPポート番号を変更する必要があります。 +HTTP接続を受け付ける IP (TCP) ポート番号。デフォルトで、4D は通常の Web HTTPポート (TCPポート) 番号である 80番を使用して Webアプリケーションを公開します。他の Webサービスによってこのポート番号が既に使用されている場合、4D が使用する HTTPポート番号を変更する必要があります。 > macOS では、HTTPポートを変更することで、rootユーザーでなくても Webサーバーを開始することができるようになります (macOS での Helperツール 参照)。 -デフォルトでない HTTPポート番号を使用して公開された Webアプリケーションに接続するには、Webブラウザーで入力するアドレスにポート番号を含めなければなりません。 アドレスの後にコロンに続けてポート番号を指定します。 たとえば、HTTPポート番号 8080を使用する場合、"123.4.567.89:8080" のように書きます。 +デフォルトでない HTTPポート番号を使用して公開された Webアプリケーションに接続するには、Webブラウザーで入力するアドレスにポート番号を含めなければなりません。アドレスの後にコロンに続けてポート番号を指定します。たとえば、HTTPポート番号 8080を使用する場合、"123.4.567.89:8080" のように書きます。 -> **警告**: デフォルトの TCPポート番号 (標準モードで 80、HTTPSモードで 443) 以外を指定する場合、同時に使用する他のサービスのデフォルトポート番号を使わないよう注意が必要です。 たとえば、Webサーバーマシンで FTPプロトコルを使用する計画である場合、このプロトコルのデフォルトである TCPポート 20 と 21 を使用してはいけません。 256 より下のポート番号は、well-known サービスに予約されています。 また、256 から 1024 は UNIXプラットフォーム由来のサービスに予約されています。 セキュリティのため、これらの数値よりも上、たとえば 2000台や 3000台などを指定します。 +> **警告**: デフォルトの TCPポート番号 (標準モードで 80、HTTPSモードで 443) 以外を指定する場合、同時に使用する他のサービスのデフォルトポート番号を使わないよう注意が必要です。たとえば、Webサーバーマシンで FTPプロトコルを使用する計画である場合、このプロトコルのデフォルトである TCPポート 20 と 21 を使用してはいけません。 256 より下のポート番号は、well-known サービスに予約されています。 また、256 から 1024 は UNIXプラットフォーム由来のサービスに予約されています。セキュリティのため、これらの数値よりも上、たとえば 2000台や 3000台などを指定します。 0 を指定すると、4D はデフォルトの HTTPポート番号 80を使用します。 @@ -267,7 +266,7 @@ HTTP接続を受け付ける IP (TCP) ポート番号。 デフォルトで、4D | webServer オブジェクト | [`HTTPTrace`](API/WebServerClass.md#httptrace) | ブール; デフォルトは false | | `WEB SET OPTION` | `Web HTTP TRACE` | 数値; デフォルトは 0 (無効) | -4D Webサーバーの HTTP TRACE メソッドを有効化します。 セキュリティ上の理由により、4D Webサーバーはデフォルトで HTTP TRACE リクエストをエラー405 で拒否します。 必要に応じて有効化された場合、HTTP TRACE リクエストに対して Webサーバーは、リクエスト行、ヘッダー、および本文を返します。 +4D Webサーバーの HTTP TRACE メソッドを有効化します。セキュリティ上の理由により、4D Webサーバーはデフォルトで HTTP TRACE リクエストをエラー405 で拒否します。必要に応じて有効化された場合、HTTP TRACE リクエストに対して Webサーバーは、リクエスト行、ヘッダー、および本文を返します。 ## HTTPS ポート @@ -277,7 +276,7 @@ HTTP接続を受け付ける IP (TCP) ポート番号。 デフォルトで、4D | `WEB SET OPTION` | `Web HTTPS port ID` | | | 設定ダイアログボックス | [設定ページ / HTTPSポート](../settings/web.md#https-port) | | -TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォルトで HTTPSポート番号は 443です。 ポート番号に関する詳細については、[HTTP ポート](#http-ポート) を参照ください。 +TLS を介した HTTPS接続を受け付ける IPポート番号。デフォルトで HTTPSポート番号は 443です。ポート番号に関する詳細については、[HTTP ポート](#http-ポート) を参照ください。 ## 非動作プロセスのタイムアウト @@ -287,7 +286,7 @@ TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォル | `WEB SET OPTION` | `Web inactive process timeout` | | | 設定ダイアログボックス | [オプション (I) ページ / 非動作プロセスのタイムアウト](../settings/web.md#非動作プロセスのタイムアウト) | スライダー | -旧式セッションと紐づいた非アクティブWebプロセスのタイムアウト時間 (分単位) を設定します。 タイムアウト時間が経過すると、サーバーはプロセスを終了します。すると、`On Web Legacy Close Session` データベースメソッドが呼び出され、セッションのコンテキストは削除されます。 +旧式セッションと紐づいた非アクティブWebプロセスのタイムアウト時間 (分単位) を設定します。タイムアウト時間が経過すると、サーバーはプロセスを終了します。すると、`On Web Legacy Close Session` データベースメソッドが呼び出され、セッションのコンテキストは削除されます。 デフォルト値: 480分 (デフォルト値に戻すには 0 を指定します) @@ -298,7 +297,7 @@ TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォル | webServer オブジェクト | [`inactiveSessionTimeout`](API/WebServerClass.md#inactivesessiontimeout) | | | `WEB SET OPTION` | `Web inactive session timeout` | | -非アクティブセッションのタイムアウト時間 (分単位) を cookie に設定します。 タイムアウト時間が経過するとセッションcookie が無効になり、HTTPクライアントによって送信されなくなります。 +非アクティブセッションのタイムアウト時間 (分単位) を cookie に設定します。タイムアウト時間が経過するとセッションcookie が無効になり、HTTPクライアントによって送信されなくなります。 デフォルト値: 480分 (デフォルト値に戻すには 0 を指定します) @@ -312,19 +311,19 @@ TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォル 4D Webサーバーが HTTPリクエストを受け付ける IPアドレスを指定できます (4Dローカルおよび 4D Server)。 -デフォルトでは、特定のアドレスが定義されていないため (設定ダイアログボックスでは **任意** の値)、サーバーはすべての IPアドレスに応答します。 特定のアドレスを指定すると、サーバーはこの IPアドレスへのリクエストにのみ応答します。 この機能は複数の TCP/IPアドレスが設定されたマシン上で動作する 4D Webサーバーのためのものです。 これはしばしば、インターネットホストプロバイダーで使用されます。 +デフォルトでは、特定のアドレスが定義されていないため (設定ダイアログボックスでは **任意** の値)、サーバーはすべての IPアドレスに応答します。特定のアドレスを指定すると、サーバーはこの IPアドレスへのリクエストにのみ応答します。この機能は複数の TCP/IPアドレスが設定されたマシン上で動作する 4D Webサーバーのためのものです。これはしばしば、インターネットホストプロバイダーで使用されます。 とりうる値: IPアドレス文字列。 IPv6 文字列フォーマット (例: "2001:0db8:0000:0000:0000:ff00:0042:8329") と IPv4 文字列フォーマット (例: "123.45.67.89") の両方がサポートされます。 #### IPv6 のサポートについて - **TCPポートが使用済みでも警告は出ません**
    - サーバーが応答する IPアドレスが "任意" に設定されていた場合、TCPポートが他のアプリケーションで使用されていても、それはサーバー起動時に指摘されません。 IPv6 アドレスのポートが空いているため、この場合 4D Server はどのようなエラーも検知しません。 しかしながら、マシンの IPv4アドレスを使用、またはローカルアドレス 127.0.0.1 を使用してアクセスすることは不可能です。 + サーバーが応答する IPアドレスが "任意" に設定されていた場合、TCPポートが他のアプリケーションで使用されていても、それはサーバー起動時に指摘されません。 IPv6 アドレスのポートが空いているため、この場合 4D Server はどのようなエラーも検知しません。しかしながら、マシンの IPv4アドレスを使用、またはローカルアドレス 127.0.0.1 を使用してアクセスすることは不可能です。 定義されたポートで 4D Server が反応していないようであれば、サーバーマシンで [::1] のアドレスを試してみてください (IPv6 における 127.0.0.1 と同義です。 他のポート番号をテストするには [:portNum] を追加してください)。 4D が応答するようであれば、IPv4 のポートを他のアプリケーションが使用している可能性が高いです。 - **IPv4-マップされた IPv6アドレス**
    - プロセスを標準化するために、4D では IPv4アドレスの標準ハイブリッド表示を IPv6 で提供しています。 これらのアドレスは IPv6フォーマットにおいて 96ビットの接頭辞付きで書かれ、その後に IPv4ドット区切り表記で書かれた 32ビットが続きます。 たとえば、::ffff:192.168.2.34 は、192.168.2.34 という IPv4アドレスを表します。 + プロセスを標準化するために、4D では IPv4アドレスの標準ハイブリッド表示を IPv6 で提供しています。これらのアドレスは IPv6フォーマットにおいて 96ビットの接頭辞付きで書かれ、その後に IPv4ドット区切り表記で書かれた 32ビットが続きます。たとえば、::ffff:192.168.2.34 は、192.168.2.34 という IPv4アドレスを表します。 - **ポート番号の表記**
    IPv6 記法はコロン (:) を使用するので、ポート番号を追加するときには混乱を招く恐れがあることに注意が必要です。たとえば: @@ -362,9 +361,9 @@ TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォル | `WEB SET OPTION` | `Web log recording` | | | 設定ダイアログボックス | [ログ (タイプ) ページ](../settings/web.md#ログフォーマット) | ポップアップメニュー | -4D Web サーバーが受け取るリクエストのログを開始/停止します。ログは、*logweb.txt* ファイルに記録され、そのフォーマットを指定することができます。 デフォルトでは、リクエストは規則されません (0 / ログファイルなし)。 有効化されると、*logweb.txt* ファイルが Logs フォルダー内に自動で保存されます。 +4D Web サーバーが受け取るリクエストのログを開始/停止します。ログは、*logweb.txt* ファイルに記録され、そのフォーマットを指定することができます。デフォルトでは、リクエストは規則されません (0 / ログファイルなし)。有効化されると、*logweb.txt* ファイルが Logs フォルダー内に自動で保存されます。 -このファイルのフォーマットを指定することができます。 使用可能な値: +このファイルのフォーマットを指定することができます。使用可能な値: | 値 | フォーマット | 説明 | | - | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -374,7 +373,7 @@ TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォル | 3 | ELF形式で記録する | Extended Log Format - 設定ダイアログボックスにてカスタマイズします。 | | 4 | WLF形式で記録する | WebStar Log Format - 設定ダイアログボックスにてカスタマイズします。 | -> フォーマット3、4はカスタムフォーマットで、あらかじめ [設定ダイアログボックス](../settings/web.md#ログフォーマット) にて内容を指定しておく必要があります。 このページでフィールドを選択せずにこれらのフォーマットを使用した場合、ログファイルは生成されません。 +> フォーマット3、4はカスタムフォーマットで、あらかじめ [設定ダイアログボックス](../settings/web.md#ログフォーマット) にて内容を指定しておく必要があります。このページでフィールドを選択せずにこれらのフォーマットを使用した場合、ログファイルは生成されません。 ## 最大同時Webプロセス @@ -384,7 +383,7 @@ TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォル | `WEB SET OPTION` | `Web max concurrent processes` | | | 設定ダイアログボックス | [オプション (I) ページ / 最大同時Webプロセス](../settings/web.md#最大同時webプロセス) | | -**セッションなし** または **旧式セッション** が使用されているときの、サーバー上で同時に開くことのできるすべての Webプロセスの最大同時接続数の厳格な上限を設定します (**スケーラブルセッション** では、[数の制限なく](sessions.md) プリエンプティブプロセスがサポートされています)。 このパラメーターは、異常な数のリクエストによる 4D Webサーバーの飽和状態を避けるために使用します。 最大Web同時接続数 (マイナス1) に達すると、4D は新しいプロセスを作成せず、HTTPステータス `503 - Service Unavailable` を新規リクエストに対して返信します。 +**セッションなし** または **旧式セッション** が使用されているときの、サーバー上で同時に開くことのできるすべての Webプロセスの最大同時接続数の厳格な上限を設定します (**スケーラブルセッション** では、[数の制限なく](sessions.md) プリエンプティブプロセスがサポートされています)。このパラメーターは、異常な数のリクエストによる 4D Webサーバーの飽和状態を避けるために使用します。最大Web同時接続数 (マイナス1) に達すると、4D は新しいプロセスを作成せず、HTTPステータス `503 - Service Unavailable` を新規リクエストに対して返信します。 デフォルト値は 100 です。 10から32000までの値を設定できます。 @@ -395,9 +394,9 @@ TLS を介した HTTPS接続を受け付ける IPポート番号。 デフォル | webServer オブジェクト | [`maxRequestSize`](API/WebServerClass.md#maxrequestsize) | | | `WEB SET OPTION` | `Web maximum requests size` | | -Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サイズ (バイト単位)。 デフォルト値は 2,000,000 (2MBより、すこし少ない値) です。 最大値 (2,147,483,648) に設定した場合、実際には制限無しということになります。 +Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サイズ (バイト単位)。デフォルト値は 2,000,000 (2MBより、すこし少ない値) です。最大値 (2,147,483,648) に設定した場合、実際には制限無しということになります。 -制限を設けることで、サイズが非常に大きいリクエストによって Webサーバーが過負荷状態に陥ることを防ぎます。 リクエストのサイズが制限に達していると、4D Webサーバーによって拒否されます。 +制限を設けることで、サイズが非常に大きいリクエストによって Webサーバーが過負荷状態に陥ることを防ぎます。リクエストのサイズが制限に達していると、4D Webサーバーによって拒否されます。 とりうる値: 500,000 - 2,147,483,648。 @@ -408,7 +407,7 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ | webServer オブジェクト | [`maxSessions`](API/WebServerClass.md#maxsessions) | | | `WEB SET OPTION` | `Web max sessions` | | -旧式セッションにおける同時セッションの最大数。 設定された制限に達すると、Webサーバーが新規セッションを作成するときに、一番古い旧式セッションが閉じられます (`On Web Legacy Close Session` データベースメソッドが呼び出されます)。 旧式の同時セッション数は、[Webプロセスの最大値](#最大同時webプロセス)を超えることはできません (デフォルトは 100)。 +旧式セッションにおける同時セッションの最大数。設定された制限に達すると、Webサーバーが新規セッションを作成するときに、一番古い旧式セッションが閉じられます (`On Web Legacy Close Session` データベースメソッドが呼び出されます)。旧式の同時セッション数は、[Webプロセスの最大値](#最大同時webプロセス)を超えることはできません (デフォルトは 100)。 デフォルト値: 100 (デフォルト値に戻すには 0 を指定します). @@ -418,7 +417,7 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ | ---------------- | ------------------------------------------------------ | ---- | | webServer オブジェクト | [`minTLSVersion`](API/WebServerClass.md#mintlsversion) | 数値 | -接続に必要な最低TLSバージョン。 これよりも低いバージョンのみをサポートするクライアントからの接続は拒否されます。 +接続に必要な最低TLSバージョン。これよりも低いバージョンのみをサポートするクライアントからの接続は拒否されます。 とりうる値: @@ -437,7 +436,7 @@ Webサーバーに処理を許可する HTTPリクエスト (POST) の最大サ | ---------------- | ------------------------------------ | ---- | | webServer オブジェクト | [`name`](API/WebServerClass.md#name) | | -Webサーバーアプリケーションの名称。 コンポーネントの Webサーバーが起動されているときに便利です。 +Webサーバーアプリケーションの名称。コンポーネントの Webサーバーが起動されているときに便利です。 ## OpenSSL バージョン @@ -463,19 +462,19 @@ Webサーバーの PFS利用可否状況 ([TLS](Admin/tls.md#perfect-forward-sec > このオプションは、**セッションなし** オプションがチェックされている場合にのみ利用できます。 -前の Webリクエストを処理するために作成された Webプロセスを再利用することによって、4Dリモートモードで実行されている 4D Webサーバーの動作を最適化できます。 実際、4D Webサーバーはそれぞれの Webリクエストを処理するために専用の Webプロセスを必要とします。 リモートモードでは、このプロセスは必要に応じて、データやデータベースエンジンにアクセスするために 4D Server に接続します。 そしてプロセス独自の変数やセレクションを使用して、一時的なコンテキストを作成します。 リクエストの処理が終了すると、このプロセスは廃棄されます。 +前の Webリクエストを処理するために作成された Webプロセスを再利用することによって、4Dリモートモードで実行されている 4D Webサーバーの動作を最適化できます。実際、4D Webサーバーはそれぞれの Webリクエストを処理するために専用の Webプロセスを必要とします。 リモートモードでは、このプロセスは必要に応じて、データやデータベースエンジンにアクセスするために 4D Server に接続します。そしてプロセス独自の変数やセレクションを使用して、一時的なコンテキストを作成します。リクエストの処理が終了すると、このプロセスは廃棄されます。 -**一時的なコンテキストを再利用する** オプションがチェックされていると、リモートモードの 4D は作成された固有の Webプロセスを保守し、その後のリクエストで再利用します。 プロセスの作成処理が省略されるため、Webサーバーのパフォーマンスが向上します。 +**一時的なコンテキストを再利用する** オプションがチェックされていると、リモートモードの 4D は作成された固有の Webプロセスを保守し、その後のリクエストで再利用します。プロセスの作成処理が省略されるため、Webサーバーのパフォーマンスが向上します。 -他方このオプションを使用する場合、不正な結果が返されることを避けるために、4Dメソッド内で使用される変数をシステマチックに初期化する必要があります。 同様に、以前のリクエストで使用されたカレントセレクションやカレントレコードをアンロードする必要があります。 +他方このオプションを使用する場合、不正な結果が返されることを避けるために、4Dメソッド内で使用される変数をシステマチックに初期化する必要があります。同様に、以前のリクエストで使用されたカレントセレクションやカレントレコードをアンロードする必要があります。 -> このオプションはリモートモードの 4D Webサーバーでのみ効果があります。 ローカルモードの 4D では (セッション管理をおこなうプロセスを除く) すべてのWebプロセスが使用後に終了されます。 +> このオプションはリモートモードの 4D Webサーバーでのみ効果があります。ローカルモードの 4D では (セッション管理をおこなうプロセスを除く) すべてのWebプロセスが使用後に終了されます。 ## Robots.txt -特定のクローラー (クエリエンジン、スパイダー...) は Webサーバーやスタティックページをクロールします。 クローラーにサイトへアクセスさせたくない場合、アクセスを禁止する URL を指定できます。 +特定のクローラー (クエリエンジン、スパイダー...) は Webサーバーやスタティックページをクロールします。クローラーにサイトへアクセスさせたくない場合、アクセスを禁止する URL を指定できます。 -これには、ROBOTS.TXT ファイルをサーバーのルートに置きます。 このファイルの内容は以下の構造になっていなければなりません: +これには、ROBOTS.TXT ファイルをサーバーのルートに置きます。このファイルの内容は以下の構造になっていなければなりません: ```4d User-Agent: @@ -514,11 +513,11 @@ User-Agent: | `WEB SET ROOT FOLDER` | | | | 設定ダイアログボックス | [設定ページ / デフォルトHTMLルート](../settings/web.md#デフォルトhtmlルート) | | -4D がブラウザーに送信するスタティック/セミダイナミックな HTMLページ、ピクチャーなどを検索するフォルダーを指定します。 これが、Webサーバーのルートフォルダーです。 パスは、POSIXフルパスの形式です。 ルートフォルダーの変更を反映するには、Webサーバーを再起動する必要があります。 +4D がブラウザーに送信するスタティック/セミダイナミックな HTMLページ、ピクチャーなどを検索するフォルダーを指定します。 これが、Webサーバーのルートフォルダーです。パスは、POSIXフルパスの形式です。ルートフォルダーの変更を反映するには、Webサーバーを再起動する必要があります。 -さらに HTMLルートフォルダーは、Webサーバーのディスク上で、ファイルに対するアクセスができない階層を定義することにもなります。 ブラウザーから送られた URL や 4Dコマンドが、HTMLルートフォルダーよりも上の階層にアクセスしようとすると、ファイルが存在しないことを示すエラーが返されます。 +さらに HTMLルートフォルダーは、Webサーバーのディスク上で、ファイルに対するアクセスができない階層を定義することにもなります。ブラウザーから送られた URL や 4Dコマンドが、HTMLルートフォルダーよりも上の階層にアクセスしようとすると、ファイルが存在しないことを示すエラーが返されます。 -デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。 ルートフォルダーは以下の場所に作成されます: +デフォルトで、4D は **WebFolder** という名前のデフォルトHTMLルートフォルダーを定義します。 Webサーバーの初回起動時にこのフォルダーが存在しなければ、HTMLルートフォルダーは物理的にディスク上に作成されます。ルートフォルダーは以下の場所に作成されます: - 4D (ローカル) および 4D Server では、[Project フォルダー](Project/architecture.md#project-フォルダー) と同階層。 - 4Dリモートモードでは、ローカルのリソースフォルダー内 @@ -527,7 +526,7 @@ User-Agent: - このとき、相対パスの起点は [Projectフォルダー](Project/architecture.md#project-folder) (4Dローカルおよび 4D Server) 、または、4Dアプリケーションやソフトウェアーパッケージを含むフォルダーです (4Dリモートモード)。 - パスは POSIX シンタックスで表します (フォルダーはスラッシュ ("/") で区切ります)。 -- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。 置きます。 +- フォルダー階層で 1つ上にあがるには、フォルダー名の前にピリオドを2つ “..” 置きます。置きます。 - パスはスラッシュ (“/”) で始まってはいけません (HTMLルートフォルダーを Projectフォルダーや 4Dリモートフォルダーにしながら、それより上階層へのアクセスを禁止したい場合には、"/" を入力します)。 たとえば、HTMLルートフォルダーを "MyWebApp" フォルダーの “Web” サブフォルダーにしたい場合、"MyWebApp/Web" と入力します。 @@ -551,7 +550,7 @@ User-Agent: | webServer オブジェクト | [`sessionCookieDomain`](API/WebServerClass.md#sessioncookiedomain) | | | `WEB SET OPTION` | `Web session cookie domain` | | -セッションcookie の "path" フィールド。 セッションcookie のスコープを制御するのに使用されます。 たとえば、このセレクターに "/\*.4d.fr" の値を設定した場合、リクエストの宛先が ".4d.fr" のドメインに限り、クライアントは cookie を送信します。つまり、外部の静的データをホストするサーバーは除外されます。 +セッションcookie の "path" フィールド。セッションcookie のスコープを制御するのに使用されます。たとえば、このセレクターに "/\*.4d.fr" の値を設定した場合、リクエストの宛先が ".4d.fr" のドメインに限り、クライアントは cookie を送信します。つまり、外部の静的データをホストするサーバーは除外されます。 ## セッションcookie名 @@ -560,7 +559,7 @@ User-Agent: | webServer オブジェクト | [`sessionCookieName`](API/WebServerClass.md#sessioncookiename) | | | `WEB SET OPTION` | `Web session cookie name` | | -セッションID の保存に使用されるセッションcookie の名称。 デフォルト = "4DSID"。 +セッションID の保存に使用されるセッションcookie の名称。デフォルト = "4DSID"。 ## セッションcookieパス @@ -569,7 +568,7 @@ User-Agent: | webServer オブジェクト | [`sessionCookiePath`](API/WebServerClass.md#sessioncookiepath) | | | `WEB SET OPTION` | `Web session cookie path` | | -セッションcookie の "domain" フィールド。 セッションcookie のスコープを制御するのに使用されます。 たとえば、このセレクターに "/4DACTION" という値を設定した場合、4DACTION で始まる動的リクエストの場合にのみクライアントは cookie を送信し、ピクチャーや静的ページへのリクエストは除外されます。 +セッションcookie の "domain" フィールド。セッションcookie のスコープを制御するのに使用されます。たとえば、このセレクターに "/4DACTION" という値を設定した場合、4DACTION で始まる動的リクエストの場合にのみクライアントは cookie を送信し、ピクチャーや静的ページへのリクエストは除外されます。 ## セッションcookie SameSite @@ -577,7 +576,7 @@ User-Agent: | ---------------- | ---------------------------------------------------------------------- | ---- | | webServer オブジェクト | [`sessionCookieSameSite`](API/WebServerClass.md#sessioncookiesamesite) | | -セッションcookie の `SameSite` 属性の値。 この属性は、一部のクロスサイトリクエストフォージェリ ([CSRF](https://developer.mozilla.org/en-US/docs/Glossary/CSRF)) 攻撃からの保護として、ファーストパーティコンテキストまたは同一サイトコンテキストのどちらかに cookie を限定するかを宣言することができます。 +セッションcookie の `SameSite` 属性の値。この属性は、一部のクロスサイトリクエストフォージェリ ([CSRF](https://developer.mozilla.org/en-US/docs/Glossary/CSRF)) 攻撃からの保護として、ファーストパーティコンテキストまたは同一サイトコンテキストのどちらかに cookie を限定するかを宣言することができます。 > `SameSite` 属性に関する詳細な説明は [Mozilla のドキュメンテーション](https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Set-Cookie/SameSite) または [こちらの Web開発ページ (英語)](https://web.dev/samesite-cookies-explained/) を参照ください。 @@ -597,40 +596,40 @@ User-Agent: | ----------- | ---------------------------------------------------------------------------------------- | ---- | | 設定ダイアログボックス | [オプション (I) ページ / プリエンプティブプロセスを使用](../settings/web.md#プリエンプティブプロセスを使用) | | -このオプションは、**セッションなし** オプションが選択されている場合に、アプリケーションの Webサーバーコードのプリエンプティブモードを有効にします (**スケーラブルセッション** では、プリエンプティブモードは常に有効です)。 このコンテキストにおいて当該オプションがチェックされているとき、4Dコンパイラは [Web関連のコード](preemptiveWeb.md#4d-webコードのスレッドセーフティ) それぞれのスレッドセーフプロパティを自動的に評価し、違反があった場合にはエラーを返します。 +このオプションは、**セッションなし** オプションが選択されている場合に、アプリケーションの Webサーバーコードのプリエンプティブモードを有効にします (**スケーラブルセッション** では、プリエンプティブモードは常に有効です)。このコンテキストにおいて当該オプションがチェックされているとき、4Dコンパイラは [Web関連のコード](preemptiveWeb.md#4d-webコードのスレッドセーフティ) それぞれのスレッドセーフプロパティを自動的に評価し、違反があった場合にはエラーを返します。 ## 廃止予定の設定 -以下の設定は現在もサポートされていますが、廃止予定の機能や技術に依存しています。 通常はデフォルト値のままにしておくことが推奨されます。 +以下の設定は現在もサポートされていますが、廃止予定の機能や技術に依存しています。通常はデフォルト値のままにしておくことが推奨されます。 #### セッション IPアドレス検証 > [スケーラブルセッションモード](WebServer/sessions.md) の場合には、このオプションは利用できません (検証はおこなわれません)。 -セッションcookie の IP アドレス検証のステータス。 セキュリティ上の理由により、セッションcookie を持つ各リクエストに対して 4D Webサーバーはデフォルトで IPアドレスを検証します。 アプリケーションによっては、この検証機能を無効化し、IPアドレスが合致しなくてもセッションcookie を受け入れるようにしたいかもしれません。 たとえば、モバイルデバイスが WiFi と 4G/5G ネットワークを切り替えた場合、IPアドレスが変更されます。 このように IPアドレスが変更しても、クライアントによる Webセッションの継続を許可するには、このオプションに 0 を渡します。 この設定はアプリケーションのセキュリティレベルを下げることに留意が必要です。 この設定が変更された際には、その設定は直ちに反映されます (HTTPサーバーを再起動する必要はありません)。 +セッションcookie の IP アドレス検証のステータス。セキュリティ上の理由により、セッションcookie を持つ各リクエストに対して 4D Webサーバーはデフォルトで IPアドレスを検証します。アプリケーションによっては、この検証機能を無効化し、IPアドレスが合致しなくてもセッションcookie を受け入れるようにしたいかもしれません。たとえば、モバイルデバイスが WiFi と 4G/5G ネットワークを切り替えた場合、IPアドレスが変更されます。このように IPアドレスが変更しても、クライアントによる Webセッションの継続を許可するには、このオプションに 0 を渡します。この設定はアプリケーションのセキュリティレベルを下げることに留意が必要です。この設定が変更された際には、その設定は直ちに反映されます (HTTPサーバーを再起動する必要はありません)。 ### 一般Webユーザー -このオプションを使用すると、[4D パスワード表](../Users/handling_users_groups.md) で事前に定義されていたユーザーを、 "一般Web ユーザー" として指定することができます。 この場合、データベースに接続が許可されたそれぞれのブラウザが、そのユーザーに割り当てられたアクセス権と制限を取得します。 +このオプションを使用すると、[4D パスワード表](../Users/handling_users_groups.md) で事前に定義されていたユーザーを、 "一般Web ユーザー" として指定することができます。この場合、データベースに接続が許可されたそれぞれのブラウザが、そのユーザーに割り当てられたアクセス権と制限を取得します。 #### 拡張文字をそのまま送信 -このオプションを有効にすると、Webサーバーはセミダイナミックページの拡張文字を、HTML標準に基づいた変換をおこなわずに「そのまま」送信します。 このオプションにより、とくに Shift_JIS文字コード利用時の日本語のシステムで速度が向上します。 +このオプションを有効にすると、Webサーバーはセミダイナミックページの拡張文字を、HTML標準に基づいた変換をおこなわずに「そのまま」送信します。このオプションにより、とくに Shift_JIS文字コード利用時の日本語のシステムで速度が向上します。 #### Keep-Alive接続を使用する 4D Webサーバーは Keep-Alive接続を使用できます。 keep-alive接続を使用すると、Webブラウザーとサーバー間の一連のやり取りについて単一の TCP接続を維持し、システムリソースの節約と通信の最適化を図ることができます。 -**Keep-Alive接続を使用する** オプションは、Webサーバーの Keep-Alive接続を有効および無効にします。 このオプションはデフォルトで有効になっています。 ほとんどの場合、通信が高速化されるため、この状態をお勧めします。 Webブラウザーが Keep-Alive接続をサ ポートしない場合、4D Webサーバーは自動で HTTP/1.0 に切り替えます。 +**Keep-Alive接続を使用する** オプションは、Webサーバーの Keep-Alive接続を有効および無効にします。このオプションはデフォルトで有効になっています。ほとんどの場合、通信が高速化されるため、この状態をお勧めします。 Webブラウザーが Keep-Alive接続をサ ポートしない場合、4D Webサーバーは自動で HTTP/1.0 に切り替えます。 -4D Webサーバーの Keep-Alive機能はすべての TCP/IP接続 (HTTP, HTTPS) に関連します。 しかしながら、すべての 4D Webプロセスで常に Keep-Alive接続が使用されるわけではないことに留意してください。 +4D Webサーバーの Keep-Alive機能はすべての TCP/IP接続 (HTTP, HTTPS) に関連します。しかしながら、すべての 4D Webプロセスで常に Keep-Alive接続が使用されるわけではないことに留意してください。 あるケースでは、内部的な他の最適化機能が呼び出されることがあります。 Keep-Alive接続は、おもにスタティックページで有効です。 Keep-Alive接続を設定する 2つのオプションがあります: -- **接続毎のリクエスト数**: ひとつの Keep-Alive接続におけるリクエストとレスポンスの最大数を設定します。 接続あたりのリクエスト数を制限することで、サーバーのリクエスト過多を避けることができます (攻撃者が使用するテクニック)。

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

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

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

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

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

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

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

    diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md index 29323065f0aded..e67fc153ec2b46 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WebServer/webServerObject.md @@ -13,7 +13,7 @@ title: Webサーバーインスタンス 1つの 4Dアプリケーションプロジェクトに接続できるコンポーネントの数、つまり Webサーバーの数には、メモリ以外の制限はありません。 -メインアプリケーションの Webサーバーを含む、各 4D Webサーバーは、`4D.WebServer` クラスの **オブジェクト** として公開されます。 インスタンス化された Webサーバーオブジェクトは、[多数のプロパティや関数](API/WebServerClass.md) を使用して、カレントのアプリケーションまたは任意のコンポーネントから操作することができます。 +メインアプリケーションの Webサーバーを含む、各 4D Webサーバーは、`4D.WebServer` クラスの **オブジェクト** として公開されます。インスタンス化された Webサーバーオブジェクトは、[多数のプロパティや関数](API/WebServerClass.md) を使用して、カレントのアプリケーションまたは任意のコンポーネントから操作することができます。 > 4Dランゲージの従来の [WEB コマンド](../commands/theme/Web_Server) はサポートされていますが、その対象となる Webサーバーを選択することはできません (後述参照)。 @@ -27,7 +27,7 @@ title: Webサーバーインスタンス ## Webサーバーオブジェクトのインスタンス化 -ホストアプリケーション (デフォルトWebサーバー) の Webサーバーオブジェクトは、4D 起動時に自動的に読み込まれます。 したがって、新規作成したプロジェクトに次のように書いた場合: +ホストアプリケーション (デフォルトWebサーバー) の Webサーバーオブジェクトは、4D 起動時に自動的に読み込まれます。したがって、新規作成したプロジェクトに次のように書いた場合: ```4d $nbSrv:=WEB Server list.length @@ -104,7 +104,7 @@ Webサーバーオブジェクトには、Webサーバーを構成する [さま ## 4D Webコマンドのスコープ -4Dランゲージには、Webサーバーの制御に使用できる [いくつかのコマンド](../commands/theme/Web_Server) があります。 ただし、これらのコマンドは 1つの (デフォルト) Webサーバーで動作するように設計されています。 これらのコマンドを Webサーバーオブジェクトのコンテキストで使用する場合は、そのスコープが適切であることを確認してください。 +4Dランゲージには、Webサーバーの制御に使用できる [いくつかのコマンド](../commands/theme/Web_Server) があります。ただし、これらのコマンドは 1つの (デフォルト) Webサーバーで動作するように設計されています。これらのコマンドを Webサーバーオブジェクトのコンテキストで使用する場合は、そのスコープが適切であることを確認してください。 | コマンド | スコープ | | ------------------------------- | ------------------- | 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 49dae152a0cd38..145546d5be69be 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 @@ -23,23 +23,23 @@ displayed_sidebar: docs ## 説明 -**WP Add picture** コマンドは、 引数として渡されたピクチャーを*wpDoc* 引数で指定したドキュメント内での固定された場所にアンカーし、その参照を返します。 返された参照は、 [WP SET ATTRIBUTES](wp-set-attributes.md) コマンドへと渡すことで*wpDoc* 引数で指定したドキュメント内の(ページ、セクション、ヘッダー、フッター等の)任意の位置へと移動させることができます。 レイヤーやサイズなども指定可能です。 +**WP Add picture** コマンドは、 引数として渡されたピクチャーを*wpDoc* 引数で指定したドキュメント内での固定された場所にアンカーし、その参照を返します。 返された参照は、 [WP SET ATTRIBUTES](wp-set-attributes.md) コマンドへと渡すことで*wpDoc* 引数で指定したドキュメント内の(ページ、セクション、ヘッダー、フッター等の)任意の位置へと移動させることができます。レイヤーやサイズなども指定可能です。 *wpDoc* 引数には、4D Write Pro ドキュメントオブジェクトを渡します。 オプションの第二引数には、次のいずれかを渡すことができます: - *picture*: 4D ピクチャー -- *picturePath*: ディスク上に保存されているピクチャーファイルへのパスを格納した文字列(システムのシンタックス) フルパス名か、またはデータベースストラクチャーファイルへの相対パス名を渡すことができます。 またファイル名を渡すこともでき、その場合、ファイルはデータベースのストラクチャーファイル と同じ階層に置かれている必要があります。 ファイル名を渡す場合には、ファイルの拡張子も指定する必要があります。 +- *picturePath*: ディスク上に保存されているピクチャーファイルへのパスを格納した文字列(システムのシンタックス)フルパス名か、またはデータベースストラクチャーファイルへの相対パス名を渡すことができます。またファイル名を渡すこともでき、その場合、ファイルはデータベースのストラクチャーファイル と同じ階層に置かれている必要があります。ファイル名を渡す場合には、ファイルの拡張子も指定する必要があります。 - *PictureFileObj*: ピクチャーファイルを表す`4D.File` オブジェクト :::note -[4D でサポートされているフォーマット](../../FormEditor/pictures.md#native-formats-supported) であれば、どんなピクチャーフォーマットでも使用することができます。 [PICTURE CODEC LIST](../../commands/picture-codec-list) コマンドを使用することで、利用可能なピクチャーフォーマットの一覧を取得することができます。 ピクチャーに複数のフォーマット(コーデック)が格納されている場合、4D Write Pro はドキュメント内に表示用に1種類、印刷用に1種類(異なる場合)のフォーマットのみを保管します。その際、「最適」なフォーマットが自動的に選択されます。 +[4D でサポートされているフォーマット](../../FormEditor/pictures.md#native-formats-supported) であれば、どんなピクチャーフォーマットでも使用することができます。 [PICTURE CODEC LIST](../../commands/picture-codec-list) コマンドを使用することで、利用可能なピクチャーフォーマットの一覧を取得することができます。ピクチャーに複数のフォーマット(コーデック)が格納されている場合、4D Write Pro はドキュメント内に表示用に1種類、印刷用に1種類(異なる場合)のフォーマットのみを保管します。その際、「最適」なフォーマットが自動的に選択されます。 ::: -- *picture* 引数が省略された場合でも、有効なピクチャー参照は返され、空の画像が追加されます。 この場合、その後に[WP SET ATTRIBUTES](wp-set-attributes.md) コマンドをwk image expression セレクターで呼び出すことでその画像に4D 式を入れることができます。 式が評価できない、あるいは有効なピクチャーが返されない場合、空の画像(デフォルトの黒枠の画像)が表示されます。 +- *picture* 引数が省略された場合でも、有効なピクチャー参照は返され、空の画像が追加されます。この場合、その後に[WP SET ATTRIBUTES](wp-set-attributes.md) コマンドをwk image expression セレクターで呼び出すことでその画像に4D 式を入れることができます。式が評価できない、あるいは有効なピクチャーが返されない場合、空の画像(デフォルトの黒枠の画像)が表示されます。 デフォルトでは、追加されたピクチャーは以下のように表示されます: @@ -49,7 +49,7 @@ displayed_sidebar: docs 位置、レイヤー(インライン、テキストの前/後)、表示状態、その他ピクチャーのあらゆるプロパティは[WP SET ATTRIBUTES](wp-set-attributes.md) コマンド、または標準アクションを使用して変更することができます。 -**注意:** [WP Selection range](../commands/wp-selection-range) コマンドは、アンカーされたピクチャーが選択されていた場合には *ピクチャー参照* を、インラインピクチャーが選択されていた場合には *レンジオブジェクト* を返します。 選択されたオブジェクトがピクチャーオブジェクトであるかどうかは、`wk type` 属性をチェックすることで確認できます。 +**注意:** [WP Selection range](../commands/wp-selection-range) コマンドは、アンカーされたピクチャーが選択されていた場合には *ピクチャー参照* を、インラインピクチャーが選択されていた場合には *レンジオブジェクト* を返します。選択されたオブジェクトがピクチャーオブジェクトであるかどうかは、`wk type` 属性をチェックすることで確認できます。 - **Value = 2**: 選択されたオブジェクトはピクチャーオブジェクトです。 - **Value = 0**: 選択されたオブジェクトはレンジオブジェクトです。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-section.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-section.md index 21a65f19abde2a..9b4c183793e3f8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-section.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-section.md @@ -23,11 +23,11 @@ displayed_sidebar: docs ## 説明 -**WP DELETE SECTION** コマンドは、 *section* オブジェクトに渡されたセクションを削除するか、または*indexNumber* 引数に渡されたインデックスを持つセクションから*count* 引数で指定した数だけ 1つ以上のセクションを削除します。 セクションが削除されると、ヘッダー、フッター、本文の一部、アンカーされた画像、テキストボックス、終了セクションブレーク(セクションブレークまたは継続的なセクションブレークかに関わらず)など、そのセクションに関連づけられていたものも削除されます。 +**WP DELETE SECTION** コマンドは、 *section* オブジェクトに渡されたセクションを削除するか、または*indexNumber* 引数に渡されたインデックスを持つセクションから*count* 引数で指定した数だけ 1つ以上のセクションを削除します。セクションが削除されると、ヘッダー、フッター、本文の一部、アンカーされた画像、テキストボックス、終了セクションブレーク(セクションブレークまたは継続的なセクションブレークかに関わらず)など、そのセクションに関連づけられていたものも削除されます。 **WP DELETE SECTION** コマンドを使用して全てのセクションを削除しようとした場合、あるいはドキュメントにセクションが1つしか含まれていないような場合にはエラーが発生します。 -**WP DELETE SECTION** は、テキストボックスとピクチャーの属性を再インデックスし、変更後のセクションへと合致するようにアンカーを調整します。 例えばドキュメントに四つのセクションがあり、2番目のセクションが削除された場合、セクション3と4はそれぞれセクション2と3となり、実行前にはセクション3と4にアンカーされていたテキストボックスおよびピクチャーはセクション2と3にアンカーされます。 +**WP DELETE SECTION** は、テキストボックスとピクチャーの属性を再インデックスし、変更後のセクションへと合致するようにアンカーを調整します。例えばドキュメントに四つのセクションがあり、2番目のセクションが削除された場合、セクション3と4はそれぞれセクション2と3となり、実行前にはセクション3と4にアンカーされていたテキストボックスおよびピクチャーはセクション2と3にアンカーされます。 :::note diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-style-sheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-style-sheet.md index de04dc0b69cf01..43ba10bac8d2e8 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-style-sheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-style-sheet.md @@ -36,12 +36,12 @@ displayed_sidebar: docs **WP DELETE STYLE SHEET** コマンドは、カレントのドキュメントから指定された段落または文字スタイルシートを削除します。スタイルシートが削除されると、それが適用されていた全ての文字または段落は、オリジナルのスタイル(つまりデフォルト)へと戻されます。 -このコマンドはスタイルシートを削除する方法を2つ提供します。 以下のいずれかを指定することができます: +このコマンドはスタイルシートを削除する方法を2つ提供します。以下のいずれかを指定することができます: - *styleSheetType* 引数に、削除したいスタイルの([WP New style sheet](../WritePro/commands/wp-new-style-sheet) コマンドで作成された、あるいは[WP Get style sheet](../WritePro/commands/wp-get-style-sheet) コマンドから返された) スタイルシートオブジェクトを渡す - *wpDoc* および *styleSheetName* 引数に、4D Write Pro ドキュメントと削除したいスタイルシートの名前を渡す -削除したいスタイルシートが[階層リストスタイルシート](../user-legacy/stylesheets.md#multi-level-list-style-sheets) に属している場合、その時の振る舞いは削除するレベルによって異なります。 以下のものを削除することができます: +削除したいスタイルシートが[階層リストスタイルシート](../user-legacy/stylesheets.md#multi-level-list-style-sheets) に属している場合、その時の振る舞いは削除するレベルによって異なります。以下のものを削除することができます: - ルートレベルのスタイルシート - オプションの *listLevelIndex* 引数を提供することで、特定のサブレベルのスタイルシートを削除できます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-subsection.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-subsection.md index 579a3997ee79b6..8c7702a86849c0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-subsection.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-subsection.md @@ -22,11 +22,11 @@ displayed_sidebar: docs ## 説明 -**WP DELETE SUBSECTION** コマンドは引数で指定した4D Write Pro セクションから、引数で指定したサブセクション要素を削除します。または*subSection* 引数で指定したサブセクションを直接削除します。 サブセクション要素にはヘッダー、フッター、カラム、アンカーされた画像などが含まれます。 ドキュメントの本文はそのまま残されるという点に注意してください。 +**WP DELETE SUBSECTION** コマンドは引数で指定した4D Write Pro セクションから、引数で指定したサブセクション要素を削除します。または*subSection* 引数で指定したサブセクションを直接削除します。サブセクション要素にはヘッダー、フッター、カラム、アンカーされた画像などが含まれます。ドキュメントの本文はそのまま残されるという点に注意してください。 -*wpSection* 引数には、サブセクション要素を削除したいセクションを渡します。 セクションは、[WP Get sections](../commands/wp-get-sections) または [WP Get section](../commands/wp-get-section) コマンドを使用することで取得できます。 +*wpSection* 引数には、サブセクション要素を削除したいセクションを渡します。セクションは、[WP Get sections](../commands/wp-get-sections) または [WP Get section](../commands/wp-get-section) コマンドを使用することで取得できます。 -*subSectionType* 引数は削除するサブセクションを指定します。 以下の定数のいずれかを渡すことができます: +*subSectionType* 引数は削除するサブセクションを指定します。以下の定数のいずれかを渡すことができます: | 定数 | 型 | 値 | | ------------- | ------- | - | @@ -36,7 +36,7 @@ displayed_sidebar: docs :::note -左ページまたは右ページサブセクションを削除すると、反対側のサブセクションも自動的に削除されます。 例えば、右ページサブセクションを削除した場合、左ページサブセクションも自動的に削除されます。 +左ページまたは右ページサブセクションを削除すると、反対側のサブセクションも自動的に削除されます。例えば、右ページサブセクションを削除した場合、左ページサブセクションも自動的に削除されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-document.md index d197def94db044..4016ca8eca72ff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-document.md @@ -29,20 +29,20 @@ displayed_sidebar: docs *filePath* あるいは *fileObj* のいずれかを渡すことができます: -- *filePath* には、書き出されるドキュメントの保存先パスと名前とを渡します。 ドキュメント名のみを渡した場合、ドキュメントは4D ストラクチャーファイルと同じ階層に保存されます。 +- *filePath* には、書き出されるドキュメントの保存先パスと名前とを渡します。ドキュメント名のみを渡した場合、ドキュメントは4D ストラクチャーファイルと同じ階層に保存されます。 - *fileObj* 引数には、書き出されるファイルを表す4D.File オブジェクトを渡します。 -*format* 引数は省略可能ですが、省略した場合には*filePath* 引数で拡張子を指定する必要があります。 *format* 引数には、*4D Write Pro 定数* テーマの定数を渡すこともできます。 この場合、4D は必要に応じて適切な拡張子をファイル名に追加します。 以下のフォーマットがサポートされています: +*format* 引数は省略可能ですが、省略した場合には*filePath* 引数で拡張子を指定する必要があります。 *format* 引数には、*4D Write Pro 定数* テーマの定数を渡すこともできます。この場合、4D は必要に応じて適切な拡張子をファイル名に追加します。以下のフォーマットがサポートされています: -| 定数 | 値 | 説明 | -| -------------------- | - | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk 4wp | 4 | 4D Write Pro ドキュメントはネイティブなアーカイブフォーマット(圧縮されたHTML で画像は別個のフォルダーに保存)で保存されます。 4D 特有のタグは含まれ、4D 式は計算されません。 このフォーマットは特にロスなく4D Write Pro ドキュメントをディスク上に保存するのに適しています。 | -| wk docx | 7 | .docx 拡張子を意味します。 4D Write Pro ドキュメントはMicrosoft Word フォーマットで保存されます。 Microsoft Word 2010 以降に正式に対応しています。
    書き出しに対応しているドキュメントの部分は以下の通りです:
    • 本文 / ヘッダー / フッター / セクション
    • ページ / 印刷設定 (余白、背景色 / 背景画像、境界線、パディング、用紙サイズ / 用紙の向き)
    • 画像 - インライン、アンカー、背景画像パターン(wk background image で定義されているもの)
    • スタイルシート(文字、段落)
    • 互換性のある変数と式(ページ番号、ページ数、日付、時間、メタデータ)。 互換性のない変数と式は評価されて、書き出しの前に値が固定化されます。
    • リンク - ブックマークと URL
    一部の4D Write Pro 設定はMicrosoft Word では利用できないか、振る舞いが異なる可能性があることに注意してください。 | -| wk mime html | 1 | 4D Write Proドキュメントは標準のMIME HTMLとして保存され、htmlドキュメントと画像はMIMEパーツとして埋め込まれます(base64でエンコードされます)。 式は計算され4D特有のタグやメソッドのリンクは除去されます。 埋め込みビューにアンカーされたテキストボックスのみが(divとして)書き出されます。 このフォーマットは HTML Eメールを送信するのに特に適しています。 | -| wk pdf | 5 | .pdf 拡張子。 4D Write Pro ドキュメントはページビューモードに基づいてPDF フォーマットで保存されています。 PDF ドキュメントには以下のメタ情報が書き出されています: タイトル / 作者 / タイトル / コンテンツ作成者
    **注意**:
    • 式は、ドキュメントが書き出されるときに自動的に値が計算されて固定化されます。
    • メソッドへのリンクは**書き出されません**
    | -| wk svg | 8 | 4D Write Pro ドキュメントのページはページビューモードに基づいてSVG フォーマットで保存されます。 **注意:** SVG へと書き出す際は、一度に1ページしか書き出すことができません。 書き出すページを指定するにはwk page index を使用して下さい。 | -| wk web page complete | 2 | .htm または .html 拡張子。 このドキュメントは標準HTMLとして保存され、そのリソースは別に保存されます。 4Dタグと 4Dメソッドへのリンクは除去され、式が計算されます。 埋め込みビューにアンカーされたテキストボックスのみが(divとして)書き出されます。 このフォーマットは特に 4D Write Pro ドキュメントを Webブラウザーで表示したい場合に特に適しています。 | +| 定数 | 値 | 説明 | +| -------------------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk 4wp | 4 | 4D Write Pro ドキュメントはネイティブなアーカイブフォーマット(圧縮されたHTML で画像は別個のフォルダーに保存)で保存されます。 4D 特有のタグは含まれ、4D 式は計算されません。このフォーマットは特にロスなく4D Write Pro ドキュメントをディスク上に保存するのに適しています。 | +| wk docx | 7 | .docx 拡張子を意味します。 4D Write Pro ドキュメントはMicrosoft Word フォーマットで保存されます。 Microsoft Word 2010 以降に正式に対応しています。
    書き出しに対応しているドキュメントの部分は以下の通りです:
    • 本文 / ヘッダー / フッター / セクション
    • ページ / 印刷設定 (余白、背景色 / 背景画像、境界線、パディング、用紙サイズ / 用紙の向き)
    • 画像 - インライン、アンカー、背景画像パターン(wk background image で定義されているもの)
    • スタイルシート(文字、段落)
    • 互換性のある変数と式(ページ番号、ページ数、日付、時間、メタデータ)。互換性のない変数と式は評価されて、書き出しの前に値が固定化されます。
    • リンク - ブックマークと URL
    一部の4D Write Pro 設定はMicrosoft Word では利用できないか、振る舞いが異なる可能性があることに注意してください。 | +| wk mime html | 1 | 4D Write Proドキュメントは標準のMIME HTMLとして保存され、htmlドキュメントと画像はMIMEパーツとして埋め込まれます(base64でエンコードされます)。式は計算され4D特有のタグやメソッドのリンクは除去されます。埋め込みビューにアンカーされたテキストボックスのみが(divとして)書き出されます。このフォーマットは HTML Eメールを送信するのに特に適しています。 | +| wk pdf | 5 | .pdf 拡張子。 4D Write Pro ドキュメントはページビューモードに基づいてPDF フォーマットで保存されています。 PDF ドキュメントには以下のメタ情報が書き出されています: タイトル / 作者 / タイトル / コンテンツ作成者
    **注意**:
    • 式は、ドキュメントが書き出されるときに自動的に値が計算されて固定化されます。
    • メソッドへのリンクは**書き出されません**
    | +| wk svg | 8 | 4D Write Pro ドキュメントのページはページビューモードに基づいてSVG フォーマットで保存されます。**注意:** SVG へと書き出す際は、一度に1ページしか書き出すことができません。書き出すページを指定するにはwk page index を使用して下さい。 | +| wk web page complete | 2 | .htm または .html 拡張子。このドキュメントは標準HTMLとして保存され、そのリソースは別に保存されます。 4Dタグと 4Dメソッドへのリンクは除去され、式が計算されます。埋め込みビューにアンカーされたテキストボックスのみが(divとして)書き出されます。このフォーマットは特に 4D Write Pro ドキュメントを Webブラウザーで表示したい場合に特に適しています。 | **注:** @@ -55,25 +55,25 @@ displayed_sidebar: docs *option* 引数には、書き出されるドキュメントのプロパティを定義する値を格納したオブジェクトを渡します。 次のプロパティを利用することができます: 次のプロパティを利用することができます: -| 定数 | 値 | 説明 | -| ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | CID ホストドメイン名: 生成されるCID URL に追加されるホストドメイン。'@' が区切り文字として含まれます。 `wk mime html` フォーマットが使用されている際にのみ使用可能です。 | -| wk embedded pictures | embeddedPictures | SVG 書き出し専用。 [WP EXPORT DOCUMENT](wp-export-document.md) を呼び出した時、ピクチャーが書き出された.svg ファイル内に埋め込まれるかどうかを設定します。 取り得る値:
  • true (デフォルト): ピクチャーは書き出された.svg ファイルに埋め込まれます。
  • false: ピクチャーは書き出された.svg ファイルと同じ階層にある"filename\_images" というフォルダー内に書き出されます。この"filename" はファイル用にコマンドに渡された名前の拡張子を抜いたものです。 ピクチャーは埋め込まれませんが、.svg ファイル内で参照されます。
  • 注意: フォルダーがすでに存在する場合、ファイルが書き出される前に中身が空にされます。 書き出されたページに画像が何もない場合、フォルダーは削除されます。 | -| wk factur x | facturX | PDF 書き出しのみ。 値: "Factur-X (ZUGFeRD)" PDF 書き出しを設定するオブジェクト([wk factur x オブジェクト](#wk-factur-x-object) 参照)。 | -| wk files | files | PDF 書き出しのみ。 値:生成されるドキュメントに埋め込まれるファイルを記述したオブジェクトのコレクション([wk files コレクション](#wk-files-collection) 参照)。 PDF 添付はPDF/A-3 バージョンでのみサポートされています。`wk files` プロパティを渡す場合、"PDF/A-3" バージョンが自動的に使用されます(`wk pdfa version` 属性は無視されます)。 Factur-X PDF 書き出し(下記参照)の場合、コレクションの最初のオブジェクトにはFactur-X XML ファイルが格納されている必要があります。 | -| wk google fonts tag | googleFontsTag | SVG書き出し専用。 書き出されたSVG 内でのGoogle フォントの読み込みルールを設定します。 取り得る値:
  • false (デフォルト): google フォントの読み込みルールは何も追加されていません。
  • true: @import ルールを下記出されたファイルに追加します。 Windows または macOS 上でデフォルトでは利用できないフォントを使用したい場合に有用です。
  • **注意:** このプロパティはデフォルトは false に設定されています。なぜなら、有効化された場合には、Googleフォントがネイティブフォントを上書きしますが、一般的にネイティブフォントの方がブラウザーでのレンダリングが良いからです。 | -| wk HTML pretty print | htmlPrettyPrint | HTML コードは読みやすいようにフォーマットされます。 | -| wk max picture DPI | maxPictureDPI | 画像を適切な解像度にリサンプリング(縮小)するのに使用されます。 Windows でのSVG 画像に対しては。ラスタライズに使用されます。 デフォルト値: 300 (for wk optimized for \= wk print 時) 192 (for wk optimized for \= wk screen 時) 取り得る最大値: 1440 | -| wk optimized for | optimizedFor | 書き出されたドキュメントを、その目的に応じてどのように最適化するかを定義します。 取り得る値:
  • `wk print` (`wk pdf` および `wk svg` のデフォルト値) ビットマップピクチャーは、`wk max picture DPI` で定義されたDPI または300 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出されるタイプに対してコーデックがサポートされていない場合にはPNG へと変換される可能性もあります。 ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または300 (Windows のみ)を使用してPNG へと変換されます。 ピクチャーに複数のフォーマットが含まれている場合、最適なフォーマットが使用されます(*例*: .jpg の代わりに.tiff など)。
  • `wk screen` (`wk web page complete` および `wk mime html` のデフォルト値)。 ビットマップは `wk max picture DPI` で定義されたDPI または192 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出しタイプに対してコーデックがサポートされていない場合にはJPG (透過部分のない画像) またはPNG (透過画像) へと変換されます。 ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または192 (Windows のみ)を使用してPNG へと変換されます。 ピクチャーに複数のフォーマットが含まれている場合、スクリーンレンダリング用のフォーマットが使用されます。
  • **注意:** `wk docx` フォーマットで書き出されたドキュメントは常にwk print 用に最適化されます(wk optimized for オプションは無視されます)。 | -| wk page index | pageIndex | SVG書き出し専用。 SVG フォーマットへと書き出すページのインデックス(デフォルトは1)。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 | -| wk pdfa version | pdfaVersion | PDF/A バージョンに適合したPDF を書き出します。 PDF/A のプロパティおよびバージョンの詳細については、[Wikipedia のPDF/A のページ](https://ja.wikipedia.org/wiki/PDF/A) を参照してください。 取り得る値:
  • `wk pdfa2`: "PDF/A-2" バージョンに書き出します。
  • `wk pdfa3`: "PDF/A-3" バージョンに書き出します。
  • **注意:** macOS 上では、プラットフォームの実装によっては`wk pdfa2` 定数はPDF/A-2 またはPDF/A-3 またはそれ以上のバージョンに書き出すことがあります。 また、`wk pdfa3` 定数は"*少なくとも* PDF/A-3へと書き出す"ということを意味します。 Windows 上では、出力されたPDF ファイルは常に指定されたバージョンと同じになります。 | -| wk recompute formulas | recomputeFormulas | 書き出し時にフォーミュラを再計算するかどうかを定義します。 取り得る値:
  • true - デフォルト値。 全てのフォーミュラは再度計算されます。
  • false- フォーミュラを再計算しません。
  • | -| wk visible background and anchored elements | visibleBackground | 背景画像/背景色、アンカーされた画像またはテキストボックス(ディスプレイ用では、ページビューモードまたは埋め込みビューモードでのみ表示されるエフェクト)を表示または書き出しをします。 取り得る値: True/False | -| wk visible empty images | visibleEmptyImages | 読み込めない、あるいは計算できない画像(空の画像またはサポートされていないフォーマットの画像)に対してデフォルトの黒い四角形を表示または書き出しします。 取り得る値: True/False。 デフォルト値: true。 値がFalse の場合、たとえ画像に境界線、幅、高さ、背景などが設定されてあっても空の画像要素は全く表示されないという点に注意して下さい。これはインライン画像のページレイアウトに影響する可能性があります。 | -| wk visible footers | visibleFooters | フッターを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False | -| wk visible headers | visibleHeaders | ヘッダーを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False | -| wk visible references | visibleReferences | ドキュメントに挿入されている4D 式を参照として表示または書き出しします。 取り得る値: True/False | -| wk whitespace | whitespace | `wk mime html` and `wk web page complete` 書き出しフォーマットに対する"white-space" CSS 値を設定します。 [white-space CSS スタイル](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) は段落に対して適用されます。 取り得る値: "normal"、"nowrap"、 "pre"、 "pre-wrap" (デフォルト)、 "pre-line"、 "break-spaces" | +| 定数 | 値 | 説明 | +| ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | CID ホストドメイン名: 生成されるCID URL に追加されるホストドメイン。'@' が区切り文字として含まれます。 `wk mime html` フォーマットが使用されている際にのみ使用可能です。 | +| wk embedded pictures | embeddedPictures | SVG 書き出し専用。 [WP EXPORT DOCUMENT](wp-export-document.md) を呼び出した時、ピクチャーが書き出された.svg ファイル内に埋め込まれるかどうかを設定します。取り得る値:
  • true (デフォルト): ピクチャーは書き出された.svg ファイルに埋め込まれます。
  • false: ピクチャーは書き出された.svg ファイルと同じ階層にある"filename\_images" というフォルダー内に書き出されます。この"filename" はファイル用にコマンドに渡された名前の拡張子を抜いたものです。ピクチャーは埋め込まれませんが、.svg ファイル内で参照されます。
  • 注意: フォルダーがすでに存在する場合、ファイルが書き出される前に中身が空にされます。書き出されたページに画像が何もない場合、フォルダーは削除されます。 | +| wk factur x | facturX | PDF 書き出しのみ。値: "Factur-X (ZUGFeRD)" PDF 書き出しを設定するオブジェクト([wk factur x オブジェクト](#wk-factur-x-object) 参照)。 | +| wk files | files | PDF 書き出しのみ。値:生成されるドキュメントに埋め込まれるファイルを記述したオブジェクトのコレクション([wk files コレクション](#wk-files-collection) 参照)。 PDF 添付はPDF/A-3 バージョンでのみサポートされています。`wk files` プロパティを渡す場合、"PDF/A-3" バージョンが自動的に使用されます(`wk pdfa version` 属性は無視されます)。 Factur-X PDF 書き出し(下記参照)の場合、コレクションの最初のオブジェクトにはFactur-X XML ファイルが格納されている必要があります。 | +| wk google fonts tag | googleFontsTag | SVG書き出し専用。書き出されたSVG 内でのGoogle フォントの読み込みルールを設定します。取り得る値:
  • false (デフォルト): google フォントの読み込みルールは何も追加されていません。
  • true: @import ルールを下記出されたファイルに追加します。 Windows または macOS 上でデフォルトでは利用できないフォントを使用したい場合に有用です。
  • **注意:** このプロパティはデフォルトは false に設定されています。なぜなら、有効化された場合には、Googleフォントがネイティブフォントを上書きしますが、一般的にネイティブフォントの方がブラウザーでのレンダリングが良いからです。 | +| wk HTML pretty print | htmlPrettyPrint | HTML コードは読みやすいようにフォーマットされます。 | +| wk max picture DPI | maxPictureDPI | 画像を適切な解像度にリサンプリング(縮小)するのに使用されます。 Windows でのSVG 画像に対しては。ラスタライズに使用されます。デフォルト値: 300 (for wk optimized for \= wk print 時) 192 (for wk optimized for \= wk screen 時) 取り得る最大値: 1440 | +| wk optimized for | optimizedFor | 書き出されたドキュメントを、その目的に応じてどのように最適化するかを定義します。取り得る値:
  • `wk print` (`wk pdf` および `wk svg` のデフォルト値) ビットマップピクチャーは、`wk max picture DPI` で定義されたDPI または300 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出されるタイプに対してコーデックがサポートされていない場合にはPNG へと変換される可能性もあります。ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または300 (Windows のみ)を使用してPNG へと変換されます。ピクチャーに複数のフォーマットが含まれている場合、最適なフォーマットが使用されます(*例*: .jpg の代わりに.tiff など)。
  • `wk screen` (`wk web page complete` および `wk mime html` のデフォルト値)。ビットマップは `wk max picture DPI` で定義されたDPI または192 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出しタイプに対してコーデックがサポートされていない場合にはJPG (透過部分のない画像) またはPNG (透過画像) へと変換されます。ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または192 (Windows のみ)を使用してPNG へと変換されます。ピクチャーに複数のフォーマットが含まれている場合、スクリーンレンダリング用のフォーマットが使用されます。
  • **注意:** `wk docx` フォーマットで書き出されたドキュメントは常にwk print 用に最適化されます(wk optimized for オプションは無視されます)。 | +| wk page index | pageIndex | SVG書き出し専用。 SVG フォーマットへと書き出すページのインデックス(デフォルトは1)。ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。**注意:** ページインデックスはページナンバリングとは異なるものです。 | +| wk pdfa version | pdfaVersion | PDF/A バージョンに適合したPDF を書き出します。 PDF/A のプロパティおよびバージョンの詳細については、[Wikipedia のPDF/A のページ](https://ja.wikipedia.org/wiki/PDF/A) を参照してください。取り得る値:
  • `wk pdfa2`: "PDF/A-2" バージョンに書き出します。
  • `wk pdfa3`: "PDF/A-3" バージョンに書き出します。
  • **注意:** macOS 上では、プラットフォームの実装によっては`wk pdfa2` 定数はPDF/A-2 またはPDF/A-3 またはそれ以上のバージョンに書き出すことがあります。また、`wk pdfa3` 定数は"*少なくとも* PDF/A-3へと書き出す"ということを意味します。 Windows 上では、出力されたPDF ファイルは常に指定されたバージョンと同じになります。 | +| wk recompute formulas | recomputeFormulas | 書き出し時にフォーミュラを再計算するかどうかを定義します。取り得る値:
  • true - デフォルト値。全てのフォーミュラは再度計算されます。
  • false- フォーミュラを再計算しません。
  • | +| wk visible background and anchored elements | visibleBackground | 背景画像/背景色、アンカーされた画像またはテキストボックス(ディスプレイ用では、ページビューモードまたは埋め込みビューモードでのみ表示されるエフェクト)を表示または書き出しをします。取り得る値: True/False | +| wk visible empty images | visibleEmptyImages | 読み込めない、あるいは計算できない画像(空の画像またはサポートされていないフォーマットの画像)に対してデフォルトの黒い四角形を表示または書き出しします。取り得る値: True/False。デフォルト値: true。値がFalse の場合、たとえ画像に境界線、幅、高さ、背景などが設定されてあっても空の画像要素は全く表示されないという点に注意して下さい。これはインライン画像のページレイアウトに影響する可能性があります。 | +| wk visible footers | visibleFooters | フッターを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。取り得る値: True/False | +| wk visible headers | visibleHeaders | ヘッダーを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。取り得る値: True/False | +| wk visible references | visibleReferences | ドキュメントに挿入されている4D 式を参照として表示または書き出しします。取り得る値: True/False | +| wk whitespace | whitespace | `wk mime html` and `wk web page complete` 書き出しフォーマットに対する"white-space" CSS 値を設定します。 [white-space CSS スタイル](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) は段落に対して適用されます。取り得る値: "normal"、"nowrap"、 "pre"、 "pre-wrap" (デフォルト)、 "pre-line"、 "break-spaces" | 以下の表は*format* 引数の各フォーマットごとに利用可能な*option* 引数のオプションをあらわしています: @@ -101,16 +101,16 @@ displayed_sidebar: docs ### wk files コレクション -wk files プロパティを使用すると、[PDF に添付つきで書き出すことができます](https://blog.4d.com/4d-write-pro-export-to-pdf-with-enclosures)。 このプロパティには、最終ドキュメントに埋め込まれるファイルを記述するオブジェクトのコレクションを格納する必要があります。 コレクション内のそれぞれのオブジェクトは以下のプロパティを格納することができます: +wk files プロパティを使用すると、[PDF に添付つきで書き出すことができます](https://blog.4d.com/4d-write-pro-export-to-pdf-with-enclosures)。このプロパティには、最終ドキュメントに埋め込まれるファイルを記述するオブジェクトのコレクションを格納する必要があります。コレクション内のそれぞれのオブジェクトは以下のプロパティを格納することができます: -| **プロパティ** | **型** | **説明** | -| ------------ | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| name | Text | ファイル名。 *file* プロパティが使用されている場合には、デフォルトでは名前はファイル名が使用されるので、オプションとなります(必須ではありません)。 *data* プロパティが使用されている場合には必須(ただしFactur-X 書き出しの場合の最初のファイルを除く、この場合にはファイル名は自動的に"factur-x.xml" となっているため。詳細は以下参照) | -| description | Text | 任意。 省略時、Factur-X への最初の書き出しファイルのデフォルトの値は"Factur-X/ZUGFeRD Invoice" となり、それ以外の場合は空となります。 | -| mimeType | Text | 任意。 省略時、デフォルト値は通常ファイル拡張子から推測するができます。それ以外の場合には、"application/octet-stream" が使用されます。 渡された場合、必ずISO mime タイプを使用するようにしてください。そうでない場合、書き出されたファイルは無効である場合があります。 | -| data | Text または Blob | *file* プロパティがない場合には必須。 | -| file | 4D.File オブジェクト | *data* プロパティがない場合には必須。それ以外の場合には使用されません。 | -| relationship | Text | 任意。 省略時、デフォルト値は "Data" です。 Factur-X の最初のファイルの取りうる値:
    • BASIC、EN 16931 または EXTENDED プロファイルの場合: "Alternative"、"Source"または "Data" ("Alternative" はドイツの請求書にのみ使用されます)
    • MINIMUM および BASIC WL プロファイルの場合: "Data" のみ。
    • その他のプロファイルの場合: "Alternative"、"Source" または "Data" (国によって制約がある場合あり:他のプロファイルについての詳細な情報についてはプロファイルの指示書を参照してください。例えば、RECHNUNG プロファイルの場合は"Alternative" のみ使用可能です)
    • その他の(ただしFactur-X invoice xml ファイルを除く)ファイルの場合 : "Alternative"、"Source"、"Data"、"Supplement" または "Unspecified"
    • それ以外の値はエラーを生成します。
    | +| **プロパティ** | **型** | **説明** | +| ------------ | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| name | Text | ファイル名。 *file* プロパティが使用されている場合には、デフォルトでは名前はファイル名が使用されるので、オプションとなります(必須ではありません)。 *data* プロパティが使用されている場合には必須(ただしFactur-X 書き出しの場合の最初のファイルを除く、この場合にはファイル名は自動的に"factur-x.xml" となっているため。詳細は以下参照) | +| description | Text | 任意。省略時、Factur-X への最初の書き出しファイルのデフォルトの値は"Factur-X/ZUGFeRD Invoice" となり、それ以外の場合は空となります。 | +| mimeType | Text | 任意。省略時、デフォルト値は通常ファイル拡張子から推測するができます。それ以外の場合には、"application/octet-stream" が使用されます。渡された場合、必ずISO mime タイプを使用するようにしてください。そうでない場合、書き出されたファイルは無効である場合があります。 | +| data | Text または Blob | *file* プロパティがない場合には必須。 | +| file | 4D.File オブジェクト | *data* プロパティがない場合には必須。それ以外の場合には使用されません。 | +| relationship | Text | 任意。省略時、デフォルト値は "Data" です。 Factur-X の最初のファイルの取りうる値:
    • BASIC、EN 16931 または EXTENDED プロファイルの場合: "Alternative"、"Source"または "Data" ("Alternative" はドイツの請求書にのみ使用されます)
    • MINIMUM および BASIC WL プロファイルの場合: "Data" のみ。
    • その他のプロファイルの場合: "Alternative"、"Source" または "Data" (国によって制約がある場合あり:他のプロファイルについての詳細な情報についてはプロファイルの指示書を参照してください。例えば、RECHNUNG プロファイルの場合は"Alternative" のみ使用可能です)
    • その他の(ただしFactur-X invoice xml ファイルを除く)ファイルの場合 : "Alternative"、"Source"、"Data"、"Supplement" または "Unspecified"
    • それ以外の値はエラーを生成します。
    | *option* 引数にも wk factur x プロパティが含まれている場合、 wk files コレクションの最初の要素はFactur-X (ZUGFeRD) invoice xml ファイルである必要があります(以下参照)。 @@ -124,16 +124,16 @@ PDF 添付はPDF/A-3 バージョンでのみサポートされています。 w wk factur x プロパティは、2つまでのプロパティを格納することのできるオブジェクトです: -| **プロパティ** | **型** | **説明** | -| --------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| profile | Text | 任意。 省略時、 *profile* は提供されたXML ファイルまたはテキスト(標準のプロフィールを使用している必要があります)から決定されます。 渡された場合には、標準のプロファイル名以外の名前でも構いません(他のプロファイル、例えばRECHNUNG などを使用することも可能)。 **注意**: 標準のプロファイル名は以下のとおりです: MINIMUM、BASIC WL、BASIC、EN 16931 (エイリアス: COMFORT)、EXTENDED | -| version | Text | 任意。 デフォルト値は"1.0" | +| **プロパティ** | **型** | **説明** | +| --------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| profile | Text | 任意。省略時、 *profile* は提供されたXML ファイルまたはテキスト(標準のプロフィールを使用している必要があります)から決定されます。渡された場合には、標準のプロファイル名以外の名前でも構いません(他のプロファイル、例えばRECHNUNG などを使用することも可能)。**注意**: 標準のプロファイル名は以下のとおりです: MINIMUM、BASIC WL、BASIC、EN 16931 (エイリアス: COMFORT)、EXTENDED | +| version | Text | 任意。デフォルト値は"1.0" | ### Factur-X / ZUGFeRD PDF ドキュメントについて -*Factur-X / ZUGFeRD* はハイブリッドな電子請求書のための欧州の規格です(PDFはユーザー用、XML データは処理の自動化用)。 詳細な情報については [こちらのblog記事](https://blog.4d.com/4d-write-pro-electronic-invoice-generation) を参照してください。 詳細な情報については [こちらのblog記事](https://blog.4d.com/4d-write-pro-electronic-invoice-generation) を参照してください。 +*Factur-X / ZUGFeRD* はハイブリッドな電子請求書のための欧州の規格です(PDFはユーザー用、XML データは処理の自動化用)。 詳細な情報については [こちらのblog記事](https://blog.4d.com/4d-write-pro-electronic-invoice-generation) を参照してください。詳細な情報については [こちらのblog記事](https://blog.4d.com/4d-write-pro-electronic-invoice-generation) を参照してください。 -"Factur-X" PDF 書き出しをトリガーするためには、option 引数に wk factur x および wk files プロパティの両方を渡してください(以下の例題5参照)。 この場合において: +"Factur-X" PDF 書き出しをトリガーするためには、option 引数に wk factur x および wk files プロパティの両方を渡してください(以下の例題5参照)。この場合において: - Factur-X (ZUGFeRD) PDF が生成されます。 - wk files コレクションの最初の要素がFactur-X xml ファイルとして使用されます。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-variable.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-variable.md index 625d2f5fe4bd02..099e569982be5a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-variable.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-variable.md @@ -27,21 +27,21 @@ displayed_sidebar: docs *wpDoc* 引数には、書き出したい4D Write Pro オブジェクトを渡します。 -*destination* 引数には、書き出した4D Write Pro オブジェクトを受け取る変数を渡します。 この変数の型は、*format* 引数で指定した書き出しフォーマットによって異なります: +*destination* 引数には、書き出した4D Write Pro オブジェクトを受け取る変数を渡します。この変数の型は、*format* 引数で指定した書き出しフォーマットによって異なります: - ネイティブの.4wp フォーマットまたは.docx フォーマットを渡した場合、変数はBlob 型になります。 - HTML またはSVG フォーマットを渡した場合、変数はテキスト型になります。 -*format* 引数には、使用したい書き出しフォーマットを設定する、*4D Write Pro 定数* テーマの定数を一つ渡します。 それぞれのフォーマットは特定の用法に関連します。 以下のフォーマットがサポートされています: +*format* 引数には、使用したい書き出しフォーマットを設定する、*4D Write Pro 定数* テーマの定数を一つ渡します。それぞれのフォーマットは特定の用法に関連します。以下のフォーマットがサポートされています: -| 定数 | 型 | 値 | 説明 | -| ------------------- | ------- | - | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk 4wp | Integer | 4 | 4D Write Pro ドキュメントはネイティブなアーカイブフォーマット(圧縮されたHTML で画像は別個のフォルダーに保存)で保存されます。 4D 特有のタグは含まれ、4D 式は計算されません。 このフォーマットは特にロスなく4D Write Pro ドキュメントをディスク上に保存するのに適しています。 | -| wk docx | Integer | 7 | .docx 拡張子を意味します。 4D Write Pro ドキュメントはMicrosoft Word フォーマットで保存されます。 Microsoft Word 2010 以降に正式に対応しています。
    書き出しに対応しているドキュメントの部分は以下の通りです:
    • 本文 / ヘッダー / フッター / セクション
    • ページ / 印刷設定 (余白、背景色 / 背景画像、境界線、パディング、用紙サイズ / 用紙の向き)
    • 画像 - インライン、アンカー、背景画像パターン(wk background image で定義されているもの)
    • スタイルシート(文字、段落)
    • 互換性のある変数と式(ページ番号、ページ数、日付、時間、メタデータ)。 互換性のない変数と式は評価されて、書き出しの前に値が固定化されます。
    • リンク - ブックマークと URL
    一部の4D Write Pro 設定はMicrosoft Word では利用できないか、振る舞いが異なる可能性があることに注意してください。 | -| wk mime html | Integer | 1 | 4D Write Proドキュメントは標準のMIME HTMLとして保存され、htmlドキュメントと画像はMIMEパーツとして埋め込まれます(base64でエンコードされます)。 式は計算され4D特有のタグやメソッドのリンクは除去されます。 埋め込みビューにアンカーされたテキストボックスのみが(divとして)書き出されます。 このフォーマットは HTML Eメールを送信するのに特に適しています。 | -| wk pdf | Integer | 5 | .pdf 拡張子。 4D Write Pro ドキュメントはページビューモードに基づいてPDF フォーマットで保存されています。 PDF ドキュメントには以下のメタ情報が書き出されています: タイトル 作者 タイトル コンテンツ作成者 **注意**: 式は、ドキュメントが書き出されるときに自動的に値が計算されて固定化されます。メソッドへのリンクは**サポートされていません。** | -| wk svg | Integer | 8 | 4D Write Pro ドキュメントのページはページビューモードに基づいてSVG フォーマットで保存されます。 **注意:** SVG へと書き出す際は、一度に1ページしか書き出すことができません。 書き出すページを指定するにはwk page index を使用して下さい。 | -| wk web page html 4D | Integer | 3 | 4D Write Pro ドキュメントはHTML として保存さんれ、4D 特有のタグが含まれます。それぞれの式はノンブレーキングスペースとして挿入されます。 このフォーマットはロスレスであるため、テキストフィールドへの保存目的に適しています。 | +| 定数 | 型 | 値 | 説明 | +| ------------------- | ------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk 4wp | Integer | 4 | 4D Write Pro ドキュメントはネイティブなアーカイブフォーマット(圧縮されたHTML で画像は別個のフォルダーに保存)で保存されます。 4D 特有のタグは含まれ、4D 式は計算されません。このフォーマットは特にロスなく4D Write Pro ドキュメントをディスク上に保存するのに適しています。 | +| wk docx | Integer | 7 | .docx 拡張子を意味します。 4D Write Pro ドキュメントはMicrosoft Word フォーマットで保存されます。 Microsoft Word 2010 以降に正式に対応しています。
    書き出しに対応しているドキュメントの部分は以下の通りです:
    • 本文 / ヘッダー / フッター / セクション
    • ページ / 印刷設定 (余白、背景色 / 背景画像、境界線、パディング、用紙サイズ / 用紙の向き)
    • 画像 - インライン、アンカー、背景画像パターン(wk background image で定義されているもの)
    • スタイルシート(文字、段落)
    • 互換性のある変数と式(ページ番号、ページ数、日付、時間、メタデータ)。互換性のない変数と式は評価されて、書き出しの前に値が固定化されます。
    • リンク - ブックマークと URL
    一部の4D Write Pro 設定はMicrosoft Word では利用できないか、振る舞いが異なる可能性があることに注意してください。 | +| wk mime html | Integer | 1 | 4D Write Proドキュメントは標準のMIME HTMLとして保存され、htmlドキュメントと画像はMIMEパーツとして埋め込まれます(base64でエンコードされます)。式は計算され4D特有のタグやメソッドのリンクは除去されます。埋め込みビューにアンカーされたテキストボックスのみが(divとして)書き出されます。このフォーマットは HTML Eメールを送信するのに特に適しています。 | +| wk pdf | Integer | 5 | .pdf 拡張子。 4D Write Pro ドキュメントはページビューモードに基づいてPDF フォーマットで保存されています。 PDF ドキュメントには以下のメタ情報が書き出されています: タイトル 作者 タイトル コンテンツ作成者 **注意**: 式は、ドキュメントが書き出されるときに自動的に値が計算されて固定化されます。メソッドへのリンクは**サポートされていません。** | +| wk svg | Integer | 8 | 4D Write Pro ドキュメントのページはページビューモードに基づいてSVG フォーマットで保存されます。**注意:** SVG へと書き出す際は、一度に1ページしか書き出すことができません。書き出すページを指定するにはwk page index を使用して下さい。 | +| wk web page html 4D | Integer | 3 | 4D Write Pro ドキュメントはHTML として保存さんれ、4D 特有のタグが含まれます。それぞれの式はノンブレーキングスペースとして挿入されます。このフォーマットはロスレスであるため、テキストフィールドへの保存目的に適しています。 | **注:** @@ -55,25 +55,25 @@ displayed_sidebar: docs *option* 引数には、書き出されるドキュメントのプロパティを定義する値を格納したオブジェクトを渡します。 次のプロパティを利用することができます: 次のプロパティを利用することができます: -| 定数 | 値 | 説明 | -| ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| wk CID host domain name | cidHostDomain | CID ホストドメイン名: 生成されるCID URL に追加されるホストドメイン。'@' が区切り文字として含まれます。 `wk mime html` フォーマットが使用されている際にのみ使用可能です。 | -| wk embedded pictures | embeddedPictures | SVG 書き出し専用。 [WP EXPORT DOCUMENT](wp-export-document.md) を呼び出した時、ピクチャーが書き出された.svg ファイル内に埋め込まれるかどうかを設定します。 取り得る値:
  • true (デフォルト): ピクチャーは書き出された.svg ファイルに埋め込まれます。
  • false: ピクチャーは書き出された.svg ファイルと同じ階層にある"filename\_images" というフォルダー内に書き出されます。この"filename" はファイル用にコマンドに渡された名前の拡張子を抜いたものです。 ピクチャーは埋め込まれませんが、.svg ファイル内で参照されます。
  • 注意: フォルダーがすでに存在する場合、ファイルが書き出される前に中身が空にされます。 書き出されたページに画像が何もない場合、フォルダーは削除されます。 | -| wk factur x | facturX | PDF 書き出しのみ。 値: "Factur-X (ZUGFeRD)" PDF 書き出しを設定するオブジェクト([wk factur x オブジェクト](./wp-export-document.md#wk-factur-x-object) 参照)。 | -| wk files | files | PDF 書き出しのみ。 値:生成されるドキュメントに埋め込まれるファイルを記述したオブジェクトのコレクション([wk files コレクション](./wp-export-document.md#wk-files-collection) 参照)。 PDF 添付はPDF/A-3 バージョンでのみサポートされています。`wk files` プロパティを渡す場合、"PDF/A-3" バージョンが自動的に使用されます(`wk pdfa version` 属性は無視されます)。 Factur-X PDF 書き出し(下記参照)の場合、コレクションの最初のオブジェクトにはFactur-X XML ファイルが格納されている必要があります。 | -| wk google fonts tag | googleFontsTag | SVG書き出し専用。 書き出されたSVG 内でのGoogle フォントの読み込みルールを設定します。 取り得る値:
  • false (デフォルト): google フォントの読み込みルールは何も追加されていません。
  • true: @import ルールを下記出されたファイルに追加します。 Windows または macOS 上でデフォルトでは利用できないフォントを使用したい場合に有用です。
  • **注意:** このプロパティはデフォルトは false に設定されています。なぜなら、有効化された場合には、Googleフォントがネイティブフォントを上書きしますが、一般的にネイティブフォントの方がブラウザーでのレンダリングが良いからです。 | -| wk HTML pretty print | htmlPrettyPrint | HTML コードは読みやすいようにフォーマットされます。 | -| wk max picture DPI | maxPictureDPI | 画像を適切な解像度にリサンプリング(縮小)するのに使用されます。 Windows でのSVG 画像に対しては。ラスタライズに使用されます。 デフォルト値: 300 (for wk optimized for \= wk print 時) 192 (for wk optimized for \= wk screen 時) 取り得る最大値: 1440 | -| wk optimized for | optimizedFor | 書き出されたドキュメントを、その目的に応じてどのように最適化するかを定義します。 取り得る値:
  • `wk print` (`wk pdf` および `wk svg` のデフォルト値) ビットマップピクチャーは、`wk max picture DPI` で定義されたDPI または300 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出されるタイプに対してコーデックがサポートされていない場合にはPNG へと変換される可能性もあります。 ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または300 (Windows のみ)を使用してPNG へと変換されます。 ピクチャーに複数のフォーマットが含まれている場合、最適なフォーマットが使用されます(*例*: .jpg の代わりに.tiff など)。
  • `wk screen` (`wk web page complete` および `wk mime html` のデフォルト値)。 ビットマップは `wk max picture DPI` で定義されたDPI または192 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出しタイプに対してコーデックがサポートされていない場合にはJPG (透過部分のない画像) またはPNG (透過画像) へと変換されます。 ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または192 (Windows のみ)を使用してPNG へと変換されます。 ピクチャーに複数のフォーマットが含まれている場合、スクリーンレンダリング用のフォーマットが使用されます。
  • **注意:** `wk docx` フォーマットで書き出されたドキュメントは常にwk print 用に最適化されます(wk optimized for オプションは無視されます)。 | -| wk page index | pageIndex | SVG書き出し専用。 SVG フォーマットへと書き出すページのインデックス(デフォルトは1)。 ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。 **注意:** ページインデックスはページナンバリングとは異なるものです。 | -| wk pdfa version | pdfaVersion | PDF/A バージョンに適合したPDF を書き出します。 PDF/A のプロパティおよびバージョンの詳細については、[Wikipedia のPDF/A のページ](https://ja.wikipedia.org/wiki/PDF/A) を参照してください。 取り得る値:
  • `wk pdfa2`: "PDF/A-2" バージョンに書き出します。
  • `wk pdfa3`: "PDF/A-3" バージョンに書き出します。
  • **注意:** macOS 上では、プラットフォームの実装によっては`wk pdfa2` 定数はPDF/A-2 またはPDF/A-3 またはそれ以上のバージョンに書き出すことがあります。 また、`wk pdfa3` 定数は"*少なくとも* PDF/A-3へと書き出す"ということを意味します。 Windows 上では、出力されたPDF ファイルは常に指定されたバージョンと同じになります。 | -| wk recompute formulas | recomputeFormulas | 書き出し時にフォーミュラを再計算するかどうかを定義します。 取り得る値:
  • true - デフォルト値。 全てのフォーミュラは再度計算されます。
  • false- フォーミュラを再計算しません。
  • | -| wk visible background and anchored elements | visibleBackground | 背景画像/背景色、アンカーされた画像またはテキストボックス(ディスプレイ用では、ページビューモードまたは埋め込みビューモードでのみ表示されるエフェクト)を表示または書き出しをします。 取り得る値: True/False | -| wk visible empty images | visibleEmptyImages | 読み込めない、あるいは計算できない画像(空の画像またはサポートされていないフォーマットの画像)に対してデフォルトの黒い四角形を表示または書き出しします。 取り得る値: True/False。 デフォルト値: true。 値がFalse の場合、たとえ画像に境界線、幅、高さ、背景などが設定されてあっても空の画像要素は全く表示されないという点に注意して下さい。これはインライン画像のページレイアウトに影響する可能性があります。 | -| wk visible footers | visibleFooters | フッターを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False | -| wk visible headers | visibleHeaders | ヘッダーを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。 取り得る値: True/False | -| wk visible references | visibleReferences | ドキュメントに挿入されている4D 式を参照として表示または書き出しします。 取り得る値: True/False | -| wk whitespace | whitespace | `wk mime html` 書き出しフォーマットに対する"white-space" CSS 値を設定します。 [white-space CSS スタイル](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) は段落に対して適用されます。 取り得る値: "normal"、"nowrap"、 "pre"、 "pre-wrap" (デフォルト)、 "pre-line"、 "break-spaces" | +| 定数 | 値 | 説明 | +| ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| wk CID host domain name | cidHostDomain | CID ホストドメイン名: 生成されるCID URL に追加されるホストドメイン。'@' が区切り文字として含まれます。 `wk mime html` フォーマットが使用されている際にのみ使用可能です。 | +| wk embedded pictures | embeddedPictures | SVG 書き出し専用。 [WP EXPORT DOCUMENT](wp-export-document.md) を呼び出した時、ピクチャーが書き出された.svg ファイル内に埋め込まれるかどうかを設定します。取り得る値:
  • true (デフォルト): ピクチャーは書き出された.svg ファイルに埋め込まれます。
  • false: ピクチャーは書き出された.svg ファイルと同じ階層にある"filename\_images" というフォルダー内に書き出されます。この"filename" はファイル用にコマンドに渡された名前の拡張子を抜いたものです。ピクチャーは埋め込まれませんが、.svg ファイル内で参照されます。
  • 注意: フォルダーがすでに存在する場合、ファイルが書き出される前に中身が空にされます。書き出されたページに画像が何もない場合、フォルダーは削除されます。 | +| wk factur x | facturX | PDF 書き出しのみ。値: "Factur-X (ZUGFeRD)" PDF 書き出しを設定するオブジェクト([wk factur x オブジェクト](./wp-export-document.md#wk-factur-x-object) 参照)。 | +| wk files | files | PDF 書き出しのみ。値:生成されるドキュメントに埋め込まれるファイルを記述したオブジェクトのコレクション([wk files コレクション](./wp-export-document.md#wk-files-collection) 参照)。 PDF 添付はPDF/A-3 バージョンでのみサポートされています。`wk files` プロパティを渡す場合、"PDF/A-3" バージョンが自動的に使用されます(`wk pdfa version` 属性は無視されます)。 Factur-X PDF 書き出し(下記参照)の場合、コレクションの最初のオブジェクトにはFactur-X XML ファイルが格納されている必要があります。 | +| wk google fonts tag | googleFontsTag | SVG書き出し専用。書き出されたSVG 内でのGoogle フォントの読み込みルールを設定します。取り得る値:
  • false (デフォルト): google フォントの読み込みルールは何も追加されていません。
  • true: @import ルールを下記出されたファイルに追加します。 Windows または macOS 上でデフォルトでは利用できないフォントを使用したい場合に有用です。
  • **注意:** このプロパティはデフォルトは false に設定されています。なぜなら、有効化された場合には、Googleフォントがネイティブフォントを上書きしますが、一般的にネイティブフォントの方がブラウザーでのレンダリングが良いからです。 | +| wk HTML pretty print | htmlPrettyPrint | HTML コードは読みやすいようにフォーマットされます。 | +| wk max picture DPI | maxPictureDPI | 画像を適切な解像度にリサンプリング(縮小)するのに使用されます。 Windows でのSVG 画像に対しては。ラスタライズに使用されます。デフォルト値: 300 (for wk optimized for \= wk print 時) 192 (for wk optimized for \= wk screen 時) 取り得る最大値: 1440 | +| wk optimized for | optimizedFor | 書き出されたドキュメントを、その目的に応じてどのように最適化するかを定義します。取り得る値:
  • `wk print` (`wk pdf` および `wk svg` のデフォルト値) ビットマップピクチャーは、`wk max picture DPI` で定義されたDPI または300 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出されるタイプに対してコーデックがサポートされていない場合にはPNG へと変換される可能性もあります。ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または300 (Windows のみ)を使用してPNG へと変換されます。ピクチャーに複数のフォーマットが含まれている場合、最適なフォーマットが使用されます(*例*: .jpg の代わりに.tiff など)。
  • `wk screen` (`wk web page complete` および `wk mime html` のデフォルト値)。ビットマップは `wk max picture DPI` で定義されたDPI または192 (デフォルト値) を使用してダウンスケールされる可能性があり、また書き出しタイプに対してコーデックがサポートされていない場合にはJPG (透過部分のない画像) またはPNG (透過画像) へと変換されます。ベクターのピクチャーは `wk max picture DPI` で定義されたDPI、または192 (Windows のみ)を使用してPNG へと変換されます。ピクチャーに複数のフォーマットが含まれている場合、スクリーンレンダリング用のフォーマットが使用されます。
  • **注意:** `wk docx` フォーマットで書き出されたドキュメントは常にwk print 用に最適化されます(wk optimized for オプションは無視されます)。 | +| wk page index | pageIndex | SVG書き出し専用。 SVG フォーマットへと書き出すページのインデックス(デフォルトは1)。ページのインデックスは1から始まり、これはドキュメントの最初のページを指します。**注意:** ページインデックスはページナンバリングとは異なるものです。 | +| wk pdfa version | pdfaVersion | PDF/A バージョンに適合したPDF を書き出します。 PDF/A のプロパティおよびバージョンの詳細については、[Wikipedia のPDF/A のページ](https://ja.wikipedia.org/wiki/PDF/A) を参照してください。取り得る値:
  • `wk pdfa2`: "PDF/A-2" バージョンに書き出します。
  • `wk pdfa3`: "PDF/A-3" バージョンに書き出します。
  • **注意:** macOS 上では、プラットフォームの実装によっては`wk pdfa2` 定数はPDF/A-2 またはPDF/A-3 またはそれ以上のバージョンに書き出すことがあります。また、`wk pdfa3` 定数は"*少なくとも* PDF/A-3へと書き出す"ということを意味します。 Windows 上では、出力されたPDF ファイルは常に指定されたバージョンと同じになります。 | +| wk recompute formulas | recomputeFormulas | 書き出し時にフォーミュラを再計算するかどうかを定義します。取り得る値:
  • true - デフォルト値。全てのフォーミュラは再度計算されます。
  • false- フォーミュラを再計算しません。
  • | +| wk visible background and anchored elements | visibleBackground | 背景画像/背景色、アンカーされた画像またはテキストボックス(ディスプレイ用では、ページビューモードまたは埋め込みビューモードでのみ表示されるエフェクト)を表示または書き出しをします。取り得る値: True/False | +| wk visible empty images | visibleEmptyImages | 読み込めない、あるいは計算できない画像(空の画像またはサポートされていないフォーマットの画像)に対してデフォルトの黒い四角形を表示または書き出しします。取り得る値: True/False。デフォルト値: true。値がFalse の場合、たとえ画像に境界線、幅、高さ、背景などが設定されてあっても空の画像要素は全く表示されないという点に注意して下さい。これはインライン画像のページレイアウトに影響する可能性があります。 | +| wk visible footers | visibleFooters | フッターを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。取り得る値: True/False | +| wk visible headers | visibleHeaders | ヘッダーを表示または書き出しします(表示用においてはページビューモードでのみ表示されるエフェクトです)。取り得る値: True/False | +| wk visible references | visibleReferences | ドキュメントに挿入されている4D 式を参照として表示または書き出しします。取り得る値: True/False | +| wk whitespace | whitespace | `wk mime html` 書き出しフォーマットに対する"white-space" CSS 値を設定します。 [white-space CSS スタイル](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space) は段落に対して適用されます。取り得る値: "normal"、"nowrap"、 "pre"、 "pre-wrap" (デフォルト)、 "pre-line"、 "break-spaces" | 以下の表は*format* 引数の各フォーマットごとに利用可能な*option* 引数のオプションをあらわしています: @@ -113,7 +113,7 @@ displayed_sidebar: docs ## 例題 2 -スタイル付きテキスト、4D 参照および画像を格納したEメールを送信したい場合を考えます。 この場合、MIME フォーマットで書き出された4D Write Pro エリアを使用し、SMTP を使用して送信することができます: +スタイル付きテキスト、4D 参照および画像を格納したEメールを送信したい場合を考えます。この場合、MIME フォーマットで書き出された4D Write Pro エリアを使用し、SMTP を使用して送信することができます: ```4d // transporter オブジェクトを作成 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md index d8932905d52e6a..ca8b95cb213d9f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md @@ -26,7 +26,7 @@ displayed_sidebar: docs *filePath* あるいは *fileObj* のいずれかを渡すことができます: -- *filePath* 引数の場合、ディスク上に保存されているドキュメントのパスを渡します。 ドキュメントが ストラクチャーファイルと同階層に置かれている場合を除き、完全なパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 +- *filePath* 引数の場合、ディスク上に保存されているドキュメントのパスを渡します。ドキュメントが ストラクチャーファイルと同階層に置かれている場合を除き、完全なパスを渡す必要があります (同階層に置かれている場合にはファイル名のみを渡すことができます)。 - *fileObj* 引数には、読み込むファイルを表す4D.File オブジェクトを渡します。 @@ -34,7 +34,7 @@ displayed_sidebar: docs - 旧式の4D Write ドキュメント(.4w7 あるいは .4wt)。 4D Write Pro オブジェクトでもサポートされる4D Write 機能の詳細な一覧については、[4D Write ドキュメントの読み込み](../user-legacy/importing-4d-write-documents.md) の章を参照して下さい。 - 4D Write Pro(.4wp)フォーマットドキュメント。 4D Write Pro ドキュメントフォーマットに関するより詳細な情報に関しては、[.4wp ドキュメントフォーマット](../user-legacy/storing-4d-write-pro-documents-in-4d-object-fields.md#4wp-document-format)を参照してください。 -- .docx フォーマットのドキュメント。 詳細な情報に関しては、[.docx フォーマットでの読み込みと書き出し](../user-legacy/importing-and-exporting-in-docx-format.md) を参照して下さい。 +- .docx フォーマットのドキュメント。詳細な情報に関しては、[.docx フォーマットでの読み込みと書き出し](../user-legacy/importing-and-exporting-in-docx-format.md) を参照して下さい。 **注意:** 4D BLOBフィールドに保存されたドキュメントを読み込みたい場合には、[WP New](../commands/wp-new) コマンドの使用も検討してみて下さい。 @@ -44,7 +44,7 @@ displayed_sidebar: docs - **倍長整数** -デフォルトで、旧式の4D Write ドキュメント内で使用されているHTML 式は読み込まれません(4D Write Pro ではサポートされません)。 wk import html expressions as text 定数を渡した場合、HTML 式は`##htmlBegin##` および `##htmlEnd##` タグで囲まれた標準テキストとして読み込まれるため、そのあとに整形アクションが必要になります。 例: +デフォルトで、旧式の4D Write ドキュメント内で使用されているHTML 式は読み込まれません(4D Write Pro ではサポートされません)。 wk import html expressions as text 定数を渡した場合、HTML 式は`##htmlBegin##` および `##htmlEnd##` タグで囲まれた標準テキストとして読み込まれるため、そのあとに整形アクションが必要になります。例: ```html ##htmlBegin##Imported titlebold##htmlEnd## @@ -54,21 +54,21 @@ displayed_sidebar: docs 以下のプロパティを持ったオブジェクトを渡すことで、読み込みオペレーション中に以下の属性がどのように扱われるかを定義することができます: -| **属性** | **型** | **説明** | -| ----------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| anchoredTextAreas | Text | MS Word (.docx) ドキュメントのみ有効。 Word のアンカーされたテキストがどのように管理されるかを指定します。 取り得る値:

    **anchored** (デフォルト) - アンカーされたテキストエリアはテキストボックスとして扱われます。 **inline** \- アンカーされたテキストはアンカーされた位置でインラインテキストとして扱われます。 **ignore** \- アンカーされたテキストは無視されます。 **注意**: ドキュメント内のレイアウトとページ数が変化する可能性があります。 *.docx フォーマットのファイルの読み込み方* も参照してください。 | -| anchoredImages | Text | MS Word (.docx) ドキュメントのみ有効。 アンカーされた画像がどのように管理されるかを指定します。 取り得る値:

    **all** (デフォルト) - アンカーされた画像は全てアンカーされた画像としてテキスト折り返しプロパティとともに読み込まれます(例外: .docx の折り返しオプション"tight"はwrap square として読み込まれます)。 **ignoreWrap** \- アンカーされた画像は全て読み込まれますが、画像の周りにテキスト折り返しがある場合は無視されます。 **ignore** \- アンカーされた画像は読み込まれません。 | -| sections | Text | MS Word (.docx) ドキュメントのみ有効。 セクションがどのように管理されるかを指定します。 取り得る値:

    **all** (デフォルト) - 全てのセクションが読み込まれます。 継続されたセクション、奇数/偶数セクションは全て標準のセクションへと変換されます。 **ignore** \- セクションは全てデフォルトの4D Write Pro セクション(A4/縦向きレイアウト/ヘッダーやフッターはなし)へと変換されます。 **注意**: 継続されたセクションブレークを除く全てのセクションブレークはセクションブレークを伴う改ページへと変換されます。 継続されたセクションブレークは継続したセクションブレークとして読み込まれます。 | -| fields | Text | MS Word (.docx) ドキュメントのみ有効。 4D Write Pro フォーミュラに変換できない.docx フィールドがどのように管理されるかを指定します。 取り得る値:

    **ignore** \- .docx フィールドは無視されます。 **label** \- .docx フィールド参照は二重中括弧 ("{{ }}")がついたラベルとして読み込まれます。 例: "ClientName" フィールドは{{ClientName}} として読み込まれます。 **value** (default) - .docx フィールドの最後の計算された値が(あれば)読み込まれます。 **注意**: .docx フィールドが4D Write Pro 変数に対応している場合、フィールドはフォーミュラとして読み込まれ、このオプションは無視されます。 | -| borderRules | Text | MS Word (.docx) ドキュメントのみ有効。 段落の境界線がどのように管理されるかを指定します。 取り得る値:

    **collapse** \- 段落フォーマットは自動折りたたみ境界線を真似するように変更されます。 折りたたみプロパティは読み込みオペレーションのときにしか適用されないと言う点に注意してください。 自動境界線折りたたみ設定のあるスタイルシートが読み込みオペレーションの後に再適用された場合、この設定は無視されます。 **noCollapse** (デフォルト) - 段落フォーマットは変更されません。 | -| preferredFontScriptType | Text | MS Word (.docx) ドキュメントのみ有効。 OOXML 内の単一フォントプロパティとして異なるタイプフェイスが定義されていた場合にどのタイプフェイスを使用するかを指定します。 取り得る値:

    **latin** (デフォルト) - ラテン文字 **bidi** \- 双方向テキスト。 ドキュメントが双方向でleft-to-right(LTR)またはright-to-left(RTL)テキストの場合に適しています(例:アラビア文字やヘブライ文字)。 **eastAsia** \- 東アジア文字。 ドキュメントが主にアジア系のテキストの場合に適しています。 | -| htmlExpressions | Text | 4D Write (.4w7) ドキュメントのみ有効。 HTML 式がどのように管理されるかを指定します。 4D Write (.4w7) ドキュメントのみ有効。 HTML 式がどのように管理されるかを指定します。 取り得る値:

    **rawText** \- HTML テキストは##htmlBegin## および ##htmlEnd## タグに挟まれた標準テキストとして読み込まれます。 **ignore** (デフォルト) - HTML 式は無視されます。 | -| importDisplayMode | Text | 4D Write (.4w7) ドキュメントのみ有効。 画像の表示がどのように管理されるかを指定します。 取り得る値:

    **legacy -** 画像の表示モードは、縮小して表示以外の場合には背景画像として変換されます。 **noLegacy** (デフォルト) - 4W7 画像の表示モードは縮小して表示以外の場合には*imageDisplayMode* 属性に変換されます。 | +| **属性** | **型** | **説明** | +| ----------------------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| anchoredTextAreas | Text | MS Word (.docx) ドキュメントのみ有効。 Word のアンカーされたテキストがどのように管理されるかを指定します。取り得る値:

    **anchored** (デフォルト) - アンカーされたテキストエリアはテキストボックスとして扱われます。 **inline** \- アンカーされたテキストはアンカーされた位置でインラインテキストとして扱われます。 **ignore** \- アンカーされたテキストは無視されます。**注意**: ドキュメント内のレイアウトとページ数が変化する可能性があります。 *.docx フォーマットのファイルの読み込み方* も参照してください。 | +| anchoredImages | Text | MS Word (.docx) ドキュメントのみ有効。アンカーされた画像がどのように管理されるかを指定します。取り得る値:

    **all** (デフォルト) - アンカーされた画像は全てアンカーされた画像としてテキスト折り返しプロパティとともに読み込まれます(例外: .docx の折り返しオプション"tight"はwrap square として読み込まれます)。 **ignoreWrap** \- アンカーされた画像は全て読み込まれますが、画像の周りにテキスト折り返しがある場合は無視されます。 **ignore** \- アンカーされた画像は読み込まれません。 | +| sections | Text | MS Word (.docx) ドキュメントのみ有効。セクションがどのように管理されるかを指定します。取り得る値:

    **all** (デフォルト) - 全てのセクションが読み込まれます。継続されたセクション、奇数/偶数セクションは全て標準のセクションへと変換されます。 **ignore** \- セクションは全てデフォルトの4D Write Pro セクション(A4/縦向きレイアウト/ヘッダーやフッターはなし)へと変換されます。**注意**: 継続されたセクションブレークを除く全てのセクションブレークはセクションブレークを伴う改ページへと変換されます。継続されたセクションブレークは継続したセクションブレークとして読み込まれます。 | +| fields | Text | MS Word (.docx) ドキュメントのみ有効。 4D Write Pro フォーミュラに変換できない.docx フィールドがどのように管理されるかを指定します。取り得る値:

    **ignore** \- .docx フィールドは無視されます。 **label** \- .docx フィールド参照は二重中括弧 ("{{ }}")がついたラベルとして読み込まれます。例: "ClientName" フィールドは{{ClientName}} として読み込まれます。 **value** (default) - .docx フィールドの最後の計算された値が(あれば)読み込まれます。**注意**: .docx フィールドが4D Write Pro 変数に対応している場合、フィールドはフォーミュラとして読み込まれ、このオプションは無視されます。 | +| borderRules | Text | MS Word (.docx) ドキュメントのみ有効。段落の境界線がどのように管理されるかを指定します。取り得る値:

    **collapse** \- 段落フォーマットは自動折りたたみ境界線を真似するように変更されます。折りたたみプロパティは読み込みオペレーションのときにしか適用されないと言う点に注意してください。自動境界線折りたたみ設定のあるスタイルシートが読み込みオペレーションの後に再適用された場合、この設定は無視されます。 **noCollapse** (デフォルト) - 段落フォーマットは変更されません。 | +| preferredFontScriptType | Text | MS Word (.docx) ドキュメントのみ有効。 OOXML 内の単一フォントプロパティとして異なるタイプフェイスが定義されていた場合にどのタイプフェイスを使用するかを指定します。取り得る値:

    **latin** (デフォルト) - ラテン文字 **bidi** \- 双方向テキスト。ドキュメントが双方向でleft-to-right(LTR)またはright-to-left(RTL)テキストの場合に適しています(例:アラビア文字やヘブライ文字)。 **eastAsia** \- 東アジア文字。ドキュメントが主にアジア系のテキストの場合に適しています。 | +| htmlExpressions | Text | 4D Write (.4w7) ドキュメントのみ有効。 HTML 式がどのように管理されるかを指定します。 4D Write (.4w7) ドキュメントのみ有効。 HTML 式がどのように管理されるかを指定します。 取り得る値:

    **rawText** \- HTML テキストは##htmlBegin## および ##htmlEnd## タグに挟まれた標準テキストとして読み込まれます。 **ignore** (デフォルト) - HTML 式は無視されます。 | +| importDisplayMode | Text | 4D Write (.4w7) ドキュメントのみ有効。画像の表示がどのように管理されるかを指定します。取り得る値:

    **legacy -** 画像の表示モードは、縮小して表示以外の場合には背景画像として変換されます。 **noLegacy** (デフォルト) - 4W7 画像の表示モードは縮小して表示以外の場合には*imageDisplayMode* 属性に変換されます。 | **互換性に関する注意** -- *旧式の4D Write ドキュメント内で使用される文字スタイルシートは独自の機構が使用されており、これは4D Write Pro ではサポートされていないものです。* *インポートされたテキストを可能な限り再現するため、スタイルシート属性は"ハードコード"スタイル属性へと変換されています。* *旧式の文字スタイルシートは読み込まれず、今後ドキュメント内では参照されることはありません。* -- *.docx フォーマットからの読み込みのサポートはMicrosoft Word 2010 以降でのみ正式対応しています。* *それ以前のバージョン、具体的にはMicrosoft Word 2007 などでは、正しく読み込まれない可能性があります。* +- \*旧式の4D Write ドキュメント内で使用される文字スタイルシートは独自の機構が使用されており、これは4D Write Pro ではサポートされていないものです。\*\*インポートされたテキストを可能な限り再現するため、スタイルシート属性は"ハードコード"スタイル属性へと変換されています。\**旧式の文字スタイルシートは読み込まれず、今後ドキュメント内では参照されることはありません。* +- \*.docx フォーマットからの読み込みのサポートはMicrosoft Word 2010 以降でのみ正式対応しています。\**それ以前のバージョン、具体的にはMicrosoft Word 2007 などでは、正しく読み込まれない可能性があります。* ## 例題 1 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md index 5183e7d8987b26..de3e029b89195a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-document-body.md @@ -31,7 +31,7 @@ displayed_sidebar: docs - 要素(表組 / 行 / 段落 / 本文 / ヘッダー / フッター / インラインピクチャー / セクション / サブセクション / テキストボックス) - 4D Write Pro ドキュメント -挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands/wp-new) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。 本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。 指定されたレンジのセクションおよびブックマークは保存されます。 これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 +挿入する*wpDoc* 引数のドキュメントには、 [WP New](../commands/wp-new) コマンドまたは [WP Import document](wp-import-document.md) コマンドを使用して作成した任意の4D Write Pro ドキュメントオブジェクトを指定可能です。本文の子要素のみが挿入されます(つまり、ヘッダー、フッター、テキストボックスおよびアンカーされたピクチャーは挿入されません)。指定されたレンジのセクションおよびブックマークは保存されます。これに加え、要素はコピーされるので、*wpDoc* 引数の内容はその後再利用することが可能です。 *mode* 引数には、*4D Write Pro 定数* テーマ内の以下の定数のいずれか一つを渡すことで、ターゲットの*targetObj* のドキュメント内で使用される挿入モードを指定することができます: @@ -71,7 +71,7 @@ displayed_sidebar: docs ## 例題 2 -テンプレートとして定義されたドキュメントがあり、その中には異なるフォーマットを持つ部分が、それぞれブックマークとして保存されているものとします。 最終ドキュメントをテンプレートから作成する場合、任意のブックマークを新規ドキュメントとして取得し、最終ドキュメントに挿入することができます。 +テンプレートとして定義されたドキュメントがあり、その中には異なるフォーマットを持つ部分が、それぞれブックマークとして保存されているものとします。最終ドキュメントをテンプレートから作成する場合、任意のブックマークを新規ドキュメントとして取得し、最終ドキュメントに挿入することができます。 ```4d ARRAY TEXT($_BookmarkNames;0) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-formula.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-formula.md index b3e6cd13f5c19e..feafab05d5f652 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-formula.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-formula.md @@ -41,7 +41,7 @@ displayed_sidebar: docs | name | Text | ドキュメント内で表示するフォーミュラの名前 | | formula | Object | [**Formula**](../../commands/formula.md) または [**Formula from string**](../../commands/formula-from-string.md) コマンドで作成された[フォーミュラオブジェクト](../../commands/formula-objects.md) | -フォーミュラの*name* プロパティがあるオブジェクトを使用する場合、ドキュメント内で、フォーミュラが参照として表示される場合にはフォーミュラ参照ではなくそのname の名前が表示され、値または記号として表示される場合にはフォーミュラtip に名前が表示されます。 *name* プロパティが空の文字列を格納しているか省略されている場合、それはオブジェクトから削除され、デフォルトでフォーミュラが表示されます。 詳細な情報については、[フォーミュラの管理](../managing-formulas.md) のページを参照してください。 +フォーミュラの*name* プロパティがあるオブジェクトを使用する場合、ドキュメント内で、フォーミュラが参照として表示される場合にはフォーミュラ参照ではなくそのname の名前が表示され、値または記号として表示される場合にはフォーミュラtip に名前が表示されます。 *name* プロパティが空の文字列を格納しているか省略されている場合、それはオブジェクトから削除され、デフォルトでフォーミュラが表示されます。詳細な情報については、[フォーミュラの管理](../managing-formulas.md) のページを参照してください。 *mode* 引数には、使用する挿入モードを指定する、以下の定数のいずれか一つを渡します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-picture.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-picture.md index 00c02c5036a971..fbceb4f25e848e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-picture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-insert-picture.md @@ -36,12 +36,11 @@ displayed_sidebar: docs - *picture* 引数の場合: - ピクチャーフィールドまたは変数 - - ディスク上のピクチャーファイルへのパスを格納した文字列(システムシンタックス) - 文字列を使用する場合には、フルパス名またはデータベースのストラクチャーファイルを起点とした相対パス名を指定することができます。 またファイル名を渡すこともでき、その場合、ファイルはデータベースのストラクチャーファイル と同じ階層に置かれている必要があります。 ファイル名を渡す場合には、ファイルの拡張子も指定する必要があります。 + - ディスク上のピクチャーファイルへのパスを格納した文字列(システムシンタックス)文字列を使用する場合には、フルパス名またはデータベースのストラクチャーファイルを起点とした相対パス名を指定することができます。またファイル名を渡すこともでき、その場合、ファイルはデータベースのストラクチャーファイル と同じ階層に置かれている必要があります。ファイル名を渡す場合には、ファイルの拡張子も指定する必要があります。 - *pictureFile* 引数の場合: ピクチャーファイルを表す `File` オブジェクトまたはパス。 -[4D でサポートされているフォーマット](../../FormEditor/pictures.md#native-formats-supported) であれば、どんなピクチャーフォーマットでも使用することができます。 [PICTURE CODEC LIST](../../commands/picture-codec-list) コマンドを使用することで、利用可能なピクチャーフォーマットの一覧を取得することができます。 ピクチャーに複数のフォーマット(コーデック)が格納されている場合、4D Write Pro はドキュメント内に表示用に1種類、印刷用に1種類(異なる場合)のフォーマットのみを保管します。その際、「最適」なフォーマットが自動的に選択されます。 +[4D でサポートされているフォーマット](../../FormEditor/pictures.md#native-formats-supported) であれば、どんなピクチャーフォーマットでも使用することができます。 [PICTURE CODEC LIST](../../commands/picture-codec-list) コマンドを使用することで、利用可能なピクチャーフォーマットの一覧を取得することができます。ピクチャーに複数のフォーマット(コーデック)が格納されている場合、4D Write Pro はドキュメント内に表示用に1種類、印刷用に1種類(異なる場合)のフォーマットのみを保管します。その際、「最適」なフォーマットが自動的に選択されます。 *mode* 引数には、ドキュメント内のピクチャーに対して使用する挿入モードを指定する、以下の定数のいずれか一つを渡します: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-new-style-sheet.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-new-style-sheet.md index 80855618dbe22c..542ea803a35919 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-new-style-sheet.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-new-style-sheet.md @@ -39,12 +39,12 @@ displayed_sidebar: docs *wpDoc* 引数には、4D Write Pro ドキュメントを渡します。 -*styleSheetType* 引数を使用すると、スタイルシートのタイプを指定することができます。これにより、 *wpDoc* のドキュメント内でどこがスタイルシートによって影響を受けるかを指定できると言うことです。 二つのタイプが利用可能です: +*styleSheetType* 引数を使用すると、スタイルシートのタイプを指定することができます。これにより、 *wpDoc* のドキュメント内でどこがスタイルシートによって影響を受けるかを指定できると言うことです。二つのタイプが利用可能です: - wk type character: スタイル属性を文字に対して適用します。 - wk type paragraph: スタイル属性を段落に対して適用します([階層リストスタイルシート](#階層リストスタイルシート)を作成したい場合には必須)。 -*styleSheetName* 引数には、スタイルシートの名前を渡します。 スタイルシートの名前はドキュメントとともに保存されるため、スタイルを再利用や編集を容易にします。 また[WP Get style sheet](../WritePro/commands/wp-get-style-sheet) および [WP DELETE STYLE SHEET](../WritePro/commands/wp-delete-style-sheet) コマンドで使用することもできます。 スタイルシート名は以下のルールを遵守している必要があります: +*styleSheetName* 引数には、スタイルシートの名前を渡します。スタイルシートの名前はドキュメントとともに保存されるため、スタイルを再利用や編集を容易にします。また[WP Get style sheet](../WritePro/commands/wp-get-style-sheet) および [WP DELETE STYLE SHEET](../WritePro/commands/wp-delete-style-sheet) コマンドで使用することもできます。スタイルシート名は以下のルールを遵守している必要があります: - 必ず文字で始まらなければなりません - そのあとは、英数字、スペース文字、"-" 文字、また128 以上のUnicode 文字を使用することができます。 @@ -52,18 +52,18 @@ displayed_sidebar: docs - "section" で始めることはできません。予約されています - "\_" はスペースで置き換えられ、末尾のスペースは削除されます。 -[WP SET ATTRIBUTES](../commands/wp-set-attributes) コマンドまたはオブジェクト記法を使用することで、スタイルシートの属性を指定することができます([4D Write Pro 属性](../commands-legacy/4d-write-pro-attributes.md) 参照)。 利用可能な属性の一覧については、[スタイルシート属性](../commands-legacy/4d-write-pro-attributes.md#スタイルシート) の章を参照してください。 +[WP SET ATTRIBUTES](../commands/wp-set-attributes) コマンドまたはオブジェクト記法を使用することで、スタイルシートの属性を指定することができます([4D Write Pro 属性](../commands-legacy/4d-write-pro-attributes.md) 参照)。利用可能な属性の一覧については、[スタイルシート属性](../commands-legacy/4d-write-pro-attributes.md#スタイルシート) の章を参照してください。 **注**: -- スタイルシートは文字または段落の表示方法のみを変更し、それらがどのようにドキュメント内に保存されるかは変更しません。 スタイルシートが削除された場合、テキストはデフォルトのスタイルへと戻されます。 -- 新しいスタイルシート内で定義されていないあらゆる属性は、自動的にノーマルスタイルを使用します。 詳細な情報については、[*スタイルシート* ページ](../user-legacy/stylesheets.md) を参照してください。 +- スタイルシートは文字または段落の表示方法のみを変更し、それらがどのようにドキュメント内に保存されるかは変更しません。スタイルシートが削除された場合、テキストはデフォルトのスタイルへと戻されます。 +- 新しいスタイルシート内で定義されていないあらゆる属性は、自動的にノーマルスタイルを使用します。詳細な情報については、[*スタイルシート* ページ](../user-legacy/stylesheets.md) を参照してください。 ### 階層リストスタイルシート *styleSheetType* 引数が `wk type paragraph` に設定されていた場合、オプションとして *listLevelCount* 引数を渡すことで[階層リストスタイルシート](../user-legacy/stylesheets.md#hierarchical-list-style-sheets) を作成することができます。 -*listLevelCount* 引数は、階層内のレベルの総レベル数を定義します。 指定された場合(1 以上の値)、コマンドは自動的にルートレベルのスタイルシートと、対応するサブレベルのスタイルシートを自動的に作成します。 +*listLevelCount* 引数は、階層内のレベルの総レベル数を定義します。指定された場合(1 以上の値)、コマンドは自動的にルートレベルのスタイルシートと、対応するサブレベルのスタイルシートを自動的に作成します。 以下の定義済みの値が適用されます: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-reset-attributes.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-reset-attributes.md index 134aa307604a23..8db986315fab30 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-reset-attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-reset-attributes.md @@ -22,7 +22,7 @@ displayed_sidebar: docs ## 説明 -**WP RESET ATTRIBUTES** コマンドは引数として渡されたレンジ、要素、またはドキュメントの1つ以上の値をリセットすることができます。このコマンドは任意の4D Write Pro 内部属性(文字、段落、ドキュメント、表または画像)を削除することができます。 リセットしたい属性の名前を*attribName* 引数に渡すか、あるいは*attribColl* 引数に属性名のコレクションを渡すことで、複数の属性を一度にリセットすることもできます。 +**WP RESET ATTRIBUTES** コマンドは引数として渡されたレンジ、要素、またはドキュメントの1つ以上の値をリセットすることができます。このコマンドは任意の4D Write Pro 内部属性(文字、段落、ドキュメント、表または画像)を削除することができます。リセットしたい属性の名前を*attribName* 引数に渡すか、あるいは*attribColl* 引数に属性名のコレクションを渡すことで、複数の属性を一度にリセットすることもできます。 > セクションかサブセクションの場合、*sectionOrSubsection* 引数単体を渡すだけで、すべての属性は一度にリセットされます。 @@ -32,12 +32,12 @@ displayed_sidebar: docs - 要素(ヘッダー / フッター / 本文 / 表 / 段落 / アンカーされた画像またはインラインの画像 / セクション / サブセクション / スタイルシート) - 4D Write Pro ドキュメント -**WP RESET ATTRIBUTES** コマンドを使用して属性の値が削除された場合、*targetObj* あるいは *sectionOrSubsection* にはデフォルトの値が適用されます。 デフォルトの値は[4D Write Pro 属性](../4d-write-pro-attributes) の章にまとめられています。 +**WP RESET ATTRIBUTES** コマンドを使用して属性の値が削除された場合、*targetObj* あるいは *sectionOrSubsection* にはデフォルトの値が適用されます。デフォルトの値は[4D Write Pro 属性](../4d-write-pro-attributes) の章にまとめられています。 :::note 注記 - **WP RESET ATTRIBUTES** がセクション/サブセクションオブジェクトに対して適用された場合、属性はその親セクションまたはドキュメントから継承されます。 -- **WP RESET ATTRIBUTES** がスタイルシートオブジェクトに対して適用された場合、スタイルシートがデフォルト("Normal")スタイルシートである場合を除き、その属性はスタイルシートから削除されます。 この場合、デフォルトの値が属性に対して適用されます(スタイルシートは全てのスタイルシート属性を定義します)。 +- **WP RESET ATTRIBUTES** がスタイルシートオブジェクトに対して適用された場合、スタイルシートがデフォルト("Normal")スタイルシートである場合を除き、その属性はスタイルシートから削除されます。この場合、デフォルトの値が属性に対して適用されます(スタイルシートは全てのスタイルシート属性を定義します)。 - *sectionOrSubsection* 引数がセクションでもサブセクションでもなく、また属性が何も指定されたなかった場合には、エラーが生成されます。 ::: diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-set-attributes.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-set-attributes.md index ecaf5844fb3e8d..2abcb6701d89ca 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-set-attributes.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-set-attributes.md @@ -32,7 +32,7 @@ displayed_sidebar: docs *targetObj* 引数で指定したターゲット内で設定したい属性は、2通りの方法で指定することができます: -- *attribName* および*attribValue* 引数を使用する。 *attribName* 引数にはターゲット内で設定したい属性の名前を渡し、*attribValue* 引数には設定したい新しい値を渡します。 一度の呼び出しで*attribName*/*attribValue* のペアを好きなだけ渡すことができます。 +- *attribName* および*attribValue* 引数を使用する。 *attribName* 引数にはターゲット内で設定したい属性の名前を渡し、*attribValue* 引数には設定したい新しい値を渡します。一度の呼び出しで*attribName*/*attribValue* のペアを好きなだけ渡すことができます。 - *attribObj* 引数を使用して、属性の名前と対応する値をオブジェクトのプロパティとして格納した一つのオブジェクトを渡すことができます。 @@ -95,7 +95,7 @@ displayed_sidebar: docs ![](../../assets/en/WritePro/commands/pict3514231.en.png) -背景画像を、印刷可能エリア全体 に対して設定したい場合を考えます。 全ての属性は単一のオブジェクトを使用して渡されます: +背景画像を、印刷可能エリア全体 に対して設定したい場合を考えます。全ての属性は単一のオブジェクトを使用して渡されます: ```4d var WParea : Object diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-table-append-row.md b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-table-append-row.md index 155fc3855b218b..5959bf8a460699 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-table-append-row.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/commands/wp-table-append-row.md @@ -27,10 +27,10 @@ displayed_sidebar: docs このコマンドは2種類のシンタックスをサポートします: - **引数として値を使用:** - *value* 引数を使用して追加した値の分だけ行内にセルが追加されます。 異なる型の、任意の数の値を渡すことができます。 + *value* 引数を使用して追加した値の分だけ行内にセルが追加されます。異なる型の、任意の数の値を渡すことができます。 - **引数として値のコレクションを使用(*valueColl)*:** - *valueColl* コレクション内の値を使用して行内に値を入れます。 コレクション内の各要素が行内のセルに対応します。 コレクション内の各要素が行内のセルに対応します。 + *valueColl* コレクション内の値を使用して行内に値を入れます。 コレクション内の各要素が行内のセルに対応します。コレクション内の各要素が行内のセルに対応します。 以下の型の値が両シンタックスにおいてサポートされます: テキスト、数値、時間、日付、ピクチャー、(行の要素を返すフォーミュラまたは命名フォーミュラを格納した)オブジェクト。 @@ -51,7 +51,7 @@ displayed_sidebar: docs ## 例題 1 -空の表組を作成し、異なるサイズの行を複数追加したい場合を考えます。 以下のように書くことができます: +空の表組を作成し、異なるサイズの行を複数追加したい場合を考えます。以下のように書くことができます: ```4d var $wpTable;$wpRange;$wpRow1;$wpRow2;$wpRow3 : Object 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 5b3417a7cdfc65..658e6b2ca6bbe8 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 フォーミュラへの参照を含めることができます。 ページ番号などの特定の情報もフォーミュラを通して参照することができます(以下参照)。 +4D Write Pro ドキュメントには、変数、フィールド、式、プロジェクトメソッドあるいは4D コマンドなどの4D フォーミュラへの参照を含めることができます。ページ番号などの特定の情報もフォーミュラを通して参照することができます(以下参照)。 -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) コマンドを使用することでも返されます。 +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) コマンドを使用することでも返されます。 ### フォーミュラの評価 @@ -20,7 +20,7 @@ slug: /WritePro/formulas - [**WP FREEZE FORMULAS**](commands-legacy/wp-freeze-formulas.md) コマンドを使用して値が"固定化"(計算)されたとき(ただしまだ計算されていない場合) - 印刷の前(ただしまだ計算されていない場合) - .docx 形式に書き出される前(ただしフォーミュラがMS Word フォーミュラにマップすることができない場合) -- (値の)固定化、印刷、フォーミュラの計算の標準アクションが呼び出された時。 詳細は*標準アクション* を参照してください。 +- (値の)固定化、印刷、フォーミュラの計算の標準アクションが呼び出された時。詳細は*標準アクション* を参照してください。 フォーミュラはドキュメントが([**WP New**](commands-legacy/wp-new.md) 、[**WP Insert document body**](commands/wp-insert-document-body.md) を使用して、あるいは`wpArea:=[table]field` などで)読み込まれたときでも、以下の場合には評価されません: @@ -33,7 +33,7 @@ slug: /WritePro/formulas :::note -セキュリティ上の理由から、別の4D アプリケーションや外部環境からフォーミュラがペーストされた際には、コピーした時点で取得可能な*計算された値*(テキストまたは画像)のみがペーストされます。 値が何も取得できない場合(例: フォーミュラが一度も計算されていないなど)、4D はフォーミュラのソースを標準テキストとしてペーストします。 +セキュリティ上の理由から、別の4D アプリケーションや外部環境からフォーミュラがペーストされた際には、コピーした時点で取得可能な*計算された値*(テキストまたは画像)のみがペーストされます。値が何も取得できない場合(例: フォーミュラが一度も計算されていないなど)、4D はフォーミュラのソースを標準テキストとしてペーストします。 ::: @@ -54,7 +54,7 @@ slug: /WritePro/formulas ## フォーミュラコンテキストオブジェクト -[WP Insert formula](commands/wp-insert-formula.md) コマンドを使用することで、あらゆるドキュメントエリア(本文、ヘッダー、フッター) にドキュメント属性に関連した特殊な式を挿入することができます。 フォーミュラ内ではフォーミュラコンテキストオブジェクトが自動的に公開されます。 [**This**](../commands/this) を通してこのオブジェクトのプロパティを使用することができます: +[WP Insert formula](commands/wp-insert-formula.md) コマンドを使用することで、あらゆるドキュメントエリア(本文、ヘッダー、フッター) にドキュメント属性に関連した特殊な式を挿入することができます。フォーミュラ内ではフォーミュラコンテキストオブジェクトが自動的に公開されます。 [**This**](../commands/this) を通してこのオブジェクトのプロパティを使用することができます: | プロパティ | 型 | 説明 | | ------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -79,7 +79,7 @@ slug: /WritePro/formulas ::: -(\*) **重要**: **This.pageNumber**、**This.pageIndex** および **This.pageCount** は4D Write Pro フォーミュラの中で直接的にのみ使用することができます( *formula.source* 文字列の中に記入されている必要があります)。 これらはフォーミュラから呼び出されたメソッド内の4D ランゲージで使用された場合には不正確な値を返します。 ただし、フォーミュラから直接呼び出されるメソッドにこれらを引数として渡すことはできます: +(\*) **重要**: **This.pageNumber**、**This.pageIndex** および **This.pageCount** は4D Write Pro フォーミュラの中で直接的にのみ使用することができます( *formula.source* 文字列の中に記入されている必要があります)。これらはフォーミュラから呼び出されたメソッド内の4D ランゲージで使用された場合には不正確な値を返します。ただし、フォーミュラから直接呼び出されるメソッドにこれらを引数として渡すことはできます: - この使い方は動作します: « *formatNumber(This.pageNumber)* » - この使い方は動作**しません**: « *formatNumber* » (*formatNumber* メソッド内部で*This.pageNumber* を処理する) @@ -107,7 +107,7 @@ slug: /WritePro/formulas **時間** -[**Current time**](../commands/current-time) コマンド、時間型変数、あるいは時間を返すメソッドがフォーミュラに挿入される場合、この時間は [**String**](../commands/string) コマンドでくくってあげる必要があります。JSON では時間型はサポートされていないからです。 以下のフォーミュラの例を参考にして下さい: +[**Current time**](../commands/current-time) コマンド、時間型変数、あるいは時間を返すメソッドがフォーミュラに挿入される場合、この時間は [**String**](../commands/string) コマンドでくくってあげる必要があります。JSON では時間型はサポートされていないからです。以下のフォーミュラの例を参考にして下さい: ```4d // このコードがベストプラクティといえます @@ -124,7 +124,7 @@ slug: /WritePro/formulas ## バーチャルストラクチャーのサポート -4D Write Pro ドキュメントに挿入されたテーブルおよびフィールドの式はデータベースのバーチャルストラクチャー定義をサポートします。 フォーミュラに公開されるバーチャルストラクチャーは[**SET FIELD TITLES**](../commands/set-field-titles)(...;\*) および [**SET TABLE TITLES**](../commands/set-table-titles)(...;\*) コマンドを通して定義されます。 +4D Write Pro ドキュメントに挿入されたテーブルおよびフィールドの式はデータベースのバーチャルストラクチャー定義をサポートします。フォーミュラに公開されるバーチャルストラクチャーは[**SET FIELD TITLES**](../commands/set-field-titles)(...;\*) および [**SET TABLE TITLES**](../commands/set-table-titles)(...;\*) コマンドを通して定義されます。 バーチャルストラクチャーが定義されている場合: @@ -147,7 +147,7 @@ slug: /WritePro/formulas ### 参照か値か -デフォルトでは、4D フォーミュラは値として表示されます。 4D フォーミュラを挿入すると、4D Write Pro はカレントの値を計算して表示します。 どのフォーミュラが表示されているのか知りたい場合には、これを参照として表示する必要があります。 +デフォルトでは、4D フォーミュラは値として表示されます。 4D フォーミュラを挿入すると、4D Write Pro はカレントの値を計算して表示します。どのフォーミュラが表示されているのか知りたい場合には、これを参照として表示する必要があります。 フォーミュラを参照として表示するためには、以下の方法があります: @@ -191,7 +191,7 @@ slug: /WritePro/formulas ### 参照を名前で表示 -フォーミュラには名前を割り当てることができ、これによって4D Write Proテンプレートドキュメントをエンドユーザーがより読みやすく理解しやすいようにすることができます。 フォーミュラが参照として表示されている場合(そして記号として表示されていない場合)で、フォーミュラに対して名前を定義している場合、フォーミュラ名が表示されます。 +フォーミュラには名前を割り当てることができ、これによって4D Write Proテンプレートドキュメントをエンドユーザーがより読みやすく理解しやすいようにすることができます。フォーミュラが参照として表示されている場合(そして記号として表示されていない場合)で、フォーミュラに対して名前を定義している場合、フォーミュラ名が表示されます。 例えば、以下のフォーミュラ参照はデフォルトではソーステキストとして表示されます: @@ -201,7 +201,7 @@ slug: /WritePro/formulas ![](../assets/en/WritePro/wp-formulas6.png) -フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。 例: +フォーミュラに名前を割り当てるためには、 [WP Insert formula](commands/wp-insert-formula.md) コマンドにオブジェクト型の引数を渡す必要があります。例: ```4d // ドキュメント内に昨日の日付を挿入する @@ -233,8 +233,7 @@ slug: /WritePro/formulas このコンテキストでは、フォーミュラ上をホバーしているときに**Ctrl** (Windows) または **Cmd** (macOS) キーを押すことでフォーミュラのソーステキストを表示できます。 -- フォーミュラに名前がついていて、名前として表示されている場合、デフォルトではtips は表示されません。 - フォーミュラ上をホバーしているときに**Ctrl** (Windows) または **Cmd** (macOS) キーを押すことでフォーミュラのソーステキストを表示できます: +- フォーミュラに名前がついていて、名前として表示されている場合、デフォルトではtips は表示されません。フォーミュラ上をホバーしているときに**Ctrl** (Windows) または **Cmd** (macOS) キーを押すことでフォーミュラのソーステキストを表示できます: ![](../assets/en/WritePro/wp-formulas9.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 62bd372fb30b81..7e47cbd6074b61 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/WritePro/writeprointerface.md @@ -6,22 +6,22 @@ slug: /WritePro/write-pro-interface 4D WritePro インターフェースは、エンドユーザーが 4D Write Proドキュメントを簡単にカスタマイズできるパレットを提供します。 -4D のデベロッパーは、これらのパレットをアプリケーションに簡単に実装することができます。 それにより、エンドユーザーは、フォントやテキストの揃え方向、ブックマーク、表レイアウト、フレームなど、4D Write Pro のプロパティをすべて管理することができます。 +4D のデベロッパーは、これらのパレットをアプリケーションに簡単に実装することができます。それにより、エンドユーザーは、フォントやテキストの揃え方向、ブックマーク、表レイアウト、フレームなど、4D Write Pro のプロパティをすべて管理することができます。 ## インストールとドキュメンテーション 4D Write Pro インターフェースは、[プロジェクト内にインストールする](../Project/components.md#概要) する必要のある**4D コンポーネント** です。 4D Write Pro インターフェースのソースファイルは[Github 上で提供されています](https://github.com/4d/4D-WritePro-Interface)。 -インターフェースのマニュアルについては、*4D デザインリファレンス* の [4D Write Pro エリアのドキュメント](https://doc.4d.com/4Dv20/4D/20/Entry-areas.300-6263967.ja.html) を参照ください。 ここには以下のような情報があります: +インターフェースのマニュアルについては、*4D デザインリファレンス* の [4D Write Pro エリアのドキュメント](https://doc.4d.com/4Dv20/4D/20/Entry-areas.300-6263967.ja.html) を参照ください。ここには以下のような情報があります: - 表ウィザード設定ドキュメンテーション -- 統合されたAIについての ドキュメント. +- 統合されたAIについてのドキュメント. ## 表ウィザード 表ウィザードは、コンテキスト、データソース、およびフォーミュラを使用した、データベースのデータに基づく表組みの作成をさらに簡素化します。 -エンドユーザーがアクセスできる表ウィザードは、4D デベロッパーが設定し提供するテンプレートをロードします。 これにより、デベロッパーはユーザーの特定のユースケースやビジネス要件に応じてテンプレートをカスタマイズすることができます。 +エンドユーザーがアクセスできる表ウィザードは、4D デベロッパーが設定し提供するテンプレートをロードします。これにより、デベロッパーはユーザーの特定のユースケースやビジネス要件に応じてテンプレートをカスタマイズすることができます。 表ウィザードには、デフォルトのテンプレートおよびテーマが用意されており、デベロッパーはそれらを、アプリケーションで必要とされる内容に適合させることができます。 @@ -39,7 +39,7 @@ slug: /WritePro/write-pro-interface ![](../assets/en/WritePro/columns2.PNG) -テンプレートまたはテーブルの選択に応じて、テンプレートに保存されているフィールドのリストが表示されます (BLOB およびオブジェクト型は自動的に除外されます)。 表の列として表示させたいフィールドは、フィールド名の左にあるチェックボックスで選択します。また、表示する列の順序はフィールドをドラッグしてリスト内を移動させることで変更することができます。 +テンプレートまたはテーブルの選択に応じて、テンプレートに保存されているフィールドのリストが表示されます (BLOB およびオブジェクト型は自動的に除外されます)。表の列として表示させたいフィールドは、フィールド名の左にあるチェックボックスで選択します。また、表示する列の順序はフィールドをドラッグしてリスト内を移動させることで変更することができます。 ##### 行について: @@ -57,7 +57,7 @@ slug: /WritePro/write-pro-interface 表の作成とカスタマイズが完了したら、**挿入** ボタンをクリックして、WPドキュメントに表組みを追加することができます。 -ドキュメントに表が統合されると、ユーザーはそのスタイルをカスタマイズできます。 ツールバーやサイドバーの書式設定ツールはすべて利用可能です。 +ドキュメントに表が統合されると、ユーザーはそのスタイルをカスタマイズできます。ツールバーやサイドバーの書式設定ツールはすべて利用可能です。 ### WP表ウィザードのテンプレートの設定 @@ -82,26 +82,26 @@ slug: /WritePro/write-pro-interface JSON形式のテンプレートファイルには、以下の属性が含まれます: -| 属性 | 型 | 必須 | 説明 | -| :----------------------------------- | :--------- | :- | :-------------------------------------------------------------------------- | -| tableDataSource | Text | ○ | 表のデータソースのフォーミュラ | -| columns | Collection | ○ | 表の列のコレクション | -| columns.check | Text | ○ | 表ウィザードであらかじめチェックされている場合は true。 列のチェックをあらかじめ外しておく場合は false。 | -| columns.header | Text | ○ | ユーザーに提示する表示名 | -| columns.source | Text | ○ | フォーミュラ | -| breaks | Collection | | ブレークオブジェクトのコレクション。 ブレークの順番は重要です。 この順番は、ドキュメント内でブレーク行が繰り返し行の上にある場合の順番に対応します。 | -| breaks.label | Text | ○ | ユーザーに提示する表示名 | -| breaks.source | Text | ○ | フォーミュラ | -| breakFormulas | Collection | | ブレーク行に適用可能なフォーミュラオブジェクトのコレクション | -| breakFormulas.label | Text | ○ | ユーザーに提示する表示名 | -| breakFormulas.source | Text | ○ | フォーミュラ | -| bcorFormulas | Collection | | 下部キャリーオーバー行に適用可能なフォーミュラオブジェクトのコレクション | -| bcorFormulas.label | Text | ○ | ユーザーに提示する表示名 | -| bcorFormulas.source | Text | ○ | フォーミュラ | -| extraFormulas | Collection | | 追加の行に適用可能なフォーミュラオブジェクトのコレクション | -| extraFormulas.label | Text | ○ | ユーザーに提示する表示名 | -| extraFormulas.source | Text | ○ | フォーミュラ | -| placeholderFormulas | Collection | | プレースホルダー行に挿入されるフォーミュラオブジェクトのコレクション | +| 属性 | 型 | 必須 | 説明 | +| :----------------------------------- | :--------- | :- | :------------------------------------------------------------------------ | +| tableDataSource | Text | ○ | 表のデータソースのフォーミュラ | +| columns | Collection | ○ | 表の列のコレクション | +| columns.check | Text | ○ | 表ウィザードであらかじめチェックされている場合は true。列のチェックをあらかじめ外しておく場合は false。 | +| columns.header | Text | ○ | ユーザーに提示する表示名 | +| columns.source | Text | ○ | フォーミュラ | +| breaks | Collection | | ブレークオブジェクトのコレクション。ブレークの順番は重要です。この順番は、ドキュメント内でブレーク行が繰り返し行の上にある場合の順番に対応します。 | +| breaks.label | Text | ○ | ユーザーに提示する表示名 | +| breaks.source | Text | ○ | フォーミュラ | +| breakFormulas | Collection | | ブレーク行に適用可能なフォーミュラオブジェクトのコレクション | +| breakFormulas.label | Text | ○ | ユーザーに提示する表示名 | +| breakFormulas.source | Text | ○ | フォーミュラ | +| bcorFormulas | Collection | | 下部キャリーオーバー行に適用可能なフォーミュラオブジェクトのコレクション | +| bcorFormulas.label | Text | ○ | ユーザーに提示する表示名 | +| bcorFormulas.source | Text | ○ | フォーミュラ | +| extraFormulas | Collection | | 追加の行に適用可能なフォーミュラオブジェクトのコレクション | +| extraFormulas.label | Text | ○ | ユーザーに提示する表示名 | +| extraFormulas.source | Text | ○ | フォーミュラ | +| placeholderFormulas | Collection | | プレースホルダー行に挿入されるフォーミュラオブジェクトのコレクション | :::note フランス語のランゲージについて @@ -160,7 +160,7 @@ JSONファイルの簡単な一例を以下に示します: #### トランスレーションファイル -トランスレーションファイルは、テンプレート、テーマ、テーブル、フィールド、およびフォーミュラの翻訳名を指定します。 これらのファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Translations" フォルダーに追加します。 +トランスレーションファイルは、テンプレート、テーマ、テーブル、フィールド、およびフォーミュラの翻訳名を指定します。これらのファイルはプロジェクトの "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Translations" フォルダーに追加します。 各トランスレーションファイルには、対応する言語コード (英語なら "en"、日本語なら "ja" など) のファイル名を付けます。 @@ -182,9 +182,9 @@ JSON形式のトランスレーションファイルには、以下の属性が これらの属性を定義することで、原文と翻訳されたコンテンツ間の適切な対応が確保されます。 -テンプレート名やフォーミュラ名 (ブレーク行、キャリーオーバー行、追加の行) がトランスレーションファイルに存在する場合、表ウィザードではその翻訳が表示されます。 また、トランスレーションファイル内で定義されたテーブルだけが表ウィザードに (翻訳されて) 表示されます。 +テンプレート名やフォーミュラ名 (ブレーク行、キャリーオーバー行、追加の行) がトランスレーションファイルに存在する場合、表ウィザードではその翻訳が表示されます。また、トランスレーションファイル内で定義されたテーブルだけが表ウィザードに (翻訳されて) 表示されます。 -ユーザーがインターフェースでテーブルを選択したときには、トランスレーションファイルは追加の役割を果たします。 具体的には、ユーザーに提案されるテーブルやフィールドをフィルターします。 たとえば、テーブルID を非表示にするなど、この動作は `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに似ています。 +ユーザーがインターフェースでテーブルを選択したときには、トランスレーションファイルは追加の役割を果たします。具体的には、ユーザーに提案されるテーブルやフィールドをフィルターします。たとえば、テーブルID を非表示にするなど、この動作は `SET TABLE TITLES` や `SET FIELD TITLES` コマンドに似ています。 ##### 例題 @@ -221,31 +221,31 @@ JSON形式のトランスレーションファイルには、以下の属性が #### テーマファイル -4D WritePro Interface コンポーネントには、"Arial"、"CourierNew"、"YuGothic" などのテーマがデフォルトで用意されており、"Blue" や "Green" など複数のバリエーションが用意されています。 しかし、プロジェクト内の "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Themes" フォルダーにテーマファイルを配置することで、独自のテーマを作成することができます。 +4D WritePro Interface コンポーネントには、"Arial"、"CourierNew"、"YuGothic" などのテーマがデフォルトで用意されており、"Blue" や "Green" など複数のバリエーションが用意されています。しかし、プロジェクト内の "[`Resources`](../Project/architecture.md#resources)/4DWP_Wizard/Themes" フォルダーにテーマファイルを配置することで、独自のテーマを作成することができます。 JSON形式のテーマファイルには、以下の属性が含まれます: -| 属性 | 型 | 必須 | 説明 | -| :---------- | :----- | :- | :-------------------------------------------------------------- | -| default | Object | | すべての行に適用されるデフォルトスタイルを格納したオブジェクト。 | -| table | Object | | 表組みに適用されるスタイル定義を格納したオブジェクト。 | -| rows | Object | | すべての行に適用されるスタイル定義を格納したオブジェクト。 | -| cells | Object | | すべてのセルに適用されるスタイル定義を格納したオブジェクト。 | -| header1 | Object | | 先頭のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | -| header2 | Object | | 2つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | -| header3 | Object | | 3つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | -| header4 | Object | | 4つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | -| header5 | Object | | 5つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | -| headers | Object | | header1、header2など専用のスタイル定義がない場合に、ヘッダー行に 適用されるスタイル定義を格納したオブジェクト。 | -| data | Object | | 繰り返し行に適用されるスタイル定義を格納したオブジェクト。 | -| break1 | Object | | 1つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | -| break2 | Object | | 2つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | -| break3 | Object | | 3つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | -| break4 | Object | | 4つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | -| break5 | Object | | 5つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | -| breaks | Object | | break1、break2など専用のスタイル定義がない場合に、ブレーク行に 適用されるスタイル定義を格納したオブジェクト。 | -| bcor | Object | | 下部キャリーオーバー行に適用されるスタイル定義を格納したオブジェクト。 | -| placeholder | Object | | プレースホルダー行に適用されるデフォルトスタイルを格納したオブジェクト。 | +| 属性 | 型 | 必須 | 説明 | +| :---------- | :----- | :- | :------------------------------------------------------------- | +| default | Object | | すべての行に適用されるデフォルトスタイルを格納したオブジェクト。 | +| table | Object | | 表組みに適用されるスタイル定義を格納したオブジェクト。 | +| rows | Object | | すべての行に適用されるスタイル定義を格納したオブジェクト。 | +| cells | Object | | すべてのセルに適用されるスタイル定義を格納したオブジェクト。 | +| header1 | Object | | 先頭のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | +| header2 | Object | | 2つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | +| header3 | Object | | 3つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | +| header4 | Object | | 4つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | +| header5 | Object | | 5つ目のヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | +| headers | Object | | header1、header2など専用のスタイル定義がない場合に、ヘッダー行に適用されるスタイル定義を格納したオブジェクト。 | +| data | Object | | 繰り返し行に適用されるスタイル定義を格納したオブジェクト。 | +| break1 | Object | | 1つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | +| break2 | Object | | 2つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | +| break3 | Object | | 3つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | +| break4 | Object | | 4つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | +| break5 | Object | | 5つ目のブレーク行に適用されるスタイル定義を格納したオブジェクト。 | +| breaks | Object | | break1、break2など専用のスタイル定義がない場合に、ブレーク行に適用されるスタイル定義を格納したオブジェクト。 | +| bcor | Object | | 下部キャリーオーバー行に適用されるスタイル定義を格納したオブジェクト。 | +| placeholder | Object | | プレースホルダー行に適用されるデフォルトスタイルを格納したオブジェクト。 | JSONファイルで設定する各属性に対して、以下の WP属性を定義することができます ([対応する WP定数](https://doc.4d.com/4Dv20/4D/20/4D-Write-Pro-Attributes.300-6229528.ja.html) を指定します): @@ -335,7 +335,7 @@ macOS におてい、Apple Intelligence のライティングツールをユー ### AI機能の有効化 -AI ダイアログボックスは4D Write Pro インターフェース内のボタンをクリックすることで利用可能になります。 このボタンは**デフォルトでは非表示** なので、明示的に有効化する必要があります。 +AI ダイアログボックスは4D Write Pro インターフェース内のボタンをクリックすることで利用可能になります。このボタンは**デフォルトでは非表示** なので、明示的に有効化する必要があります。 AI ダイアログボックスボタンを表示するためには、以下の操作が必要です: @@ -350,7 +350,7 @@ WP SetAIKey ("") // :::note -OpenAi キーの有効性に関するチェックは行われません。 キーが無効だった場合には、*chatGPT* ボックスは空のままになります。 +OpenAi キーの有効性に関するチェックは行われません。キーが無効だった場合には、*chatGPT* ボックスは空のままになります。 ::: @@ -381,7 +381,7 @@ AI に質問を送信するためには、送信ボタンをクリックしま このエリアの左側にあるポップアップメニューには、通常AI にたずねるような一般的なアクションの一例が提供されています。 -アクションを選択すると、それに対応した質問がプロンプトに入力さます。 必要であれば、質問を書き換えてから送信ボタンを押して送信することもできます: +アクションを選択すると、それに対応した質問がプロンプトに入力さます。必要であれば、質問を書き換えてから送信ボタンを押して送信することもできます: ![ai menu](../assets/en/WritePro/ai-menu.png) @@ -404,21 +404,21 @@ AI に質問を送信するためには、送信ボタンをクリックしま :::note -チャットボックスはテキストのフォーマットにMarkdown ランゲージを使用します。 太字、イタリック、下線、タイトルなどの基本的なスタイルはサポートされています。 AI からのスタイル付きテキストを4D Write Pro エリアにペーストする場合、一部のフォーマット情報が失われる可能性があります。 +チャットボックスはテキストのフォーマットにMarkdown ランゲージを使用します。太字、イタリック、下線、タイトルなどの基本的なスタイルはサポートされています。 AI からのスタイル付きテキストを4D Write Pro エリアにペーストする場合、一部のフォーマット情報が失われる可能性があります。 ::: #### チャットエリア -チャットエリアは、AI との間のやりとり全体を表示します。 スクロールして、好きな部分を選択することができます。 +チャットエリアは、AI との間のやりとり全体を表示します。スクロールして、好きな部分を選択することができます。 このエリアを消去して空にするには、履歴エリアの消去ボタンをクリックします(ウィンドウと全てのやりとりをリセットします)。 #### 履歴 -履歴エリアにはAI に送信したプロンプトが全て一覧表示されます。 チャットエリアの右上端にあるボタンを使用することで、このエリアを表示/非表示にすることができます。 +履歴エリアにはAI に送信したプロンプトが全て一覧表示されます。チャットエリアの右上端にあるボタンを使用することで、このエリアを表示/非表示にすることができます。 -消去ボタンを使用すると全てのやりとりを消去しウィンドウ全体をリセットすることができます。 これはAI ダイアログボックスを閉じて再度開くのと同じです。 +消去ボタンを使用すると全てのやりとりを消去しウィンドウ全体をリセットすることができます。これはAI ダイアログボックスを閉じて再度開くのと同じです。 ## 複数レベルリストスタイルシート @@ -458,7 +458,7 @@ AI に質問を送信するためには、送信ボタンをクリックしま マルチレベルリストのスタイルシートを作成するためには、以下の方法があります: -- 定義済みのテンプレートの一つを選択して段落に適用すると、選択されたテンプレートとその全てのサブレベルはスタイルシートパネルの上部に表示されます。 レベルと書式(番号スタイル、カラー、フォント、階層など)をカスタマイズすることができ、その結果に基づいて新しいスタイルシートを作成することができます。 +- 定義済みのテンプレートの一つを選択して段落に適用すると、選択されたテンプレートとその全てのサブレベルはスタイルシートパネルの上部に表示されます。レベルと書式(番号スタイル、カラー、フォント、階層など)をカスタマイズすることができ、その結果に基づいて新しいスタイルシートを作成することができます。 - ![](../assets/en/WritePro/wp-multi-level-list-button1.png) 下部のメニューの複製オブションを使用して既存のスタイルシートの一つを複製します。 @@ -527,7 +527,7 @@ Level 7: – (破線) 利用可能なテンプレートをカスタマイズして、ユーザーに、アプリケーションに用途に合致したような定義済みマルチレベルリストを提供することができます。 -定義済みのマルチレベルリストテンプレートは、`multiLevelStyles.json` という名前のJSON ファイル内に定義されています。 このファイルは4D Write Pro インターフェースコンポーネントのResources フォルダ内に配置されています。 +定義済みのマルチレベルリストテンプレートは、`multiLevelStyles.json` という名前のJSON ファイル内に定義されています。このファイルは4D Write Pro インターフェースコンポーネントのResources フォルダ内に配置されています。 以下の場所のいずれかにあなた独自の`multiLevelStyles.json` ファイルを追加することで、利用可能なテンプレートをカスタマイズすることができます: @@ -540,10 +540,9 @@ Level 7: – (破線) - テンプレート名 - 一つまたはそれ以上のリストレベル -- 各レベルに適用された4D Write Pro 属性。 テンプレート定義内ではあらゆる4D Write Pro 属性を使用することができます。 +- 各レベルに適用された4D Write Pro 属性。テンプレート定義内ではあらゆる4D Write Pro 属性を使用することができます。 -属性名または対応する4D Write Pro 定数をJSON キーと値として使用することができます。 -例えば、以下の定義はどちらも同義です: +属性名または対応する4D Write Pro 定数をJSON キーと値として使用することができます。例えば、以下の定義はどちらも同義です: - `"listStyleType": "wk upper roman"` - `"wk list style type": "wk upper roman"` diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index a40aec6e01aa0f..b682cb1cf9fd2f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -5,7 +5,7 @@ title: OpenAI # OpenAI -`OpenAI` クラスは、様々なOpenAI API リソースにアクセスするためのクライアントを提供します。 これにはAPI 設定を管理するプロパティやOpenAI エンドポイントへの HTTPリクエストを実行するためのメソッドなどが含まれます。 +`OpenAI` クラスは、様々なOpenAI API リソースにアクセスするためのクライアントを提供します。これにはAPI 設定を管理するプロパティやOpenAI エンドポイントへの HTTPリクエストを実行するためのメソッドなどが含まれます。 ## 設定プロパティ @@ -58,7 +58,7 @@ $client.baseURL:="https://server.ai" ## APIリソース -API はOpenAI のサービスとシームレスにやりとりすることを可能にする複数のリソースへのアクセスを提供します。 それぞれのリソースは専用のAPI クラスにカプセル化されており、様々な機能と対話するための構造化された、直感的な方法を提供しています。 +API はOpenAI のサービスとシームレスにやりとりすることを可能にする複数のリソースへのアクセスを提供します。それぞれのリソースは専用のAPI クラスにカプセル化されており、様々な機能と対話するための構造化された、直感的な方法を提供しています。 | プロパティ名 | 型 | 説明 | | ------------- | ----------------------------------------------- | ------------------ | @@ -80,9 +80,9 @@ $client.model.lists(...) ## プロバイダーモデルエイリアス -OpenAI クライアントは、複数のプロバイダーの使用を容易にするための、プロバイダーモデルエイリアスをサポートしています。 完全なドキュメンテーションについては[プロバイダーモデルエイリアス](../provider-model-aliases.md) を参照してください。 +OpenAI クライアントは、複数のプロバイダーの使用を容易にするための、プロバイダーモデルエイリアスをサポートしています。完全なドキュメンテーションについては[プロバイダーモデルエイリアス](../provider-model-aliases.md) を参照してください。 -定義済みのプロバイダー名を使用して、OpenAI クライアントを構築することができます。 これを使用することで、異なるAI プロバイダー(OpenAI、Anthropic、など)を、 毎回完全な設定を指定することなく切り替えることを可能にします。 +定義済みのプロバイダー名を使用して、OpenAI クライアントを構築することができます。これを使用することで、異なるAI プロバイダー(OpenAI、Anthropic、など)を、毎回完全な設定を指定することなく切り替えることを可能にします。 ```4d var $client:=cs.AIKit.OpenAI.new({provider: "anthropic"}) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md index 9c93fc13bfe6d6..4dbf4df58976da 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsAPI # OpenAIChatCompletionsAPI -`OpenAIChatCompletionsAPI` クラスはOpenAI のAPI でチャット補完を管理するためにデザインされています。 これはチャット補完を作成、取得、更新、削除、そしてリストを表示するメソッドを提供します。 +`OpenAIChatCompletionsAPI` クラスはOpenAI のAPI でチャット補完を管理するためにデザインされています。これはチャット補完を作成、取得、更新、削除、そしてリストを表示するメソッドを提供します。 https://developers.openai.com/api/reference/resources/chat diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsListParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsListParameters.md index 99a657efe60aac..9b71f09593d7ee 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsListParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsListParameters.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsListParameters # OpenAIChatCompletionsListParameters -このクラスはOpenAI API からのチャット補完のリストを取得するためのパラメーターを定義するために使用されます。 これを使用するとチャットメッセージのページ分け、ソート、フィルタリングをカスタマイズすることができます。 +このクラスはOpenAI API からのチャット補完のリストを取得するためのパラメーターを定義するために使用されます。これを使用するとチャットメッセージのページ分け、ソート、フィルタリングをカスタマイズすることができます。 ## 継承元 @@ -13,13 +13,13 @@ title: OpenAIChatCompletionsListParameters ## プロパティ -| プロパティ | 型 | デフォルト値 | 説明 | -| ---------- | ------- | ------ | ------------------------------------------------------------------------------------------- | -| `after` | Text | "" | 前のページ分けリクエストからの最後のメッセージの識別子。 | -| `limit` | Integer | 0 | 取得するメッセージの数。 | -| `order` | Text | "asc" | タイムスタンプによるメッセージの並べ替え順。 昇順には `asc` を、降順には `desc` を使用します。 | -| `metadata` | Text | - | チャット補完をフィルターするメタデータキーのリスト。 例: `metadata[key1]=value1&metadata[key2]=value2` | -| `model` | Text | "" | チャット補完を生成するのに使用されたモデル。 | +| プロパティ | 型 | デフォルト値 | 説明 | +| ---------- | ------- | ------ | ------------------------------------------------------------------------------------------ | +| `after` | Text | "" | 前のページ分けリクエストからの最後のメッセージの識別子。 | +| `limit` | Integer | 0 | 取得するメッセージの数。 | +| `order` | Text | "asc" | タイムスタンプによるメッセージの並べ替え順。昇順には `asc` を、降順には `desc` を使用します。 | +| `metadata` | Text | - | チャット補完をフィルターするメタデータキーのリスト。例: `metadata[key1]=value1&metadata[key2]=value2` | +| `model` | Text | "" | チャット補完を生成するのに使用されたモデル。 | ## 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md index d7ada3b2e78d0d..5ffc12e95afc5c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md @@ -19,6 +19,6 @@ title: OpenAIChatCompletionsMessagesAPI | *parameters* | `OpenAIChatCompletionsMessagesParameters` | レスポンスをフィルターしてカスタマイズするためのパラメーター。 | | 戻り値 | Variant | チャット補完に関連づけられた取得されたメッセージ。 | -`list()` 関数は特定のチャット補完ID に割り当てられたメッセージを取得します。 この関数は`completionID` が空の場合、エラーを生成します。 *parameters* 引数が `OpenAIChatCompletionsMessagesParameters` のインスタンスではない場合、提供された引数を使用して新たなインスタンスを作成します。 +`list()` 関数は特定のチャット補完ID に割り当てられたメッセージを取得します。この関数は`completionID` が空の場合、エラーを生成します。 *parameters* 引数が `OpenAIChatCompletionsMessagesParameters` のインスタンスではない場合、提供された引数を使用して新たなインスタンスを作成します。 https://developers.openai.com/api/reference/resources/chat/subresources/completions/subresources/messages/methods/list diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesParameters.md index 66b71bd207ca5e..98dfed757d7c0d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesParameters.md @@ -11,11 +11,11 @@ title: OpenAIChatCompletionsMessagesParameters ## プロパティ -| プロパティ | 型 | デフォルト値 | 説明 | -| ------- | ------- | ------ | ------------------------------------------------------------------------ | -| `after` | Text | "" | 前のページ分けリクエストからの最後のメッセージの識別子。 | -| `limit` | Integer | 0 | 取得するメッセージの数。 | -| `order` | Text | "asc" | タイムスタンプによるメッセージの並べ替え順。 昇順には `asc` を、降順には `desc` を使用します。 デフォルトは `asc` です。 | +| プロパティ | 型 | デフォルト値 | 説明 | +| ------- | ------- | ------ | ---------------------------------------------------------------------- | +| `after` | Text | "" | 前のページ分けリクエストからの最後のメッセージの識別子。 | +| `limit` | Integer | 0 | 取得するメッセージの数。 | +| `order` | Text | "asc" | タイムスタンプによるメッセージの並べ替え順。昇順には `asc` を、降順には `desc` を使用します。デフォルトは `asc` です。 | ## 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md index dbf5f0008a12c8..499c46d4397d9d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsParameters.md @@ -13,22 +13,22 @@ title: OpenAIChatCompletionsParameters ## プロパティ -| プロパティ | 型 | デフォルト値 | 説明 | -| ----------------------- | ---------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `model` | Text | `"gpt-4o-mini"` | 使用するモデルのID。 マルチプロバイダーで使用するために [provider:model エイリアス](../provider-model-aliases.md) をサポートしています(例: `"openai:gpt-4o"`, `"anthropic:claude-3-opus"`)。 | -| `stream` | Boolean | `false` | 部分的な進捗をストリームで返すかどうかを決めます。 設定されていれば、トークンはデータオンリーとして送信されます。 コールバックフォーミュラが必要となります。 | -| `stream_options` | Object | `Null` | stream = True の場合のオプションを指定するプロパティ。 例: `{include_usage: True}` | -| `max_completion_tokens` | Integer | `0` | チャット補完の中で生成可能なトークンの最大数。 | -| `n` | Integer | `1` | 各プロンプトに対して生成するチャット補完の数。 | -| `temperature` | Real | `-1` | 使用するサンプリング温度。0から2の間の値。 値が大きいほど出力はよりランダムになり、値が小さいほど出力はより集中して決まりきったものになります。 | -| `top_p` | Real | `-1` | ニュークリアス・サンプリングと呼ばれる、温度を用いたサンプリングに代わる手法で、ここではモデルはtop_p 確率質量を持つトークンの結果を考慮します。 つまり、0.1 はトップ10% の確率質量を占めるトークンのみが考慮されるということを意味します。 値が0 より大きい場合にのみ送信されます( `<= 0` の場合には省略され、デフォルトは`-1` です)。 | -| `store` | Boolean | `false` | このチャット補完リクエストの出力を保存するかどうか。 | -| `reasoning_effort` | Text | `Null` | 推論モデルにおける推論の努力に対する制約。 現在サポートされている値は `"low"`、`"medium"`、および`"high"`です。 | -| `response_format` | Object | `Null` | モデルが出力するフォーマットを指定するオブジェクト。 構造化された出力に対応します。 | -| `ツール` | Collection | `Null` | モデルが呼び出し得るツール([OpenAITool](OpenAITool.md)) の一覧。 "function" 型のみがサポートされます。 | -| `tool_choice` | Variant | `Null` | どのモデルによってどのツール(あれば)が呼び出されるかを管理します。 `"none"`、`"auto"`、`"required"`、または特定のツールを指定することができます。 | -| `prediction` | Object | `Null` | 再生成されているテキストファイルのコンテンツなど、静的に予想される出力内容。 | -| `service_tier` | Text | `Null` | リクエストを処理に使用される処理タイプを指定します。 `"auto"`、 `"auto"`、 `"default"`、および `"priority"`。 | +| プロパティ | 型 | デフォルト値 | 説明 | +| ----------------------- | ---------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `model` | Text | `"gpt-4o-mini"` | 使用するモデルのID。マルチプロバイダーで使用するために [provider:model エイリアス](../provider-model-aliases.md) をサポートしています(例: `"openai:gpt-4o"`, `"anthropic:claude-3-opus"`)。 | +| `stream` | Boolean | `false` | 部分的な進捗をストリームで返すかどうかを決めます。設定されていれば、トークンはデータオンリーとして送信されます。コールバックフォーミュラが必要となります。 | +| `stream_options` | Object | `Null` | stream = True の場合のオプションを指定するプロパティ。例: `{include_usage: True}` | +| `max_completion_tokens` | Integer | `0` | チャット補完の中で生成可能なトークンの最大数。 | +| `n` | Integer | `1` | 各プロンプトに対して生成するチャット補完の数。 | +| `temperature` | Real | `-1` | 使用するサンプリング温度。0から2の間の値。値が大きいほど出力はよりランダムになり、値が小さいほど出力はより集中して決まりきったものになります。 | +| `top_p` | Real | `-1` | ニュークリアス・サンプリングと呼ばれる、温度を用いたサンプリングに代わる手法で、ここではモデルはtop_p 確率質量を持つトークンの結果を考慮します。つまり、0.1 はトップ10% の確率質量を占めるトークンのみが考慮されるということを意味します。値が0 より大きい場合にのみ送信されます( `<= 0` の場合には省略され、デフォルトは`-1` です)。 | +| `store` | Boolean | `false` | このチャット補完リクエストの出力を保存するかどうか。 | +| `reasoning_effort` | Text | `Null` | 推論モデルにおける推論の努力に対する制約。現在サポートされている値は `"low"`、`"medium"`、および`"high"`です。 | +| `response_format` | Object | `Null` | モデルが出力するフォーマットを指定するオブジェクト。構造化された出力に対応します。 | +| `ツール` | Collection | `Null` | モデルが呼び出し得るツール([OpenAITool](OpenAITool.md)) の一覧。 "function" 型のみがサポートされます。 | +| `tool_choice` | Variant | `Null` | どのモデルによってどのツール(あれば)が呼び出されるかを管理します。 `"none"`、`"auto"`、`"required"`、または特定のツールを指定することができます。 | +| `prediction` | Object | `Null` | 再生成されているテキストファイルのコンテンツなど、静的に予想される出力内容。 | +| `service_tier` | Text | `Null` | リクエストを処理に使用される処理タイプを指定します。 `"auto"`、 `"auto"`、 `"default"`、および `"priority"`。 | ### 非同期コールバック用プロパティ @@ -42,7 +42,7 @@ title: OpenAIChatCompletionsParameters ## レスポンスフォーマット -`response_format` 引数を使用すると、モデルが出力するフォーマットを指定することができます。 これは、構造化されたデータが必要な場合や、レスポンスが特定のフォーマットに従うようにしたい場合には特に有用です。 +`response_format` 引数を使用すると、モデルが出力するフォーマットを指定することができます。これは、構造化されたデータが必要な場合や、レスポンスが特定のフォーマットに従うようにしたい場合には特に有用です。 ### サポートされるレスポンスフォーマットタイプ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsStreamResult.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsStreamResult.md index 0abfe7179326ba..d3a1dfd7f5d019 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsStreamResult.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsStreamResult.md @@ -27,7 +27,7 @@ title: OpenAIChatCompletionsStreamResult | プロパティ | 型 | 説明 | | ------------ | ------- | ------------------------------------------------------------------------------------------------------------------- | | `success` | Boolean | ストリーミングデータがオブジェクトとして正常にデコードされた場合には `True` を返します。 | -| `terminated` | Boolean | HTTP リクエストが終了したかどうかを示すブール値。 言い換えると `onTerminate` が呼ばれたかどうかを表します。 | +| `terminated` | Boolean | HTTP リクエストが終了したかどうかを示すブール値。言い換えると `onTerminate` が呼ばれたかどうかを表します。 | | `usage` | Object | ストリームデータからのトークン使用状況を返します(`stream_options.include_usage` が`True` に設定されていた場合には最終チャンクにおいてのみ利用可能です)。 | ### usage @@ -44,4 +44,4 @@ title: OpenAIChatCompletionsStreamResult | `prompt_tokens_details` | Object | プロンプトトークンの詳細な内訳(オプション)。 | | `completion_tokens_details` | Object | 補完トークンの詳細な内訳(オプション)。 | -> **Note:** ストリーミングのレスポンス内に使用状況を受信するためには、リクエストパラメーター内で`stream_options: {include_usage: True}` に設定する必要があります。 詳細については、[OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) を参照してください。 +> **Note:** ストリーミングのレスポンス内に使用状況を受信するためには、リクエストパラメーター内で`stream_options: {include_usage: True}` に設定する必要があります。詳細については、[OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) を参照してください。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md index 46eda7aa5e09c5..2710cf089f4168 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatHelper.md @@ -28,7 +28,7 @@ title: OpenAIChatHelper var $chatHelper:=$client.chat.create("You are a helpful assistant.") ``` -このメソッドは指定されたシステムプロンプトで新しいチャットヘルパーを作成し、デフォルトの引数で初期化します。 このシステムプロンプトが会話の間全体の、アシスタントの役割と振る舞いを定義します。 +このメソッドは指定されたシステムプロンプトで新しいチャットヘルパーを作成し、デフォルトの引数で初期化します。このシステムプロンプトが会話の間全体の、アシスタントの役割と振る舞いを定義します。 ## 関数 @@ -41,7 +41,7 @@ var $chatHelper:=$client.chat.create("You are a helpful assistant.") | *prompt* | Text または [OpenAIMessage](OpenAIMessage.md) | OpenAI チャットに送信するテキストプロンプト、またはより複雑なメッセージ(例: 画像またはファイルつきのもの)の場合にはOpenAIMessage オブジェクト。 | | 戻り値 | [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) | チャットから返されたチャット補完結果。 | -ユーザープロンプトをチャットに送信し、対応する補完の結果を返します。 単純なテキスト文字列を渡すか、あるいは画像やファイルなどを含むようなより高度なシナリオに対しては [OpenAIMessage](OpenAIMessage.md) オブジェクトを渡すこともできます。 +ユーザープロンプトをチャットに送信し、対応する補完の結果を返します。単純なテキスト文字列を渡すか、あるいは画像やファイルなどを含むようなより高度なシナリオに対しては [OpenAIMessage](OpenAIMessage.md) オブジェクトを渡すこともできます。 #### 使用例 @@ -65,7 +65,7 @@ $result:=$chatHelper.prompt($fileMessage) **reset**() -全てのメッセージを消去し、全てのツールの登録を解除することで、チャットコンテキストをリセットします。 これにより、システムのプロンプトとパラメーターをそのままにしながら、効果的に新しい会話を始めることができます。 +全てのメッセージを消去し、全てのツールの登録を解除することで、チャットコンテキストをリセットします。これにより、システムのプロンプトとパラメーターをそのままにしながら、効果的に新しい会話を始めることができます。 #### リセットの例 @@ -90,7 +90,7 @@ $chatHelper.reset() // 以前のメッセージとツールを全て消去 - **4D.Function**: 直接ハンドラー関数 - **Object**: ツール関数名と一致するフォーミュラプロパティを格納しているオブジェクト -ハンドラー関数はOpenAI ツール呼び出しから渡された引数を格納しているオブジェクトを受け取ります。 オブジェクトは、ツールのスキーマで定義されたパラメーター名とキーが一致するキーと、AI モデルから提供された実際の引数である値との、キーと値のペアを格納しています。 +ハンドラー関数はOpenAI ツール呼び出しから渡された引数を格納しているオブジェクトを受け取ります。オブジェクトは、ツールのスキーマで定義されたパラメーター名とキーが一致するキーと、AI モデルから提供された実際の引数である値との、キーと値のペアを格納しています。 #### ツールを登録する例題 @@ -122,7 +122,7 @@ $chatHelper.registerTool($tool; $handlerObj) | ------------------- | ------- | -------------------------------- | | *toolsWithHandlers* | Variant | ツールとのそのハンドラーを格納したオブジェクトまたはコレクション | -複数のツールを一度に登録します。 引数には以下のものを渡すことができます: +複数のツールを一度に登録します。引数には以下のものを渡すことができます: - **コレクション**: (ハンドラーが埋め込んである、あるいは分離してある)ツールオブジェクトのコレクション - **オブジェクト**: 関数名がツール定義にマッピングされているキーとするオブジェクト @@ -188,7 +188,7 @@ $chatHelper.registerTools($tools) | -------------- | ---- | --------------- | | *functionName* | Text | 登録を解除したいツールの関数名 | -特定のツールをその関数名で指定して登録解除します。 これによってツールは登録されたツールのコレクションから削除され、ハンドラーも消去され、引数からも削除されます。 +特定のツールをその関数名で指定して登録解除します。これによってツールは登録されたツールのコレクションから削除され、ハンドラーも消去され、引数からも削除されます。 #### ツールを登録解除する例 @@ -201,7 +201,7 @@ $chatHelper.unregisterTool("get_weather") // weather ツールを削除 **unregisterTools**() -全てのツールを一度に登録解除します。 これはすべてのツールハンドラーを消去し、tools コレクションをからにし、そして引数からも全てのツールを削除します。 +全てのツールを一度に登録解除します。これはすべてのツールハンドラーを消去し、tools コレクションをからにし、そして引数からも全てのツールを削除します。 #### 全てのツールを登録解除する例 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbedding.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbedding.md index 63b9abfd9797a6..e5d4bb0f599e1b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbedding.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbedding.md @@ -9,11 +9,11 @@ title: OpenAIEmbedding ## プロパティ -| プロパティ | 型 | 説明 | -| ----------- | ----------- | ------------------------------------------------ | -| `index` | Integer | 埋め込みのリスト内の埋め込みのインデックス。 | -| `embedding` | `4D.Vector` | 埋め込みベクトル。 ベクトルの長さは、埋め込みガイド内の記載されているモデルによって異なります。 | -| `object` | Text | "embedding" というテキスト値 | +| プロパティ | 型 | 説明 | +| ----------- | ----------- | ----------------------------------------------- | +| `index` | Integer | 埋め込みのリスト内の埋め込みのインデックス。 | +| `embedding` | `4D.Vector` | 埋め込みベクトル。ベクトルの長さは、埋め込みガイド内の記載されているモデルによって異なります。 | +| `object` | Text | "embedding" というテキスト値 | ## 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsParameters.md index 20b34c02ab6664..42c5142a59d3b3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsParameters.md @@ -13,10 +13,10 @@ title: OpenAIEmbeddingsParameters ## プロパティ -| プロパティ名 | 型 | 説明 | -| ----------------- | ------- | ------------------------------------------------------------------------------------------------------ | -| `encoding_format` | Text | 埋め込みを返すフォーマット。 `float` あるいは `base64` のいずれかを指定できます。 (デフォルト: `float`) | -| `dimensions` | Integer | 出力結果の埋め込みが持つべき次元の数。 text-embedding-3 あるいはそれ以降のモデルでのみサポートされています。 | +| プロパティ名 | 型 | 説明 | +| ----------------- | ------- | ----------------------------------------------------------------------------------------------------- | +| `encoding_format` | Text | 埋め込みを返すフォーマット。 `float` あるいは `base64` のいずれかを指定できます。(デフォルト: `float`) | +| `dimensions` | Integer | 出力結果の埋め込みが持つべき次元の数。 text-embedding-3 あるいはそれ以降のモデルでのみサポートされています。 | ## 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIError.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIError.md index e197db0e6edc57..b0425fb56d64f2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIError.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIError.md @@ -5,7 +5,7 @@ title: OpenAIError Class # OpenAIError Class -`OpenAIError` クラスはOpen AI API によって返されたエラーを管理するように設計されています。 これはエラーレスポンスから関連のある情報を抽出し、この情報にアクセスするための方法を提供します。 +`OpenAIError` クラスはOpen AI API によって返されたエラーを管理するように設計されています。これはエラーレスポンスから関連のある情報を抽出し、この情報にアクセスするための方法を提供します。 ## プロパティ diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFile.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFile.md index 470beca026dfaa..65dfe710e818fa 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFile.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFile.md @@ -5,21 +5,21 @@ title: OpenAIFile # OpenAIFile -`OpenAIFile` クラスはOpen AI API 内でのファイルオブジェクトを表します。 ファイルはアップロード可能で、Assistants、Fine-tuning、Batch、および Vision API を含めた様々なエンドポイントにおいて使用することができます。 +`OpenAIFile` クラスはOpen AI API 内でのファイルオブジェクトを表します。ファイルはアップロード可能で、Assistants、Fine-tuning、Batch、および Vision API を含めた様々なエンドポイントにおいて使用することができます。 ## プロパティ -| プロパティ名 | 型 | 説明 | -| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | Text | ファイルの識別子。API エンドポイント内で参照可能です。 | -| `bytes` | Integer | ファイルのサイズ(バイト単位)。 | -| `created_at` | Integer | ファイルが作成されたUnix タイムスタンプ(秒)。 | -| `expires_at` | Integer | ファイルが失効するUnix タイムスタンプ(秒)。 | -| `filename` | Text | ファイル名。 | -| `object` | Text | オブジェクトタイプ。常に"file"。 | -| `purpose` | Text | ファイルの目的。 サポートされる値: `assistants`、 `assistants_output`、 `batch`、 `batch_output`、 `fine-tune`、 `fine-tune-results`、 `vision`、および `user_data`。 | -| `status` | Text | **廃止予定。** ファイルのカレントのステータス。`uploaded`、 `processed`、 あるいは `error` のいずれか。 | -| `status_details` | Text | **廃止予定。** ファイルの微調整トレーニングファイルが検証になぜ失敗したかの詳細については、`fine_tuning.job` のerror フィールドを参照してください。 | +| プロパティ名 | 型 | 説明 | +| ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | Text | ファイルの識別子。API エンドポイント内で参照可能です。 | +| `bytes` | Integer | ファイルのサイズ(バイト単位)。 | +| `created_at` | Integer | ファイルが作成されたUnix タイムスタンプ(秒)。 | +| `expires_at` | Integer | ファイルが失効するUnix タイムスタンプ(秒)。 | +| `filename` | Text | ファイル名。 | +| `object` | Text | オブジェクトタイプ。常に"file"。 | +| `purpose` | Text | ファイルの目的。サポートされる値: `assistants`、 `assistants_output`、 `batch`、 `batch_output`、 `fine-tune`、 `fine-tune-results`、 `vision`、および `user_data`。 | +| `status` | Text | **廃止予定。** ファイルのカレントのステータス。`uploaded`、 `processed`、 あるいは `error` のいずれか。 | +| `status_details` | Text | **廃止予定。** ファイルの微調整トレーニングファイルが検証になぜ失敗したかの詳細については、`fine_tuning.job` のerror フィールドを参照してください。 | ## 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileDeletedResult.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileDeletedResult.md index 916370d87586df..29d915e17270b7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileDeletedResult.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileDeletedResult.md @@ -13,9 +13,9 @@ title: OpenAIFileDeletedResult ## 計算プロパティ -| プロパティ | 型 | 説明 | -| --------- | ----------------------------------------- | ------------------------------------------------------------------ | -| `deleted` | [OpenAIFileDeleted](OpenAIFileDeleted.md) | API レスポンスからのファイル削除の結果を返します。 レスポンスに有効な結果が格納されていない場合には `Null` を返します。 | +| プロパティ | 型 | 説明 | +| --------- | ----------------------------------------- | ----------------------------------------------------------------- | +| `deleted` | [OpenAIFileDeleted](OpenAIFileDeleted.md) | API レスポンスからのファイル削除の結果を返します。レスポンスに有効な結果が格納されていない場合には `Null` を返します。 | ## 使用例 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileListParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileListParameters.md index da01f8dc95912b..c90fb1ee13dad2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileListParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileListParameters.md @@ -13,12 +13,12 @@ title: OpenAIFileListParameters ## プロパティ -| プロパティ名 | 型 | 必須 | デフォルト | 説明 | -| --------- | ------- | -- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `after` | Text | 任意 | - | ページネーションで使用するためのカーソル。 `after` はリスト内での位置を定義するためのオブジェクト ID です。 例えば、リストをリクエストして100個のオブジェクトを受信し、最後が `obj_foo` だった場合、その次の呼び出しに `after=obj_foo` を含めることでリストの次のページを取得することができます。 | -| `limit` | Integer | 任意 | 10000 | 返されるオブジェクト数の上限。 上限値は1から10000 を選択でき、デフォルトの値は10000です。 | -| `order` | Text | 任意 | desc | オブジェクトの `created_at` タイプスタンプ順で並び替えします。 昇順には `asc` を、降順には `desc` を使用します。 | -| `purpose` | Text | 任意 | - | 特定の目的のファイルのみを返します。 | +| プロパティ名 | 型 | 必須 | デフォルト | 説明 | +| --------- | ------- | -- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `after` | Text | 任意 | - | ページネーションで使用するためのカーソル。 `after` はリスト内での位置を定義するためのオブジェクト ID です。例えば、リストをリクエストして100個のオブジェクトを受信し、最後が `obj_foo` だった場合、その次の呼び出しに `after=obj_foo` を含めることでリストの次のページを取得することができます。 | +| `limit` | Integer | 任意 | 10000 | 返されるオブジェクト数の上限。上限値は1から10000 を選択でき、デフォルトの値は10000です。 | +| `order` | Text | 任意 | desc | オブジェクトの `created_at` タイプスタンプ順で並び替えします。昇順には `asc` を、降順には `desc` を使用します。 | +| `purpose` | Text | 任意 | - | 特定の目的のファイルのみを返します。 | ## 使用例 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileListResult.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileListResult.md index dc31bbfade2377..f67176ffbf0bb5 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileListResult.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileListResult.md @@ -18,7 +18,7 @@ title: OpenAIFileListResult | `files` | Collection | API レスポンスからの[OpenAIFile](OpenAIFile.md) オブジェクトのコレクションを返します。ファイルが何も見つからない場合には空のコレクションが返されます。 | | `first_id` | Text | リストの最初のファイルのID を返します。利用できない場合は空の文字列を返します。 | | `last_id` | Text | リストの最後のファイルのID を返します。利用できない場合は空の文字列を返します。 | -| `has_more` | Boolean | このページの後にまだファイルがあるかどうかを示します。 まだ取得するファイルがある場合には `True`、それ以外の場合には `False`。 | +| `has_more` | Boolean | このページの後にまだファイルがあるかどうかを示します。まだ取得するファイルがある場合には `True`、それ以外の場合には `False`。 | ## 使用例 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileParameters.md index 028c39becaac1b..e896d87012ecf7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileParameters.md @@ -13,9 +13,9 @@ title: OpenAIFileParameters ## プロパティ -| プロパティ名 | 型 | 必須 | 説明 | -| --------------- | ------ | -- | ------------------------------------------------------------------------------------ | -| `expires_after` | Object | 任意 | ファイルの失効ポリシー。 デフォルトでは、 `purpose=batch` のファイルは30 日で失効し、それ以外の全てのファイルは手動で削除されるまでは維持されます。 | +| プロパティ名 | 型 | 必須 | 説明 | +| --------------- | ------ | -- | ----------------------------------------------------------------------------------- | +| `expires_after` | Object | 任意 | ファイルの失効ポリシー。デフォルトでは、 `purpose=batch` のファイルは30 日で失効し、それ以外の全てのファイルは手動で削除されるまでは維持されます。 | ### `expires_after` オブジェクト構造 @@ -23,7 +23,7 @@ title: OpenAIFileParameters | プロパティ名 | 型 | 説明 | | --------- | ------- | ------------------------------------------------------------------------------------------------------------- | -| `anchor` | Text | 失効ポリシーが適用されるアンカータイムスタンプ。 サポートされるアンカー: `created_at` 。 | +| `anchor` | Text | 失効ポリシーが適用されるアンカータイムスタンプ。サポートされるアンカー: `created_at` 。 | | `seconds` | Integer | アンカー時間からファイルが有効期限が切れるまでの秒数。 3600 (1 時間) から 2592000 (30 日) の間でなければなりません。 | ## 使用例 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileResult.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileResult.md index 077b421a08fdf7..7f2528a0670814 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileResult.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFileResult.md @@ -13,9 +13,9 @@ title: OpenAIFileResult ## 計算プロパティ -| プロパティ | 型 | 説明 | -| ------ | --------------------------- | ---------------------------------------------------------------- | -| `file` | [OpenAIFile](OpenAIFile.md) | API レスポンスからのファイルオブジェクトを返します。 レスポンスに有効なファイルが格納されていない場合には `Null` 。 | +| プロパティ | 型 | 説明 | +| ------ | --------------------------- | --------------------------------------------------------------- | +| `file` | [OpenAIFile](OpenAIFile.md) | API レスポンスからのファイルオブジェクトを返します。レスポンスに有効なファイルが格納されていない場合には `Null` 。 | ## 使用例 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFilesAPI.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFilesAPI.md index 67d6f4c2e2b497..2f7cde3e2fb047 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFilesAPI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIFilesAPI.md @@ -5,9 +5,9 @@ title: OpenAIFilesAPI # OpenAIFilesAPI -`OpenAIFilesAPI` クラスはOpenAI のAPI を使用してファイルを管理する機能を提供します。 ファイルをアップロードして、 [Fine-tuning](https://developers.openai.com/api/reference/resources/fine_tuning)、 [Batch](https://developers.openai.com/api/reference/resources/batches) 処理、そしてVision を含む様々なエンドポイントで使用することができます。 +`OpenAIFilesAPI` クラスはOpenAI のAPI を使用してファイルを管理する機能を提供します。ファイルをアップロードして、 [Fine-tuning](https://developers.openai.com/api/reference/resources/fine_tuning)、 [Batch](https://developers.openai.com/api/reference/resources/batches) 処理、そしてVision を含む様々なエンドポイントで使用することができます。 -> **注意:** この API はOpenAI としか互換性がありません。 [互換性のあるプロバイダー](../compatible-openai.md) ドキュメンテーションに記載されている他のプロバイダーでは、ファイル管理操作をサポートしていません。 +> **注意:** この API はOpenAI としか互換性がありません。[互換性のあるプロバイダー](../compatible-openai.md) ドキュメンテーションに記載されている他のプロバイダーでは、ファイル管理操作をサポートしていません。 API 参照: @@ -73,7 +73,7 @@ End if #### 非同期の例 -ファイルアップロードは(特に512 MBまでの大きなファイルの場合)長時間のオペレーションとなり得るため、アプリケーションをブロックするのを避けるために非同期の呼び出しを使用することが推奨されます。 詳細については[非同期呼び出し](../asynchronous-call.md) を参照してください。 +ファイルアップロードは(特に512 MBまでの大きなファイルの場合)長時間のオペレーションとなり得るため、アプリケーションをブロックするのを避けるために非同期の呼び出しを使用することが推奨されます。詳細については[非同期呼び出し](../asynchronous-call.md) を参照してください。 ```4d var $file:=File("/RESOURCES/large-training-data.jsonl") diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md index 4e1bd0dc091fa9..b5835bc02f4ac0 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md @@ -5,7 +5,7 @@ title: OpenAIImage # OpenAIImage -`OpenAIImage` クラスはOpenAI API によって生成された画像を表します。 このクラスは異なるフォーマットで生成された画像にアクセスするためのプロパティや、この画像を他の型へと変換するためのメソッドを提供します。 +`OpenAIImage` クラスはOpenAI API によって生成された画像を表します。このクラスは異なるフォーマットで生成された画像にアクセスするためのプロパティや、この画像を他の型へと変換するためのメソッドを提供します。 https://developers.openai.com/api/reference/resources/images @@ -56,7 +56,7 @@ var $picture:=$image.asPicture() | *ファイル* | 4D.File | 画像が保存されるファイルオブジェクト。 | | 戻り値 | Boolean | 画像が正常に保存された場合には `True` を返します。 | -画像をディスク上に保存します。もしURL の場合には最初にダウンロードをしようと試みます。 画像データが取得できなかった場合には `False` を返します。 +画像をディスク上に保存します。もしURL の場合には最初にダウンロードをしようと試みます。画像データが取得できなかった場合には `False` を返します。 #### 使用例 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md index f7ea8b6481afc8..10032934611e65 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImageParameters.md @@ -17,7 +17,7 @@ title: OpenAIImageParameters | ----------------- | ------- | ----------- | ---------------------------------------------------------------------------------------------------- | | `model` | Text | "dall-e-2" | 画像生成に使用するモデルを指定します。 [provider:model エイリアス](../provider-model-aliases.md) をサポートしています。 | | `n` | Integer | 1 | 生成する画像の数(1から10の間でなければなりません、また `dall-e-3` では `n=1` のみがサポートされます)。 | -| `size` | Text | "1024x1024" | 生成される画像のサイズ。 モデルの仕様に準拠している必要があります。 | +| `size` | Text | "1024x1024" | 生成される画像のサイズ。モデルの仕様に準拠している必要があります。 | | `style` | Text | "" | 生成される画像のスタイル(`vivid` または `natural`のどちらかでなければなりません)。 | | `response_format` | Text | "url" | 返される画像のフォーマット。`url` または `b64_json` のいずれかです。 | diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImagesResult.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImagesResult.md index 33c72598163888..cd8118e4f8a59f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImagesResult.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImagesResult.md @@ -49,7 +49,7 @@ title: OpenAIImagesResult } ``` -> **注意:** 画像生成使用状況は、全てのプロバイダーにおいて利用可能とは限りません。 この構造は、使用している特定の画像API エンドポイントによっては異なる場合があります。 +> **注意:** 画像生成使用状況は、全てのプロバイダーにおいて利用可能とは限りません。この構造は、使用している特定の画像API エンドポイントによっては異なる場合があります。 ## 関数 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md index 02ee04039c72ee..6c78b4f6350b39 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md @@ -5,7 +5,7 @@ title: OpenAIMessage # OpenAIMessage -`OpenAIMessage` クラスはロール、コンテンツ、そしてオプションとしてユーザーを格納した構造化されたメッセージを表します。 このクラスはメッセージのテキストや他のコンテンツを操作・取得するメソッドを提供します。 +`OpenAIMessage` クラスはロール、コンテンツ、そしてオプションとしてユーザーを格納した構造化されたメッセージを表します。このクラスはメッセージのテキストや他のコンテンツを操作・取得するメソッドを提供します。 ## プロパティ @@ -14,7 +14,7 @@ title: OpenAIMessage | `role` | Text | メッセージの役割(例: "user"、"assistant"、"system"、"tool")。 | | `content` | Variant | メッセージのコンテンツ。テキスト、またはオブジェクトのコレクションのいずれかです。 | | `user` | Text | メッセージに割り当てられたユーザーを表すオプションのプロパティ。 | -| `tool_calls` | Collection | アシスタントからリクエストされたツール呼び出しのコレクション。 各ツール呼び出しには `id`、`type`、`function` オブジェクトが含まれます。 | +| `tool_calls` | Collection | アシスタントからリクエストされたツール呼び出しのコレクション。各ツール呼び出しには `id`、`type`、`function` オブジェクトが含まれます。 | | `tool_call_id` | Text | このメッセージが返答しているツール呼び出しのID (`role` が "tool"の場合に使用されます)。 | ## 計算プロパティ @@ -34,7 +34,7 @@ title: OpenAIMessage | *imageURL* | Text | メッセージに追加する画像のURL。 | | *detail* | Text | 画像の詳細レベル: "auto"、 "low"、または "high"。 | -メッセージのコンテンツに画像URL を追加します。 コンテンツが現在テキストの場合、コレクション形式に変換されます。 +メッセージのコンテンツに画像URL を追加します。コンテンツが現在テキストの場合、コレクション形式に変換されます。 ### addFileId() @@ -44,7 +44,7 @@ title: OpenAIMessage | -------- | ---- | -------------------- | | *fileId* | Text | メッセージに追加するファイルの ID 。 | -メッセージのコンテンツにファイル参照を追加します。 コンテンツが現在テキストの場合、コレクション形式に変換されます。 +メッセージのコンテンツにファイル参照を追加します。コンテンツが現在テキストの場合、コレクション形式に変換されます。 ## 使用例 @@ -137,7 +137,7 @@ var $toolResponse:=cs.AIKit.OpenAIMessage.new({ \ // 会話にそれを追加して続行する ``` -**重要:** レスポンス内の`tool_call_id` は、元のツール呼び出しの`id` と完全に一致している必要があります。 これによってAI モデルはあなたのレスポンスと、呼び出しを行った特定の関数を正確に結びつけることができます。 +**重要:** レスポンス内の`tool_call_id` は、元のツール呼び出しの`id` と完全に一致している必要があります。これによってAI モデルはあなたのレスポンスと、呼び出しを行った特定の関数を正確に結びつけることができます。 ## 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md index e68f496e2fd54d..e3f2025bbf781e 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md @@ -5,7 +5,7 @@ title: OpenAIModeration # OpenAIModeration -`OpenAIModeration` クラスはOpenAI API からのモデレーション結果を処理するために設計されています。 これにはモデレーションID、使用したモデル、モデレーションの結果を保存するためのプロパティが格納されています。 +`OpenAIModeration` クラスはOpenAI API からのモデレーション結果を処理するために設計されています。これにはモデレーションID、使用したモデル、モデレーションの結果を保存するためのプロパティが格納されています。 https://developers.openai.com/api/reference/resources/moderations diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationsAPI.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationsAPI.md index 04da8f8f4d46dc..857b2fef56cef7 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationsAPI.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationsAPI.md @@ -15,12 +15,12 @@ https://developers.openai.com/api/reference/resources/moderations **create**(*input* : Variant; *model* : Text; *parameters* : OpenAIParameters) : OpenAIModerationResult -| 引数 | 型 | 説明 | -| ------------ | --------------------------------------------------- | --------------------------------------------- | -| *input* | Variant | 分類する入力。 単一のテキストまたはOpenAIMessage のコレクションを渡せます。 | -| *model* | Text | 使用したいコンテンツモデレーションモデル。 | -| *parameters* | [OpenAIParameters](OpenAIParameters.md) | リクエスト用の追加のパラメーター。 | -| 戻り値 | [OpenAIModerationResult](OpenAIModerationResult.md) | 潜在的な危険性を表すモデレーションの結果。 | +| 引数 | 型 | 説明 | +| ------------ | --------------------------------------------------- | -------------------------------------------- | +| *input* | Variant | 分類する入力。単一のテキストまたはOpenAIMessage のコレクションを渡せます。 | +| *model* | Text | 使用したいコンテンツモデレーションモデル。 | +| *parameters* | [OpenAIParameters](OpenAIParameters.md) | リクエスト用の追加のパラメーター。 | +| 戻り値 | [OpenAIModerationResult](OpenAIModerationResult.md) | 潜在的な危険性を表すモデレーションの結果。 | 入力が潜在的に有害かどうかを判断します。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index 0895adf5fbb3bd..2a2c7c12595214 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -13,16 +13,16 @@ title: OpenAIParameters 成功かエラーかに関係なく結果を受け取るためには、このコールバックプロパティを使用します: -| プロパティ | 型 | 説明 | -| --------------------------------------------------- | --------------------------- | ------------------------------------------------ | -| `onTerminate`
    (または `formula`) | 4D.Function | 終了時に非同期で呼び出す関数。
    *カレントプロセスが終了しないように注意してください。* | +| プロパティ | 型 | 説明 | +| --------------------------------------------------- | --------------------------- | ----------------------------------------------- | +| `onTerminate`
    (または `formula`) | 4D.Function | 終了時に非同期で呼び出す関数。
    *カレントプロセスが終了しないように注意してください。* | 成功とエラー処理をより細やかに管理するためにはこれらのコールバックプロパティを使用します: -| プロパティ | 型 | 説明 | -| ------------ | --------------------------- | ------------------------------------------------------------------- | -| `onResponse` | 4D.Function | リクエストが**正常に**終了した場合に非同期で呼び出される関数。
    *カレントプロセスが終了しないように注意してください。* | -| `onError` | 4D.Function | リクエストが**エラーで**終了した場合に非同期で呼び出される関数。
    *カレントプロセスが終了しないように注意してください。* | +| プロパティ | 型 | 説明 | +| ------------ | --------------------------- | ------------------------------------------------------------------ | +| `onResponse` | 4D.Function | リクエストが**正常に**終了した場合に非同期で呼び出される関数。
    *カレントプロセスが終了しないように注意してください。* | +| `onError` | 4D.Function | リクエストが**エラーで**終了した場合に非同期で呼び出される関数。
    *カレントプロセスが終了しないように注意してください。* | > コールバック関数は、同期コード内での関数によって返される結果のオブジェクト型([OpenAIResult](OpenAIResult.md) 子クラスのうちのいずれか)と同じものを受け取ります。 @@ -30,12 +30,12 @@ title: OpenAIParameters ### ネットワークプロパティ -| プロパティ | 型 | 説明 | -| -------------- | --------- | --------------------------------------------------------------------------- | -| `timeout` | Real | クライアントレベルのリクエストのデフォルトのタイムアウトをオーバーライドします(秒単位)。 デフォルトは0です。 | -| `httpAgent` | HTTPAgent | クライアントレベルのリクエストのデフォルトのHTTP エージェントをオーバーライドします。 | -| `maxRetries` | Integer | リクエストのリトライの最大回数。 (コードが非同期でない場合、つまり関数が提供されていない場合のみ) | -| `extraHeaders` | Object | リクエストに付随して送信する追加のヘッダー。 | +| プロパティ | 型 | 説明 | +| -------------- | --------- | -------------------------------------------------------------------------- | +| `timeout` | Real | クライアントレベルのリクエストのデフォルトのタイムアウトをオーバーライドします(秒単位)。デフォルトは0です。 | +| `httpAgent` | HTTPAgent | クライアントレベルのリクエストのデフォルトのHTTP エージェントをオーバーライドします。 | +| `maxRetries` | Integer | リクエストのリトライの最大回数。(コードが非同期でない場合、つまり関数が提供されていない場合のみ) | +| `extraHeaders` | Object | リクエストに付随して送信する追加のヘッダー。 | ### OpenAPIプロパティ @@ -45,13 +45,13 @@ title: OpenAIParameters ### その他 -| プロパティ | 型 | 説明 | -| ------- | ------- | ---------------------------------------------------------- | -| `throw` | Boolean | true の場合、エラーが発生した場合にエラーをスローします。 コールバックフォーミュラが定義されていない場合のみ。 | +| プロパティ | 型 | 説明 | +| ------- | ------- | --------------------------------------------------------- | +| `throw` | Boolean | true の場合、エラーが発生した場合にエラーをスローします。コールバックフォーミュラが定義されていない場合のみ。 | ## 継承クラス -特定の用途のためにこのクラスの機能を拡張するために、いくつかのクラスが`OpenAIParameters` クラスを継承します。 以下は `OpenAIParameters` クラスを拡張するクラスの一部です: +特定の用途のためにこのクラスの機能を拡張するために、いくつかのクラスが`OpenAIParameters` クラスを継承します。以下は `OpenAIParameters` クラスを拡張するクラスの一部です: - [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - [OpenAIChatCompletionsMessagesParameters](OpenAIChatCompletionsMessagesParameters.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIProviders.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIProviders.md index 7af09d1e002895..8d8294a0d33619 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIProviders.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIProviders.md @@ -28,12 +28,12 @@ title: OpenAIProviders var $providers := cs.AIKit.OpenAIProviders.new() ``` -`AIProviders.json` ファイルからプロバイダー設定をロードする、新しいインスタンスを作成します。 ファイルの場所とフォーマットについての詳細に関しては、プロバイダーエイリアスのドキュメンテーション内の[設定ファイル](../provider-model-aliases.md#設定ファイル) の章を参照してください。 +`AIProviders.json` ファイルからプロバイダー設定をロードする、新しいインスタンスを作成します。ファイルの場所とフォーマットについての詳細に関しては、プロバイダーエイリアスのドキュメンテーション内の[設定ファイル](../provider-model-aliases.md#設定ファイル) の章を参照してください。 **重要:** -- 最初の既存ファイルのみがロードされます。 複数のファイルが結合されることはありません。 -- 設定はインスタンス化時に一度だけ読み込まれます。 `AIProviders.json` ファイルがインスタンス化後に変更された場合、その変更は既存のインスタンスには反映されません。 更新された設定をリロードするためには、`OpenAIProviders` のインスタンスを新しく作成する必要があります。 +- 最初の既存ファイルのみがロードされます。複数のファイルが結合されることはありません。 +- 設定はインスタンス化時に一度だけ読み込まれます。 `AIProviders.json` ファイルがインスタンス化後に変更された場合、その変更は既存のインスタンスには反映されません。更新された設定をリロードするためには、`OpenAIProviders` のインスタンスを新しく作成する必要があります。 ## 使用例 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md index 69be55c4c1aab0..fdd2480014140f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md @@ -18,7 +18,7 @@ title: OpenAIResult | プロパティ | 型 | 説明 | | ------------ | ---------- | ------------------------------------------------------------------------ | | `success` | Boolean | HTTP リクエストが成功したかどうかを示すブール値。 | -| `errors` | Collection | エラーのコレクションを返します。 これらはネットワークエラーまたは OpenAI から返されたエラーである可能性があります。 | +| `errors` | Collection | エラーのコレクションを返します。これらはネットワークエラーまたは OpenAI から返されたエラーである可能性があります。 | | `terminated` | Boolean | HTTP リクエストが終了したかどうかを示すブール値。 | | `headers` | Object | レスポンスのヘッダーをオブジェクトとして返します。 | | `rateLimit` | Object | レスポンスヘッダーからのレート制限情報を返します。 | @@ -26,9 +26,9 @@ title: OpenAIResult ### usage -`usage` プロパティは、API レスポンスから、トークン使用状況を格納したオブジェクトを返します。 この構造は、使用しているAPI エンドポイントによって異なります。 +`usage` プロパティは、API レスポンスから、トークン使用状況を格納したオブジェクトを返します。この構造は、使用しているAPI エンドポイントによって異なります。 -> **注意:** 異なるOpenAI 互換サービスの場合には、usage オブジェクト内に異なるフィールドを返す可能性があります。 ここで示されている構造は、OpenAI のAPI の場合に基づいています。 他のプロバイダーの場合には全てのフィールドが含まれていない場合もあります。 +> **注意:** 異なるOpenAI 互換サービスの場合には、usage オブジェクト内に異なるフィールドを返す可能性があります。ここで示されている構造は、OpenAI のAPI の場合に基づいています。他のプロバイダーの場合には全てのフィールドが含まれていない場合もあります。 エンドポイント特有のusage オブジェクトの構造については、それぞれの戻り値のクラスのドキュメンテーションを参照してください: @@ -39,8 +39,7 @@ title: OpenAIResult ### rateLimit -`rateLimit` プロパティはレスポンスヘッダーからのレート制限情報を格納しているオブジェクトを返します。 -この情報には上限、残りのリクエスト、そしてリクエストとトークン両方のリセットまでの時間が含まれます。 +`rateLimit` プロパティはレスポンスヘッダーからのレート制限情報を格納しているオブジェクトを返します。この情報には上限、残りのリクエスト、そしてリクエストとトークン両方のリセットまでの時間が含まれます。 レート制限と使用される特定のヘッダーの詳細な情報については、[OpenAI のレート制限についてのドキュメンテーション](https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers) を参照してください。 @@ -59,11 +58,11 @@ title: OpenAIResult ### `throw()` -`errors` コレクション内の最初のエラーをスローします。 この関数は呼び出しスタック内のエラーを辿っていくのに有用です。 +`errors` コレクション内の最初のエラーをスローします。この関数は呼び出しスタック内のエラーを辿っていくのに有用です。 ## 継承クラス -特定の用途のためにこのクラスの機能を拡張するために、いくつかのクラスが`OpenAIResult` クラスを継承します。 以下は `OpenAIResult` クラスを拡張するクラスの一部です: +特定の用途のためにこのクラスの機能を拡張するために、いくつかのクラスが`OpenAIResult` クラスを継承します。以下は `OpenAIResult` クラスを拡張するクラスの一部です: - [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) - [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md index 02d22384e230fc..87975d0016fac2 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAITool.md @@ -5,7 +5,7 @@ title: OpenAITool # OpenAITool -`OpenAITool` クラスは会話の途中でOpenAI モデルによって呼び出されうるツールを表します。 ツールを使用するとAI に特定の機能を実行させたり、外部システムとやりとりしたり、情報を取得したりといったことが可能になります。 +`OpenAITool` クラスは会話の途中でOpenAI モデルによって呼び出されうるツールを表します。ツールを使用するとAI に特定の機能を実行させたり、外部システムとやりとりしたり、情報を取得したりといったことが可能になります。 ツール呼び出しに応答する方法については、[OpenAIMessage](OpenAIMessage.md) を参照して下さい。 @@ -15,10 +15,10 @@ title: OpenAITool ### ルートプロパティ -| プロパティ | 型 | デフォルト | 説明 | -| -------- | ------- | ------------ | ---------------------------------------------------------------- | -| `type` | Text | `"function"` | ツールのタイプ。 現在サポートされているのは`"function"`、`"custom"`、そしてその他のビルトインタイプです。 | -| `strict` | Boolean | `false` | 関数の引数に対して厳格なスキーマ検証を強制するかどうかを指定します。 | +| プロパティ | 型 | デフォルト | 説明 | +| -------- | ------- | ------------ | --------------------------------------------------------------- | +| `type` | Text | `"function"` | ツールのタイプ。現在サポートされているのは`"function"`、`"custom"`、そしてその他のビルトインタイプです。 | +| `strict` | Boolean | `false` | 関数の引数に対して厳格なスキーマ検証を強制するかどうかを指定します。 | ### 共通プロパティ @@ -44,7 +44,7 @@ title: OpenAITool | *options* | Object | ツールの設定オブジェクト | | 戻り値 | OpenAITool | OpenAITool の新規インスタンス | -新しい OpenAITool インスタンスを作成します。 このコンストラクターは簡易フォーマットとOpenAI API フォーマットの両方を受け入れます。 +新しい OpenAITool インスタンスを作成します。このコンストラクターは簡易フォーマットとOpenAI API フォーマットの両方を受け入れます。 #### サポートされるフォーマット @@ -95,7 +95,7 @@ var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \ }) ``` -> **注意:** プレーンなオブジェクトを直接渡すこともできます - 渡したオブジェクトは自動的に`OpenAITool` インスタンスに変換されます。 明示的に `OpenAITool` オブジェクトを作成する必要はありません。 +> **注意:** プレーンなオブジェクトを直接渡すこともできます - 渡したオブジェクトは自動的に`OpenAITool` インスタンスに変換されます。明示的に `OpenAITool` オブジェクトを作成する必要はありません。 ## 参照 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md index 35caac175e2b13..a9da6711fb8288 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/asynchronous-call.md @@ -7,15 +7,15 @@ title: 非同期コード リクエストをAPI に送信する際にOpenAPI のレスポンスを待ちたくない場合には、非同期コードを使用する必要があります。 -非同期での呼び出しを行うためには、[OpenAIParameters](Classes/OpenAIParameters.md) オブジェクト引数に結果を受け取るためのコールバック `4D.Function`(`Formula`) を提供する必要があります。 ストリーミングチャット補完については、[OpenAIChatCompletionsParameters](Classes/OpenAIChatCompletionsParameters.md) を参照してください。 +非同期での呼び出しを行うためには、[OpenAIParameters](Classes/OpenAIParameters.md) オブジェクト引数に結果を受け取るためのコールバック `4D.Function`(`Formula`) を提供する必要があります。ストリーミングチャット補完については、[OpenAIChatCompletionsParameters](Classes/OpenAIChatCompletionsParameters.md) を参照してください。 -コールバック関数は、同期コード内での関数によって返される結果のオブジェクト型([OpenAIResult](Classes/OpenAIResult.md) 子クラスのうちのいずれか)と同じものを受け取ります。 以下の例を参照してください。 +コールバック関数は、同期コード内での関数によって返される結果のオブジェクト型([OpenAIResult](Classes/OpenAIResult.md) 子クラスのうちのいずれか)と同じものを受け取ります。以下の例を参照してください。 ## プロセスに関する注意 非同期メソッドは [4D.HTTPRequest](https://developer.4d.com/docs/API/HTTPRequestClass) に基づいているもので、レスポンスはカレントプロセス内で受信されます。 -> ⚠️ もしカレントのメソッドの終わりでプロセスも終了する(例: New process を使用している、あるいはメソッドエディターでコードをテストしている)場合、コールバックフォーミュラは非同期に呼び出されない可能性があります。 そのような場合には、`CALL WORKER` あるいは `CALL FORM` の使用を検討して下さい。 +> ⚠️ もしカレントのメソッドの終わりでプロセスも終了する(例: New process を使用している、あるいはメソッドエディターでコードをテストしている)場合、コールバックフォーミュラは非同期に呼び出されない可能性があります。そのような場合には、`CALL WORKER` あるいは `CALL FORM` の使用を検討して下さい。 ## 使用例 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md index 49ca73d02a8dde..02bad74411fb1d 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/overview.md @@ -41,7 +41,7 @@ $client.baseURL:="https://your.server.ai" var $result:=$client..() ``` -`$result` には`HTTPRequest` と、`success` ステータス、そして`errors` コレクションなどが含まれます。 詳細については [OpenAIResult](Classes/OpenAIResult.md) を参照して下さい。 +`$result` には`HTTPRequest` と、`success` ステータス、そして`errors` コレクションなどが含まれます。詳細については [OpenAIResult](Classes/OpenAIResult.md) を参照して下さい。 また以下の例題も参照して下さい。 @@ -149,7 +149,7 @@ var $moderation:=$client.moderations.create("This text contains inappropriate la #### 非同期コード -リクエストをAPI に送信する際にOpenAPI のレスポンスを待ちたくない場合には、非同期コードを使用する必要があります。 戻り値のオブジェクトはコールバック関数内に受け取られます。 +リクエストをAPI に送信する際にOpenAPI のレスポンスを待ちたくない場合には、非同期コードを使用する必要があります。戻り値のオブジェクトはコールバック関数内に受け取られます。 詳細については[例題の詳細なドキュメント](asynchronous-call.md) を参照して下さい。 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/provider-model-aliases.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/provider-model-aliases.md index 7403fb6ed37634..2ca12517bc5a51 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/provider-model-aliases.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/provider-model-aliases.md @@ -15,7 +15,7 @@ API エンドポイントと認証情報をコード内にハードコーディ - `provider:model` シンタックスを使用してプロバイダーとモデルを直接指定する - 名前付けされたモデルエイリアスを定義し、プロバイダーとモデルID にマップする - 名前付けされたモデルエイリアスを名前(例: `my-gpt`) だけで使用する -- プロバイダー間(OpenAI、Anthropic、ローカルな Ollama、など)を 簡単に切り替える +- プロバイダー間(OpenAI、Anthropic、ローカルな Ollama、など)を簡単に切り替える ## 設定ファイル @@ -27,7 +27,7 @@ API エンドポイントと認証情報をコード内にハードコーディ | 2 | user | `/Settings/AIProviders.json` | | 3 (低) | structure | `/SOURCES/AIProviders.json` | -**重要:** **既存のファイルの最初のもの** のみがロードされます。 複数のファイルが結合されることはありません。 +**重要:** **既存のファイルの最初のもの** のみがロードされます。複数のファイルが結合されることはありません。 ### 設定ファイルフォーマット @@ -135,7 +135,7 @@ var $result := $client.images.generate("prompt"; {model: "openai:dall-e-3"}) #### モデルエイリアスシンタックス -設定ファイル内の`models` セクション内で定義されている名前付けされたモデルを、単純に名前だけを使用して参照します。 プロバイダー、モデルID、そして認証情報は、自動的に解決されます: +設定ファイル内の`models` セクション内で定義されている名前付けされたモデルを、単純に名前だけを使用して参照します。プロバイダー、モデルID、そして認証情報は、自動的に解決されます: ```4d var $client := cs.AIKit.OpenAI.new() @@ -239,7 +239,7 @@ var $embedding2 := $client.embeddings.create($text; "local:nomic-embed-text") ### リロード機能はなし -クライアントが一度インスタンス化されてしまったら、プロバイダー設定をリロードすることはできません。 設定の変更を反映させるためには: +クライアントが一度インスタンス化されてしまったら、プロバイダー設定をリロードすることはできません。設定の変更を反映させるためには: ```4d // 設定が変更された - 新しいクライアントを作成 diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Users/plugins.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Users/plugins.png index dd3dc15bb2c6dfdd647473fb694a5d6b3976eda2..cbef1608509485e138f3c0d68ae2e60a0f0ddcc1 100644 GIT binary patch literal 7464 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 A$^ZZW literal 3237 zcmd5V#y_{ZI;=@$;@Ro#N_zJkqL=eLK^C% z$R%=DiZOSQ+feS-Ol8f+_{}>1oY(Jney{WU@At>|`~5u6_xU`}=lQ%p&-?v);?AFg z%E~Cp00014+cVZq0D#nMu^qovTKtZUuwgOJ`dvq4F2HXD@8p%njekRa_*yj&@ilS%81dy?dzIj>lNH z%CXm{wS6jIrLUf!OEg~>X6!Iq9*<5$t#wh>b~G?oK2O9Z_)lI~L$%nfUpEKKn8*R! zRp^NzPTAMX9jo_w4tlHI?M+n#U9{`c z+;x$!GglU9Gs>a(CHCtf*xAx1m7Cp1EL;bL?M^0b^qwx^2~wFUz6sB#(n8T;H4BSQ z;z=O;dB9&9_gSn2kE@Gzn;*pYZYCP3MO*ZHh+W<|uC!(lqVYY?z*zZ8ei(@jv z8LMbGOa(N(0FRDH6-^%UNy?tG^_eoe2Q{#Xn>qfoY4{=WtixqITYgPH3RFumx|G#5 z4E_dMT_aQ67JoBrGj9=T=0-2~)_2T0Ut8IooJS^yEz65HQ0^0yB7CE(OAQ9ExY?IC zBz~4rPKx2pyd)7!@J;XUFe!z8m|srT`7NRu8p>})@~?*ZT0S9<#0~5EgEmULGr^ViBbO70XqMYS+eVLM-o8-NB@){<$Trrb}C5(_`-tLwsB0vee;0f#Y5 zNqzdlZ=8&TJ;Ri=2K!@Wp9@c@=6DKMdQ)yEY7zSutZD4M8dUbt$?jC)UGPC%9COj9Q+fF z>WL|>w?UsCG*4NGd=v47TSnEuVT}3oJ#~s8h)%d7rY1i5T(v-epBG(ewKtz^CinFE zRmu{KNrRkeoEL2Lt24ZyxwV8N=V!T|jnLJZXl6$l$5E6^PUd65LrA+ORks|}inEd!?A(Qb3#dasI5!M1FpT>~~Q=0x^4>l5Jwn+oNScu78oQYq5Q4oi}^Wim5TRxpz%ld{)Gj<+8E^}y{H}QI@RzYcj@Je-=i_2tExN8;%bhzE$N(c z|5%&8B+ro%Jxf_43S0B~!8v2JH=PNY#<(%Di~n~QHF{5qG2h)jqjIV$z*4yd$SZ~2 zM5civ1>`8wO-X`ufT@dT;vwYxsyD82*oSlKRUksZ1qaPoC+^$auWM$+_aI}_CUVD^ z?LIfA>YIg_P?B2BHOW!Iwa#A7)-)c9OZsPVV2=Z0%Smk&TEMG-xj~M1TuA}GkiCH0 z&to@rR1t!9Whzq_Nw2F7KF|-+W5sDZM6X_cX{dq9vt;%L$}cGlHz@Ya+LFIwMXrO^ z4lD#|WO(1rn!TeEYZz=RvM9RH(mu?5&=yuC` zLCM;!^7ax|dJ;%2Vy(X;lSA-t3_~ct>-@Gn9X77>ec=xU-5zDHVo!fH47Qvr%ZQBQ zqlapOomfSvew-P;>udRN4TH<@z@jB}(#&Y|*%}Nd}e+@BYnl`BNp0 zBR-AYR4(p&gxMgzhDwaQEreUr`MA!|q^_a%GU|YCEbCh9gdJl-f9hNNXE&~T3|z*| zAG%Pr-Cy}TP8r=!D(obRXMH}n6_KqumQF89gT9APSJZlF$7As`^Pm?@_DgOk>3LMj z%Vb96nqcPZOed0frMv?gKGZIdc^yKGV~#QfCfN zRdD2CwpTN0idu|Wq$LCz-^Adb^9{_iJL1L*f`8~2fP@3ER;PIMu2yws75PDCfqJ>E zxzWNNfZ?4pEqT_ZX$0KkgLKkoAg^7k%(9S#c0S7PD_ys8Ste= zMme+No~k01Ho^k~IfX>qQ}c2$4+K4x#T+=bPtGl;cWp%1KE`f1U(0vXgO($AD5Fzn zAyVPzC17pn*x|Ug=YQb+ABFDpmA}?N^t$fSZ_mtBC6v^mnsNplMvZ{5w)L@???`%2 zvQbOAiF#AjX88VTLHvUI&-Ha*>I9hu(pOJ!(0*?@Q0G#~!ItAOzQU{n;2E!vbd-^< zV)W>OH9i*!Z5GKzR*W^oLM3CxVz-+mW*1M$o^_?4WcP9=IFo@^Y>@OH>~qI4VYZh0 z_MI1ov+qUeQb=BN(;Xk!z&lh~;zl7<(49pHfPv&Z8)3_id6zNv!baxPw2|__p-1$( zGs?FDeKp69+ZA24qWKCz+E@L!J5PUKT8#VMCPwgiTvgxnY7Q~2?UF#I1rE=1jBs~& ziqMD3i?VP%iS1QNH=-m*P(Tre{B)0=-VH0a)}$UQ9#ZXm*Vd;8!-j_zDiF(V?LFq% zlUagd*N%l%qr31_~ zBqjtB6_jl4H8Afima6|jPyR#@e_MtAZ@nVdc>Hy#$BPeJ_`Uot@ht*iYje)J(DKT! F{{kQDHT(bo diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/ViewPro/vpFormEvents.md.backup b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/ViewPro/vpFormEvents.md.backup index 78e6cb20e1819a..b3a397b68f8d59 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/ViewPro/vpFormEvents.md.backup +++ b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/ViewPro/vpFormEvents.md.backup @@ -7,4 +7,4 @@ title: 4D View Pro フォームイベント ![](vpFormEvents.PNG) -一部のイベントは (すべてのアクティブオブジェクトで利用可能な) 標準のフォームイベントであり、一部は 4D View Pro 専用のフォームイベントです。 一部の4D View Pro フォームイベントは、4D View Pro エリア内でイベントが生成された場合には、`FORM Event` コマンドによって返されるオブジェクト内には追加の情報が提供されます。 以下の表示には、どのフォームイベントが他のオブジェクトと共通で、どのフォームイベントが 4D View Pro エリアに特有のものであるのかが示されています: \ No newline at end of file +一部のイベントは (すべてのアクティブオブジェクトで利用可能な) 標準のフォームイベントであり、一部は 4D View Pro 専用のフォームイベントです。一部の4D View Pro フォームイベントは、4D View Pro エリア内でイベントが生成された場合には、`FORM Event` コマンドによって返されるオブジェクト内には追加の情報が提供されます。以下の表示には、どのフォームイベントが他のオブジェクトと共通で、どのフォームイベントが 4D View Pro エリアに特有のものであるのかが示されています: \ No newline at end of file diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md b/i18n/ja/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md index 64ae9d51ca2fe2..681e21c957da5c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md @@ -7,11 +7,11 @@ title: コードエディター ![](../assets/en/code-editor/code-editor-overview.png) -コードエディターはテキストエディターのように動作します。 メソッドやクラスの記述は通常、テキストの入力、コンポーネントの選択、そしてエクスプローラーやその他のウィンドウからのドラッグ操作によりおこないます。 メソッドの記述をより効率的におこなうために、タイプアヘッド機能も提供されています。 +コードエディターはテキストエディターのように動作します。メソッドやクラスの記述は通常、テキストの入力、コンポーネントの選択、そしてエクスプローラーやその他のウィンドウからのドラッグ操作によりおこないます。メソッドの記述をより効率的におこなうために、タイプアヘッド機能も提供されています。 メソッド、クラス、関数の内容はスクロールして確認することができ、最大32,000行、2GBのコードを記述できます。 -4Dのコードエディターは基本的なシンタックスチェック機能を提供します。 メソッド実行時には追加のエラーチェックがおこなわれます。 エラーハンドリングについての詳細は、[デバッガー](../Debugging/basics.md) の章を参照ください。 +4Dのコードエディターは基本的なシンタックスチェック機能を提供します。メソッド実行時には追加のエラーチェックがおこなわれます。エラーハンドリングについての詳細は、[デバッガー](../Debugging/basics.md) の章を参照ください。 :::note @@ -25,30 +25,30 @@ title: コードエディター コードエディターにはメソッドの実行と編集に関連する基本的な機能に素早くアクセスするためのツールバーがあります。 -| 機能 | アイコン | 説明 | -| -------------------- | --------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **メソッド実行** | ![execute-method](../assets/en/code-editor/execute-method.png) | コードエディターウィンドウには、そのエディターで開かれているメソッドを実行するためのボタンがあります。 このボタンに関連付けられているメニューから実行オプションを選択できます:
    • **新規プロセスで実行**: 新規プロセスを作成し、そのプロセス内でメソッドを実行します。
    • **新規プロセスで実行してデバッグ**: 新規プロセスを作成し、デバッガーウィンドウを開いてメソッドを表示します。
    • **アプリケーションプロセスで実行**: アプリケーションプロセス内でメソッドを実行します (アプリケーションプロセス内とは、レコード表示ウィンドウと同じプロセス内ということです)。
    • **アプリケーションプロセスで実行してデバッグ**: アプリケーションプロセス内でデバッガーを開き、メソッドを表示します。
    メソッド実行の詳細については、[プロジェクトメソッド](../Project/project-method-properties.md) を参照ください。 | -| **メソッド中を検索** | ![search-icon](../assets/en/code-editor/search.png) | [*検索* エリア](#検索と置換) を表示します。 | -| **マクロ** | ![macros-button](../assets/en/code-editor/macros.png) | 選択対象にマクロを挿入します。 ドロップダウンの矢印をクリックすると、利用可能なマクロがすべて表示されます。 マクロの作成とインスタンス化についの詳細は、 [マクロ](#マクロ) を参照ください。 | -| **すべて折りたたむ / すべて展開** | ![expand-collapse-button](../assets/en/code-editor/expand-collapse-all.png) | これらのボタンを使用してコードの制御フロー構造を折りたたんだり展開したりできます。 | -| **メソッド情報** | ![method-information-icon](../assets/en/code-editor/method-information.png) | [メソッドプロパティ](../Project/project-method-properties.md) ダイアログボックスを表示します(プロジェクトモードのみ)。 | -| **最新のクリップボードの値** | ![last-clipboard-values-icon](../assets/en/code-editor/last-clipboard-values.png) | 直近でクリップボードに保存された値を表示します。 | -| **クリップボード** | ![clipboard icons](../assets/en/code-editor/clipboards.png) | コードエディターで利用可能な 9つのクリップボードです。 クリップボードのアイコンをクリックするか、あるいはキーボードショートカットによって、 [これらのクリップボードを利用](#クリップボード) できます。 [環境設定オプション](Preferences/methods.md#options-1) を使用するとそれらを非表示にすることができます。 | -| **ナビゲーションドロップダウン** | ![code-navigation-icons](../assets/en/code-editor/tags.png) | 自動的にタグ付けされたコンテンツや手動で宣言されたマーカーを使用して、メソッドやクラス内を移動できます。 後述参照。 | +| 機能 | アイコン | 説明 | +| -------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **メソッド実行** | ![execute-method](../assets/en/code-editor/execute-method.png) | コードエディターウィンドウには、そのエディターで開かれているメソッドを実行するためのボタンがあります。このボタンに関連付けられているメニューから実行オプションを選択できます:
    • **新規プロセスで実行**: 新規プロセスを作成し、そのプロセス内でメソッドを実行します。
    • **新規プロセスで実行してデバッグ**: 新規プロセスを作成し、デバッガーウィンドウを開いてメソッドを表示します。
    • **アプリケーションプロセスで実行**: アプリケーションプロセス内でメソッドを実行します (アプリケーションプロセス内とは、レコード表示ウィンドウと同じプロセス内ということです)。
    • **アプリケーションプロセスで実行してデバッグ**: アプリケーションプロセス内でデバッガーを開き、メソッドを表示します。
    メソッド実行の詳細については、[プロジェクトメソッド](../Project/project-method-properties.md) を参照ください。 | +| **メソッド中を検索** | ![search-icon](../assets/en/code-editor/search.png) | [*検索* エリア](#検索と置換) を表示します。 | +| **マクロ** | ![macros-button](../assets/en/code-editor/macros.png) | 選択対象にマクロを挿入します。ドロップダウンの矢印をクリックすると、利用可能なマクロがすべて表示されます。マクロの作成とインスタンス化についの詳細は、 [マクロ](#マクロ) を参照ください。 | +| **すべて折りたたむ / すべて展開** | ![expand-collapse-button](../assets/en/code-editor/expand-collapse-all.png) | これらのボタンを使用してコードの制御フロー構造を折りたたんだり展開したりできます。 | +| **メソッド情報** | ![method-information-icon](../assets/en/code-editor/method-information.png) | [メソッドプロパティ](../Project/project-method-properties.md) ダイアログボックスを表示します(プロジェクトモードのみ)。 | +| **最新のクリップボードの値** | ![last-clipboard-values-icon](../assets/en/code-editor/last-clipboard-values.png) | 直近でクリップボードに保存された値を表示します。 | +| **クリップボード** | ![clipboard icons](../assets/en/code-editor/clipboards.png) | コードエディターで利用可能な 9つのクリップボードです。クリップボードのアイコンをクリックするか、あるいはキーボードショートカットによって、 [これらのクリップボードを利用](#クリップボード) できます。[環境設定オプション](Preferences/methods.md#options-1) を使用するとそれらを非表示にすることができます。 | +| **ナビゲーションドロップダウン** | ![code-navigation-icons](../assets/en/code-editor/tags.png) | 自動的にタグ付けされたコンテンツや手動で宣言されたマーカーを使用して、メソッドやクラス内を移動できます。後述参照。 | ### 編集エリア -このエリアを使用してコードを 入力/編集 します。 エディターは、コードテキストのインデントを自動で設定し、異なるシンタックス要素ごとに色を付けて、コード構造を明確に表示します。 +このエリアを使用してコードを 入力/編集 します。エディターは、コードテキストのインデントを自動で設定し、異なるシンタックス要素ごとに色を付けて、コード構造を明確に表示します。 -この編集エリアの表示はカスタマイズできます。 カスタマイズした内容は、すべてのコードエディターに反映されます: +この編集エリアの表示はカスタマイズできます。カスタマイズした内容は、すべてのコードエディターに反映されます: -| オプション | 説明 | 設定場所 | -| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **フォント** と **フォントサイズ** | 編集エリアの文字フォントとサイズを設定します | **環境設定** の [**メソッド**](../Preferences/methods.md) ページ、または **メソッド** メニューから **表示** > **フォントを大きく** / **フォントを小さく** で設定します。 | -| **シンタックス要素のスタイルとカラー** | 4Dランゲージの要素タイプごとに異なる色やスタイルを割り当てることができます。 また、編集エリアのインターフェースで使用されている色 (ハイライト、背景色など) を変更することができます。 | ランゲージ要素 (変数、キーワード等) 上でコンテキストメニューを表示し、 **スタイル** サブメニューからオプションを選択します。 または、**環境設定** の [**メソッド**](../Preferences/methods.md) ページでも設定できます。 | -| **スペース** | 単語間のスペースを空白ではなくピリオド (.) で表示することができます。 この設定は、すべてのコード要素 (コマンド名、変数、コメントなど) に適用されます。 | **メソッド > 表示 > ホワイトスペース** | -| **テーマ** | Dark または Light テーマが選択できるほか、カスタムテーマも設定可能です | **環境設定** > [**メソッド**](../Preferences/methods.md) | -| **コードインデント幅** | コードのインデント幅を設定します | **環境設定** > [**メソッド**](../Preferences/methods.md) | +| オプション | 説明 | 設定場所 | +| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **フォント** と **フォントサイズ** | 編集エリアの文字フォントとサイズを設定します | **環境設定** の [**メソッド**](../Preferences/methods.md) ページ、または **メソッド** メニューから **表示** > **フォントを大きく** / **フォントを小さく** で設定します。 | +| **シンタックス要素のスタイルとカラー** | 4Dランゲージの要素タイプごとに異なる色やスタイルを割り当てることができます。また、編集エリアのインターフェースで使用されている色 (ハイライト、背景色など) を変更することができます。 | ランゲージ要素 (変数、キーワード等) 上でコンテキストメニューを表示し、**スタイル** サブメニューからオプションを選択します。または、**環境設定** の [**メソッド**](../Preferences/methods.md) ページでも設定できます。 | +| **スペース** | 単語間のスペースを空白ではなくピリオド (.) で表示することができます。この設定は、すべてのコード要素 (コマンド名、変数、コメントなど) に適用されます。 | **メソッド > 表示 > ホワイトスペース** | +| **テーマ** | Dark または Light テーマが選択できるほか、カスタムテーマも設定可能です | **環境設定** > [**メソッド**](../Preferences/methods.md) | +| **コードインデント幅** | コードのインデント幅を設定します | **環境設定** > [**メソッド**](../Preferences/methods.md) | #### 更新行の通知 @@ -63,35 +63,34 @@ title: コードエディター ### リストエリア -リストエリアにはメソッドやクラスの記述に必要となるコード要素 (コマンド、定数、フォーム等) のリストを 1つ以上表示できます。 表示するリストの数や種類は変更することができます。 +リストエリアにはメソッドやクラスの記述に必要となるコード要素 (コマンド、定数、フォーム等) のリストを 1つ以上表示できます。表示するリストの数や種類は変更することができます。 -デフォルトで、コードエディターには 4つのリストが表示されます。 ウィンドウの右下にあるアイコンをクリックすると、すべてのリストを表示/非表示にすることができます。 ![](../assets/en/code-editor/show-hide-list.png) +デフォルトで、コードエディターには 4つのリストが表示されます。ウィンドウの右下にあるアイコンをクリックすると、すべてのリストを表示/非表示にすることができます。 ![](../assets/en/code-editor/show-hide-list.png) -リストの境界をドラッグして、リストの幅を相対的に調整できます。 また、編集エリアとの境界線をドラッグして、リストエリアの高さを調整できます。 +リストの境界をドラッグして、リストの幅を相対的に調整できます。また、編集エリアとの境界線をドラッグして、リストエリアの高さを調整できます。 - リストの項目をダブルクリックすると、現在のカーソル位置にその項目が挿入されます。 - リストの **表示内容を変更** するには、リストのタイトルエリアをクリックすると現れるポップアップメニューから表示したい項目を選択します。 ![](../assets/en/code-editor/list-area.png) -- リストを追加/削除するには、リストのタイトルエリアをクリックし、一番下の対応するメニューを選択します。 - **このリストを取り除く** コマンドは、リストが残り1つのときは無効になります。 すべてのリストを非表示にするには、ウィンドウ右下の **リストを表示\非表示** ボタンをクリックするか、**環境設定** でデフォルトで非表示にする必要があります。 +- リストを追加/削除するには、リストのタイトルエリアをクリックし、一番下の対応するメニューを選択します。**このリストを取り除く** コマンドは、リストが残り1つのときは無効になります。すべてのリストを非表示にするには、ウィンドウ右下の **リストを表示\非表示** ボタンをクリックするか、**環境設定** でデフォルトで非表示にする必要があります。 - すべてのウィンドウでリストを非表示にするには、次の方法があります: - メソッド メニューの **表示** > **リスト** オプションの選択を解除する - - **環境設定** の **メソッド** ページで **オプション** > **リスト表示** の選択を解除する。 **環境設定** ダイアログボックスでおこなった変更は、開かれているメソッドやクラス、関数を一度閉じて再度開いたときに反映されます。 + - **環境設定** の **メソッド** ページで **オプション** > **リスト表示** の選択を解除する。**環境設定** ダイアログボックスでおこなった変更は、開かれているメソッドやクラス、関数を一度閉じて再度開いたときに反映されます。 #### リストのタイプ コードエディターウィンドウのリストエリアには以下の項目を表示できます: -- **すべてのテーブルとフィールド**: データベーステーブルとフィールドの名前 (階層リスト形式)。 ダブルクリックでフィールド名をコードに挿入すると、4D はシンタックスに合わせてテーブル名も挿入します。 +- **すべてのテーブルとフィールド**: データベーステーブルとフィールドの名前 (階層リスト形式)。ダブルクリックでフィールド名をコードに挿入すると、4D はシンタックスに合わせてテーブル名も挿入します。 - **テーブル** (サブメニュー): サブメニューを使用して選択したテーブルのフィールド名。 - **カレントテーブル**: カレントテーブルのフィールド名 (トリガー、フォームメソッド、オブジェクトメソッドで利用可能)。 -- **プロジェクトフォーム**: データベースのプロジェクトフォーム名。 プロジェクトフォーム名をダブルクリックすると、4D はダブルクォートで囲まれたフォーム名を挿入します。 -- **テーブルフォーム**: データベースのテーブルフォーム名 (階層リスト形式)。 ダブルクリックでテーブルフォーム名を挿入すると、4D はテーブル名の後にセミコロン、そしてダブルクォートで囲まれたフォーム名を挿入します。 例: [Table];"Form"。 +- **プロジェクトフォーム**: データベースのプロジェクトフォーム名。プロジェクトフォーム名をダブルクリックすると、4D はダブルクォートで囲まれたフォーム名を挿入します。 +- **テーブルフォーム**: データベースのテーブルフォーム名 (階層リスト形式)。ダブルクリックでテーブルフォーム名を挿入すると、4D はテーブル名の後にセミコロン、そしてダブルクォートで囲まれたフォーム名を挿入します。例: [Table];"Form"。 - **メソッド**: データベースに定義されたプロジェクトメソッド名。 -- **すべてのフォルダー**: データベースに定義されたオブジェクトフォルダーおよびサブフォルダー名 (階層リスト形式)。 フォルダーは、カスタマイズされた方法でオブジェクトをグループ化するために使用します。 フォルダーは、エクスプローラーのホームページで管理します。 +- **すべてのフォルダー**: データベースに定義されたオブジェクトフォルダーおよびサブフォルダー名 (階層リスト形式)。フォルダーは、カスタマイズされた方法でオブジェクトをグループ化するために使用します。フォルダーは、エクスプローラーのホームページで管理します。 - **フォルダー** (サブメニュー): サブメニューを使用して選択されたフォルダーの中身。 - **マクロ**: データベースに定義されたマクロ名 ([マクロの作成と利用](#マクロ) 参照)。 - **コマンド**: 4Dランゲージコマンド (文字順)。 @@ -100,14 +99,14 @@ title: コードエディター - **定数**: 4D やプラグインに定義された定数 (テーマ別階層リスト形式)。 - **リスト**: リスト名。 - **すべてのプラグインコマンド**: データベースにインストールされたプラグインのコマンド名 (テーマ別階層リスト形式)。 -- **SQLキーワード**: 4D の SQLシンタックスパーサーが解釈可能なキーワードのリスト。 このリストには、コマンド (例: SELECT)、句 (例: WHERE)、関数 (ABS) が含まれます。 +- **SQLキーワード**: 4D の SQLシンタックスパーサーが解釈可能なキーワードのリスト。このリストには、コマンド (例: SELECT)、句 (例: WHERE)、関数 (ABS) が含まれます。 - **SQL関数**: 4D SQL 関数。 **注**: マクロ要素を除き、すべてのリストは文字順です。 #### テンプレートとして保存 -コードエディターウィンドウに設定したリストをテンプレートとして保存できます。 テンプレートとして保存すると、新規にコードエディターを開くたびにその設定が使用されます。 +コードエディターウィンドウに設定したリストをテンプレートとして保存できます。テンプレートとして保存すると、新規にコードエディターを開くたびにその設定が使用されます。 テンプレートには以下のパラメーターが保存されます: @@ -116,11 +115,11 @@ title: コードエディター - 各リストの位置と表示内容 - 各リストの相対幅 -設定をテンプレートとして保存するには、**メソッド** メニューから **テンプレートとして保存** を選択します。 テンプレートは即座に保存されます (ダイアログボックスは表示されません)。 設定は、4Dアプリケーションの **環境設定** に保存されます。 既存のテンプレートがあれば、上書きされます。 +設定をテンプレートとして保存するには、**メソッド** メニューから **テンプレートとして保存** を選択します。テンプレートは即座に保存されます (ダイアログボックスは表示されません)。設定は、4Dアプリケーションの **環境設定** に保存されます。既存のテンプレートがあれば、上書きされます。 ### ブレークポイントエリア -編集エリアの左にあるこのエリアでは、行番号を表示したり、ブレークポイントを直接挿入したりできます。 ブレークポイントはプログラムのデバッグに使用します。 ブレークポイントが設定された場所でコード実行が停止し、デバッガーを表示します。 +編集エリアの左にあるこのエリアでは、行番号を表示したり、ブレークポイントを直接挿入したりできます。ブレークポイントはプログラムのデバッグに使用します。ブレークポイントが設定された場所でコード実行が停止し、デバッガーを表示します。 ブレークポイントに関する詳細は、[デバッガー](../Debugging/breakpoints.md#ブレークポイント) の章を参照ください。 @@ -129,7 +128,7 @@ title: コードエディター - 行番号の表示/非表示のデフォルト設定は **環境設定** > **メソッド** ページの **行番号を表示** で設定します。 - 各ウィンドウの設定を切り替えるには、**メソッド** メニューの **表示** > **行番号** を選択します。 -行番号を表示すると、ウィンドウ内で特定の行を見つけやすくなります。 **メソッド** メニューの **行番号を指定して移動...** コマンドを利用する場合も、この行番号を使用します。 +行番号を表示すると、ウィンドウ内で特定の行を見つけやすくなります。**メソッド** メニューの **行番号を指定して移動...** コマンドを利用する場合も、この行番号を使用します。 このような検索は、実行時エラーで [コンパイラー](../Project/compiler.md) が示すエラー行を表示するのに便利です。 @@ -140,11 +139,11 @@ title: コードエディター ![](../assets/en/code-editor/status-bar.png) - **行**: 行番号 -- **階層**: 階層番号 (プログラム構造の階層レベル)。 先頭のレベルは 0 です。 この数値は、コード中でエラーが発生した際にインタープリターから提供されるのでデバッグ時に利用できます。 +- **階層**: 階層番号 (プログラム構造の階層レベル)。先頭のレベルは 0 です。この数値は、コード中でエラーが発生した際にインタープリターから提供されるのでデバッグ時に利用できます。 - **文字**: 行内の文字位置。 - ![](../assets/en/code-editor/show-hide-list.png): Hide/display lists. -4Dコマンド、関数や変数にカーソルを置くと、ステータスバーにコマンドのシンタックスが表示されます。 引数を入力したり選択したりすると、そのエリアには現在の引数が **太字** で表示されます: +4Dコマンド、関数や変数にカーソルを置くと、ステータスバーにコマンドのシンタックスが表示されます。引数を入力したり選択したりすると、そのエリアには現在の引数が **太字** で表示されます: ![](../assets/en/code-editor/status-bar-bold.png) ### ナビゲーションドロップダウン @@ -157,7 +156,7 @@ title: コードエディター #### コードのナビゲーション -ドロップダウンリストの項目をクリックすると、当該項目のコードの先頭行に移動します。 また、矢印キーで項目を選択し **Enter** キーで決定して移動することもできます。 +ドロップダウンリストの項目をクリックすると、当該項目のコードの先頭行に移動します。また、矢印キーで項目を選択し **Enter** キーで決定して移動することもできます。 #### 自動タグ @@ -192,7 +191,7 @@ title: コードエディター タグ宣言の際、文字の大小は区別されません。 `fixme:` と記述することもできます。 -`MARK:` タグの後にハイフンを付けると、コードエディターとドロップダウンメニューに区切り線が引かれます。 つまり、次のように書くと: +`MARK:` タグの後にハイフンを付けると、コードエディターとドロップダウンメニューに区切り線が引かれます。つまり、次のように書くと: ![mark-hyphen-image](../assets/en/code-editor/mark-hyphen-editor.png) @@ -200,7 +199,7 @@ title: コードエディター ![mark-hyphen-image](../assets/en/code-editor/dropdown-organize.png) -関数内のマーカーはドロップダウンリスト内でインデント (字下げ) されますが、関数末尾の `MARK:` タグの後に指示がない場合を除きます。 この場合は、インデントなしで表示されます。 +関数内のマーカーはドロップダウンリスト内でインデント (字下げ) されますが、関数末尾の `MARK:` タグの後に指示がない場合を除きます。この場合は、インデントなしで表示されます。 #### 表示順 @@ -223,46 +222,46 @@ macOSでは **Ctrl** の代わりに **Command** を使用してください。 ::: -| **ショートカット** | **アクション** | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | -| **選択およびナビゲージョン** | | -| ダブルクリック | ランゲージ要素名を選択します。 | -| [Alt]+ダブルクリック | スペースを含むランゲージ要素名 (定数、メソッドなど) を選択します。 | -| [Shift]+[右矢印] | 選択範囲を作成し、一文字ずつ右に拡大します。 または、選択範囲を一文字ずつ左から縮小します。 | -| [Shift]+[左矢印] | 選択範囲を作成し、一文字ずつ左に拡大します。または、選択範囲を一文字ずつ右から縮小します。 | -| [Shift]+[下矢印] | 選択範囲を作成し、上から下へと 1行ずつ拡大します。 | -| [Shift]+[上矢印] | 選択範囲を作成し、下から上へと 1行ずつ拡大します。 | -| [Ctrl]+[Shift]+[右矢印] | 選択範囲を単語単位で右方向に作成・拡大します。 | -| [Ctrl]+[Shift]+[左矢印] | 選択範囲を作成し、単語単位で左に拡大します。 または、選択範囲を単語単位で右から縮小します。 | -| [Ctrl]+[右矢印] | 挿入カーソルを単語単位で左から右に移動します。 | -| [Ctrl]+[左矢印] | 挿入カーソルを単語単位で右から左に移動します。 | -| [Alt]+[下矢印] | カーソルのある行を下へ移動します。 | -| [Alt]+[上矢印] | カーソルのある行を上へ移動します。 | -| [Home] | 挿入カーソルを行の先頭に移動します。 | -| [End] | 挿入カーソルを行の最後に移動します。 | -| [Ctrl]+[Home] | 挿入カーソルをメソッドの先頭に移動します。 | -| [Ctrl]+[End] | 挿入カーソルをメソッドの最後に移動します。 | -| [Shift]+[Home] | 行の先頭からカーソルまでを選択します。 | -| [Shift]+[End] | カーソルから行の最後までを選択します。 | -| [PgUp] | メソッドをページ単位で上にスクロールします (挿入カーソル位置は変更されません)。 | -| [PgDn] | メソッドをページ単位で下にスクロールします (挿入カーソル位置は変更されません)。 | -| [**イントロスペクション**](#定義を開く) | | -| [Ctrl]+K または [Alt]+ダブルクリック | [**定義を開く**](#定義を開く) コマンドと同じ。 | -| トークン上で \[Ctrl\] (Windows) または [Alt] を押しながらマウスオーバー | トークン (認識されたランゲージ要素) に下線を引きます。 下線が引かれたトークンをクリック = [**定義を開く**](#定義を開く) コマンドと同じ。 | -| [**検索と置換**](#検索と置換) | | -| [Ctrl]+F | 検索 | -| [Ctrl]+G | 次を検索 | -| [Ctrl]+[Shift]+G | 前を検索 | -| [Ctrl]+E | 次の同じものを検索 | -| [Ctrl]+[Shift]+E | 前の同じものを検索 | -| [Ctrl]+[Alt]+F | 置換 | -| [Ctrl]+[Alt]+G | 次を置換 | -| [Ctrl]+[Alt]+[Shift]+G | 前を置換 | -| [\*\* クリップボード\*\*](#クリップボード) | | -| クリップボードアイコン上で [Shift]+クリック または [Alt]+クリック | 選択したテキストをクリップボードにコピー | -| [Ctrl]+[Shift]+数値キー | 選択したテキストを、その番号のクリップボードにコピー | -| クリップボードアイコン上で [Ctrl]+クリック | カーソル位置にクリップボードの内容をペースト | -| [Ctrl]+数値キー | その番号のクリップボードの内容をカーソル位置にペースト | +| **ショートカット** | **アクション** | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| **選択およびナビゲージョン** | | +| ダブルクリック | ランゲージ要素名を選択します。 | +| [Alt]+ダブルクリック | スペースを含むランゲージ要素名 (定数、メソッドなど) を選択します。 | +| [Shift]+[右矢印] | 選択範囲を作成し、一文字ずつ右に拡大します。 または、選択範囲を一文字ずつ左から縮小します。 | +| [Shift]+[左矢印] | 選択範囲を作成し、一文字ずつ左に拡大します。または、選択範囲を一文字ずつ右から縮小します。 | +| [Shift]+[下矢印] | 選択範囲を作成し、上から下へと 1行ずつ拡大します。 | +| [Shift]+[上矢印] | 選択範囲を作成し、下から上へと 1行ずつ拡大します。 | +| [Ctrl]+[Shift]+[右矢印] | 選択範囲を単語単位で右方向に作成・拡大します。 | +| [Ctrl]+[Shift]+[左矢印] | 選択範囲を作成し、単語単位で左に拡大します。 または、選択範囲を単語単位で右から縮小します。 | +| [Ctrl]+[右矢印] | 挿入カーソルを単語単位で左から右に移動します。 | +| [Ctrl]+[左矢印] | 挿入カーソルを単語単位で右から左に移動します。 | +| [Alt]+[下矢印] | カーソルのある行を下へ移動します。 | +| [Alt]+[上矢印] | カーソルのある行を上へ移動します。 | +| [Home] | 挿入カーソルを行の先頭に移動します。 | +| [End] | 挿入カーソルを行の最後に移動します。 | +| [Ctrl]+[Home] | 挿入カーソルをメソッドの先頭に移動します。 | +| [Ctrl]+[End] | 挿入カーソルをメソッドの最後に移動します。 | +| [Shift]+[Home] | 行の先頭からカーソルまでを選択します。 | +| [Shift]+[End] | カーソルから行の最後までを選択します。 | +| [PgUp] | メソッドをページ単位で上にスクロールします (挿入カーソル位置は変更されません)。 | +| [PgDn] | メソッドをページ単位で下にスクロールします (挿入カーソル位置は変更されません)。 | +| [**イントロスペクション**](#定義を開く) | | +| [Ctrl]+K または [Alt]+ダブルクリック | [**定義を開く**](#定義を開く) コマンドと同じ。 | +| トークン上で \[Ctrl\] (Windows) または [Alt] を押しながらマウスオーバー | トークン (認識されたランゲージ要素) に下線を引きます。下線が引かれたトークンをクリック = [**定義を開く**](#定義を開く) コマンドと同じ。 | +| [**検索と置換**](#検索と置換) | | +| [Ctrl]+F | 検索 | +| [Ctrl]+G | 次を検索 | +| [Ctrl]+[Shift]+G | 前を検索 | +| [Ctrl]+E | 次の同じものを検索 | +| [Ctrl]+[Shift]+E | 前の同じものを検索 | +| [Ctrl]+[Alt]+F | 置換 | +| [Ctrl]+[Alt]+G | 次を置換 | +| [Ctrl]+[Alt]+[Shift]+G | 前を置換 | +| [\*\* クリップボード\*\*](#クリップボード) | | +| クリップボードアイコン上で [Shift]+クリック または [Alt]+クリック | 選択したテキストをクリップボードにコピー | +| [Ctrl]+[Shift]+数値キー | 選択したテキストを、その番号のクリップボードにコピー | +| クリップボードアイコン上で [Ctrl]+クリック | カーソル位置にクリップボードの内容をペースト | +| [Ctrl]+数値キー | その番号のクリップボードの内容をカーソル位置にペースト | :::tip @@ -274,9 +273,9 @@ macOSでは **Ctrl** の代わりに **Command** を使用してください。 コードエディターへの入力と編集には標準のテキスト編集テクニックを使用します。 -コードエディターは、シンタックス要素ごとに、指定されたスタイルやカラーを使用した表示をおこないます。 この設定は[変更できます](#編集エリア)。 入力を確定するごとに、また改行を挿入する際に、4D は行のテキストを評価して適切な表示フォーマットを適用します。 また、If や End if などのプログラム構造が使用された場合、4D は自動でインデントをおこないます。 +コードエディターは、シンタックス要素ごとに、指定されたスタイルやカラーを使用した表示をおこないます。この設定は[変更できます](#編集エリア)。入力を確定するごとに、また改行を挿入する際に、4D は行のテキストを評価して適切な表示フォーマットを適用します。また、If や End if などのプログラム構造が使用された場合、4D は自動でインデントをおこないます。 -行に移動するには矢印キーを使用します。 矢印による移動では行の評価がおこなわれないため、クリックよりもすばやく移動できます。 +行に移動するには矢印キーを使用します。矢印による移動では行の評価がおこなわれないため、クリックよりもすばやく移動できます。 Windows では、日本語や中国語を入力するために IME (Input Method Editor) がサポートされています。 @@ -291,18 +290,17 @@ Windows では、日本語や中国語を入力するために IME (Input Method :::caution -バックスラッシュ文字 (`\`) は、[Windows のパス名](../Concepts/paths.md#windows) において区切り文字として使用されます。 通常、4D はコードエディターに入力された Windows のパス名のバックスラッシュを自動で \\ に置き換えることで、これを正しく解釈します。 たとえば、`C:\MyDocuments` と入力すると `C:\\MyDocuments` に変換されます。 しかし、`"C:\MyDocuments\New"` と入力した場合、4D は `"C:\\MyDocuments\New"`と表示します。 この場合、二番目のバックスラッシュは`\N` ([行送り](../Concepts/quick-tour.md#エスケープシーケンス)) と解釈されてしまいます。 従って、4D のエスケープシーケンスで使用される文字の前にバックスラッシュを挿入したいときは、`\\` のようにバックスラッシュを 2つ入力しなければなりません。 +バックスラッシュ文字 (`\`) は、[Windows のパス名](../Concepts/paths.md#windows) において区切り文字として使用されます。通常、4D はコードエディターに入力された Windows のパス名のバックスラッシュを自動で \\ に置き換えることで、これを正しく解釈します。たとえば、`C:\MyDocuments` と入力すると `C:\\MyDocuments` に変換されます。しかし、`"C:\MyDocuments\New"` と入力した場合、4D は `"C:\\MyDocuments\New"`と表示します。この場合、二番目のバックスラッシュは`\N` ([行送り](../Concepts/quick-tour.md#エスケープシーケンス)) と解釈されてしまいます。従って、4D のエスケープシーケンスで使用される文字の前にバックスラッシュを挿入したいときは、`\\` のようにバックスラッシュを 2つ入力しなければなりません。 ::: ### ドラッグ&ドロップ -エクスプローラーから、テーブル、フィールド、フォーム、プロジェクトメソッド、定数、4Dコマンドをドラッグ&ドロップすることができます。 ドラッグ&ドロップをおこなうと、4D は常に正しいシンタックスでオブジェクトを挿入します。 たとえば、`[People]`テーブルから "FirstName" フィールドをドロップすると、コードエディターには `[People]FirstName` が表示されます。 同様に、`[People]`テーブルから "Input" フォームをドロップすると、`[People];"Input"` と挿入されます。 +エクスプローラーから、テーブル、フィールド、フォーム、プロジェクトメソッド、定数、4Dコマンドをドラッグ&ドロップすることができます。ドラッグ&ドロップをおこなうと、4D は常に正しいシンタックスでオブジェクトを挿入します。たとえば、`[People]`テーブルから "FirstName" フィールドをドロップすると、コードエディターには `[People]FirstName` が表示されます。同様に、`[People]`テーブルから "Input" フォームをドロップすると、`[People];"Input"` と挿入されます。 -エクスプローラーの **コマンド** ページからコマンドをドラッグすると、コードエディターにはシンタックス (すべての引数が含まれる) も挿入されます。 この機能は、コマンドが期待する引数を確認するために存在します。 挿入されたシンタックスは、用途に合わせて編集できます。 +エクスプローラーの **コマンド** ページからコマンドをドラッグすると、コードエディターにはシンタックス (すべての引数が含まれる) も挿入されます。この機能は、コマンドが期待する引数を確認するために存在します。挿入されたシンタックスは、用途に合わせて編集できます。 -メソッド・クラス・関数内あるいはその間のドラッグ&ドロップも可能です。 コードエディターでテキストの一部を選択すると、ドラッグ&ドロップメカニズムが有効になります。 -デフォルトではドラッグ&ドロップによりテキストが **移動** されます。 **コピー** をおこなうには **Ctrl** キー (Windows) または **Option** キー (macOS) を押しながら操作します。 +メソッド・クラス・関数内あるいはその間のドラッグ&ドロップも可能です。コードエディターでテキストの一部を選択すると、ドラッグ&ドロップメカニズムが有効になります。デフォルトではドラッグ&ドロップによりテキストが **移動** されます。**コピー** をおこなうには **Ctrl** キー (Windows) または **Option** キー (macOS) を押しながら操作します。 ### 文字種の変換 @@ -310,13 +308,13 @@ Windows では、日本語や中国語を入力するために IME (Input Method **メソッド** メニューの **大文字/小文字** サブメニュー、またはエディターのコンテキストメニューを使用して、選択したテキストの文字の大小を変更することができます: - **大文字** / **小文字**: 選択した文字を大文字または小文字に変換します。 -- **キャメルケース (先頭小文字)** / **キャメルケース (先頭大文字)** : 選択した文字をキャメルケースに変換します。 これは複数の単語を結合し、頭文字をそれぞれ大文字に変換するものです。 このような表記は、変数の命名法としてよく用いられます。 hireDate と PurchaseDate は、キャメルケース表記の 2つのバリエーションの例です。 +- **キャメルケース (先頭小文字)** / **キャメルケース (先頭大文字)** : 選択した文字をキャメルケースに変換します。これは複数の単語を結合し、頭文字をそれぞれ大文字に変換するものです。このような表記は、変数の命名法としてよく用いられます。 hireDate と PurchaseDate は、キャメルケース表記の 2つのバリエーションの例です。 テキストにこれらのコマンドを適用すると、スペースと "_" 文字は取り除かれ、 各単語の先頭文字が大文字になります。 ### 式の入れ替え -**式の入れ替え** 機能を使用すると、代入式の左辺と右辺が入れ替わります。 たとえば: +**式の入れ替え** 機能を使用すると、代入式の左辺と右辺が入れ替わります。たとえば: `variable1:=variable2` @@ -324,17 +322,17 @@ Windows では、日本語や中国語を入力するために IME (Input Method `variable2:=variable1` -この機能は、プロパティを取得したり設定したりする一連の代入式を逆にする場合や、入力間違いを訂正するのに便利です。 この機能を使用するには対象の行を選択し、**メソッド** メニューまたはエリアのコンテキストメニューから **式の入れ替え** コマンドを選択します。 選択された行のうち、値を代入する行だけが更新されます。 +この機能は、プロパティを取得したり設定したりする一連の代入式を逆にする場合や、入力間違いを訂正するのに便利です。この機能を使用するには対象の行を選択し、**メソッド** メニューまたはエリアのコンテキストメニューから **式の入れ替え** コマンドを選択します。選択された行のうち、値を代入する行だけが更新されます。 ### クリップボード 標準のコピー/ペースト処理に加え、4D は異なるクリップボードの内容を操作するための 2つの追加機能を提供しています: -- 4D は現在のセッション中にコードエディター中でおこなわれた最新の 10個の "コピー" や "カット" アクションをメモリに格納します。 格納されたこれらの内容はいつでも再利用できます。 これには、コードエディターのコンテキストメニューから **クリップボード履歴** コマンドを使用するか、ツールバーの "最新のクリップボードの値" ボタンを使用します: +- 4D は現在のセッション中にコードエディター中でおこなわれた最新の 10個の "コピー" や "カット" アクションをメモリに格納します。格納されたこれらの内容はいつでも再利用できます。これには、コードエディターのコンテキストメニューから **クリップボード履歴** コマンドを使用するか、ツールバーの "最新のクリップボードの値" ボタンを使用します: ![](../assets/en/code-editor/last-clipboard-values-2.png) - コピー/カットされたテキストの最初の数文字が表示されます。 項目を選択すると、保存されていたテキストがカーソル位置に挿入されます。 + コピー/カットされたテキストの最初の数文字が表示されます。項目を選択すると、保存されていたテキストがカーソル位置に挿入されます。 - また、9つの番号付きクリップボードが用意されており、コードエディターツールバーのボタンあるいは [キーボードショートカット](#ショートカット) で使用します: @@ -342,7 +340,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method ### 行の移動 -カーソルのある行を選択せずに、上下に移動することができます。これには、**メソッド** メニューの **行を上に移動** / **行を下に移動** コマンドを使用します。 また、**Alt/Option** + **上矢印** / **下矢印** の [キーボードショートカット](#ショートカット) でも同様に操作できます。 +カーソルのある行を選択せずに、上下に移動することができます。これには、**メソッド** メニューの **行を上に移動** / **行を下に移動** コマンドを使用します。また、**Alt/Option** + **上矢印** / **下矢印** の [キーボードショートカット](#ショートカット) でも同様に操作できます。 ### 自動補完機能 @@ -365,7 +363,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method ![](../assets/en/code-editor/autocomplete-popup.png) -リストは文字順になっています。 ダブルクリックまたは矢印キーで値を選択してから、**Enter**、**Carriage Return** または **Tab** キーを押すと、その値が挿入されます。 +リストは文字順になっています。ダブルクリックまたは矢印キーで値を選択してから、**Enter**、**Carriage Return** または **Tab** キーを押すと、その値が挿入されます。 デフォルトでは、値を選択したあとに区切り文字 `( ; : = < [ {` を入力すると、自動で値の候補も (区切り文字の前に) 挿入されます。 値のあとには区切り文字がつき、データの入力の準備ができた状態になります。 @@ -373,9 +371,9 @@ Windows では、日本語や中国語を入力するために IME (Input Method > この区切り文字を使った候補の自動入力は、**環境設定** の **メソッド** > **オプション** で無効にできます。 -**Esc** キーを押すとポップアップが閉じられます。また、ポップアップが開いたままの状態で入力を継続することもできます。 文字が入力されるに伴い、ポップアップで提案される内容も更新されます。 +**Esc** キーを押すとポップアップが閉じられます。また、ポップアップが開いたままの状態で入力を継続することもできます。文字が入力されるに伴い、ポップアップで提案される内容も更新されます。 -入力された文字が複数の異なるオブジェクトに対応する場合、それらは対応するスタイルでリスト中に表示されます。 以下のタイプのオブジェクトが表示されます: +入力された文字が複数の異なるオブジェクトに対応する場合、それらは対応するスタイルでリスト中に表示されます。以下のタイプのオブジェクトが表示されます: - 4Dコマンド - SQLコマンド @@ -390,7 +388,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method - SQLキーワード - マクロ (< > の間に表示) -> 使いやすさの観点から、**定数**、**変数 (ローカルあるいはインタープロセス) およびオブジェクト属性**、**テーブル**、**プロトタイプ** に関するリストの自動表示を無効にできます。 これらのオプションは **環境設定** の **メソッド** > **オプション** にあります。 +> 使いやすさの観点から、**定数**、**変数 (ローカルあるいはインタープロセス) およびオブジェクト属性**、**テーブル**、**プロトタイプ** に関するリストの自動表示を無効にできます。これらのオプションは **環境設定** の **メソッド** > **オプション** にあります。 #### オブジェクトのプロパティ名 @@ -407,7 +405,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method ![](../assets/en/code-editor/autocomplete-object-attributes-2.png) -提案の一覧は、コード変更中にも動的に更新されます。 ウィンドウ間を切り替えるときに、新しい/編集されたプロパティ名は常にグローバルなリストに追加されます。 このリストはエクスプローラー内でメソッドやクラス、関数をプレビューする際にも更新されます。 +提案の一覧は、コード変更中にも動的に更新されます。ウィンドウ間を切り替えるときに、新しい/編集されたプロパティ名は常にグローバルなリストに追加されます。このリストはエクスプローラー内でメソッドやクラス、関数をプレビューする際にも更新されます。 データベースが再起動されると、リストは再度初期化されます。 @@ -421,7 +419,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method ![search-area](../assets/en/code-editor/search-area.png) -このエリアを表示するには、[ツールバー](#ツールバー) の **メソッド中を検索** アイコンをクリックするか、[ショートカット](#ショートカット) または **編集** > **検索** サブメニューのコマンドで検索/置換機能を選択します。 このエリアは、ツールバー右端の **x** ボタンをクリックすることで、いつでも閉じることができます。 +このエリアを表示するには、[ツールバー](#ツールバー) の **メソッド中を検索** アイコンをクリックするか、[ショートカット](#ショートカット) または **編集** > **検索** サブメニューのコマンドで検索/置換機能を選択します。このエリアは、ツールバー右端の **x** ボタンをクリックすることで、いつでも閉じることができます。 :::tip @@ -435,42 +433,42 @@ Windows では、日本語や中国語を入力するために IME (Input Method このエリア内で定義された検索は、同じウィンドウ内のコードに対して適用されます。 -**検索** 入力エリアには、検索したい文字列を入力します: このエリアはコンボボックスで、最新の検索文字列を 10個、4D が終了するまで保持します。 **検索...** コマンドを選択する前にエディター中でテキストをハイライトすると、このエリアにそのテキストが表示されます。 このテキストを使用するか、別のテキストに置き換えることができます。 +**検索** 入力エリアには、検索したい文字列を入力します: このエリアはコンボボックスで、最新の検索文字列を 10個、4D が終了するまで保持します。**検索...** コマンドを選択する前にエディター中でテキストをハイライトすると、このエリアにそのテキストが表示されます。このテキストを使用するか、別のテキストに置き換えることができます。 -文字列を入力または選択すると、同ウィンドウ内で見つかったすべての検出箇所がハイライト表示され、エリアの右側には検出件数が表示されます。 また、検出件数のうちの、現在のカーソルの位置も表示します。 +文字列を入力または選択すると、同ウィンドウ内で見つかったすべての検出箇所がハイライト表示され、エリアの右側には検出件数が表示されます。また、検出件数のうちの、現在のカーソルの位置も表示します。 -**Enter** キーを押すと、カーソルに最も近い箇所を選択します。 また、**次へ / 前へ** ボタン ![find-next-previous](../assets/en/code-editor/find-next.png) をクリックして、現在のカーソル位置からメソッドの先頭または最後に向かって、すべての検出箇所を順次選択することができます。[**編集** メニュー](#ショートカット) の **次を検索** と **前を検索** コマンドを使用することもできます。 +**Enter** キーを押すと、カーソルに最も近い箇所を選択します。また、**次へ / 前へ** ボタン ![find-next-previous](../assets/en/code-editor/find-next.png) をクリックして、現在のカーソル位置からメソッドの先頭または最後に向かって、すべての検出箇所を順次選択することができます。[**編集** メニュー](#ショートカット) の **次を検索** と **前を検索** コマンドを使用することもできます。 #### オプション -- **大文字小文字を区別** ![case-sensitive](../assets/en/code-editor/case-sensitive.png): 検索エリアに入力された文字の大小を区別して検索します。 このオプションでは、アクセントも区別されます。 たとえば、"MyVar" を検索した場合 "myVar" は検出されませんし、"dej" を検索した場合 "déjà" は見つかりません。 -- **単語全体** ![full-word](../assets/en/code-editor/full-word.png): 検索文字列を単語として一致するものを検索します。 たとえば、"client" を検索する場合、"clients" や "myclient" は検出されません。 デフォルトでは、このオプションは無効です。 したがって、"var" を検索すると、"Myvar"、"variation" などが検出されます。 +- **大文字小文字を区別** ![case-sensitive](../assets/en/code-editor/case-sensitive.png): 検索エリアに入力された文字の大小を区別して検索します。このオプションでは、アクセントも区別されます。たとえば、"MyVar" を検索した場合 "myVar" は検出されませんし、"dej" を検索した場合 "déjà" は見つかりません。 +- **単語全体** ![full-word](../assets/en/code-editor/full-word.png): 検索文字列を単語として一致するものを検索します。たとえば、"client" を検索する場合、"clients" や "myclient" は検出されません。デフォルトでは、このオプションは無効です。 したがって、"var" を検索すると、"Myvar"、"variation" などが検出されます。 ### 置換 -*検索* エリアの左にある **v** トグルボタンをクリックすると、*置換* エリアの表示/非表示を切り替えることができます。 **編集** メニューで **検索** > \*\* 置換...\*\* を選択するか、**Ctrl+Alt+F** (Windows) / **Cmd+Alt+F** (macOS) のショートカットも使用できます。 +*検索* エリアの左にある **v** トグルボタンをクリックすると、*置換* エリアの表示/非表示を切り替えることができます。**編集** メニューで **検索** > \*\* 置換...\*\* を選択するか、**Ctrl+Alt+F** (Windows) / **Cmd+Alt+F** (macOS) のショートカットも使用できます。 *置換* エリアには、上の検索エリアの文字を置換する文字列を入力します。 -**置換** ボタンをクリックすると、設定したオプションに応じて検索をおこない、最初に見つかった語句に対する置換が実行されます。 4D は現在のカーソル位置から検索を実行します。 その後は、[**編集** メニュー](#ショートカット) の **次を置換** / **前を置換** コマンドを使用して、同じ条件の検索/置換を繰り返すことができます。 +**置換** ボタンをクリックすると、設定したオプションに応じて検索をおこない、最初に見つかった語句に対する置換が実行されます。 4D は現在のカーソル位置から検索を実行します。その後は、[**編集** メニュー](#ショートカット) の **次を置換** / **前を置換** コマンドを使用して、同じ条件の検索/置換を繰り返すことができます。 **すべて置換** ボタンをクリックすると、開かれているメソッド内で検索条件に合致するすべての語句が一度に置換されます。 ### 同じものを検索 -**同じものを検索** コマンドを使用すると、選択した文字列と同じ文字列を検索することができます。 このコマンドは、コードエディター内で一文字以上選択した場合に利用可能となります。 +**同じものを検索** コマンドを使用すると、選択した文字列と同じ文字列を検索することができます。このコマンドは、コードエディター内で一文字以上選択した場合に利用可能となります。 実行される検索は、現在のコードエディターウィンドウ内の "次を検索" と同じです。 -**次の同じものを検索** と **前の同じものを検索** コマンドは、選択された文字列と *厳密に* 一致する文字列を検索するのに使用されます。 たとえば、文字の大小は一致しなければなりません。 +**次の同じものを検索** と **前の同じものを検索** コマンドは、選択された文字列と *厳密に* 一致する文字列を検索するのに使用されます。たとえば、文字の大小は一致しなければなりません。 ### すべてをブックマーク -**編集** > **検索** > **すべてをブックマーク** コマンドは、検索または置換ダイアログボックスで検索がすでに定義されている場合に利用可能となります。 このコマンドを選択すると、4D は現在設定されている検索条件に当てはまる行にブックマークを設定します。 これにより、すべての検索結果に簡単に印をつけられます。 詳細については [ブックマーク](#ブックマーク) を参照ください。 +**編集** > **検索** > **すべてをブックマーク** コマンドは、検索または置換ダイアログボックスで検索がすでに定義されている場合に利用可能となります。このコマンドを選択すると、4D は現在設定されている検索条件に当てはまる行にブックマークを設定します。これにより、すべての検索結果に簡単に印をつけられます。詳細については [ブックマーク](#ブックマーク) を参照ください。 ## 警告とエラー -実行エラーを防ぐため、入力されたコードのシンタックス、一貫性、および構造が 4Dコードライブチェッカーにより自動的にチェックされます。 たとえば、コードライブチェッカーは、適切な閉じる括弧がないこと、または不明なデータクラス属性を使用したことを検出できます。 +実行エラーを防ぐため、入力されたコードのシンタックス、一貫性、および構造が 4Dコードライブチェッカーにより自動的にチェックされます。たとえば、コードライブチェッカーは、適切な閉じる括弧がないこと、または不明なデータクラス属性を使用したことを検出できます。 コードライブチェッカーは 3つの段階で作動します: @@ -478,18 +476,18 @@ Windows では、日本語や中国語を入力するために IME (Input Method - コンパイラーで [シンタックスをチェック](../Project/compiler.md#シンタックスチェック) するとき - プロジェクトを [コンパイル](../Project/compiler.md) するとき -4D はコードのシンタックスが正しいかどうかを自動的にチェックします。 シンタックスが正しくない場合、4D はそのことを示す記号を表示します 。 +4D はコードのシンタックスが正しいかどうかを自動的にチェックします。シンタックスが正しくない場合、4D はそのことを示す記号を表示します 。 2種類の記号が表示されます: -- **[警告](../Project/compiler.md#warnings)** ![警告](../assets/en/code-editor/incorrect-expression-icon.png): 警告は、実行エラーにつながる可能性のあるステートメントに注意を促すためのものです。 警告によりコンパイルが中断されることはありません。 -- **エラー** ![error](../assets/en/code-editor/error-icon.png): エラーとは、コードの正しい実行を妨げる異常のことです。 これらを修正しないかぎり、プロジェクトはコンパイルされません。 +- **[警告](../Project/compiler.md#warnings)** ![警告](../assets/en/code-editor/incorrect-expression-icon.png): 警告は、実行エラーにつながる可能性のあるステートメントに注意を促すためのものです。警告によりコンパイルが中断されることはありません。 +- **エラー** ![error](../assets/en/code-editor/error-icon.png): エラーとは、コードの正しい実行を妨げる異常のことです。これらを修正しないかぎり、プロジェクトはコンパイルされません。 マウスを記号に重ねるとエラーの内容が表示されます: ![](../assets/en/code-editor/incorrect-expression-message.png) -コードライブチェッカーは、コードを入力するときに作動します。 メソッドやクラス、関数の行にエラーがあると表示された場合には、それを修正してください。 正しく修正されると、4D はエラー記号を削除します。 保存したりウィンドウを閉じたりしたときはメソッド全体が評価されます。 +コードライブチェッカーは、コードを入力するときに作動します。メソッドやクラス、関数の行にエラーがあると表示された場合には、それを修正してください。正しく修正されると、4D はエラー記号を削除します。保存したりウィンドウを閉じたりしたときはメソッド全体が評価されます。 コードを入力する際、テンキー側の **Enter** を押すと、改行されることなく現在の行のシンタックスチェックをおこなえます。 4D は行を評価し、フォーマットし、エラーがあればそれを表示し、挿入カーソルを行の最後に移動します。 @@ -498,7 +496,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method - 基本的なシンタックスエラー (演算子が間違っている、スペルミスなど) - ステートメントの構造 (`If`, `End if` など) - 括弧やクォーテーションマークなどの対応 (ペアになっているか) (後述の tip 参照) -- 属性や関数の呼び出しが、モデル (ORDA) やユーザークラス定義に準じていること。 たとえば、データクラスの計算属性への呼び出しが宣言された同属性の型と互換性がない場合に、コードライブチェッカーはエラーを生成します。 +- 属性や関数の呼び出しが、モデル (ORDA) やユーザークラス定義に準じていること。たとえば、データクラスの計算属性への呼び出しが宣言された同属性の型と互換性がない場合に、コードライブチェッカーはエラーを生成します。 :::tip @@ -510,11 +508,11 @@ Windows では、日本語や中国語を入力するために IME (Input Method ::: -コードライブチェッカーは、実行時にのみ発生するようなエラーは検出することができません。 実行時エラーは、コードが実行されているときに 4D が検出します。 しかし、エラー検出にあたっては、[コンパイラー](../Project/compiler.md) も不可欠な助けを提供していることに留意してください。 +コードライブチェッカーは、実行時にのみ発生するようなエラーは検出することができません。実行時エラーは、コードが実行されているときに 4D が検出します。しかし、エラー検出にあたっては、[コンパイラー](../Project/compiler.md) も不可欠な助けを提供していることに留意してください。 ## ヘルプTips -コードエディターは、カーソルの位置に応じた様々な情報をヘルプTip で提供します。 これらは、オブジェクトにマウスオーバーすると表示されます。 +コードエディターは、カーソルの位置に応じた様々な情報をヘルプTip で提供します。これらは、オブジェクトにマウスオーバーすると表示されます。 :::tip @@ -535,25 +533,24 @@ Windows では、日本語や中国語を入力するために IME (Input Method - **プロジェクトメソッドまたは関数**: プロジェクトメソッドまたはクラス関数にマウスを重ねると、以下の内容がヘルプTip に表示されます: - エクスプローラーで設定されたコメント、 - - または、メソッドまたはクラス関数の先頭コメント (// で始まる行、あるいは /*...*/ コメントブロック)。 メソッドの先頭に、そのメソッドや引数の説明をコメント形式で記述するのは一般的な方法です。 エクスプローラーコメントを削除すれば、こちらの内容をヘルプTip に表示できます。 - メソッドの先頭コメント: + - または、メソッドまたはクラス関数の先頭コメント (// で始まる行、あるいは /*...*/ コメントブロック)。メソッドの先頭に、そのメソッドや引数の説明をコメント形式で記述するのは一般的な方法です。エクスプローラーコメントを削除すれば、こちらの内容をヘルプTip に表示できます。メソッドの先頭コメント: ![](../assets/en/code-editor/comments-method.png) 別のメソッドからこのメソッドを呼び出したときのヘルプTip: ![](../assets/en/code-editor/help-tip.png) -- また、 **専用のドキュメントファイル** を `.md` という名前で `/documentation` フォルダーに作成することも可能です。 [コードエディターでドキュメンテーションを表示する](../Project/documentation.md#コードエディターでドキュメンテーションを表示する) を参照ください。 [コードエディターでドキュメンテーションを表示する](../Project/documentation.md#コードエディターでドキュメンテーションを表示する) を参照ください。 +- また、 **専用のドキュメントファイル** を `.md` という名前で `/documentation` フォルダーに作成することも可能です。 [コードエディターでドキュメンテーションを表示する](../Project/documentation.md#コードエディターでドキュメンテーションを表示する) を参照ください。[コードエディターでドキュメンテーションを表示する](../Project/documentation.md#コードエディターでドキュメンテーションを表示する) を参照ください。 ## コメント/アンコメント -4Dランゲージは [コメント](../Concepts/quick-tour.md#コメント) をサポートしています。コメントとは、コード内の実行されない行のことです。 コードエディターは、コメントに特定のスタイルを適用しません。 コメントの長さは、各行につき最大32,000文字までです。 +4Dランゲージは [コメント](../Concepts/quick-tour.md#コメント) をサポートしています。コメントとは、コード内の実行されない行のことです。コードエディターは、コメントに特定のスタイルを適用しません。コメントの長さは、各行につき最大32,000文字までです。 コメントの書き方は 2通りあります: `//コメント` (単一行のコメント) と `/*コメント*/` (インラインコメントや複数行のコメントブロック)。 -`/` 文字を手入力することで、コメントを作成できます。 あるいは、**メソッド** メニューやコードエディターのコンテキストメニューにある **コメント/アンコメント** コマンドを使用すると、選択した (複数の) 行を単一行コメント化およびその逆の操作をおこなえます。 このコマンドを使用するには適用したい行を選択し、**コメント/アンコメント** を選択します: +`/` 文字を手入力することで、コメントを作成できます。あるいは、**メソッド** メニューやコードエディターのコンテキストメニューにある **コメント/アンコメント** コマンドを使用すると、選択した (複数の) 行を単一行コメント化およびその逆の操作をおこなえます。このコマンドを使用するには適用したい行を選択し、**コメント/アンコメント** を選択します: ![](../assets/en/code-editor/comment-uncomment-1.png) --> ![](../assets/en/code-editor/comment-uncomment-2.png) -選択行がアクティブなコードの場合、**コメント** コマンドが適用されます。 選択行にアクティブコードとコメントの両方が含まれる場合、すべての行に "//" が追加されます。 この動作により、複数回コマンドを適用しても、その後のアンコメント時に初期のコメントが維持されます。 選択行がすべてコメントのみの場合、**アンコメント** コマンドが適用されます。 +選択行がアクティブなコードの場合、**コメント** コマンドが適用されます。選択行にアクティブコードとコメントの両方が含まれる場合、すべての行に "//" が追加されます。 この動作により、複数回コマンドを適用しても、その後のアンコメント時に初期のコメントが維持されます。選択行がすべてコメントのみの場合、**アンコメント** コマンドが適用されます。 > **コメント/アンコメント** コマンドは行全体に適用されます。行の一部のみをコメント化することはできません。 @@ -569,7 +566,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method 展開ボタン [...] の上にマウスを重ねるとヘルプTip が表示され、非表示になっているコードの先頭部分を見ることができます。 -折りたたまれたコード部分は、選択・コピー・ペースト・削除することができます。 折りたたみに含まれるすべての行が操作の対象となります。 このようなコードがペーストされると、自動で展開されます。 +折りたたまれたコード部分は、選択・コピー・ペースト・削除することができます。折りたたみに含まれるすべての行が操作の対象となります。このようなコードがペーストされると、自動で展開されます。 コードを折りたたみ、展開する方法はいくつかあります: @@ -577,8 +574,8 @@ Windows では、日本語や中国語を入力するために IME (Input Method - **メソッド** > **折りたたみ/展開** サブメニューを使用する: - **選択部を折りたたむ** / **選択部を展開する**: 選択されたテキスト中にあるすべてのコードを折りたたむまたは展開します。 - - **現在のレベルを折りたたむ** / **現在のレベルを展開する**: カーソルが存在するレベルのコードを折りたたむまたは展開します。 このコマンドはエディターの **コンテキストメニュー** からもアクセスできます。 - - **すべてを折りたたむ** / **すべてを展開する**: メソッド中のすべてのループと条件ブロックを折りたたむまたは展開します。 このコマンドはエディターのツールバーからもアクセスできます。 + - **現在のレベルを折りたたむ** / **現在のレベルを展開する**: カーソルが存在するレベルのコードを折りたたむまたは展開します。このコマンドはエディターの **コンテキストメニュー** からもアクセスできます。 + - **すべてを折りたたむ** / **すべてを展開する**: メソッド中のすべてのループと条件ブロックを折りたたむまたは展開します。このコマンドはエディターのツールバーからもアクセスできます。 ## コードブロック @@ -606,38 +603,38 @@ Windows では、日本語や中国語を入力するために IME (Input Method - **ブロックの先頭**: 現在のブロックの先頭にカーソルを移動します。 - **ブロックの終端**: 現在のブロックの終端にカーソルを移動します。 -このコマンドには **メソッド** メニューとエディターのコンテキストメニューからアクセスできます。 以下のショートカットも利用できます: +このコマンドには **メソッド** メニューとエディターのコンテキストメニューからアクセスできます。以下のショートカットも利用できます: - Windows: **Ctrl** + **上矢印** または **Ctrl** + **下矢印** - macOS: **Command** + **上矢印** または **Command** + **下矢印**. ## ブックマーク -4Dでは、メソッドの特定の行にブックマークを付けることができます。 ブックマークを付けると、特別なコマンドを使用してブックマーク間を素早く移動できます。 +4Dでは、メソッドの特定の行にブックマークを付けることができます。ブックマークを付けると、特別なコマンドを使用してブックマーク間を素早く移動できます。 ![](../assets/en/code-editor/bookm.png) -コードが挿入されたり削除されたりしてブックマーク行が移動すると、ブックマークもそれに伴って移動します。 ブックマークはメソッドとともに保存されます。 +コードが挿入されたり削除されたりしてブックマーク行が移動すると、ブックマークもそれに伴って移動します。ブックマークはメソッドとともに保存されます。 ブックマークは **メソッド** メニューの **ブックマーク** サブメニューから管理します: -- **切り替える**: カーソルが存在する行にブックマークを設定します (まだブックマークが設定されていない場合)。すでにブックマークが設定されていれば、それを削除します。 エディターのコンテキストメニューの **ブックマークをトグル**、または **Ctrl+F3** (Windows) / **Command+F3** (macOS) キーボードショートカットからもこのコマンドにアクセスできます。 +- **切り替える**: カーソルが存在する行にブックマークを設定します (まだブックマークが設定されていない場合)。すでにブックマークが設定されていれば、それを削除します。エディターのコンテキストメニューの **ブックマークをトグル**、または **Ctrl+F3** (Windows) / **Command+F3** (macOS) キーボードショートカットからもこのコマンドにアクセスできます。 - **すべてを削除**: 最前面のエディターのブックマークをすべて削除します。 -- **次に進む** / **前に戻る**: ウィンドウ内でブックマーク間を移動するのに使用します。 コマンドを選択すると、該当するブックマーク行の先頭にカーソルが移動します。 **F3** (次に進む) や **Shift+F3** (前に戻る) ショートカットも使用できます。 +- **次に進む** / **前に戻る**: ウィンドウ内でブックマーク間を移動するのに使用します。コマンドを選択すると、該当するブックマーク行の先頭にカーソルが移動します。 **F3** (次に進む) や **Shift+F3** (前に戻る) ショートカットも使用できます。 :::info -[検索で見つかった項目](#検索) を含む行のマーカーとしてブックマークを使用できます。 この場合、4D は自動でブックマークを追加します。 詳細は [すべてをブックマーク](#すべてをブックマーク) を参照ください。 +[検索で見つかった項目](#検索) を含む行のマーカーとしてブックマークを使用できます。この場合、4D は自動でブックマークを追加します。詳細は [すべてをブックマーク](#すべてをブックマーク) を参照ください。 ::: ## エクスプローラーに表示 -**エクスプローラーに表示...** コマンドは、ターゲット要素が選択された状態のエクスプローラーウィンドウを開きます。 これには、カーソルを要素名の中に置き (または選択して)、**メソッド** メニューから **エクスプローラーに表示...** を選択します。 +**エクスプローラーに表示...** コマンドは、ターゲット要素が選択された状態のエクスプローラーウィンドウを開きます。これには、カーソルを要素名の中に置き (または選択して)、**メソッド** メニューから **エクスプローラーに表示...** を選択します。 ## 呼出し元を検索 -**メソッド** メニューの **呼出し元を検索...** コマンドはプロジェクトメソッドでのみ利用可能です。 このコマンドは、開かれているプロジェクトメソッドを参照しているすべてのオブジェクト (他のメソッドやメニュー) を検索します。 +**メソッド** メニューの **呼出し元を検索...** コマンドはプロジェクトメソッドでのみ利用可能です。このコマンドは、開かれているプロジェクトメソッドを参照しているすべてのオブジェクト (他のメソッドやメニュー) を検索します。 **注**: **呼出し元を検索...** コマンドは **エクスプローラー** の **メソッド** ページからも利用できます。 @@ -645,7 +642,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method ## 定義を開く -**定義を開く...** コマンドは、コードエディター内で参照されている要素の定義を開きます。 これには、カーソルをオブジェクト (ランゲージ要素) 名の中に置き (または選択して)、**メソッド** メニューから **定義を開く...** を選択するか、エディターのコンテキストメニューを使用します。 +**定義を開く...** コマンドは、コードエディター内で参照されている要素の定義を開きます。これには、カーソルをオブジェクト (ランゲージ要素) 名の中に置き (または選択して)、**メソッド** メニューから **定義を開く...** を選択するか、エディターのコンテキストメニューを使用します。 :::tip @@ -661,7 +658,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method ## ドキュメンテーションを表示 -**ドキュメンテーションを表示...** コマンドは、ターゲット要素のドキュメンテーションを開きます。 これには、カーソルを要素名の中に置き (または選択して)、**メソッド** メニューから **ドキュメンテーションを表示...** を選択するか、コンテキストメニューを使用します。 このコマンドは、ターゲットとなる要素によって効果が変化します。 例: +**ドキュメンテーションを表示...** コマンドは、ターゲット要素のドキュメンテーションを開きます。これには、カーソルを要素名の中に置き (または選択して)、**メソッド** メニューから **ドキュメンテーションを表示...** を選択するか、コンテキストメニューを使用します。このコマンドは、ターゲットとなる要素によって効果が変化します。例: - プロジェクトメソッドまたはユーザークラスを選択した状態で **ドキュメンテーションを表示...** を選択すると、エクスプローラー内でメソッドを選択し、ドキュメンテーションタブを表示します。 - 4Dコマンド、関数、または 4Dクラス名を選択した状態で **ドキュメンテーションを表示...** を選択すると、オンラインドキュメントを開きます。 @@ -669,7 +666,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method :::tip -4D の "クラシック" ランゲージコマンドのドキュメントを表示するには、コマンド名を選択、またはその途中にカーソルを挿入し、**F1** を押します。 デフォルトブラウザーの新しいウィンドウにコマンドのドキュメントが表示されます。 環境設定 ([ドキュメントの場所](../Preferences/general.md#ドキュメントの場所)) に基づき、4D はドキュメントを探します。 +4D の "クラシック" ランゲージコマンドのドキュメントを表示するには、コマンド名を選択、またはその途中にカーソルを挿入し、**F1** を押します。デフォルトブラウザーの新しいウィンドウにコマンドのドキュメントが表示されます。環境設定 ([ドキュメントの場所](../Preferences/general.md#ドキュメントの場所)) に基づき、4D はドキュメントを探します。 ::: @@ -677,7 +674,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method **参照を検索...** コマンドは、**メソッド** メニューまたはコードエディターのコンテキストメニューにあり、プロジェクト内で、メソッドの現在の項目が参照されているすべてのオブジェクト (メソッドやフォーム) を検索します。 -現在の項目とは、選択されているもの、あるいはカーソルが置かれているものです。 フィールド名、変数名、コマンド、文字列等が該当します。 たとえば、以下のアクションを実行するとデータベース中で *vlNbCmd* 変数のオカレンスを探します: +現在の項目とは、選択されているもの、あるいはカーソルが置かれているものです。フィールド名、変数名、コマンド、文字列等が該当します。たとえば、以下のアクションを実行するとデータベース中で *vlNbCmd* 変数のオカレンスを探します: ![find-dialog](../assets/en/code-editor/search-references.png) @@ -685,48 +682,47 @@ Windows では、日本語や中国語を入力するために IME (Input Method ## 名称変更 -グローバル名称変更機能は、**変数** と **プロジェクトメソッド** に対して使用でき、これによってプロジェクト全体において安全に名称を変更することができます。 これをするためには、エディター内において変数またはプロジェクトメソッド名をハイライトし、コンテキストメニューの**メソッド** メニューから**名称変更...** を選択します。 すると新しい名前を入力するためのダイアログボックスが表示されます。 より詳細な情報については、[プロジェクトメソッドと変数の名称変更](../Project/search-replace.md#プロジェクトメソッドと変数の名称変更) の章を参照してください。 +グローバル名称変更機能は、**変数** と **プロジェクトメソッド** に対して使用でき、これによってプロジェクト全体において安全に名称を変更することができます。これをするためには、エディター内において変数またはプロジェクトメソッド名をハイライトし、コンテキストメニューの**メソッド** メニューから**名称変更...** を選択します。すると新しい名前を入力するためのダイアログボックスが表示されます。より詳細な情報については、[プロジェクトメソッドと変数の名称変更](../Project/search-replace.md#プロジェクトメソッドと変数の名称変更) の章を参照してください。 ## マクロ -メソッド内でマクロコマンドを利用することができます。 マクロを利用すれば、コードの入力にかかる時間を大幅に短縮することができます。 +メソッド内でマクロコマンドを利用することができます。マクロを利用すれば、コードの入力にかかる時間を大幅に短縮することができます。 -マクロコマンドは 4Dコードのパーツで、どのデータベースが開かれているかにかかわらず、あらゆるメソッドのどんな場所にでも挿入することができます。 マクロにはすべてのタイプの 4Dテキスト、コマンド、定数、さらにマクロ実行時のメソッドコンテキストにより値が置換される特別なタグを記述することができます。 たとえば、マクロに `;` というタグを記述しておくと、マクロ挿入時にこのタグはカレントのプロジェクトメソッド名に置換されます。 +マクロコマンドは 4Dコードのパーツで、どのデータベースが開かれているかにかかわらず、あらゆるメソッドのどんな場所にでも挿入することができます。マクロにはすべてのタイプの 4Dテキスト、コマンド、定数、さらにマクロ実行時のメソッドコンテキストにより値が置換される特別なタグを記述することができます。たとえば、マクロに `;` というタグを記述しておくと、マクロ挿入時にこのタグはカレントのプロジェクトメソッド名に置換されます。 -マクロは 1つ以上の XMLフォーマットのテキストファイルに格納されます。 マクロはコードエディターリスト、またはエディター内のコンテキストメニュー、さらに自動補完機能から呼び出すことが可能です。 +マクロは 1つ以上の XMLフォーマットのテキストファイルに格納されます。マクロはコードエディターリスト、またはエディター内のコンテキストメニュー、さらに自動補完機能から呼び出すことが可能です。 4Dマクロは XMLフォーマットで記述されます。 4Dが提供するデフォルトのマクロファイルをそのまま使用することも、変更することもできます。 ### マクロの場所 -4D は **Macros v2** という名前のフォルダーからマクロを読み込みます。 マクロは XMLファイルとしてこのフォルダーに配置しなければなりません。 +4D は **Macros v2** という名前のフォルダーからマクロを読み込みます。マクロは XMLファイルとしてこのフォルダーに配置しなければなりません。 "Macros v2" フォルダーは以下の場所に配置できます: -- マシンのアクティブ4Dフォルダー。 この場合、マクロはすべてのデータベースで共有されます。 - **注:** アクティブ4Dフォルダーの位置は OS により異なります。 詳細については、*4Dランゲージリファレンス* マニュアルの [Get 4D folder](../commands/get-4d-folder) コマンドの説明を参照ください。 -- データベースストラクチャーファイルと同階層。 マクロは、このストラクチャーにのみ読み込まれます。 -- コンポーネントの場合: データベースの **Components** フォルダーと同階層。 この場合マクロは、コンポーネントがインストールされている場合のみ利用できます。 +- マシンのアクティブ4Dフォルダー。この場合、マクロはすべてのデータベースで共有されます。**注:** アクティブ4Dフォルダーの位置は OS により異なります。詳細については、*4Dランゲージリファレンス* マニュアルの [Get 4D folder](../commands/get-4d-folder) コマンドの説明を参照ください。 +- データベースストラクチャーファイルと同階層。マクロは、このストラクチャーにのみ読み込まれます。 +- コンポーネントの場合: データベースの **Components** フォルダーと同階層。この場合マクロは、コンポーネントがインストールされている場合のみ利用できます。 -これら 3つの場所は同時に利用可能です。 各場所に "Macros v2" フォルダーをインストールできます。 マクロは以下の順番でロードされます: 4Dフォルダー、ストラクチャーファイル、コンポーネント1 ... コンポーネントX。 +これら 3つの場所は同時に利用可能です。 各場所に "Macros v2" フォルダーをインストールできます。マクロは以下の順番でロードされます: 4Dフォルダー、ストラクチャーファイル、コンポーネント1 ... コンポーネントX。 ### デフォルトマクロ -4D はデフォルトで、制御フローキーワードなどに対応するマクロを提供しています。 このマクロは 4Dを初回起動する際、マシンのアクティブ4Dフォルダー内の "Macros v2" フォルダーに作成される*Macros.xml* ファイルに含まれます。 +4D はデフォルトで、制御フローキーワードなどに対応するマクロを提供しています。このマクロは 4Dを初回起動する際、マシンのアクティブ4Dフォルダー内の "Macros v2" フォルダーに作成される*Macros.xml* ファイルに含まれます。 -このファイルを変更することができます。また、フォルダー内に別のマクロファイルを追加することもできます (後述参照)。 このフォルダーに問題が発生した場合は、フォルダーを削除すると次回の 4D起動時に新たに作成されます。 +このファイルを変更することができます。また、フォルダー内に別のマクロファイルを追加することもできます (後述参照)。このフォルダーに問題が発生した場合は、フォルダーを削除すると次回の 4D起動時に新たに作成されます。 ### カスタマイズしたマクロを追加する -標準のテキストエディターやプログラムを使用して、"Macros.xml" ファイルにカスタマイズしたマクロを追加できます。 またフォルダー内に、カスタマイズしたマクロを記述した XMLファイルを追加することもできます。 +標準のテキストエディターやプログラムを使用して、"Macros.xml" ファイルにカスタマイズしたマクロを追加できます。またフォルダー内に、カスタマイズしたマクロを記述した XMLファイルを追加することもできます。 -ローカルモードでは、4D を使用中にマクロファイルを開くことができます。 利用可能なマクロのリストは 4Dがアクティブになるたびに更新されます。 たとえば、テキストエディターを最前面にしてマクロファイルを更新し、その後メソッドの編集に戻ると、新しいマクロがコードエディターで利用可能になっています。 +ローカルモードでは、4D を使用中にマクロファイルを開くことができます。利用可能なマクロのリストは 4Dがアクティブになるたびに更新されます。たとえば、テキストエディターを最前面にしてマクロファイルを更新し、その後メソッドの編集に戻ると、新しいマクロがコードエディターで利用可能になっています。 空およびエラーのあるマクロは表示されません。 #### カスタマイズしたマクロのシンタックスを検証する -4Dのマクロコマンドファイルは XML標準に準拠していなければなりません。 つまり XML宣言 `` とドキュメント宣言 `` 文がマクロファイルの先頭になければならず、そうでない場合、マクロは読み込まれません。 異なるタイプの XMLエンコーディングがサポートされています。 しかし、Mac/PC (UTF-8) 互換のエンコーディングを使用することが推奨されます。 4D はマクロファイルを検証するための DTD を提供しています。 ファイルは以下の場所にあります: +4Dのマクロコマンドファイルは XML標準に準拠していなければなりません。つまり XML宣言 `` とドキュメント宣言 `` 文がマクロファイルの先頭になければならず、そうでない場合、マクロは読み込まれません。異なるタイプの XMLエンコーディングがサポートされています。しかし、Mac/PC (UTF-8) 互換のエンコーディングを使用することが推奨されます。 4D はマクロファイルを検証するための DTD を提供しています。ファイルは以下の場所にあります: - Windows: \Resources\DTD\macros.dtd - macOS: :Contents:Resources:DTD:macros.dtd @@ -739,7 +735,7 @@ Windows では、日本語や中国語を入力するために IME (Input Method いくつかのタグは定義の開始と終了を表し (` と ` のようなペア)、その他のタグは実行コンテキストにより置換されます (``)。 -XML仕様に準拠し、いくつかのタグは属性を含むことがあります。 明示されない限り属性の指定は任意であり、省略された場合はデフォルト値が使用されます。 要素および属性のシンタックスは以下の通りです: +XML仕様に準拠し、いくつかのタグは属性を含むことがあります。明示されない限り属性の指定は任意であり、省略された場合はデフォルト値が使用されます。要素および属性のシンタックスは以下の通りです: - 開始および終了タグのペア: ` ` - 置換されるタグ: `` @@ -748,36 +744,36 @@ XML仕様に準拠し、いくつかのタグは属性を含むことがあり 利用可能なタグのリストと利用モードは以下の通りです: -| **要素タグ** | **説明** | -| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ` ` | マクロファイルの開始と終了 (必須)。 | -| ` ` | マクロとその属性の定義の開始と終了。 | -| | *属性*: | -| | - name: メニューやコードエディターリストに表示されるマクロの名前\*\* (必須)。 | -| | - type_ahead_text: タイプアヘッド (自動補完) 機能\*を使用してマクロを呼び出すために入力する文字列\*\*。 | -| | - in_menu: コンテキストメニュー\*からマクロを呼び出すことを許可するかを指定するブール値。 値は "true" (デフォルト) または "false"。 | -| | - type_ahead: タイプアヘッド (自動補完) 機能\*を使用してマクロを呼び出すことを許可するかを指定するブール値。 値は "true" (デフォルト) または "false"。 | -| | - method_event: メソッドごとの現在の処理フェーズ (作成、閉じる等) に応じてマクロの自動呼出しを実行するために使用します。 値 = "on_load": マクロはメソッドを開くたびに実行されます, "on_save": マクロはメソッドが保存されるたびに実行されます (メソッドを閉じるまたはファイル>保存コマンドを使用して保存する), "on_create": マクロはメソッドが作成されるたびに実行されます, "on_close": マクロはメソッドが閉じられるたびに実行されます。 | -| | "on_save" と "on_close" は組み合わせて使用できます — 言い換えれば、これらのイベントは更新されたメソッドが閉じられるときに両方とも生成されます。 他方、"on_create" と "on_load" が連続して実行されることはありません。 この属性は、たとえばメソッド作成時にデフォルトのフォーマット (ヘッダーエリアのコメント等) を適用したり、メソッドを閉じる際にタイムスタンプを記録するために使用することができます。 | -| | - version: マクロ用にテキスト選択の新しいモードを有効化するために使用します (後述の "``タグについて" 参照)。 新しいモードを有効にするには "2" を指定します。 この属性を省略するか version="1" を指定すると、以前のモードが保持されます。 | -| | - in_toolbar: ツールバーのマクロボタンメニューにマクロを表示するかどうかを指定するブール値。 値="true" (デフォルト) または "false"。 | -| `` | マクロが挿入される時点で選択されていたテキストを使用して、タグが置換されます。 選択テキストは空の場合もあります。 | -| ` ` | メソッドに挿入されるコードの開始と終了タグ。 コードの先頭と最後には改行が追加されます。 | -| ` ` | プロジェクトメソッド名とその引数 (オプション) の開始と終了。 マクロが呼び出されたとき、メソッドが実行されます。 ("param1;param2;...") の形式で引数を渡せます。 この引数は、呼び出されたメソッド内で $1, $2...変数に渡されます。 このタグに関する追加情報は後述の "`` タグについて" を参照ください。 | -| `` | マクロが挿入された後のコード中の挿入ポイントの場所。 | -| `` | カレント4Dユーザー名で置換されるタグ。 | -| `` | カレントのシステムユーザー名で置換されるタグ。 | -| `` | カレントメソッド名で置換されるタグ。 | -| `` | カレントのメソッドのパスシンタックス([`METHOD Get path`](../commands/method-get-path) から返されるもの)で置き換えられたタグ。 | -| `` | カレントの日付で置換されるタグ。 | -| | *属性*: | -| | - format: 4D の日付フォーマット。 フォーマットが設定されていない場合、デフォルトのフォーマットが使用されます。 値 = 4Dフォーマットの数字 (0 - 8)。 | -| `